dc42d2d7717deeabec3d1daea8c2e2fdc067842c
[bpt/emacs.git] / src / ChangeLog
1 2001-10-26 Gerd Moellmann <gerd@gnu.org>
2
3 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
4 Fix clearing in the case of scroll bars on the right.
5
6 2001-10-26 Juanma Barranquero <lektu@terra.es>
7
8 * w32gui.h (XImage): Add a dummy typedef.
9
10 2001-10-26 Gerd Moellmann <gerd@gnu.org>
11
12 * xfns.c (XScreenNumberOfScreen): Fix struct to pointer
13 comparison.
14
15 2001-10-25 Eli Zaretskii <eliz@is.elta.co.il>
16
17 * frame.c (Fframe_parameter): Fix last change.
18
19 2001-10-25 Gerd Moellmann <gerd@gnu.org>
20
21 * frame.c (Fframe_parameter): Fix a bug whereby some
22 ``artificial'' frame parameters, like `minibuffer' were not
23 obtained by calling Fframe_parameters.
24
25 * xterm.c (show_mouse_face): Clean up. Recognize overwritten
26 cursor differently.
27
28 * xdisp.c (move_it_vertically_backward): Compute line height
29 differently. Add heuristic to try to be more compatible to 20.x.
30
31 2001-10-25 Stefan Monnier <monnier@cs.yale.edu>
32
33 * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
34
35 * editfns.c (text_property_stickiness): Fix Lisp_Object used as
36 boolean.
37
38 2001-10-25 Miles Bader <miles@gnu.org>
39
40 * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
41 BG is a pointer to a structure, not a structure.
42 (gif_format, png_format): Add missing commas.
43
44 2001-10-24 Richard M. Stallman <rms@gnu.org>
45
46 * xfaces.c (Fface_attributes_as_vector): New function.
47 (syms_of_xfaces): defsubr it.
48
49 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
50
51 * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
52 variable `area'.
53
54 2001-10-25 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
55
56 * search.c (scan_newline): Remove unused variable
57 `selective_display'.
58
59 2001-10-25 Miles Bader <miles@gnu.org>
60
61 * dispextern.h (struct image): Add `background',
62 `background_valid', and `background_transparent' fields.
63 (image_background, image_background_transparent): New declarations.
64 (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
65
66 * xfns.c (image_background, image_background_transparent)
67 (four_corners_best): New functions.
68 (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
69 (gs_format): Add `:background' entry.
70 (lookup_image): Set IMG's background color if specified.
71 (pbm_load, xbm_load_image, png_load): Set IMG's background field
72 when appropriate.
73 (x_clear_image_1): Reset `background_valid' and
74 `background_transparent_valid' fields.
75 (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
76 calculating it here. Set IMG's background_transparent field.
77 (enum xpm_keyword_index): Add XPM_BACKGROUND.
78 (enum png_keyword_index): Add PNG_BACKGROUND.
79 (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
80 (enum tiff_keyword_index): Add TIFF_BACKGROUND.
81 (enum gif_keyword_index): Add GIF_BACKGROUND.
82 (enum gs_keyword_index): Add GS_BACKGROUND.
83 (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
84 Pre-calculate image background color where necessary.
85
86 * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
87 `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
88 color to use for image glyph reliefs.
89
90 2001-10-24 Gerd Moellmann <gerd@gnu.org>
91
92 * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
93 in full-width rows.
94
95 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
96 Fix clearing of area not covered by scroll bar.
97
98 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
99
100 * xterm.c: (x_insert_glyphs): Remove unused variables `real_end'
101 and `real_start'.
102 (x_draw_image_foreground): Remove unused variables `mask' and
103 `xgcv'.
104 (glyph_rect): Remove unused variable `area'.
105
106 2001-10-24 Gerd Moellmann <gerd@gnu.org>
107
108 * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
109
110 * xdisp.c (try_window_reusing_current_matrix): Use
111 row_containing_pos.
112 (row_containing_pos): Take additional argument DY. Treat
113 rows ending in middle of char differently.
114 (display_line): Handle tabs on window systems differently.
115
116 * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
117 with additional argument.
118
119 * dispextern.h (row_containing_pos): Adjust prototype.
120
121 * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
122 (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
123 (try_window_id, try_window_reusing_current_matrix)
124 (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
125 (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
126
127 2001-10-24 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
128
129 * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
130 gnuemacs).
131 (HAVE_BOXES): Fix typo in comment.
132 (push_menu_pane): Fix typo in comment.
133
134 * xdisp.c: (display_prop_string_p): Remove unused local declaration
135 of `Qwhen'.
136 (single_display_prop_string_p): Remove unused local declarations
137 of `Qwhen' and `Qmargin'.
138 (string_buffer_position): Remove unused variable `around'.
139 (store_frame_title): Remove unused variable `width'.
140
141 * window.c: Don't define max.
142 (coordinates_in_window): Remove unused variable `uy'.
143
144 * widget.c: Don't define max.
145
146 * process.c: Don't define max.
147 (create_process): Remove unused variable `buffer'.
148
149 2001-10-23 Gerd Moellmann <gerd@gnu.org>
150
151 * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation
152 error.
153
154 2001-10-23 Eli Zaretskii <eliz@is.elta.co.il>
155
156 * xfaces.c (Finternal_set_lisp_face_attribute)
157 [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
158 frame is on a windowed display.
159
160 2001-10-23 Gerd Moellmann <gerd@gnu.org>
161
162 * dispnew.c (sync_window_with_frame_matrix_rows): Fix
163 handling of windows which aren't full-width, fix handling
164 of marginal areas.
165
166 * lread.c (syms_of_lread)<recursive-load-depth-limit>: Raise to
167 50.
168
169 2001-10-23 Andreas Schwab <schwab@suse.de>
170
171 * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
172 LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
173
174 2001-10-23 Gerd Moellmann <gerd@gnu.org>
175
176 * xterm.c (x_draw_glyphs): Remove parameters READ_START and
177 REAL_END. Notice if cursor gets overwritten.
178 (notice_overwritten_cursor): Take X positions as parameters.
179 (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
180 around call to x_draw_glyphs.
181
182 2001-10-23 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
183
184 * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
185 instead of C) and usage.
186
187 * editfns.c (char-to-string): Fix argument names (use CHAR instead
188 of C) and usage.
189
190 * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
191 `left', `max_width' and `max_height'.
192
193 2001-10-23 Gerd Moellmann <gerd@gnu.org>
194
195 * xdisp.c (display_line): For a tab continued to the next line,
196 set row's ends_in_middle_of_char_p.
197
198 2001-10-22 Gerd Moellmann <gerd@gnu.org>
199
200 * xdisp.c (display_line): Fix computation of continuation lines
201 width for TABs.
202
203 2001-10-22 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
204
205 * xdisp.c (build_desired_tool_bar_string): Remove unused variable
206 `Qlaplace'.
207
208 * fileio.c: Remove unused code.
209
210 2001-10-22 Miles Bader <miles@gnu.org>
211
212 * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
213 (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
214 Remove `DOC_STRINGS_IN_COMMENTS' cases.
215
216 2001-10-21 Jason Rumney <jasonr@gnu.org>
217
218 * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
219
220 2001-10-21 Eli Zaretskii <eliz@is.elta.co.il>
221
222 * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
223 (Finsert_string): Avoid the multi-line string literals warning.
224
225 2001-10-22 Miles Bader <miles@gnu.org>
226
227 * doc.c (Vhelp_manyarg_func_alist): Variable removed.
228 (Fdocumentation): Don't use it.
229 (syms_of_doc): Don't initialize it.
230
231 * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
232 * print.c (Fwith_output_to_temp_buffer): Likewise.
233 * window.c (Fsave_window_excursion): Likewise.
234 * editfns.c (Fsave_excursion, Fsave_current_buffer)
235 (Fsave_restriction): Likewise.
236 * eval.c (Frun_hooks, Frun_hook_with_args)
237 (Frun_hook_with_args_until_failure)
238 (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
239 (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
240 (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
241 (Funwind_protect, Fcondition_case): Likewise.
242 * coding.c (Ffind_operation_coding_system): Likewise.
243 * keyboard.c (Ftrack_mouse): Likewise.
244
245 2001-10-21 Miles Bader <miles@gnu.org>
246
247 * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
248 (Fmake_hash_table): Add usage: string to doc string.
249 * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
250 (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
251 (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
252 * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
253 (Fml_prefix_argument_loop): Likewise.
254
255 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
256
257 * fileio.c (Finsert_file_contents): Remove unused variable
258 `gap_size'.
259
260 * sysdep.c (init_sys_modes): Change doc-string comments to `new
261 style' [w/`doc:' keyword].
262
263 * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
264 * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
265 comments to `new style' [w/`doc:' keyword].
266
267 2001-10-21 Jason Rumney <jasonr@gnu.org>
268
269 * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
270
271 * w32term.c (remember_mouse_glyph): New function.
272 (w32_mouse_position): Use it.
273 (note_mouse_movement): If the mouse moved off the glyph, remember
274 its new position.
275
276 * w32term.h (struct w32_output): Correct spelling of x_compatible.
277 (w32_display_info): Add mouse_face_overlay.
278
279 * w32term.c (notice_overwritten_cursor): Renamed from
280 note_overwritten_text_cursor. Rewritten to take glyph widths into
281 account.
282 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
283 (fast_find_string_pos): New function.
284 (fast_find_position): Return the correct vpos. Add parameter
285 STOP. In the final row, stop before glyphs having STOP as object.
286 Don't consider glyphs that are not from a buffer.
287 (fast_find_position) [0]: Add a presumably more correct version
288 for after 21.1.
289 (expose_window_tree, expose_frame): Don't compute intersections here.
290 (expose_window): Do it here instead.
291 (expose_window_tree, expose_window, expose_line): Return 1 when
292 overwriting mouse-face.
293 (expose_window): If W is the window currently being updated, mark
294 the frame garbaged.
295 (expose_frame): If mouse-face was overwritten, redo it.
296 (x_use_underline_position_properties): New variable.
297 (syms_of_xterm): DEFVAR_BOOL it.
298 (x_draw_glyph_string): Add comment to use it in future.
299 (x_draw_glyph_string): Restore clipping after drawing box.
300 Fix a computation of the underline position.
301 (w32_get_glyph_string_clip_rect): Minor cleanup.
302 (x_fill_stretch_glyph_string): Remove an assertion.
303 (x_produce_glyphs): Don't convert multibyte characters
304 to unibyte characters in unibyte buffers.
305 (cursor_in_mouse_face_p): New function.
306 (x_draw_stretch_glyph_string): Use it to choose a different GC
307 when drawing a cursor within highlighted text. Don't draw
308 background again if it has already been drawn.
309 (x_draw_glyph_string_box): Don't draw a full-width
310 box just because the glyph row's full_width_p flag is set.
311 (x_draw_glyphs): Fix computation of rightmost x for
312 full-width rows.
313 (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
314 (w32_draw_relief_rect): Extend left shadow to the bottom and left;
315 change bottom shadow accordingly. Some cleanup.
316 (x_update_window_end): Handle overwritten mouse face
317 also for tool bar windows.
318 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
319 DRAW is DRAW_IMAGE_RAISED.
320 (clear_mouse_face): Return 1 if text with mouse face was
321 actually redrawn. Make the function static. Reset
322 dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
323 optimize away highlighting if we pass over that same overlay again.
324 (note_mouse_highlight): Call mouse_face_overlay_overlaps
325 to detect a case where we have to highlight a different region
326 despite not having left the currently highlighted region.
327 Set mouse_face_overlay in the x_display_info. Avoid changing the
328 mouse pointer shape when show_mouse_face has already done it, or
329 there is no need. Handle mouse-face and help-echo in strings.
330 (glyph_rect): New function.
331 (w32_mouse_position): Use it to raise the threshold for mouse
332 movement event generation.
333 (w32_initialize_display_info): Initialize the x_display_info's
334 mouse_face_overlay.
335 (w32_set_vertical_scroll_bar): Don't clear a zero height
336 or width area.
337 (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
338 a widget to zero height.
339
340 * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
341 Protect unibyte strings created by replacing their multibyte
342 equivalents in menu_items.
343 (w32_menu_show): Don't overwrite an item's name with its key
344 description in case the description is a multibyte string.
345 (single_submenu): Some cleanup.
346
347 * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
348 (postprocess_image): New function.
349 (lookup_image): Call it for all image types except PostScript.
350 (x_kill_gs_process): Call postprocess_image.
351 (tiff_error_handler, tiff_warning_handler): New functions.
352 (tiff_load): Install them as handlers.
353 (x_kill_gs_process): Recognize if someone has cleared the image
354 cache under us.
355 (valid_image_p): Protect better against invalid image
356 specifications. Previous code could signal an error.
357 (Fx_hide_tip, Fshow_tip): Doc fix.
358 (Fv_max_tooltip_size): New variable.
359 (syns_of_xfns): DEFVAR_LISP it.
360 (Fx_show_tip): Add parameter TEXT. Set the tip frame's root
361 window buffer to *tip* right after creating the frame. Set frame's
362 window_width. Use a maximum tooltip size specified by
363 Vx_max_tooltip_size, if that has valid contents.
364 (compute_tip_xy): Add parameters WIDTH and HEIGHT.
365 Make sure the tooltip is completely visible.
366 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
367 (Fx_create_frame): Adjust the frame's height for presence
368 of the tool bar before calling x_figure_window_size.
369 (x_set_tool_bar_lines): Clear the tool bar window's current matrix
370 when the window gets smaller.
371 (x_set_foreground_color): Set frame's cursor_pixel.
372 (x_set_foreground_color, x_set_background_color): Cleaned up.
373 (x_set_font): Handle case of x_new_fontset returning the same name
374 as before, although there was a change in fontsets.
375
376 2001-10-21 Miles Bader <miles@gnu.org>
377
378 * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
379 (Flogxor): Add usage: string to doc string.
380 * charset.c (Fstring): Likewise.
381 * callproc.c (Fcall_process_region, Fcall_process): Likewise.
382 * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
383
384 2001-10-21 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
385
386 * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
387
388 * alloc.c: Reindent DEFUNs with doc: keywords.
389
390 * abbrev.c (Finsert_abbrev_table_description): Reindent.
391
392 * frame.c: Change doc-string comments to `new style' [w/`doc:'
393 keyword].
394
395 2001-10-20 Gerd Moellmann <gerd@gnu.org>
396
397 * (Version 21.1 released.)
398
399 2001-10-20 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
400
401 * xfns.c (x_laplace_read_row, x_laplace_write_row): Prototypes
402 removed.
403
404 * xdisp.c (invisible_text_between_p): Put prototype inside #if
405 0 because unused.
406
407 * bytecode.c, callint.c, callproc.c, casefiddle.c, casetab.c
408 * category.c, ccl.c, charset.c, process.c, syntax.c, window.c: Change
409 doc-string comments to `new style' [w/`doc:' keyword].
410
411 2001-10-20 Miles Bader <miles@gnu.org>
412
413 The following changes remove the glyph_row `inverse_p' field,
414 which is never set anymore, due to other changes:
415
416 * dispextern.h (struct glyph_row): Remove `inverse_p' field.
417 (reassert_line_highlight, change_line_highlight): Declarations removed.
418 * dispnew.c (update_frame_line): Don't call reassert_line_highlight.
419 (line_hash_code, row_equal_p, fake_current_matrices)
420 (build_frame_matrix_from_leaf_window, update_frame_line)
421 (update_frame_line, update_frame_line, update_frame_line):
422 Don't use `inverse_p' field.
423 * xterm.c (x_initialize): Don't set reassert_line_highlight_hook or
424 change_line_highlight_hook.
425 (XTreassert_line_highlight, x_change_line_highlight):
426 Functions removed.
427 (x_fix_overlapping_area, x_write_glyphs, expose_area)
428 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
429 * xdisp.c (dump_glyph_row, display_mode_line): Don't use
430 `inverse_p' field.
431 * w32term.c (x_fix_overlapping_area, x_write_glyphs, expose_area)
432 (expose_line, x_erase_phys_cursor): Don't use `inverse_p' field.
433 (w32_reassert_line_highlight, x_change_line_highlight):
434 Functions removed.
435 * w32console.c (reassert_line_highlight, change_line_highlight):
436 Functions removed.
437 (initialize_w32_display): Don't set reassert_line_highlight_hook
438 or change_line_highlight_hook.
439 (hl_mode): Function removed.
440 (reset_terminal_modes, set_terminal_modes, update_begin)
441 (update_end, w32_face_attributes, initialize_w32_display):
442 (clear_frame, ins_del_lines): Don't call it.
443 * termhooks.h (reassert_line_highlight_hook)
444 (change_line_highlight_hook): Declarations removed.
445 * term.c (reassert_line_highlight_hook)
446 (change_line_highlight_hook): Variables removed.
447 (reassert_line_highlight, change_line_highlight): Functions removed.
448 * msdos.c (IT_reassert_line_highlight)
449 (IT_change_line_highlight): Functions removed.
450 (internal_terminal_init): Don't set reassert_line_highlight_hook
451 or change_line_highlight_hook.
452 (highlight): Variable removed.
453 (IT_set_face, IT_update_begin, IT_update_end)
454 (IT_set_terminal_modes): Don't set or use it.
455
456 The following changes remove inverse-video support for terminals
457 that use a `magic cookie' standout mode. Due to changes in the
458 way mode-lines are displayed, such support no longer works
459 anyway, and it's probable that almost no one uses such terminals
460 anymore:
461
462 * term.c (standout_requested): Variable removed.
463 (update_end, highlight_if_desired): Don't use it.
464 (chars_wasted, copybuf): Variables removed.
465 (write_standout_marker): Function removed.
466 (cursor_to, clear_to_end, clear_frame, clear_end_of_line_raw)
467 (clear_end_of_line_raw, write_glyphs, ins_del_lines):
468 Don't use `chars_wasted' or `copybuf'.
469 (calculate_costs): Don't allocate `chars_wasted' or `copybuf'.
470 Set `costs_set' to true.
471 (cursor_to, clear_end_of_line): Test `costs_set' instead of
472 `chars_wasted'.
473 (clear_end_of_line): Function removed.
474 (clear_end_of_line_raw): Renamed to `clear_end_of_line'.
475 (clear_to_end): Call `clear_end_of_line' instead of
476 `clear_end_of_line_raw'.
477 (TN_standout_width, TF_xs, TN_magic_cookie_glitch_ul): Vars removed.
478 (term_init): Don't set them.
479 Turn off any standout/underline modes that require magic cookies.
480 (ins_del_lines, highlight_if_desired, background_highlight)
481 (turn_on_highlight, turn_off_highlight, reset_terminal_modes):
482 Remove special processing for magic-cookie standout modes.
483 (turn_off_face, turn_on_face): Remove special processing for
484 underline magic-cookie glitch.
485
486 2001-10-19 Richard M. Stallman <rms@gnu.org>
487
488 * eval.c (syms_of_eval): Doc fixes.
489
490 2001-10-19 Gerd Moellmann <gerd@gnu.org>
491
492 * xdisp.c (redisplay_internal): Don't clear echo area if the
493 mini-window is selected.
494
495 2001-10-19 Miles Bader <miles@gnu.org>
496
497 * editfns.c (text_property_stickiness): Non-rear-non-stickiness
498 doesn't take precedence if the affected property's value is nil.
499
500 * editfns.c (Fencode_time): Escape a BOL paren in the doc-string.
501
502 * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify interaction
503 with fields and suggest using `forward-line' to avoid them.
504 * editfns.c (Fline_beginning_position, Fline_end_position):
505 Clarify documentation.
506
507 2001-10-18 Stefan Monnier <monnier@cs.yale.edu>
508
509 * keymap.c (current_minor_maps): `override' only shadows its
510 correspondent in minor-mode-map-alist, not the whole tail.
511
512 2001-10-18 Andrew Innes <andrewi@gnu.org>
513
514 * fontset.c (fs_load_font) [WINDOWSNT && _MSC_VER]: Disable
515 optimization. The fontp->encoding array was not being initialized
516 correctly when compiled with optimizations by MSVC.
517
518 2001-10-18 Gerd Moellmann <gerd@gnu.org>
519
520 * xdisp.c (display_line): Indicate empty lines in active mini-window.
521
522 2001-10-17 Andrew Innes <andrewi@gnu.org>
523
524 * fontset.h (struct font_info) [WINDOWSNT]: Add codepage field.
525
526 * w32fns.c (w32_load_system_font): Cache codepage for font, in
527 font_info.charset field.
528
529 * w32term.c (w32_encode_char): Get cached codepage from font_info,
530 rather than working it out by calling w32_codepage_for_font for
531 every glyph.
532
533 2001-10-17 Andrew Innes <andrewi@gnu.org>
534
535 * w32term.c (w32_read_socket): Determine clipping rectangle for
536 the entire frame, including areas covered by scrollbars and the
537 menubar. This avoids internal arguments about whether a frame is
538 fully obscured or not.
539
540 2001-10-17 Gerd Moellmann <gerd@gnu.org>
541
542 * xdisp.c (try_window_id): Undo last change. Give up if
543 window ends in strings.
544
545 * xdisp.c (try_window_id): Don't display lines after the window
546 end if the rest of the window after the window end was already blank.
547
548 * xdisp.c (try_window_id): Remove code that was only there
549 for the release of 21.1.
550
551 * xdisp.c (display_line): Don't indicate empty lines in mini-windows.
552
553 2001-10-17 Miles Bader <miles@gnu.org>
554
555 * lisp.h (DEFUN): Remove `DOC_STRINGS_IN_COMMENTS' case.
556 * xmenu.c, xdisp.c, term.c, dispnew.c, abbrev.c, editfns.c, buffer.c
557 * xfns.c, alloc.c, minibuf.c, xterm.c, xfaces.c:
558 Change doc-string comments to `new style' [w/`doc:' keyword].
559 (DOC_STRINGS_IN_COMMENTS): Macro removed.
560 * minibuf.c: Remove old commented-out-DEFUN that was used to fake
561 out make-docfile.
562
563 2001-10-16 Miles Bader <miles@gnu.org>
564
565 * fns.c: Change doc-string comments to `new style' [w/`doc:' keyword].
566
567 2001-10-16 Gerd Moellmann <gerd@gnu.org>
568
569 * buffer.c (Fset_buffer_major_mode): Use initial-major-mode for
570 *scratch*.
571
572 2001-10-16 Ken Raeburn <raeburn@gnu.org>
573
574 Avoid the assumption that car and cdr slots of cons cells are
575 addressable lvalues; this allows for easier experimentation with
576 other lisp implementations that may not permit such accesses for
577 various reasons. Not quite complete -- buffer.c still needs some
578 work, and w32/mac files need rechecking -- so compile-time
579 enforcement is left disabled for now.
580
581 * lisp.h (LISP_MAKE_RVALUE): New macro, or function in the case of
582 gcc with a union-based Lisp object rep. Redefine as no-op for now.
583 (XCAR_AS_LVALUE, XCDR_AS_LVALUE): Rename from old XCAR, XCDR.
584 (XCAR, XCDR): Apply LISP_MAKE_RVALUE to the _AS_LVALUE versions.
585 (XSETCAR, XSETCDR): New macros.
586 (XSETCARFASTINT, XSETCDRFASTINT): New macros.
587 (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): New macros.
588 * keyboard.h (POSN_BUFFER_SET_POSN): New macro.
589 * alloc.c (Fcons, pure_cons, Fgarbage_collect): Use XSETCAR and
590 XSETCDR.
591 (mark_buffer): Use XCAR_AS_LVALUE, XCDR_AS_LVALUE.
592 * buffer.c (record_buffer, Fbury_buffer)
593 (swap_out_buffer_local_variables, recenter_overlay_lists)
594 (Foverlay_put): Use XSETCAR and XSETCDR to set the car and cdr
595 fields of a cons cell respectively.
596 * callint.c (quotify_args, Fcall_interactively): Likewise.
597 * ccl.c (Fregister_code_conversion_map): Likewise.
598 * coding.c (detect_coding_system): Likewise.
599 * composite.c (get_composition_id, make_composition_value_copy):
600 Likewise.
601 * data.c (Fsetcar, Fsetcdr, swap_in_global_binding)
602 (swap_in_symval_forwarding, set_internal, Fset_default)
603 (Fmake_variable_buffer_local, Fmake_local_variable)
604 (Fmake_variable_frame_local): Likewise.
605 * fns.c (concat, Fcopy_alist, Fwidget_put): Likewise.
606 * keymap.c (Fset_keymap_parent, store_in_keymap)
607 (accessible_keymaps_1, where_is_internal_2, Fcopy_keymap):
608 Likewise.
609 * minibuf.c (get_minibuffer): Likewise.
610 * search.c (Fmatch_data): Likewise.
611 * textprop.c (extend_property_ranges): Likewise.
612 * undo.c (record_insert, Fundo_boundary, truncate_undo_list):
613 Likewise.
614 * w32fns.c (w32_msg_pump, Fw32_register_hot_key, w32_list_fonts):
615 Likewise.
616 * w32term.c (x_delete_display): Likewise.
617 * xfaces.c (remove_duplicates, Finternal_set_lisp_face_attribute):
618 Likewise.
619 * xterm.c (x_list_fonts, x_load_font, x_delete_display):
620 Likewise.
621 * doc.c (store_function_docstring): Use XSETCARFASTINT.
622 * fileio.c (Fdo_auto_save): Use XSETCARFASTINT and XSETCDRFASTINT.
623 (Fread_file_name): Use XSETCAR.
624 * fontset.c (Fset_fontset_font): Use CHECK_NUMBER_CAR and
625 CHECK_NUMBER_CDR.
626 (accumulate_font_info, Ffontset_info): Use XSETCAR and XSETCDR.
627 * frame.c (Fmake_terminal_frame): Use XSETCDR.
628 * indent.c (Fcompute_motion): Use CHECK_NUMBER_CAR and
629 CHECK_NUMBER_CDR.
630 * keyboard.c (read_char): Alter list traversal to avoid taking the
631 address of cons cell slots. Use POSN_BUFFER_SET_POSN.
632 (parse_menu_item): Use XSETCAR and XSETCDR.
633 (reach_char_x_menu_prompt): Use XSETCAR.
634 (read_key_sequence): Use POSN_BUFFER_SET_POSN.
635 (Fcommand_execute): Use XSETCDR.
636 * lread.c (Fload): Use XSETCARFASTINT and XSETCDRFASTINT.
637 (openp): Change list traversal to avoid using XCAR as lvalue.
638 (read_list): Use XSETCDR.
639 * process.c (wait_reading_process_input): Change wait_for_cell
640 handling to avoid taking addresses of cons cell slots.
641 * xselect.c (x_own_selection, x_handle_selection_clear)
642 (x_clear_frame_selections): Use XSETCDR.
643 (wait_for_property_change): Use XSETCARFASTINT and XSETCDRFASTINT.
644 (x_handle_property_notify, x_get_foreign_selection)
645 (x_handle_selection_notify): Use XSETCAR.
646
647 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
648
649 * buffer.c: Put doc strings in comments.
650
651 * sound.c: Include <sys/ioctl.h> also on systems without <soundcard.h>.
652
653 2001-10-15 Sam Steingold <sds@gnu.org>
654
655 * fns.c (Vafter_load_alist): Declare extern (w32 build problem).
656
657 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
658
659 * process.c (process-inherit-coding-system-flag)
660 (get-buffer-process): Do not confuse make-docfile with doc strings
661 in comment.
662
663 * editfns.c (Fchar_to_string): Make doc string consistent with
664 arguments. Put doc strings in comments.
665
666 * abbrev.c, minibuf.c: Put doc strings in comments.
667
668 2001-10-15 Gerd Moellmann <gerd@gnu.org>
669
670 * window.c (window_loop): Don't check for Fother_buffer returning nil.
671
672 * window.c (select_window_1): Unfreeze window start. Remove a
673 doubled test for WINDOW being live.
674
675 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
676
677 * fns.c (Fmapconcat): Fix typo in a doc string.
678
679 * dispnew.c (Fsleep_for): Fix typo in a doc string.
680
681 2001-10-15 Gerd Moellmann <gerd@gnu.org>
682
683 * xterm.c (x_draw_glyph_string): Restore clipping after
684 drawing box.
685
686 2001-10-15 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
687
688 * callint.c (prefix-arg, current-prefix-arg): Fix typo in a doc string.
689
690 2001-10-14 Stefan Monnier <monnier@cs.yale.edu>
691
692 * indent.c (skip_invisible): Use new retval of
693 TEXT_PROP_MEANS_INVISIBLE.
694
695 * keymap.c (access_keymap): Unify handling of `t' and generic-char.
696 If a parent is reached and noinherit is set, exit immediately.
697 Use AREF and ASIZE macros. Call get_keyelt before checking KEYMAPP.
698
699 * s/ms-w32.h (EXEC_SUFFIXES):
700 * s/msdos.h (EXEC_SUFFIXES):
701 * process.h (EXEC_SUFFIXES): Remove.
702
703 * callproc.c (syms_of_callproc): Init Vexec_suffixes to Qnil.
704 (decode_suffixes): Remove.
705
706 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_WITH_ELLIPSIS)
707 (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS, invisible_noellipsis_p)
708 (invisible_ellipsis_p): Remove.
709
710 * xdisp.c (DOLIST, LOOP_PROPVAL): Remove.
711 (invisible_p): Return 1 or 2 depending on whether an ellipsis is used.
712 (invisible_ellipsis_p, invisible_noellipsis_p): Remove.
713 (in_ellipses_for_invisible_text_p, handle_invisible_prop):
714 Use new retval of TEXT_PROP_MEANS_INVISIBLE.
715
716 2001-10-14 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
717
718 * lisp.h (Ftop_level): Add prototype.
719
720 * xterm.c: (xlwmenu_window_p, xlwmenu_redisplay): Add prototypes.
721 (XTread_socket): Improve style of comments to follow other
722 comments.
723
724 * keyboard.c (Fcommand_execute): Remove unnecessary prototype (it
725 is already prototyped in included lisp.h).
726
727 * frame.c (Fset_mouse_position): Improve style of comment to
728 follow other comments.
729 (Fset_mouse_pixel_position): Improve style of comment to follow
730 other comments.
731 (Fmake_frame_visible): Doc fix and typo in comment.
732 (Fmake_frame_invisible): Doc fix and typo in comment.
733 (Ficonify_frame): Fix typo in comment.
734
735 2001-10-14 Gerd Moellmann <gerd@gnu.org>
736
737 * xfns.c, dispnew.c, xterm.c, xdisp.c, xfaces.c, xmenu.c
738 * term.c, alloc.c: Put doc strings in comments.
739
740 2001-10-13 Gerd Moellmann <gerd@gnu.org>
741
742 * lisp.h (DEFUN, DEFVAR_LISP, ...) [DOC_STRINGS_IN_COMMENTS]:
743 Provide definitions for doc strings in comments.
744
745 * fns.c: Put doc strings in comments.
746
747 2001-10-13 Eli Zaretskii <eliz@is.elta.co.il>
748
749 * dired.c (file_name_completion): Ignore a candidate directory if
750 it matches an element in completion-ignored-extensions that ends
751 in a slash.
752 (syms_of_dired) <completion-ignored-extensions>: Mention the above
753 feature in the doc string.
754 (Ffile_name_completion): Ditto.
755
756 2001-10-12 Stefan Monnier <monnier@cs.yale.edu>
757
758 * indent.c (skip_invisible): Don't skip "ellipsisized" text.
759
760 * xfns.c (syms_of_xfns): Update calls to Fprovide.
761
762 * lisp.h (Fprovide): Update prototype.
763 (Ffeaturep, invisible_p): Remove.
764
765 * xdisp.c (init_iterator): Be more strict with bytepos and charpos.
766 (DOLIST, LOOP_PROPVAL): New macros.
767 (invisible_p, invisible_ellipsis_p): Use them.
768 (invisible_noellipsis_p): New function.
769 (syms_of_xdisp): Use empty_string.
770
771 * alloc.c (mark_interval_tree): Use traverse_intervals_noorder.
772
773 * lread.c (substitute_object_recurse): Use traverse_intervals_noorder.
774 (syms_of_lread) <Vafter_load_alist>: Update docstring.
775
776 * print.c (Fwith_output_to_temp_buffer): Align with
777 internal_with_output_to_temp_buffer.
778 (print_preprocess): Use traverse_intervals_noorder.
779 (print_object): Update call to traverse_intervals.
780
781 * intervals.h (TEXT_PROP_MEANS_INVISIBLE_NOELLIPSIS): New macro.
782 (traverse_intervals_noorder, invisible_noellipsis_p): New funs.
783
784 * intervals.c (traverse_intervals_noorder): New function.
785 (search_for_interval, count_intervals): Use it.
786 (traverse_intervals): Use less stack space and drop `depth' arg.
787
788 * fns.c (Ffeaturep): Add new `subfeature' arg.
789 (Fprovide): Add new `subfeatures' arg. Use `after-load-alist'.
790 (Qsubfeatures): New var.
791 (syms_of_fns): Initialize it.
792
793 * keymap.c (Fkey_description): Use empty_string.
794 (Fdescribe_bindings_internal, describe_buffer_bindings): Remove.
795 (syms_of_keymap): Setup inheritance between maps.
796 Don't export Sdescribe_bindings_internal any more.
797
798 * minibuf.c (keys_of_minibuf): Eliminate redundant bindings.
799
800 2001-10-12 Gerd Moellmann <gerd@gnu.org>
801
802 * xterm.c (notice_overwritten_cursor): Renamed from
803 note_overwritten_text_cursor. Rewritten to take glyph widths into
804 account.
805
806 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
807
808 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
809 multi-line strings without a trailing "\n\".
810
811 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
812
813 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
814 defined.
815
816 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
817
818 * callint.c (Fcall_interactively): Remove unused code. Use XCAR.
819
820 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
821 * w32proc.c (sys_spawnve):
822 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
823 * w32.c (check_windows_init_file):
824 * sound.c (Fplay_sound):
825 * emacs.c (init_cmdargs):
826 * process.c (Fstart_process): Update calls to openp.
827
828 * callproc.c (Vexec_suffixes): New var.
829 (Fcall_process): Update call to openp.
830 (decode_suffixes): New function.
831 (syms_of_callproc): Init exec-suffixes.
832
833 * lread.c (Vload_suffixes, default_suffixes): New vars.
834 (openp): Take a lisp list of suffixes.
835 Check for file-name-handlers even if the file was absolute already.
836 (syms_of_lread): Declare load-suffixes.
837 (Fload): Fix up call to openp.
838 Don't bother checking for file-name-handler at the very beginning.
839
840 * keymap.h (Fcopy_keymap): Don't export.
841
842 * lisp.h (empty_string): Declare.
843 (Vload_suffixes, Vexec_suffixes): Declare.
844 (openp): Update prototype.
845
846 * emacs.c (empty_string): New var.
847 (syms_of_emacs): Initialize it.
848
849 * search.c (wordify): Use it.
850
851 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
852 selected window if it's not displayed there. Handle the case
853 when the window is dedicated.
854 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
855
856 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
857
858 * syntax.h (struct gl_state_s): Change the meaning of b_property.
859 Remove left_ok and right_ok.
860 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
861 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
862 new meaning of b_property.
863
864 * syntax.c (update_syntax_table): Simplify.
865 (Fforward_comment): Don't skip quoted chars when going backward.
866
867 2001-10-11 Gerd Moellmann <gerd@gnu.org>
868
869 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
870 in case I is of some unsigned type, in which case
871 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
872 comparison becomes bogus.
873
874 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
875 (Fuser_full_name): Fix bug treating a float as a fixnum.
876
877 * data.c (Fstring_to_number): Use make_fixnum_or_float.
878
879 * lisp.h (make_fixnum_or_float): New macro.
880
881 * lisp.h (circular_list_error): Add prototype.
882
883 * data.c (Qcircular_list): New variable.
884 (circular_list_error): New function.
885 (syms_of_data): Initialize it Qcircular_list.
886
887 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
888
889 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
890 casefiddle.c, buffer.c: Include keymap.h.
891
892 2001-10-10 Gerd Moellmann <gerd@gnu.org>
893
894 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
895 options. From Dave Love <d.love@dl.ac.uk>.
896
897 2001-10-09 Gerd Moellmann <gerd@gnu.org>
898
899 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
900 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
901
902 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
903 unsigned char.
904 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
905
906 2001-10-08 Andrew Innes <andrewi@gnu.org>
907
908 * lisp.h [max]: Undef min and max before redefining them.
909
910 * w32gui.h: Do not undef min and max.
911
912 * w32heap.h: Do not undef min and max.
913
914 * s/ms-w32.h: Do not undef min and max.
915
916 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
917
918 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
919
920 2001-10-08 Sam Steingold <sds@gnu.org>
921
922 * keymap.c (current-active-maps): Quote newlines (compilation error).
923
924 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
925
926 * Makefile.in (lisp, shortlisp): Replace bindings.el with
927 bindings.elc, since otherwise doc strings in bindings.el get wrong
928 offsets in etc/DOC.
929
930 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
931
932 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
933
934 * keyboard.h (map_prompt): Remove.
935
936 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
937 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
938
939 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
940
941 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
942
943 * keyboard.c (map_prompt): Remove.
944 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
945 Use Fkeymap_prompt.
946
947 * keymap.h: New file. Extracted from lisp.h.
948
949 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
950 (accessible_keymaps_1): New function.
951 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
952 (Fwhere_is_internal): Use Fcurrent_active_maps.
953 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
954 Insert in current buffer rather than standard-output.
955 Don't call `help-mode'. Export to elisp.
956 (describe_buffer_bindings): New wrapper.
957 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
958 and Sdescribe_buffer_bindings.
959
960 2001-10-08 Gerd Moellmann <gerd@gnu.org>
961
962 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
963 Remove code setting signal handler.
964
965 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
966 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
967
968 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
969
970 * keyboard.c: Don't define min/max.
971
972 2001-10-08 Gerd Moellmann <gerd@gnu.org>
973
974 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
975 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
976 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
977 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
978 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
979 Don't define min/max.
980
981 * lisp.h (min, max): New macros.
982
983 * puresize.h (BASE_PURESIZE): Increase to 725000.
984
985 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
986
987 * xfaces.c (free_frame_menubar): Add prototype.
988
989 * lisp.h (init_window): Add prototype.
990
991 * editfns.c: Include ctype.h.
992
993 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
994 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
995 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
996 variable `sb'.
997
998 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
999 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
1000 `popup_activated_flag' and `title'.
1001
1002 * doc.c (Fdocumentation_property): Fix typo in a doc string.
1003
1004 * emacs.c (main): Remove extra `;'.
1005
1006 * atimer.h (struct atimer): Fix typos in a comment.
1007
1008 * atimer.c: Fix typo.
1009
1010 * Makefile.in: Fix typo.
1011
1012 * README: Remove obsolete part mentioning removed VMS file.
1013
1014 2001-10-07 Miles Bader <miles@gnu.org>
1015
1016 * Makefile.in (lisp, shortlisp): Add `button.elc'.
1017
1018 2001-10-07 Ken Raeburn <raeburn@gnu.org>
1019
1020 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
1021 Lisp_Object.
1022
1023 * lisp.h (Ffield_end): Declare.
1024
1025 2001-10-07 Gerd Moellmann <gerd@gnu.org>
1026
1027 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
1028
1029 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
1030
1031 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
1032
1033 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
1034
1035 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
1036 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
1037
1038 * alloc.c (inhibit_garbage_collection): Simplify.
1039 (Fmemory_use_counts): Ditto.
1040
1041 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
1042 (syms_of_data): DEFVAR_INT most-positive-fixnum and
1043 most-negative-fixnum.
1044
1045 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
1046 (FIXNUM_OVERFLOW_P): New macros.
1047
1048 2001-10-06 Miles Bader <miles@gnu.org>
1049
1050 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
1051 scroll_bar_bottom_shadow_pixel fields.
1052 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
1053 for the shadows, and tell the toolkit about them if we succeed.
1054 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
1055 Free scroll-bar shadow colors.
1056 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
1057 Free scroll-bar shadow colors when the background color changes.
1058 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
1059 Initialize scroll-bar shadow-color fields.
1060
1061 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1062
1063 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
1064
1065 2001-10-05 Miles Bader <miles@gnu.org>
1066
1067 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
1068 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
1069 New functions (were in simple.el).
1070 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
1071 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
1072 (syms_of_minibuf): Initialize them.
1073
1074 2001-10-05 Gerd Moellmann <gerd@gnu.org>
1075
1076 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
1077 (tiff_load): Install them as error and warning handler.
1078
1079 2001-10-04 Andrew Innes <andrewi@gnu.org>
1080
1081 * w32fns.c (x_to_w32_color): Fix argument to alloca.
1082 (w32_load_system_font): Don't believe what GetLanguageFontInfo
1083 says; query codepage info directly to determine if font is double byte.
1084 (x_to_w32_charset): Handle private format for unknown charsets.
1085 Handle wildcards in charset spec, by ignoring them.
1086 (w32_codepage_for_font): Fix argument to alloca. Don't remove
1087 "*-" prefix from charset.
1088 (x_to_w32_font): Enlarge remainder array for safety. Specifically
1089 handle the truncated font spec form constructed by font_list_1, so
1090 that we correctly identify the charset fields. Don't remove "*-"
1091 prefix from charset.
1092 (w32_list_synthesized_fonts): Fix argument to alloca.
1093
1094 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
1095
1096 * window.h (MINI_WINDOW_P): Use NILP.
1097
1098 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
1099
1100 * termhooks.h (struct input_event): Use proper type for `kind'.
1101
1102 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1103
1104 This handles unknown keysyms better than before. For example,
1105 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
1106 Emacs formerly completely ignored F5. With the change, it derives
1107 a key symbol from the name of the X keysym, `ccaron' in this case.
1108 Reported by Martin Buchholz.
1109
1110 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
1111 unknown keysyms.
1112
1113 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
1114 that EVENT->code isn't a function key, use the keysym's name.
1115
1116 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1117
1118 FOREACH is a macro that should make it easier to loop over Lisp
1119 lists with checks for cycles and proper lists.
1120
1121 * lisp.h (LIST_END_P, FOREACH): New macros.
1122
1123 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1124
1125 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
1126 called for a lost connection. Prevent dumping core in this case.
1127 Instead print the X error, and exit. On user request.
1128
1129 * xterm.c (error_msg): New variable.
1130 (x_fatal_error_signal): New function.
1131 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
1132 as fatal_error_signal_hook around the call to XtCloseDisplay.
1133
1134 * emacs.c (fatal_error_signal_hook): New variable.
1135 (fatal_error_signal): Call that function.
1136
1137 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1138
1139 With this, Emacs prints how much pure storage it will
1140 approximately need in case pure storage overflows while dumping.
1141
1142 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
1143 New variables.
1144 (init_alloc_once): Initialize new variables.
1145 (PURE_POINTER_P): Use new variables.
1146 (pure_alloc): If pure storage overflows, allocate from the heap.
1147 (check_pure_size): New function.
1148 (Fgarbage_collect): Don't GC if pure storage has overflowed.
1149
1150 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
1151 (check_pure_size): Add prototype.
1152
1153 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
1154
1155 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1156
1157 This adds a post-gc-hook that's run with GC inhibited.
1158 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
1159
1160 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
1161 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
1162 (Fgarbage_collect): Run post-gc-hook.
1163
1164 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1165
1166 This adds `defvaralias' and `indirect-variable'. Changes not
1167 directly related to this feature are there to gain the same
1168 performance again as before variable aliases.
1169
1170 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
1171 code to get and set symbol values, to take defvaralias into account.
1172
1173 (Note: the new `constant' bit-flag in symbols would make it
1174 possible to define arbitrary read-only variables, e.g. with
1175 `defconst'.)
1176
1177 Documentation is in lispref/variables.texi. Added to NEWS.
1178
1179 * lisp.h (enum symbol_interned): New enumeration.
1180 (struct Lisp_Symbol): Remove member `obarray', add
1181 `indirect_variable', `constant', and `interned'.
1182 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
1183 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
1184 (indirect_variable): Add prototype.
1185
1186 * print.c (print_preprocess, print_object): Test internedness of
1187 symbols differently.
1188
1189 * lread.c (Fintern, Funintern): Set symbol's interned and constant
1190 bit-fields.
1191 (init_obarray): Likewise for t and nil.
1192
1193 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1194 (Fdefvaralias): New function.
1195 (specbind): Simplify the test if symbol is a constant.
1196 (syms_of_eval): Defsubr Fdefvaralias.
1197
1198 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
1199 (Qcyclic_variable_indirection): New variable.
1200 (Fkeywordp): Check for internedness differently.
1201 (Fmakunbound): Simplify the test if symbol is a constant.
1202 (indirect_variable, Findirect_variable): New functions.
1203 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
1204 aliased symbol.
1205 (let_shadows_buffer_binding_p): Check for variable aliases.
1206 (set_internal): Simplify the test if SYMBOL is a constant.
1207 If SYMBOL has a buffer-local value and is an alias, use the aliased
1208 symbol instead.
1209 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
1210 Sindirect_variable.
1211
1212 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
1213 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
1214 set directly.
1215
1216 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
1217
1218 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
1219 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
1220 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
1221
1222 2001-10-04 Gerd Moellmann <gerd@gnu.org>
1223
1224 * Branch for 21.1.
1225
1226 2001-10-03 Miles Bader <miles@gnu.org>
1227
1228 * callproc.c (syms_of_callproc): Explicitly state in the
1229 documentation for `process-environment' that earlier entries take
1230 precedence over later ones.
1231
1232 2001-10-02 Miles Bader <miles@gnu.org>
1233
1234 * textprop.c (Fnext_char_property_change)
1235 (Fprevious_char_property_change): Remove reference to non-existant
1236 argument OBJECT from doc-string.
1237
1238 2001-10-01 Gerd Moellmann <gerd@gnu.org>
1239
1240 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
1241 (try_window_id): Skip back over lines ending in a newline from a
1242 string.
1243
1244 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
1245 New bit flag
1246
1247 2001-10-01 Richard M. Stallman <rms@gnu.org>
1248
1249 * search.c (Freplace_match): Doc fix.
1250
1251 2001-09-28 Andrew Innes <andrewi@gnu.org>
1252
1253 * w32menu.c (set_frame_menubar): Take into account that
1254 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1255 <raeburn@gnu.org>.
1256
1257 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
1258
1259 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
1260
1261 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1262
1263 * s/gnu-linux.h: Fix a typo in comment.
1264
1265 2001-09-28 Andreas Schwab <schwab@suse.de>
1266
1267 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
1268 nocombreloc, in case -z combreloc is the default.
1269
1270 2001-09-28 Gerd Moellmann <gerd@gnu.org>
1271
1272 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
1273 really going on here.
1274
1275 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
1276
1277 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
1278
1279 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
1280
1281 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
1282 utf-8, menu-bar, and latin-N.
1283 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
1284 unconditionally now.
1285 (lisp): Add latin-N, since they are preloaded.
1286
1287 2001-09-27 Gerd Moellmann <gerd@gnu.org>
1288
1289 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
1290 to the left. Some cleanup.
1291
1292 * xdisp.c (display_mode_element): One more case where a string's
1293 multibyteness should be used for display.
1294
1295 2001-09-26 Gerd Moellmann <gerd@gnu.org>
1296
1297 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
1298 reading at EOF.
1299
1300 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
1301 of the only temporarily set echoing flag for deciding when
1302 the cancel echoing.
1303
1304 * keyboard.c (echo_kboard): Make externally visible.
1305
1306 * lisp.h (echo_kboard): Declare extern.
1307
1308 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
1309 fonts_changed_p if we need larger matrices due to vscrolling.
1310 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
1311 this round of redisplay if make_cursor_line_fully_visible fails.
1312 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
1313 (try_cursor_movement, try_scrolling): Use them instead of integers.
1314
1315 * dispextern.h (required_matrix_width, required_matrix_height):
1316 Add prototypes.
1317
1318 * dispnew.c (required_matrix_width, required_matrix_height):
1319 New functions.
1320 (allocate_matrices_for_window_redisplay)
1321 (allocate_matrices_for_frame_redisplay: Use them.
1322 Remove parameters CH_DIM.
1323
1324 * xdisp.c (display_mode_lines): Temporarily set selected_frame
1325 and selected_window to the frame of the window whose mode-lines
1326 are displayed, and to the window itself.
1327 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
1328 here.
1329
1330 2001-09-25 Gerd Moellmann <gerd@gnu.org>
1331
1332 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
1333 the image cache under us.
1334
1335 * xdisp.c (display_mode_element): If the mode element is a symbol
1336 with a string value, use that string's multibyteness for displaying.
1337
1338 * keyboard.c (read_char): Don't clear a message for a switch-frame
1339 event. From Stefan Monnier <monnier@cs.yale.edu>.
1340
1341 * xterm.c (fast_find_position) [0]: Add a presumably more correct
1342 version for after 21.1.
1343
1344 * xdisp.c (row_containing_pos): Make externally visible.
1345
1346 * dispextern.h (row_containing_pos): Add prototype.
1347
1348 * process.c (send_process): Disable composition if from_byte < 0.
1349 From Kenichi Handa <handa@etl.go.jp>.
1350
1351 2001-09-24 Gerd Moellmann <gerd@gnu.org>
1352
1353 * xterm.c (refreshicon): Function removed.
1354
1355 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
1356
1357 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
1358
1359 * xterm.c (toplevel): Remove includes in #if 0.
1360
1361 * process.c (sigchld_handler) [LINUX]: Don't return from
1362 the signal handler at the end of the loop.
1363
1364 2001-09-21 Gerd Moellmann <gerd@gnu.org>
1365
1366 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
1367 Terminate only if kill returns -1, and errno is ESRCH.
1368
1369 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
1370
1371 * Makefile.in (shortlisp): Add ../lisp/env.elc.
1372
1373 2001-09-20 Gerd Moellmann <gerd@gnu.org>
1374
1375 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
1376 since this function can be called during GC.
1377
1378 * callproc.c (Fcall_process): Handle errors from pipe(2).
1379 (child_setup): Delete code in #ifdef vipc.
1380
1381 2001-09-19 Gerd Moellmann <gerd@gnu.org>
1382
1383 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
1384 (display_mode_element): Display the string from decode_mode_spec
1385 depending on its multibyteness.
1386
1387 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
1388
1389 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
1390
1391 2001-09-18 Gerd Moellmann <gerd@gnu.org>
1392
1393 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
1394 recursive_edit_unwind.
1395 (recursive_edit_unwind): Set kboard state according to
1396 SINGLE-KBOARD.
1397
1398 * buffer.c (modify_overlay): Don't do nothing if START == END;
1399 This can still be a modification, for example when an overlay has
1400 a before-string or after-string.
1401 (Fdelete_overlay): Prevent redisplay optimizations when deleting
1402 an overlay with before-string or after-string.
1403
1404 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
1405 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
1406
1407 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
1408 first_unchanged_at_end_row is in front of
1409 last_unchanged_at_beg_row. This code should be removed after the
1410 release of 21.1.
1411
1412 2001-09-17 Gerd Moellmann <gerd@gnu.org>
1413
1414 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
1415 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
1416
1417 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
1418 versions >= 2.95.
1419
1420 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
1421
1422 * dired.c (Ffile_attributes): Doc fix.
1423
1424 2001-09-14 Gerd Moellmann <gerd@gnu.org>
1425
1426 * fileio.c (Ffile_symlink_p): Fix last change.
1427
1428 * filelock.c (current_lock_owner): Fix last change.
1429
1430 2001-09-13 Gerd Moellmann <gerd@gnu.org>
1431
1432 * filelock.c (current_lock_owner): If readlink returns ERANGE,
1433 take that to mean that the buffer is too small.
1434
1435 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
1436 that to mean that the buffer is too small.
1437
1438 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
1439 current buffer's multibyteness when discarding the iterator's
1440 stack.
1441
1442 * xfns.c (Fx_window_property): Handle case that property gets
1443 deleted between the two calls to XGetWindowProperty.
1444
1445 2001-09-11 Gerd Moellmann <gerd@gnu.org>
1446
1447 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
1448
1449 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
1450 in addition to read-only.
1451
1452 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
1453 to t in addition to read-only.
1454
1455 * lisp.h (Qinhibit_modification_hooks): Declare.
1456
1457 * insdel.c (Qinhibit_modification_hooks): New variable.
1458 (syms_of_insdel): Initialize and staticpro it.
1459
1460 * textprop.c (verify_interval_modification): Don't run
1461 modification-hooks if inhibit_modification_hooks.
1462
1463 * dispnew.c (set_window_cursor_after_update): Fix code
1464 finding glyph row containing cursor when cursor_in_echo_area
1465 is >= 0.
1466
1467 * xdisp.c (init_from_display_pos): Put some code in #if 0.
1468 (add_to_log): Use bcopy instead of strcpy.
1469 (init_from_display_pos): Use an explicit loop over bytes in
1470 overlay strings instead of calling index.
1471
1472 2001-09-10 Gerd Moellmann <gerd@gnu.org>
1473
1474 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
1475
1476 * dispnew.c (direct_output_for_insert): Don't change IT's
1477 stop_charpos to something in front of its current position.
1478
1479 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
1480 `format'.
1481
1482 2001-09-10 Richard M. Stallman <rms@gnu.org>
1483
1484 * frame.c (Fmouse_position): Doc fix.
1485
1486 2001-09-07 Gerd Moellmann <gerd@gnu.org>
1487
1488 * xdisp.c (init_from_display_pos): Don't compare the result
1489 of calling index with NULL.
1490
1491 2001-09-06 Gerd Moellmann <gerd@gnu.org>
1492
1493 * xfns.c (x_set_background_color): Don't change the colors
1494 of the X window of scroll bar widgets.
1495
1496 2001-09-05 Andrew Innes <andrewi@gnu.org>
1497
1498 * w32fns.c (w32_createwindow): Undo last change.
1499
1500 2001-09-05 Gerd Moellmann <gerd@gnu.org>
1501
1502 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
1503
1504 * xdisp.c (string_buffer_position): Use *single_char_property*
1505 functions instead of the *single_property* functions.
1506
1507 2001-09-04 Andrew Innes <andrewi@gnu.org>
1508
1509 * w32term.c (w32_read_socket): Add more information to debugging
1510 output.
1511
1512 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
1513 from Emacs frames, so that calls to GetClipBox in w32term.c
1514 correctly report when part of a frame is visible (including
1515 scrollbars, etc). This prevents repeated redrawing of frames when
1516 only a scrollbar is visible.
1517 (w32_wnd_proc): Add more frame information to debugging output.
1518
1519 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
1520
1521 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
1522
1523 2001-09-03 Gerd Moellmann <gerd@gnu.org>
1524
1525 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
1526 help-echo for a string which doesn't have help-echo itself, use
1527 get-char-property to obtain the help-echo from the string's buffer
1528 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
1529 have mouse-face, look ``under'' the string for mouse-face from an
1530 overlay.
1531 (fast_find_position): Add parameter STOP. In the final row, stop
1532 before glyphs having STOP as object. Don't consider glyphs that
1533 are not from a buffer.
1534
1535 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
1536
1537 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
1538
1539 * fns.c (Fmd5): Doc fix.
1540
1541 2001-08-31 Gerd Moellmann <gerd@gnu.org>
1542
1543 * composite.c (update_compositions): Do nothing if
1544 inhibit-modification-hooks is set.
1545
1546 2001-08-30 Gerd Moellmann <gerd@gnu.org>
1547
1548 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
1549 and check_message_stack if terminating abnormally. We want
1550 glyph matrices etc. in a core dump.
1551
1552 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
1553 (syms_of_xdisp): Initialize them.
1554 (handle_single_display_prop): Don't change point, bind `object',
1555 `position', and `buffer-position' instead to the object having the
1556 `display' property, position in the object and position in the buffer.
1557
1558 * fileio.c (Finsert_file_contents): Don't change the multibyteness
1559 of the buffer if REPLACE is non-nil.
1560
1561 2001-08-29 Gerd Moellmann <gerd@gnu.org>
1562
1563 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
1564
1565 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
1566
1567 * w32term.c (x_set_glyph_string_background_width)
1568 (show_mouse_face): Track the last changes in xterm.c.
1569
1570 2001-08-28 Gerd Moellmann <gerd@gnu.org>
1571
1572 * xterm.c (x_set_glyph_string_background_width): Set the glyph
1573 string's background width so that multi-line mouse-face is drawn
1574 to the right edge of the window.
1575 (show_mouse_face): Set the row's mouse_face_p flag after drawing
1576 glyphs.
1577
1578 * dispnew.c (direct_output_for_insert): Set updated_area
1579 before inserting/writing glyphs.
1580
1581 * xdisp.c (display_mode_element): Use string_byte_to_char to
1582 determine character positions in strings, use chars_in_text
1583 instead of strwidth.
1584 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
1585 a matrix as parameter; this is easier to use from GDB.
1586
1587 2001-08-28 Miles Bader <miles@gnu.org>
1588
1589 * textprop.c (Fprevious_single_char_property_change)
1590 (Fnext_single_char_property_change): Doc fixes.
1591
1592 2001-08-27 Gerd Moellmann <gerd@gnu.org>
1593
1594 * fileio.c (Finsert_file_contents): Allocate, restore, and
1595 free composition data in the case of REPLACE not being nil.
1596
1597 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
1598 there exist overlay strings with newlines at POS.
1599 (text_outside_line_unchanged_p): Return 0 if changes start at
1600 START and overlays exist at START. Likewise for END.
1601 (try_window_id): Give up if init_to_row_end returns 0.
1602
1603 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
1604 unconditionally.
1605
1606 2001-08-24 Gerd Moellmann <gerd@gnu.org>
1607
1608 * keymap.c (access_keymap): Return the cdr of the binding of
1609 a generic character instead of its definition (KEY . BINDING).
1610
1611 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
1612 to 0 also in the REPLACE case.
1613
1614 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
1615
1616 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
1617 open to determine whether file is readable (as for DOS_NT).
1618
1619 2001-08-23 Gerd Moellmann <gerd@gnu.org>
1620
1621 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
1622 coding.type is coding_type_no_conversion or coding_type_raw_text,
1623 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
1624 non-nil instead of just setting enable_multibyte_characters in the
1625 buffer to nil.
1626
1627 2001-08-22 Gerd Moellmann <gerd@gnu.org>
1628
1629 * dispextern.h (struct face_cache): Add member
1630 menu_face_changed_p.
1631
1632 * xfaces.c (menu_face_changed_default): New variable.
1633 (menu_face_changed_count): Variable removed.
1634 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
1635 the menu_face_changed_default flag, otherwise set the FRAME's
1636 menu_face_changed_p flag if the `menu' face has been changed.
1637 Prevent calling set_font_frame_param if FRAME is t.
1638 (make_face_cache): Initialize cache's menu_face_changed_p
1639 from menu_face_changed_default.
1640 (realize_basic_faces): Look into the frame's face cache to
1641 determine if the menu appearance needs updating.
1642
1643 * keymap.c (access_keymap): Fix last change to not consider
1644 IDX when it has modifiers.
1645
1646 2001-08-21 Gerd Moellmann <gerd@gnu.org>
1647
1648 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
1649 . BINDING) exists, where GENERIC-CHAR is the generic character of
1650 the charset of IDX, return BINDING unless there exists a binding
1651 for IDX itself.
1652
1653 2001-08-16 Gerd Moellmann <gerd@gnu.org>
1654
1655 * xrdb.c (SYSV): Don't define on Solaris 2.
1656 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
1657
1658 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
1659 of the screen line, not text line, containing IT's current position.
1660
1661 2001-08-15 Gerd Moellmann <gerd@gnu.org>
1662
1663 * window.c (window_scroll_pixel_based): Don't recenter if
1664 PT is partially visible in the window.
1665
1666 * xterm.c (expose_window_tree, expose_window, expose_line):
1667 Return 1 when overwriting mouse-face.
1668 (expose_frame): If mouse-face was overwritten, redo it.
1669
1670 * xfaces.c (x_update_menu_appearance): Don't call
1671 set_frame_menubar, let the next redisplay do it.
1672
1673 2001-08-14 Andrew Innes <andrewi@gnu.org>
1674
1675 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
1676 drawing glyph string.
1677
1678 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
1679
1680 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
1681 running HI-UX/MPP.
1682
1683 2001-08-14 Gerd Moellmann <gerd@gnu.org>
1684
1685 * xfaces.c (x_update_menu_appearance): Save and restore value of
1686 interrupt_input_blocked.
1687
1688 2001-08-13 Gerd Moellmann <gerd@gnu.org>
1689
1690 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
1691 a line start, move back to the line start.
1692
1693 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
1694 exactly when a mini-buffer is active.
1695
1696 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
1697 in units of 1/8 character on non window-system frames.
1698 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
1699
1700 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
1701
1702 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
1703 a doc string.
1704
1705 2001-08-09 Gerd Moellmann <gerd@gnu.org>
1706
1707 * keyboard.c (Vpre_help_message): New variable.
1708 (syms_of_keyboard): Initialize and staticpro it.
1709 (show_help_echo): Record current message before displaying a
1710 help-echo, and restore that message when clearing the help.
1711
1712 * xfns.c (x_create_im): Remove prototype.
1713
1714 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
1715
1716 * dispnew.c (adjust_glyph_matrix): Undo last change.
1717
1718 2001-08-08 Gerd Moellmann <gerd@gnu.org>
1719
1720 * dispnew.c (adjust_glyph_matrix): In the optimization for
1721 windows whose height has changed, disable partially visible lines.
1722
1723 2001-08-07 Gerd Moellmann <gerd@gnu.org>
1724
1725 * window.c (Frecenter): If ARG < 0, and on a window system
1726 frame, count in some empty lines when we can't move -ARG lines down.
1727
1728 * xdisp.c (start_display): Don't try to determine the continuation
1729 lines width if lines are truncated. It's superfluous and leads to
1730 incorrect results if POS is not visible in the window after
1731 reseating the iterator at the previous line start.
1732
1733 2001-08-06 Gerd Moellmann <gerd@gnu.org>
1734
1735 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
1736
1737 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
1738
1739 * alloc.c (init_stack): Remove declaration.
1740
1741 2001-08-03 Gerd Moellmann <gerd@gnu.org>
1742
1743 * keyboard.c (read_key_sequence): Check that key is an integer
1744 before comparing it with quit_char.
1745 (add_command_key): Use larger_vector.
1746 (read_char_x_menu_prompt): Instead of converting symbol and
1747 integer events into conses (EVENT . nil), use (EVENT . disabled)
1748 which cannot be confused with valid events.
1749 (read_char): When reading from Vunread_command_events, check for
1750 events of the form (EVENT . disabled) instead of
1751 (EVENT . nil).
1752
1753 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
1754 a float, determine the max height from the frame's height.
1755
1756 2001-08-02 Gerd Moellmann <gerd@gnu.org>
1757
1758 * xdisp.c (redisplay_internal): Take message_cleared_p into
1759 account only if minibuf_level == 0.
1760
1761 2001-08-01 Gerd Moellmann <gerd@gnu.org>
1762
1763 * xdisp.c (redisplay_internal): Add a check for the last
1764 displayed message.
1765
1766 * xdisp.c (message_cleared_p): New variable.
1767 (clear_message): Set message_cleared_p when clearing the current
1768 message.
1769 (redisplay_internal): Look at message_cleared_p to capture
1770 the case that the echo area should be cleared.
1771
1772 * keyboard.c (command_loop_1): Fix spelling of
1773 resize_echo_area_exactly.
1774
1775 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
1776
1777 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
1778
1779 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
1780 current matrix when the window gets smaller.
1781
1782 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
1783
1784 * print.c (strout): Cast the character passed to insert_char to
1785 unsigned char, to avoid sign extension when it is promoted to int.
1786
1787 2001-07-31 Gerd Moellmann <gerd@gnu.org>
1788
1789 * fileio.c (Finsert_file_contents): Don't treat a return value
1790 of 0 from emacs_read as an IO error.
1791
1792 2001-07-30 Gerd Moellmann <gerd@gnu.org>
1793
1794 * keyboard.c (abs): New macro.
1795 (double_click_fuzz): New variable.
1796 (make_lispy_event): Use it to determine what makes a double-click.
1797 (syms_of_keyboard): DEFVAR_INT it.
1798
1799 * xmenu.c (set_frame_menubar): Take into account that
1800 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
1801 <raeburn@gnu.org>.
1802
1803 2001-07-27 Gerd Moellmann <gerd@gnu.org>
1804
1805 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
1806
1807 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
1808 of row's visible height.
1809
1810 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
1811 deal with the first overlay string having an image `display' property.
1812 (try_window_reusing_current_matrix, compute_line_metrics):
1813 Fix computation of row's visible height for the case that part of the
1814 row is invisible above and part of the row is at the same time
1815 invisible below the window.
1816
1817 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1818
1819 * xfns.c (x-show-tip): Doc fix.
1820
1821 * xfns.c (Vx_max_tooltip_size): New variable.
1822 (syms_of_xfns): DEFVAR_LISP it.
1823 (Fx_show_tip): Set frame's window_width to the width of the
1824 window. Use a maximum tooltip size specified by
1825 Vx_max_tooltip_size, if that has valid contents.
1826 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1827
1828 2001-07-26 Andrew Innes <andrewi@gnu.org>
1829
1830 * w32term.c (x_display_list): New variable.
1831 (w32_term_init): Set it.
1832
1833 * w32term.h (x_display_list): New extern.
1834
1835 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1836
1837 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1838 is non-nil, instead of when redisplaying_p is non-zero.
1839 See comment there.
1840 (mark_window_display_accurate_1): Add an assertion.
1841
1842 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1843
1844 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1845
1846 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1847 events so that we get a chance of processing expose events.
1848
1849 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1850
1851 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1852
1853 * xfns.c (valid_image_p): Protect better against invalid image
1854 specifications. Previous code could signal an error.
1855
1856 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1857
1858 * indent.c (current_column): Fix column computation in the
1859 presence of display table entries.
1860 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1861
1862 * dispnew.c (adjust_glyph_matrix): In the optimization for
1863 windows whose height has changed, use the new window height
1864 to compute which rows to invalidate.
1865
1866 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1867 (MAX_10_EXP): New macro.
1868 (Fformat): Use it.
1869
1870 * coding.c (code_convert_region): Handle the multibyte case if
1871 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1872
1873 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1874
1875 * dispextern.h (struct face): Change type of `stipple' to
1876 int; it's an ID.
1877
1878 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1879
1880 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1881
1882 * dispnew.c (update_window): Don't set the cursor at the end
1883 of the update if display update has been paused.
1884
1885 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1886
1887 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1888
1889 * fns.c (Fset_char_table_default): Check that a charset is defined
1890 before checking its dimension.
1891
1892 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1893
1894 * coding.c (setup_coding_system): Don't do any designation based
1895 on reg_bits if charset is not yet defined.
1896
1897 * lisp.h (XVECTOR): Verify correct object type before returning a
1898 pointer, using eassert.
1899
1900 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1901
1902 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1903 Increase to 4096 because of paste problems reported on GNU/Linux.
1904
1905 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1906
1907 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1908
1909 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1910
1911 * fileio.c (unwind_read): Function removed.
1912 (read_non_regular, read_non_regular_quit): New functions.
1913 (Finsert_file_contents): When reading from non-regular files,
1914 arrange to catch a `quit' and terminate the loop. Rearrange
1915 code so that a `quit' when reading from a regular file doesn't
1916 insert text in the buffer.
1917
1918 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1919 Clear faces afterwards.
1920 (clear_font_table): Take a x_display_info parameter. Don't free
1921 fonts being the default font of any frame on the given display.
1922
1923 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1924
1925 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1926 instead of CHAR_STRING which can signal an error.
1927
1928 * charset.c (char_to_string_1): Extracted from char_to_string.
1929 Return -1 instead of signaling an error.
1930 (char_to_string): Use it.
1931
1932 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1933
1934 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1935
1936 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1937 is t, don't try to append anything to it.
1938
1939 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1940
1941 * dired.c (file_name_completion): Pass dp->d_name to
1942 Fstring_match, not elt, which is always nil here.
1943
1944 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1945
1946 * xselect.c (x_decline_selection_request): Handle errors
1947 caused by receivers that have vanished.
1948
1949 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1950 ignoring events on foreign windows in #if 0. Always dispatch
1951 the event after checking it with x_handle_property_notify.
1952
1953 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1954 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1955 TRACE macros to facilitate debugging. Add additional trace statements.
1956 (toplevel): Add prototypes for file-local functions.
1957 (x_atom_to_symbol): Remove DPYINFO parameter.
1958
1959 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1960
1961 * w32menu.c (menubar_selection_callback, w32_menu_show):
1962 Initialize `entry' to nil.
1963 (w32_dialog_show): Remove unused `save_wv' variable.
1964 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1965
1966 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1967
1968 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1969
1970 * fileio.c (unwind_read): Print a message when discarding inserted
1971 text or switching the buffer to unibyte. Change parameter.
1972 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1973
1974 * fileio.c (unwind_read): New function.
1975 (Finsert_file_contents): Record it as unwind-function for
1976 the case that reading is interrupted by C-g.
1977
1978 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1979
1980 * dispnew.c (update_window): Don't skip the header-line
1981 update when scrolling_window returns 0.
1982
1983 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1984
1985 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1986 for the case that x_decode_color signals an error.
1987
1988 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1989
1990 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1991
1992 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1993 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1994 around ioctls.
1995
1996 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1997
1998 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1999 doc string line for dos-timezone-offset.
2000
2001 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
2002 inline assembly, to avoid compiler warnings.
2003 (syms_of_msdos): Add \n\ at the end of a line in the doc string
2004 line for dos-unsupported-char-glyph.
2005
2006 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
2007
2008 2001-07-05 Gerd Moellmann <gerd@gnu.org>
2009
2010 * sound.c: Include Emacs' header files with #include "...".
2011
2012 * eval.c (specbind): Additionally record the buffer that was
2013 current when a buffer-local or frame-local variable was bound.
2014
2015 2001-07-04 Gerd Moellmann <gerd@gnu.org>
2016
2017 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
2018 to unibyte characters in unibyte buffers.
2019
2020 2001-07-03 Gerd Moellmann <gerd@gnu.org>
2021
2022 * eval.c (specbind): If SYMBOL has a frame-local binding, record
2023 the frame on the binding stack. Change format of entries for
2024 local bindings on the binding stack to '(SYMBOL . WHERE)'.
2025 (unbind_to): Handle unbinding a frame-local variable.
2026
2027 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
2028 glyphs and truncation glyphs at the end of a row from its pixel width.
2029 (dump_glyph_row): Print row's continuation_lines_width.
2030 (try_window_id): Take the shortcut if ZV is visible in the
2031 window, but there are actually no changes at ZV.
2032
2033 2001-07-02 Gerd Moellmann <gerd@gnu.org>
2034
2035 * xterm.h (x_free_dpy_colors): Add prototype.
2036
2037 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
2038 right number of arguments.
2039
2040 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
2041 ($(lwlibdir)TAGS): New target.
2042 (TAGS): Fix dependency list.
2043
2044 * xterm.c (x_list_fonts): Make sure XFreeFont is called
2045 with input blocked.
2046
2047 2001-06-30 Gerd Moellmann <gerd@gnu.org>
2048
2049 * emacs.c (main): Remove extern declaration for sys_nerr, which
2050 isn't used and causes a compilation error with GCC 3.0 on
2051 FreeBSD 4.3.
2052
2053 2001-06-27 Gerd Moellmann <gerd@gnu.org>
2054
2055 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
2056 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
2057 (toplevel): Include <signal.h> and syssignal.h.
2058
2059 * sound.c (vox_configure, vox_close): Turn off atimers
2060 around ioctls.
2061
2062 2001-06-26 Gerd Moellmann <gerd@gnu.org>
2063
2064 * keyboard.c (read_char) <non_reread>: Record the previous idle
2065 start time before calling timer_stop_idle.
2066 (read_char) <reread_first>: After processing a help-echo event,
2067 restore the previous idle start time.
2068
2069 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
2070 the start of invisible text.
2071 (setup_for_ellipsis): New function.
2072 (next_overlay_string): After all overlay strings have been
2073 processed, display an ellipsis if necessary.
2074 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
2075 (push_it): Initialize display_ellipsis_p on the iterator's stack.
2076
2077 * dispextern.h (struct iterator_stack_entry): Add member
2078 display_ellipsis_p.
2079
2080 2001-06-25 Gerd Moellmann <gerd@gnu.org>
2081
2082 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
2083 on the value of the wait-for-wm frame parameter.
2084
2085 * xterm.h (struct x_output): Add member wait_for_wm.
2086
2087 * xfns.c (Qwait_for_wm): New variable.
2088 (x_frame_parms): Add entry for `wait-for-wm".
2089 (x_set_wait_for_wm): New function.
2090 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
2091 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
2092
2093 * xdisp.c (try_window_id) <all changes below window end>: Don't
2094 take this shortcut if ZV is visible in the window.
2095 (try_window_id): When checking for window start being in changed
2096 text, don't check that the buffer's size has changed.
2097
2098 2001-06-23 Richard M. Stallman <rms@gnu.org>
2099
2100 * minibuf.c (Fcompleting_read): Doc fix.
2101
2102 2001-06-19 Gerd Moellmann <gerd@gnu.org>
2103
2104 * composite.c (Ffind_composition_internal): Accept ZV
2105 and a string's end position as POS.
2106
2107 2001-06-18 Gerd Moellmann <gerd@gnu.org>
2108
2109 * composite.c (Ffind_composition_internal): Check POS
2110 for validity.
2111
2112 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
2113
2114 * editfns.c (Fmessage_box): If the frame is not under a window
2115 system, output the message in the echo area.
2116
2117 2001-06-14 Richard M. Stallman <rms@gnu.org>
2118
2119 * xdisp.c (try_window_id): When EOB is visible, don't treat
2120 insertion at EOB as if it were "off the bottom of the screen."
2121
2122 2001-06-11 Andrew Innes <andrewi@gnu.org>
2123
2124 * w32proc.c (create_child): Add new parameter is_gui_app.
2125 (w32_executable_type): Add new parameter is_gui_app.
2126 (sys_spawnve): Use it.
2127 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
2128 SIGQUIT. This matches better how the signals are interpreted by
2129 MSVC compiled programs.
2130 (syms_of_ntproc): Update docstring.
2131
2132 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
2133
2134 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
2135 well otherwise note_mouse_highlight might optimize away highlighting
2136 if we pass over that same overlay again.
2137
2138 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
2139
2140 * lread.c (Fload): Document that the argument is run via
2141 substitute-in-file-name.
2142
2143 2001-05-31 Gerd Moellmann <gerd@gnu.org>
2144
2145 * Makefile.in (bootstrap-doc): New target.
2146 (bootstrap-emacs): Depend on it.
2147
2148 * fileio.c (Fdo_auto_save): Don't try to create the directory of
2149 auto-save-list-file-name when shutting down Emacs, because
2150 creating the directory might signal an error, and leaves
2151 Emacs in a strange state.
2152
2153 * term.c: (tty_cursor_hidden): New variable.
2154 (update_begin): Don't call tty_hide_cursor. Clean up.
2155 (update_end, set_terminal_window, set_scroll_region): Clean up.
2156 (ring_bell, reset_terminal_modes): Clean up.
2157 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
2158 on tty_cursor_hidden.
2159 (write_glyphs): Call tty_hide_cursor.
2160
2161 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
2162
2163 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
2164
2165 2001-05-30 Gerd Moellmann <gerd@gnu.org>
2166
2167 * xfns.c (enum image_value_type): New enumerator
2168 IMAGE_STRING_OR_NIL_VALUE.
2169 (parse_image_spec): Handle it.
2170 (xbm_format, pbm_format): Use it for :foreground and :background.
2171 (xbm_load, pbm_load): Check for nil color names.
2172
2173 * xterm.c (note_mouse_highlight): If an overlapping overlay
2174 exists, but we find that we highlight the same overlay as before,
2175 don't do the highlighting again.
2176
2177 2001-05-29 Gerd Moellmann <gerd@gnu.org>
2178
2179 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
2180 Protect unibyte strings created by replacing their multibyte
2181 equivalents in menu_items.
2182
2183 * keymap.c (Fsingle_key_description): NUL-terminate the string
2184 buffer before calling build_string.
2185
2186 * callproc.c (Fcall_process): Deal with decode_coding returning
2187 CODING_FINISH_INCONSISTENT_EOL.
2188
2189 2001-05-28 Gerd Moellmann <gerd@gnu.org>
2190
2191 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
2192 an item's name with its key description in case the description
2193 is a multibyte string.
2194
2195 * keymap.c (Fsingle_key_description): Create a multibyte string
2196 only if necessary.
2197
2198 * macros.c (Fstart_kbd_macro): Doc fix.
2199
2200 * xterm.c (cursor_in_mouse_face_p): New function.
2201 (x_draw_stretch_glyph_string): Use it to choose a different GC
2202 when drawing a cursor within highlighted text.
2203
2204 * editfns.c (char_property_eq): Put in #if 0.
2205
2206 * indent.c (string_display_width): Put in #if 0.
2207
2208 * lread.c (Fload): Remove unused label.
2209
2210 * termcap.c (speeds): Put in #if 0.
2211
2212 2001-05-18 Gerd Moellmann <gerd@gnu.org>
2213
2214 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
2215
2216 * xfaces.c (xlfd_point_size): Don't divide pixel size from
2217 transformation matrix by 10.
2218
2219 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2220
2221 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
2222 only if it's equal to the former foreground pixel color.
2223 (x_set_foreground_color, x_set_background_color)
2224 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
2225
2226 2001-05-16 Dave Love <fx@gnu.org>
2227
2228 * insdel.c (signal_before_change, signal_after_change): Consider a
2229 local change hook which changes the buffer.
2230
2231 * process.c (read_process_output): Don't call signal_after_change
2232 and update_compositions after insert_from_string_before_markers.
2233
2234 2001-05-16 Gerd Moellmann <gerd@gnu.org>
2235
2236 * xfaces.c (split_font_name): Use the right field when
2237 checking for `[...]' syntax.
2238
2239 * buffer.c (copy_overlays): New function.
2240 (clone_per_buffer_values): Use it.
2241
2242 * buffer.h (OVERLAY_PLIST): New macro.
2243
2244 * keymap.c (Fsingle_key_description): Replace a build_string with
2245 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
2246
2247 * fontset.c (Ffontset_info): Check that face is non-null
2248 before accessing its fields.
2249
2250 2001-05-15 Gerd Moellmann <gerd@gnu.org>
2251
2252 * keyboard.c (read_key_sequence): Prevent generating a fake
2253 prefix key twice.
2254
2255 * xfaces.c (split_font_name): Handle `[...]' for the right
2256 font name fields.
2257
2258 * ccl.c (ccl_driver): Don't copy remaining bytes in case
2259 of CCL_STAT_INVALID_CMD.
2260
2261 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
2262
2263 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
2264 in <var> has no default value yet.
2265
2266 * xfaces.c (try_alternative_families): First try the FAMILY.
2267 And if nothing is found in the end, try again with scalable fonts.
2268 (try_font_list): Let try_alternative_families do a bit more of
2269 the work. Only use FAMILY if it is not nil.
2270 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
2271
2272 2001-05-14 Gerd Moellmann <gerd@gnu.org>
2273
2274 * xterm.c (note_mouse_highlight): Avoid changing the mouse
2275 pointer shape when show_mouse_face has already done it.
2276
2277 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
2278 full-width rows.
2279
2280 * xfaces.c (split_font_name): Make sure to leave the loop
2281 with the right value of `i'.
2282
2283 * xfaces.c (split_font_name): Handle matrix transformations
2284 in the pixel and point size fields of XLFD font names.
2285 (xlfd_point_size): Likewise.
2286
2287 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
2288
2289 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
2290 (x_to_w32_font): Add prototype.
2291
2292 * regex.c (malloc, realloc, free) [emacs]: Undefine before
2293 redefining, to avoid compiler warnings.
2294
2295 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
2296
2297 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
2298 (w32_get_bdf_glyph): Cast between unsigned char and char when
2299 passing arguments to subroutines, to shut up compiler warnings.
2300 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
2301 GET_HEX_VAL.
2302
2303 * xfaces.c: Include keyboard.h before frame.h, not after it.
2304
2305 * widget.c: Include keyboard.h before frame.h.
2306
2307 * w32term.h (struct image, struct face): Forward declaration, to
2308 avoid compiler warnings.
2309
2310 2001-05-11 Gerd Moellmann <gerd@gnu.org>
2311
2312 * keyboard.c (read_key_sequence): Don't modify events when
2313 generating fake prefix keys (mode-line, scroll-bar, ...) since
2314 this prevents proper processing of such events when pushed back
2315 into unread-command-events.
2316
2317 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
2318 actually redrawn. Make the function static.
2319 (note_mouse_highlight): Fix a case where the mouse cursor
2320 was changed back to the text cursor.
2321
2322 * xterm.h (clear_mouse_face): Remove prototype.
2323
2324 * xdisp.c (try_window_id): Fix the fix and set the right
2325 window_end_vpos.
2326
2327 * xdisp.c (try_window_id): Fix computation of window end in the
2328 case that lines were deleted at the end of the window. Add some
2329 more debug_method_adds.
2330
2331 * xfaces.c (try_alternative_families): New function.
2332 (try_font_list): Use it. If ATTRS specifies a family, check
2333 fonts from that family first.
2334 (choose_face_font): Remove code setting the family part of
2335 the pattern to nil.
2336
2337 2001-05-10 Gerd Moellmann <gerd@gnu.org>
2338
2339 * xdisp.c (try_window_id): Fix case of all changes before
2340 the window start.
2341
2342 * xdisp.c (try_window_id): Add some xasserts.
2343
2344 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2345
2346 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
2347
2348 2001-05-09 Dave Love <fx@gnu.org>
2349
2350 * xdisp.c (GIVE_UP): Fix for K&R C.
2351
2352 2001-05-09 Gerd Moellmann <gerd@gnu.org>
2353
2354 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
2355
2356 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
2357 back to the text cursor shape without need.
2358
2359 2001-05-07 Gerd Moellmann <gerd@gnu.org>
2360
2361 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
2362
2363 * dispextern.h (inverse_video): Declare extern.
2364
2365 * keyboard.c (delete_kboard): Handle the case that selected_frame
2366 has been deleted in the course of x_connection_closed.
2367
2368 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
2369
2370 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
2371 Fix the change from 2001-04-30.
2372
2373 2001-05-03 Gerd Moellmann <gerd@gnu.org>
2374
2375 * xfns.c (file_dialog_unmap_cb): New function.
2376 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
2377 where a dialog is closed via the window manager.
2378
2379 * xdisp.c (try_window_id): Cases of changes all in front of
2380 the window start or all below the window end mostly rewritten.
2381 (redisplay_window): Move the tests if try_window_id is
2382 applicable to try_window_id.
2383 (GIVE_UP): New macro.
2384
2385 2001-05-02 Gerd Moellmann <gerd@gnu.org>
2386
2387 * xterm.c (expose_window): Return int. If W is the window
2388 currently being updated, mark the frame garbaged.
2389 Fix computation of rows intersecting the exposed rectangle.
2390 (expose_window_tree): Stop when expose_window returns 0.
2391
2392 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
2393 again if it has already been drawn.
2394
2395 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
2396
2397 * syntax.c (update_syntax_table): Check that oldi has the same
2398 properties as old_prop before deciding not to invalidate.
2399
2400 2001-04-30 Gerd Moellmann <gerd@gnu.org>
2401
2402 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
2403 read-only text that is so because of text properties.
2404
2405 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
2406 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
2407 windows that are components of a Lucid menu bar.
2408
2409 2001-04-27 Gerd Moellmann <gerd@gnu.org>
2410
2411 * term.c (turn_on_face): Fix reverse video handling on terminals
2412 that don't support colors.
2413
2414 2001-04-26 Gerd Moellmann <gerd@gnu.org>
2415
2416 * editfns.c (save_excursion_restore): Don't use XBUFFER on
2417 a non-buffer.
2418
2419 2001-04-25 Gerd Moellmann <gerd@gnu.org>
2420
2421 * term.c (toggle_highlight): New function.
2422 (turn_on_face): Change handling of reverse video.
2423
2424 * process.c (wait_reading_process_input):
2425 Call record_asynch_buffer_change only if a timer really changed buffers.
2426
2427 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
2428 of the number of overlays to check.
2429
2430 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
2431
2432 * xdisp.c (try_window_id): Fix a case where window_end_pos
2433 and window_end_bytepos were not adjusted.
2434
2435 2001-04-23 Gerd Moellmann <gerd@gnu.org>
2436
2437 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
2438 zero instead of -1.
2439
2440 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
2441
2442 * process.c (wait_reading_process_input) [!subprocesses]:
2443 Don't reference waiting_for_user_input_p, it's not defined in the
2444 branch without async subprocesses support.
2445
2446 2001-04-19 Gerd Moellmann <gerd@gnu.org>
2447
2448 * keyboard.c (delete_kboard): Prevent a dangling reference
2449 from current_kboard to KB, which is freed.
2450
2451 * process.c (wait_reading_process_input):
2452 Call record_asynch_buffer_change after running timers, to make
2453 read_key_sequence aware of buffer changes from under it.
2454
2455 2001-04-18 Gerd Moellmann <gerd@gnu.org>
2456
2457 * xfaces.c (Qscalable_fonts_allowed): New variable.
2458 (realizing_basic_faces_p): Removed.
2459 (x_face_list_fonts): Special handling for realizing_basic_faces_p
2460 removed.
2461 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
2462 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
2463 for scalable-fonts-allowed to t.
2464
2465 * fileio.c (Finsert_file_contents): If the file size returned from
2466 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
2467 read from files on a procfs whose contents are generated dynamically.
2468
2469 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
2470
2471 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
2472 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
2473 (__memalign_hook): Make the two prototypes consistent.
2474
2475 2001-04-17 Gerd Moellmann <gerd@gnu.org>
2476
2477 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
2478 matrix of mini-windows.
2479
2480 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
2481
2482 * intervals.c (find_interval): Don't rebalance during signal handling.
2483
2484 2001-04-11 Gerd Moellmann <gerd@gnu.org>
2485
2486 * fns.c: Include blockinput.h.
2487
2488 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
2489
2490 2001-04-10 Gerd Moellmann <gerd@gnu.org>
2491
2492 * fns.c (Fcompare_strings): Fix return values.
2493
2494 * window.c (window_scroll): Change the meaning of N to mean
2495 N screen-fulls or N lines.
2496 (window_scroll_pixel_based, window_scroll_line_based)
2497 (scroll_command, Fscroll_other_window): Change accordingly.
2498
2499 * window.c (window_scroll_pixel_based, Frecenter):
2500 Call window_box_height instead of using it.last_visible_y for the
2501 height of the window.
2502
2503 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
2504 instead of using it.last_visible_y for the height of the window.
2505
2506 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
2507 From Dan Holmsand <dan@eyebee.com>.
2508
2509 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
2510 able to write to hidden and system files. From Dan Holmsand
2511 <dan@eyebee.com>.
2512
2513 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
2514 Holmsand <dan@eyebee.com>.
2515
2516 2001-04-09 Gerd Moellmann <gerd@gnu.org>
2517
2518 * fns.c (Fplist_get, Fplist_put): Add QUITs.
2519
2520 * window.c (window_internal_height): Return 1 less if the
2521 window has a header line.
2522
2523 * xdisp.c (try_window_id): When scrolling on a terminal, take
2524 the change of window_internal_height into account.
2525
2526 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
2527
2528 * gmalloc.c (align): If the argument SIZE would overflow
2529 __malloc_ptrdiff_t, fail right away.
2530
2531 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2532
2533 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
2534 Make sure the tooltip is completely visible.
2535 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
2536
2537 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
2538
2539 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
2540
2541 2001-04-06 Dave Love <fx@gnu.org>
2542
2543 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
2544 Fix test of `from'.
2545
2546 2001-04-06 Gerd Moellmann <gerd@gnu.org>
2547
2548 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
2549
2550 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
2551
2552 2001-04-05 Gerd Moellmann <gerd@gnu.org>
2553
2554 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
2555
2556 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
2557
2558 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
2559 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
2560
2561 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
2562 shell widget's position only if it is non-null.
2563
2564 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
2565 Set f->output_data.x->widget to null after destroying it.
2566
2567 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
2568 FILENAME to bring it in synch with the documentation.
2569
2570 * xfaces.c (realizing_basic_faces_p): Renamed from
2571 realize_default_face_p.
2572 (realize_basic_faces): Set/clear realizing_basic_faces_p.
2573 (realize_default_face): Don't set the flag.
2574
2575 2001-04-04 Gerd Moellmann <gerd@gnu.org>
2576
2577 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
2578
2579 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
2580
2581 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
2582 the buffer that was used for echoing.
2583
2584 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
2585 (first_font_matching): Removed unused function.
2586 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
2587 (may_use_scalable_font_p): Remove parameter FONT; rename
2588 parameter NAME to FONT.
2589 (x_face_list_fonts): Fix missing bounds check.
2590 (realizing_default_face_p): New variable.
2591 (realize_default_face): Set and clear that flag.
2592 (x_face_list_fonts): When called during the realization of the
2593 default face, and no matching fonts are found when ignoring
2594 scalable fonts and fonts matching a regexp from
2595 face-ignored-fonts, try without ignoring fonts.
2596
2597 2001-04-03 Gerd Moellmann <gerd@gnu.org>
2598
2599 * xfns.c (postprocess_image): New function.
2600 (lookup_image): Call it for all image types except PostScript.
2601 (x_kill_gs_process): Call postprocess_image.
2602
2603 * xterm.c (x_use_underline_position_properties): New variable.
2604 (x_draw_glyph_string): Use it.
2605 (syms_of_xterm): DEFVAR_BOOL it.
2606
2607 2001-04-02 Gerd Moellmann <gerd@gnu.org>
2608
2609 * xterm.c (x_alloc_nearest_color_1): New function.
2610 (x_alloc_nearest_color): Use it.
2611 (x_color_cells): Take a Display as argument, instead of a frame.
2612 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
2613 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
2614 (x_initialize): Register cvt_string_to_pixel as resource converter
2615 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
2616
2617 2001-03-30 Gerd Moellmann <gerd@gnu.org>
2618
2619 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
2620 (set_iterator_to_next): If a string from a display property ends,
2621 consider the case that this might also be the end of an
2622 overlay string having the display property.
2623
2624 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
2625
2626 * xdisp.c (reseat_to_string): Undo last change.
2627
2628 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
2629 matrix of a window when the header line changes, when
2630 new rows are allocated, or when the width changes.
2631
2632 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
2633
2634 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
2635
2636 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
2637
2638 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
2639 deprecated.
2640
2641 2001-03-29 Gerd Moellmann <gerd@gnu.org>
2642
2643 * data.c (Fsubr_interactive_form): New function.
2644 (syms_of_data): Defsubr it.
2645
2646 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
2647 (live_float_p, live_misc_p): Return 1 only if the offset of the
2648 pointer in its block is >= 0.
2649
2650 2001-03-28 Paul Eggert <eggert@twinsun.com>
2651
2652 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
2653 microseconds calcuation. Avoid double-rounding problem.
2654 In doc string, warn that the result is approximate.
2655
2656 2001-03-28 Gerd Moellmann <gerd@gnu.org>
2657
2658 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
2659 bind `inhibit-eval-during-redisplay' to t.
2660
2661 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
2662
2663 * xdisp.c (inhibit_eval_during_redisplay)
2664 (Qinhibit_eval_during_redisplay): New variables.
2665 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
2666 don't eval, return nil instead.
2667 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
2668 Initialize Qinhibit_eval_during_redisplay.
2669
2670 * xdisp.c (reseat_to_string): If STRING is multibyte, set
2671 the iterator's multibyte_p flag.
2672
2673 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
2674 instead of setting it to zero; it's incremented for each frame
2675 where the menu face is changed.
2676
2677 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
2678 change bottom shadow accordingly.
2679
2680 * xterm.c (expose_window_tree, expose_frame): Don't compute
2681 intersections here.
2682 (expose_window): Do it here instead.
2683 (x_draw_glyph_string): Fix a computation of the underline position.
2684
2685 * bytecode.c (BYTE_CODE_QUIT): New macro.
2686 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
2687
2688 2001-03-27 Gerd Moellmann <gerd@gnu.org>
2689
2690 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
2691 Give up if matrix starts in an ellipsis.
2692 (init_from_display_pos): Do nothing if POS doesn't specify
2693 a dpvec_index but the iterator has such a position.
2694
2695 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
2696
2697 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
2698 x/y position is (0, 0) after destroying the menu bar, restore
2699 its original position.
2700
2701 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
2702 (init_from_display_pos): Use it.
2703 (try_window_reusing_current_matrix): Don't use cursor_row_p.
2704
2705 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2706
2707 * xdisp.c (try_window_id): Undo last change.
2708
2709 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
2710
2711 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
2712
2713 * buffer.c (syms_of_buffer): Doc fix.
2714
2715 2001-03-26 Gerd Moellmann <gerd@gnu.org>
2716
2717 * xfaces.c (x_update_menu_appearance): Use local variable
2718 popup_path for setting font resources.
2719
2720 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
2721
2722 * frame.c (Fframe_list): Don't reference tip_frame if
2723 HAVE_WINDOW_SYSTEM is not defined.
2724
2725 * emacs.c (main): Update the copyright year. From Werner LEMBERG
2726 <wl@gnu.org>.
2727
2728 2001-03-25 Gerd Moellmann <gerd@gnu.org>
2729
2730 * xdisp.c (init_from_display_pos): Test invisible property
2731 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
2732
2733 * xdisp.c (redisplay_internal) <update one window>: Make sure
2734 last_arrow_position and last_arrow_string are set.
2735
2736 * frame.c (Fframe_list): Don't return a tooltip frame.
2737
2738 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2739
2740 * xdisp.c (mark_window_display_accurate_1): New function,
2741 extracted from mark_window_display_accurate.
2742 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
2743 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
2744 (mark_window_display_accurate): Use it.
2745 (redisplay_internal): Use it for the selected window.
2746 (redisplay_internal): Avoid duplicate mark_window_display_accurate
2747 for the selected frame.
2748
2749 * xdisp.c Use make_number, for readability.
2750 (try_window_id): Disable rows below the window end.
2751 (try_window_reusing_current_matrix): Use cursor_row_p.
2752 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
2753 of rows.
2754 (init_from_display_pos): If POS specifies a position in a display
2755 vector, maybe get the iterator set up for that ellipsis.
2756
2757 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
2758
2759 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
2760
2761 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
2762
2763 2001-03-23 Gerd Moellmann <gerd@gnu.org>
2764
2765 * xfaces.c (x_update_menu_appearance): Use a different path
2766 for Lucid popup menus.
2767
2768 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
2769
2770 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
2771
2772 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
2773 (string_buffer_position): Use `make_number'.
2774
2775 2001-03-22 Gerd Moellmann <gerd@gnu.org>
2776
2777 * xfaces.c (x_update_menu_appearance): Renamed from
2778 x_set_menu_face_resources. Use different resources for popups.
2779
2780 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
2781 (GC_CHECK_STRING_BYTES): Don't define.
2782
2783 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
2784 Removed, together with subroutines.
2785 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
2786 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
2787
2788 * dispextern.h (x_set_menu_resources_from_menu_face):
2789 Remove prototype.
2790
2791 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
2792 Remove calls to x_set_menu_resources_from_menu_face.
2793
2794 * xfaces.c (xm_set_menu_resources_from_menu_face):
2795 Remove #ifndef LESSTIF_VERSION.
2796
2797 * xmenu.c: Include widget.h.
2798 (single_submenu): Return int. Some cleanup.
2799 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
2800
2801 2001-03-21 Gerd Moellmann <gerd@gnu.org>
2802
2803 * xterm.c (x_update_window_end): Handle overwritten mouse face
2804 also for tool bar windows.
2805 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
2806 DRAW is DRAW_IMAGE_RAISED.
2807
2808 2001-03-20 Gerd Moellmann <gerd@gnu.org>
2809
2810 * print.c (syms_of_print): Doc fixes.
2811
2812 * fns.c (Fmd5): Doc fix.
2813
2814 2001-03-19 Gerd Moellmann <gerd@gnu.org>
2815
2816 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2817 Clear area of the frame not occupied by the scroll bar.
2818
2819 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2820 tip frame's root window buffer to *tip* right after creating
2821 the frame.
2822
2823 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2824 is an integer don't have to be for space characters.
2825
2826 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2827
2828 * indent.c (current_column, current_column_1, Fmove_to_column)
2829 (compute_motion): Handle characters from display vectors differently.
2830
2831 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2832
2833 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2834 drawing glyph string.
2835
2836 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2837
2838 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2839 (command_loop_1): Undo last change.
2840
2841 * xterm.c (fast_find_position): Return the correct vpos.
2842
2843 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2844 non-null, set a per-buffer value in BUF instead of the current buffer.
2845 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2846 Call store_symval_forwarding with BUF null.
2847 (set_internal): Call store_symval_forwarding with the BUF
2848 parameter passed to set_internal. Formerly, the value was always
2849 set in the current buffer; the buffer recorded in specbind for
2850 this case wasn't used.
2851 (arith_driver): Reindent.
2852
2853 * buffer.c (swap_out_buffer_local_variables):
2854 Call store_symval_forwarding with BUF null.
2855
2856 * lisp.h (store_symval_forwarding): Change prototype.
2857
2858 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2859
2860 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2861
2862 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2863 FOR_DELETION. Avoid resizing the mini-window of the selected
2864 frame if FOR_DELETION is set.
2865 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2866 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2867 signature.
2868
2869 * window.c (Fset_window_configuration): Change call to
2870 do_switch_frame to new format.
2871
2872 * keyboard.c (quit_throw_to_read_char): Change call to
2873 do_switch_frame to new format.
2874
2875 * lisp.h (do_switch_frame): Change prototype.
2876
2877 * frame.c (Fframe_parameters): In the `buffer-list' frame
2878 parameter, store the buffer list of FRAME, not the list of the
2879 selected frame.
2880
2881 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2882 box just because the glyph row's full_width_p flag is set.
2883
2884 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2885
2886 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2887 skip the padding blanks inserted in extend_face_to_end_of_line,
2888 before checking for trailing whitespace.
2889
2890 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2891
2892 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2893 Remove special handling for LessTif/Motif.
2894 (toplevel): Don't include Xm/Xm.h.
2895
2896 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2897 Remove workaround code for LessTif; it doesn't work anymore.
2898
2899 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2900 Xm/ScrollBarP.h.
2901
2902 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2903 Don't access private scroll bar data; it's no longer necessary with
2904 contemporary LessTif.
2905
2906 * xfaces.c (xm_set_menu_resources_from_menu_face):
2907 Change #if 0 to #ifndef LESSTIF_VERSION.
2908
2909 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2910 removing button grabs.
2911
2912 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2913
2914 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2915 and clip-large-size-font as obsolete.
2916
2917 * lread.c (read_multibyte): Check the validity of multibyte
2918 sequence. If invalid, return the first byte.
2919
2920 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2921
2922 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2923 before running the command; timer functions or process
2924 filters may have set it.
2925
2926 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2927
2928 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2929 Doc fix.
2930
2931 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2932
2933 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2934 to sprintf.
2935
2936 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2937
2938 * dispextern.h (string_buffer_position): Add prototype.
2939
2940 * xdisp.c (string_buffer_position, display_prop_string_p)
2941 (single_display_prop_string_p): New functions.
2942
2943 * xterm.c (note_mouse_highlight): If there's no help-echo on
2944 a string, look at the buffer text ``under'' it.
2945
2946 * keyboard.c (make_lispy_event): Add string info to the event,
2947 analogous to what's done on mode lines.
2948 (read_key_sequence): For a click on a string, consider `local-map'
2949 and `keymap' of that string.
2950
2951 * keyboard.c (make_lispy_event, make_lispy_movement):
2952 Adjust calls to buffer_posn_from_coords to new format.
2953
2954 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2955
2956 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2957 POS; return void.
2958
2959 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2960 flags argument to emacs_open; it seems to conflict with O_EXCL.
2961
2962 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2963
2964 * composite.h (struct composition): Change types of members;
2965 glyph_len to unsigned, width to unsigned short.
2966
2967 2001-03-08 Andrew Innes <andrewi@gnu.org>
2968
2969 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2970 menu titles.
2971
2972 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2973
2974 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2975 instead of nil.
2976
2977 * xterm.c (note_mouse_highlight): Handle mouse-face and
2978 help-echo in strings.
2979 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2980 (fast_find_string_pos): New function.
2981
2982 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2983 (display_string): Call face_at_string_position with new parameter.
2984
2985 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2986 Handle `mouse-face'.
2987
2988 * dispextern.h (face_at_string_position): Change prototype.
2989
2990 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2991
2992 * keyboard.c (make_lispy_event): Avoid generating drag events
2993 if the mouse hasn't actually moved to another buffer position.
2994
2995 2001-03-08 Dave Love <fx@gnu.org>
2996
2997 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2998
2999 2001-03-08 Gerd Moellmann <gerd@gnu.org>
3000
3001 * process.c (Fset_process_window_size): Fix a typo.
3002
3003 2001-03-08 Kenichi Handa <handa@etl.go.jp>
3004
3005 * coding.c (detect_coding_sjis): Do more rigid check.
3006 (detect_coding_big5): Likewise.
3007 (decode_coding_sjis_big5): Likewise.
3008 (Fdetect_coding_region): Call detect_coding_system with tailing
3009 anchor byte `\0' for more rigid detection.
3010 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
3011 (Fdetect_coding_string): Likewise.
3012
3013 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
3014
3015 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
3016 a string before extracting its data.
3017
3018 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3019
3020 * window.c (Frecenter): Rewrite code handling negative values
3021 of ARG on graphical frames.
3022
3023 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
3024
3025 * window.c (displayed_window_lines): If W->start is outside the
3026 accessible portion of the buffer, call start_display with BEGV or
3027 ZV instead of W->start.
3028
3029 2001-03-07 Gerd Moellmann <gerd@gnu.org>
3030
3031 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
3032
3033 * process.c (Fset_process_filter): Don't crash if the input
3034 file descriptor of PROCESS is closed.
3035 (Fset_process_window_size): Likewise.
3036
3037 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3038
3039 * xterm.c (XTflash): Make the timeout of select shorter, and call
3040 select repeatedly until the desired time expires.
3041
3042 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3043
3044 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
3045
3046 * xfns.c (Fx_create_frame): Clear Vwindow_list.
3047
3048 * lisp.h (Vwindow_list): Declare extern.
3049
3050 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
3051
3052 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
3053
3054 2001-03-06 Gerd Moellmann <gerd@gnu.org>
3055
3056 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
3057 to detect a case where we have to highlight a different region
3058 despite not having left the currently highlighted region.
3059 Set mouse_face_overlay in the x_display_info.
3060 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
3061
3062 * xterm.h (struct x_display_info): Add mouse_face_overlay.
3063
3064 * buffer.c (mouse_face_overlay_overlaps): New function.
3065
3066 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
3067 (Qmouse_face): Declare extern.
3068
3069 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
3070 if face_change_count is non-zero.
3071
3072 2001-03-06 Kenichi Handa <handa@etl.go.jp>
3073
3074 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
3075 that the source is unibyte.
3076
3077 2001-03-05 Dave Love <fx@gnu.org>
3078
3079 * xterm.c (XTmouse_position): Fix typo.
3080
3081 2001-03-05 Gerd Moellmann <gerd@gnu.org>
3082
3083 * minibuf.c (read_minibuf): Clean up the binding stack if
3084 called noninteractively.
3085
3086 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3087
3088 * coding.c (syms_of_coding): Docstring modified.
3089
3090 2001-03-05 Kenichi Handa <handa@etl.go.jp>
3091
3092 * charset.c (char_to_string): If a single byte char has modifier
3093 bits that can't be reflected to the character code, ignore them
3094 instead of signaling an error.
3095
3096 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
3097
3098 * s/msdos.h: Update copyright notice.
3099
3100 * dosfns.h: Update copyright notice.
3101
3102 * dosfns.c: Update copyright notice.
3103
3104 * msdos.c: Update copyright notice.
3105
3106 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3107
3108 * xterm.c (glyph_rect): New function.
3109 (XTmouse_position): Use it to raise the threshold for mouse
3110 movement event generation.
3111
3112 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
3113
3114 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
3115 specifies (reverse . t), reverse the initial screen colors.
3116 (IT_set_frame_parameters): If the property is foreground-color,
3117 but we are reversing the colors, set bg_set, not fg_set.
3118 Likewise for setting background-color and reversing: set fg_set.
3119 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
3120 in effect.
3121
3122 * xfaces.c (Finternal_set_lisp_face_attribute)
3123 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
3124 parameters alist.
3125
3126 2001-03-02 Gerd Moellmann <gerd@gnu.org>
3127
3128 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
3129 to a single slash in the middle of file names.
3130
3131 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
3132 Accept only alphanumeric time zone names.
3133
3134 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
3135 or width area.
3136 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
3137 a widget to zero height.
3138
3139 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3140
3141 * window.c (Fwindow_end): Call move_it_past_eol only if
3142 ending up on a partially visible line.
3143
3144 2001-03-01 Dave Love <fx@gnu.org>
3145
3146 * ccl.c (Fccl_execute): Doc fix.
3147
3148 2001-03-01 Gerd Moellmann <gerd@gnu.org>
3149
3150 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
3151 of the tool bar before calling x_figure_window_size.
3152
3153 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
3154 NULL after destroying it, otherwise XTread_socket can access a
3155 destroyed widget when input is unblocked.
3156
3157 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
3158
3159 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
3160 same name as before, although there was a change in fontsets.
3161
3162 2001-02-28 Ken Raeburn <raeburn@gnu.org>
3163
3164 * lisp.h (Fframe_parameter): Declare.
3165
3166 * window.c (set_window_buffer): Field vscroll is an int, not a
3167 Lisp_Object.
3168
3169 2001-02-28 Gerd Moellmann <gerd@gnu.org>
3170
3171 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
3172 NULL instead.
3173
3174 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
3175 NULL instead.
3176
3177 * alloc.c (toplevel): Include process.h.
3178 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
3179 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
3180 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
3181 (allocate_vector, allocate_hash_table, allocate_window)
3182 (allocate_frame, allocate_process, allocate_other_vector):
3183 New functions.
3184 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
3185 (mark_maybe_pointer): New function.
3186 (mark_memory): Also mark Lisp data to which only pointers
3187 remain and not Lisp_Objects.
3188 (min_heap_address, max_heap_address): New variables.
3189 (mem_find): Return MEM_NIL if START is below min_heap_address or
3190 above max_heap_address.
3191 (mem_insert): Compute min_heap_address and max_heap_address.
3192
3193 * process.c (make_process): Use allocate_process.
3194
3195 * frame.c (make_frame): Use allocate_frame.
3196
3197 * window.c (make_window, make_dummy_parent): Use allocate_window.
3198 (Fcurrent_window_configuration): Use allocate_other_vector.
3199
3200 * lisp.h (allocate_vectorlike): Remove prototype.
3201 (allocate_vector, allocate_other_vector, allocate_frame)
3202 (allocate_window, allocate_process, allocate_hash_table):
3203 Add prototypes.
3204
3205 * fns.c (Fdelete, larger_vector): Use allocate_vector.
3206 (make_hash_table, copy_hash_table): Use allocate_hash_table.
3207
3208 2001-02-27 Kenichi Handa <handa@etl.go.jp>
3209
3210 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
3211 treat the produced bytes as a valid multibyte sequence.
3212
3213 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
3214 (ccl_driver) <CCL_WriteMultibyteChar2>:
3215 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
3216 <ccl_finish>: Set ccl->eight_bit_control properly.
3217
3218 * ccl.h (struct ccl_program): New member eight_bit_control.
3219
3220 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
3221
3222 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
3223 accessible_keymaps_char_table.
3224 (accessible_keymaps_char_table): Obey `is_metized'.
3225 (where_is_internal, Fwhere_is_internal): Don't confuse int and
3226 Lisp_Object.
3227
3228 2001-02-26 Gerd Moellmann <gerd@gnu.org>
3229
3230 * dispnew.c: Check HAVE_TERM_H before including term.h.
3231
3232 2001-02-24 Andrew Innes <andrewi@gnu.org>
3233
3234 * makefile.w32-in: Update copyright notice.
3235
3236 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
3237
3238 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
3239
3240 2001-02-24 Kenichi Handa <handa@etl.go.jp>
3241
3242 * Makefile.in (lisp): Add international/utf-8.elc.
3243
3244 * fontset.c (Fnew_fontset): Fix handling of the case that an
3245 element of FONTLIST is a cons of family and registry.
3246
3247 2001-02-23 Jason Rumney <jasonr@gnu.org>
3248
3249 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
3250 to height unconditionally.
3251
3252 * w32term.c (x_set_glyph_string_background_width): Extend the
3253 background face to the end of the drawing area in the text area, only.
3254 (x_insert_glyphs): Call window_box_left to obtain the left
3255 x-coordinate of the area to shift.
3256
3257 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
3258 safe_run_hooks.
3259
3260 2001-02-22 Andrew Innes <andrewi@gnu.org>
3261
3262 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
3263 ($(BLD)\dispnew.obj):
3264 ($(BLD)\editfns.obj):
3265 ($(BLD)\fileio.obj):
3266 ($(BLD)\filelock.obj):
3267 ($(BLD)\keyboard.obj):
3268 ($(BLD)\w32proc.obj):
3269 ($(BLD)\process.obj):
3270 ($(BLD)\sysdep.obj): Ditto.
3271
3272 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
3273 header files.
3274 ($(BLD)/dispnew.$(O)):
3275 ($(BLD)/editfns.$(O)):
3276 ($(BLD)/fileio.$(O)):
3277 ($(BLD)/filelock.$(O)):
3278 ($(BLD)/keyboard.$(O)):
3279 ($(BLD)/w32proc.$(O)):
3280 ($(BLD)/process.$(O)):
3281 ($(BLD)/sysdep.$(O)): Ditto.
3282
3283 2001-02-22 Gerd Moellmann <gerd@gnu.org>
3284
3285 * xdisp.c (forward_to_next_line_start): When taking the shortcut
3286 at the start of the function, check that the \n in it->c is
3287 from the iterator's current position.
3288
3289 * xdisp.c (handle_single_display_prop): Add parameter
3290 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
3291 properties which replace the display of text with something else.
3292 (handle_display_prop): Call handle_single_display_prop with
3293 additional argument saying if we already replaced text display
3294 with something else. Use AREF.
3295 (with_echo_area_buffer_unwind_data, display_menu_bar)
3296 (decode_mode_spec_coding): Use AREF and ASIZE.
3297
3298 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
3299 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
3300 * vmstime.h: Files removed.
3301
3302 * unexencap.c, unexfx2800.c: Files removed.
3303
3304 * dispnew.c (direct_output_for_insert): Give up if we are showing
3305 a message or just cleared the message because we might need to
3306 resize the echo area window or display an empty echo area.
3307
3308 2001-02-21 Gerd Moellmann <gerd@gnu.org>
3309
3310 * xdisp.c (redisplay_internal): Do the
3311 mark_window_display_accurate after all windows have been
3312 redisplayed because this call resets flags in buffers which are
3313 needed for proper redisplay.
3314
3315 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
3316 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
3317 the old names.
3318
3319 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3320 busy_window to hourglass_window, busy_p to hourglass_p.
3321
3322 * msdos.h (struct x_output): Rename busy_window to
3323 hourglass_window, busy_p to hourglass_p.
3324
3325 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
3326 busy_window to hourglass_window, busy_p to hourglass_p.
3327
3328 * xfns.c: Rename everything containing *busy_cursor* and similar
3329 to *hourglass*.
3330 (syms_of_w32fns): Rename x-busy-pointer-shape to
3331 x-hourglass-pointer-shape, display-busy-cursor to
3332 display-hourglass, busy-cursor-delay to hourglass-delay.
3333
3334 * w32fns.c: Rename everything containing *busy_cursor* and similar
3335 to *hourglass*.
3336 (syms_of_w32fns): Rename x-busy-pointer-shape to
3337 x-hourglass-pointer-shape, display-busy-cursor to
3338 display-hourglass, busy-cursor-delay to hourglass-delay.
3339
3340 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
3341 of its busy_p flag.
3342
3343 * dispextern.h (start_hourglass, cancel_hourglass)
3344 (display_hourglass_p): Renamed from *busy_cursor*.
3345
3346 2001-02-20 Gerd Moellmann <gerd@gnu.org>
3347
3348 * keyboard.c (read_char): When an event from unread-command-events
3349 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
3350
3351 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
3352 equal to the current buffer.
3353
3354 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
3355 nil, otherwise we're left with truncate_lines t when a message
3356 is printed with message-truncate-lines bound to t.
3357
3358 2001-02-19 Gerd Moellmann <gerd@gnu.org>
3359
3360 * window.c (Fmove_to_window_line): Undo last change.
3361 (displayed_window_lines): Call line_bottom_y to determine
3362 the line's bottom position.
3363
3364 * dispextern.h (line_bottom_y): Add prototype.
3365
3366 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
3367 (pos_visible_p): Use it.
3368
3369 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
3370 set redisplaying_p to 0 here instead of in Frecursive_edit.
3371 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
3372 set redisplaying_p.
3373
3374 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
3375 New variables.
3376 (syms_of_xdisp): Initialize new variables.
3377 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
3378 Specbind `inhibit-menubar-update' when updating the menu bar.
3379
3380 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
3381 safe_run_hooks.
3382
3383 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
3384 safe_run_hooks.
3385
3386 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
3387 is null.
3388
3389 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
3390 to the start of the file.
3391
3392 2001-02-16 Gerd Moellmann <gerd@gnu.org>
3393
3394 * window.c (set_window_buffer): Fix last change.
3395
3396 * window.c (set_window_buffer): Set window's vscroll to 0.
3397
3398 * window.c (coordinates_in_window): Increase width of area
3399 where the vertical line can be dragged.
3400
3401 * xterm.c (x_set_glyph_string_background_width): Extend the
3402 background face to the end of the drawing area in the text
3403 area, only.
3404
3405 * xdisp.c (handle_single_display_prop): Set iterator's position
3406 to where the `display' property starts, like for images.
3407 (dump_glyph): New function.
3408 (dump_glyph_row): Use it. Dump info about marginal areas.
3409
3410 * dispnew.c (direct_output_for_insert): Recognize more cases where
3411 glyphs can be written instead of being inserted.
3412
3413 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
3414 the left x-coordinate of the area to shift.
3415
3416 * dired.c (directory_files_internal): Set result list to nil
3417 before retrying.
3418
3419 2001-02-15 Kenichi Handa <handa@etl.go.jp>
3420
3421 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
3422 invalid multibyte sequence, treat *SRC as a character of
3423 eight-bit-graphic.
3424
3425 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
3426
3427 * textprop.c (Fset_text_properties): Doc fix.
3428
3429 2001-02-15 Gerd Moellmann <gerd@gnu.org>
3430
3431 * dispnew.c (update_text_area): Undo change of 2001-01-12.
3432
3433 2001-02-14 Dave Love <fx@gnu.org>
3434
3435 * coding.c: Doc and message fixes.
3436
3437 2001-02-14 Andrew Innes <andrewi@gnu.org>
3438
3439 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
3440 Emacs frame above the screen size.
3441
3442 2001-02-14 Gerd Moellmann <gerd@gnu.org>
3443
3444 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
3445
3446 2001-02-13 Gerd Moellmann <gerd@gnu.org>
3447
3448 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
3449 case that TO ends up beyond ZV after running before-change-functions.
3450
3451 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
3452 the selected window if it is showing the buffer in question.
3453
3454 * dired.c (directory_files_internal): Initialize errno.
3455 (toplevel): Include errno.h.
3456
3457 2001-02-13 Kenichi Handa <handa@etl.go.jp>
3458
3459 * xfaces.c (best_matching_font): New parameter width_ratio.
3460 Multiply avgwidth by width_ratio.
3461 (choose_face_font): Call best_matching_font with width_ratio
3462 calculated from the column width of C.
3463
3464 2001-02-12 Andrew Innes <andrewi@gnu.org>
3465
3466 The following changes are to draw box lines inside characters area
3467 if line-width is negative.
3468
3469 * w32term.c (x_produce_image_glyph): Pay attention to the case that
3470 face->box_line_width is negative.
3471 (x_produce_stretch_glyph): Likewise.
3472 (x_produce_glyphs): Likewise.
3473 (x_estimate_mode_line_height): Likewise.
3474 (x_draw_glyph_string_background): Likewise.
3475 (x_draw_glyph_string_foreground): Likewise.
3476 (x_draw_composite_glyph_string_foreground): Likewise.
3477 (x_draw_glyph_string_box): Likewise.
3478 (x_draw_image_foreground): Likewise.
3479 (x_draw_image_relief): Likewise.
3480 (x_draw_image_foreground_1): Likewise.
3481 (x_draw_image_glyph_string): Likewise.
3482
3483 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3484
3485 The following changes are to draw box lines inside characters area
3486 if line-width is negative.
3487
3488 * xterm.c (x_produce_image_glyph): Pay attention to the case that
3489 face->box_line_width is negative.
3490 (x_produce_stretch_glyph): Likewise.
3491 (x_produce_glyphs): Likewise.
3492 (x_estimate_mode_line_height): Likewise.
3493 (x_draw_glyph_string_background): Likewise.
3494 (x_draw_glyph_string_foreground): Likewise.
3495 (x_draw_composite_glyph_string_foreground): Likewise.
3496 (x_draw_glyph_string_box): Likewise.
3497 (x_draw_image_foreground): Likewise.
3498 (x_draw_image_relief): Likewise.
3499 (x_draw_image_foreground_1): Likewise.
3500 (x_draw_image_glyph_string): Likewise.
3501
3502 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
3503 and :line-width can be negative.
3504 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
3505
3506 2001-02-09 Jason Rumney <jasonr@gnu.org>
3507
3508 * w32term.c (w32_encode_char): Treat eight bit graphic and control
3509 characters the same as ASCII and latin-1.
3510 (x_display_and_set_cursor): Check for the focus frame's selected
3511 window instead of selected_window.
3512 (x_after_update_window_line): Don't clear if frame's internal
3513 border width is zero.
3514 (x_new_font): Don't change a tooltip's size.
3515 (w32_initialize): Set char_ins_del_ok to 1.
3516
3517 * w32fns.c (Fx_show_tip): Fix calls to make_number.
3518 (x_set_font): If font hasn't changed, avoid recomputing
3519 faces and other things.
3520 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
3521 (Fx_create_frame): Add the tool bar height to the frame height.
3522 (x_create_tip_frame): Prevent changing the tooltip's
3523 background color by specifying a color for the default font
3524 in .Xdefaults.
3525 (Qcancel_timer): New variable.
3526 (syms_of_w32fns): Initialize and staticpro it.
3527 (Fx_hide_tip, Fx_show_tip): Use it.
3528 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3529 the timer.
3530 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
3531
3532 * w32.c (init_environment): Duplicate local string before putenv.
3533
3534 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
3535
3536 * charset.c (Fstring): A typo.
3537
3538 2001-02-09 Kenichi Handa <handa@etl.go.jp>
3539
3540 * charset.c (Fstring): If all arguments are less than 256, return
3541 a unibyte string.
3542
3543 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
3544 return a unibyte string.
3545
3546 * coding.c (code_convert_region): After detecting a coding, if
3547 nothing found, set coding->composing to COMPOSITION_NO.
3548 (decode_coding_string): Likewise.
3549
3550 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
3551
3552 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
3553 to avoid overflow.
3554
3555 2001-02-07 Kenichi Handa <handa@etl.go.jp>
3556
3557 * charset.c (parse_str_to_multibyte): New function.
3558
3559 * charset.h (parse_str_to_multibyte): Extern it.
3560
3561 * print.c (print_string): If we are going to print a unibyte
3562 string into a multibyte buffer, convert the string to multibyte by
3563 str_to_multibyte.
3564
3565 2001-02-06 Andrew Innes <andrewi@gnu.org>
3566
3567 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
3568 been created. It seems we can get sent window messages such as
3569 WM_ERASEBKGND before we properly update a frame.
3570
3571 2001-02-06 Gerd Moellmann <gerd@gnu.org>
3572
3573 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
3574 Avoid some unnecessary cursor positioning.
3575
3576 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3577
3578 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
3579 (LFACE_AVGWIDTH): New macro.
3580 (LFACEP): Use AREF.
3581 (check_lface_attrs): Check LFACE_AVGWIDTH.
3582 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
3583 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
3584 (merge_face_vectors): Check LFACE_AVGWIDTH.
3585 (Finternal_make_lisp_face): Use AREF.
3586 (xm_set_menu_resources_from_menu_face)
3587 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
3588 (Finternal_lisp_face_empty_p): Use AREF.
3589 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
3590 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
3591 Compare average widths..
3592 (best_matching_font): Arrange for comparing average widths.
3593
3594 * dispextern.h (enum lface_attribute_index):
3595 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
3596
3597 2001-02-05 Dave Love <fx@gnu.org>
3598
3599 * puresize.h: Revert last change following loadup.el change.
3600
3601 2001-02-05 Andrew Innes <andrewi@gnu.org>
3602
3603 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
3604 invocation of temacs, to work with Windows 2000.
3605 (bootstrap-emacs): Ditto.
3606
3607 2001-02-05 Gerd Moellmann <gerd@gnu.org>
3608
3609 * xterm.c (x_display_and_set_cursor): Check for the focus
3610 frame's selected window instead of selected_window.
3611
3612 * xdisp.c (try_scrolling): If point is in the line below the
3613 window, make sure to move the iterator at least a canonical
3614 char height down.
3615
3616 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
3617
3618 2001-02-05 Kenichi Handa <handa@etl.go.jp>
3619
3620 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
3621 If invalid, execute CCL_INVALID_CMD.
3622 (ccl_driver): If the CCL program is terminated because of
3623 CCL_STAT_INVALID_CMD, copy the remaining source data to the
3624 destination instead of throwing them away.
3625
3626 2001-02-02 Gerd Moellmann <gerd@gnu.org>
3627
3628 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
3629 faces and other things.
3630
3631 * xdisp.c (get_next_display_element): Fix case of empty
3632 display table entry.
3633
3634 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
3635
3636 * editfns.c (Fconstrain_to_field): Doc fix.
3637
3638 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
3639 into `thoroughly', to make it consistent with the doc string.
3640
3641 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
3642
3643 2001-02-01 Gerd Moellmann <gerd@gnu.org>
3644
3645 * search.c (search_buffer): Call set_search_regs with a byte
3646 position, not a character position.
3647
3648 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
3649 minibuffer-only,
3650
3651 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
3652
3653 * frame.c (Fmodify_frame_parameters): Doc fix.
3654
3655 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3656
3657 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
3658 identifier which is not reserved by Standard C.
3659
3660 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
3661
3662 * window.c (enum window_part): New enumeration.
3663 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
3664 Qright_bitmap_area.
3665 (coordinates_in_window): Return an enumerator from enum
3666 window_part. Fix handling of right scroll bar.
3667 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
3668 `right-fringe' instead of `left-bitmap-area' and
3669 `right-bitmap-area'. Use enumerators from enum window_part
3670 instead of hard-coded integers.
3671 (check_window_containing, window_from_coordinates):
3672 Use enumerators from enum window_part instead of hard-coded integers.
3673 (syms_of_window): Replace Qleft_bitmap_area and
3674 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
3675
3676 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
3677
3678 * editfns.c (Fformat_time_string): Doc fix.
3679
3680 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
3681
3682 * keymap.c (Fwhere_is_internal): Use the first valid binding
3683 if no ascii binding is found (when firstonly is t).
3684
3685 2001-01-31 Gerd Moellmann <gerd@gnu.org>
3686
3687 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
3688 instead of Finteractive_p.
3689
3690 * lisp.h (interactive_p): Add prototype.
3691
3692 * eval.c (interactive_p): New function.
3693 (Finteractive_p): Use it.
3694
3695 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
3696
3697 2001-01-31 Dave Love <fx@gnu.org>
3698
3699 * .gdbinit (hook-run): Define to run xreload.
3700
3701 * textprop.c (Fset_text_properties): Fix newline in doc string.
3702
3703 2001-01-30 Gerd Moellmann <gerd@gnu.org>
3704
3705 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
3706 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
3707
3708 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
3709 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
3710 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
3711
3712 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
3713 height.
3714
3715 2001-01-30 Dave Love <fx@gnu.org>
3716
3717 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
3718 AFTER_POTENTIAL_GC.
3719
3720 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3721
3722 * bytecode.c (Fbyte_code) <Bcurrent_column>:
3723 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
3724
3725 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
3726
3727 * textprop.c (Fset_text_properties): Doc fix.
3728
3729 2001-01-29 Gerd Moellmann <gerd@gnu.org>
3730
3731 * xdisp.c (forward_to_next_line_start): Remove xassert.
3732
3733 2001-01-29 Jason Rumney <jasonr@gnu.org>
3734
3735 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
3736 returning without releasing it.
3737
3738 2001-01-29 Kenichi Handa <handa@etl.go.jp>
3739
3740 * w32fns.c (w32_font_match): Allocate three more bytes to regex
3741 for '^', '$', and '\0'.
3742
3743 2001-01-28 Andrew Choi <akochoi@i-cable.com>
3744
3745 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
3746 regex for '^', '$', and '\0'.
3747
3748 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
3749 only if current_sblock has been initialized.
3750
3751 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
3752 terminal frame even if it is the only visible frame.
3753
3754 2001-01-28 Kenichi Handa <handa@etl.go.jp>
3755
3756 * fontset.c (font_family_registry): Even if FONTNAME conform to
3757 XLFD, if it specifies other fields than family and registry,
3758 return FONTANME. New argument FORCE if nonzero cancel that feature.
3759 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
3760 a signle byte character. Don't set FAMILY part to nil here.
3761 It is handled by the caller choose_face_font.
3762 (Fnew_fontset): Call font_family_registry with FORCE 0.
3763 (Fset_fontset_font): Likewise.
3764
3765 2001-01-27 Gerd Moellmann <gerd@gnu.org>
3766
3767 * xdisp.c (display_line): Don't treat a newline as fitting
3768 on the line.
3769
3770 2001-01-26 Gerd Moellmann <gerd@gnu.org>
3771
3772 * window.c (size_window): Set the window's orig_top to nil when
3773 changing heights, so that a future shrink_mini_window won't
3774 restore a bogus height.
3775
3776 * frame.c (do_switch_frame): If selected frame has a mini-window,
3777 resize that to exact size.
3778
3779 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
3780
3781 * xdisp.c (display_line): Simplify check for glyphs fitting
3782 entirely in the line.
3783
3784 * xfns.c (xic_style): New variable.
3785 (create_frame_xic): Move static variable to global scope for
3786 the case that `static' gets defined away.
3787
3788 2001-01-26 Kenichi Handa <handa@etl.go.jp>
3789
3790 * coding.c (decode_coding): Set a flag for inhibiting
3791 inconsistent eol.
3792 (code_convert_region): Always set saved_coding_symbol.
3793 (decode_coding_string): Likewise. Update coding->symbol when we
3794 encounter a inconsistent eol by the same way as code_convert_region.
3795
3796 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3797
3798 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
3799 XClearArea.
3800
3801 * xterm.c (x_after_update_window_line): Don't clear if frame's
3802 internal border width is zero.
3803 (x_clear_area): New function.
3804 (x_after_update_window_line, x_clear_end_of_line)
3805 (x_scroll_bar_create, x_scroll_bar_set_handle)
3806 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
3807 instead of XClearArea.
3808
3809 * xterm.h (x_clear_area): Add prototype.
3810
3811 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
3812 which doesn't seem necessary anymore with Lesstif 0.92.
3813
3814 2001-01-25 Dave Love <fx@gnu.org>
3815
3816 * puresize.h (BASE_PURESIZE): Up to 720000.
3817
3818 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3819
3820 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3821
3822 * xdisp.c (echo_area_display): Don't call redisplay_internal
3823 when Emacs is shutting down. We can't run hooks etc. that
3824 would be necessary to do a redisplay.
3825
3826 * lread.c (read_integer): Use type EMACS_INT instead of int.
3827
3828 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3829
3830 * ccl.c (ccl_driver): Fix last change.
3831
3832 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3833
3834 * ccl.h (sturct ccl_program): New member suppress_error.
3835
3836 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3837 insert error message to the output.
3838 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3839
3840 * coding.h (struct coding_system): New member suppress_error.
3841
3842 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3843 (Fset_terminal_coding_system_internal): Set the member
3844 suppress_error to 1.
3845 (Fset_safe_terminal_coding_system_internal): Likewise.
3846
3847 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3848
3849 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3850 as if it was a `charset'.
3851
3852 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3853
3854 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3855 value in where_is_cache; the next lookup in the cache returns
3856 something bogus if we do.
3857
3858 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3859
3860 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3861 if HAVE_WINDOW_SYSTEM isn't defined.
3862
3863 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3864
3865 * fns.c (sweep_weak_table): Fix code taking items out of
3866 the hash collision chain. Some cleanup.
3867
3868 * xterm.c (x_new_font): Don't change a tooltip's size.
3869
3870 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3871 background color by specifying a color for the default font
3872 in .Xdefaults.
3873
3874 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3875
3876 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3877 a workaround for SunOS 4's cc.
3878 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3879 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3880 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3881 statement.
3882
3883 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3884
3885 * xterm.c (x_set_window_size_1): New function extracted from
3886 x_set_window_size.
3887 (x_set_window_size): Use it.
3888 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3889 doesn't have a widget, like tooltips.
3890
3891 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3892
3893 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3894
3895 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3896
3897 * fns.c (Fset_char_table_default): Fix to make sub char-table
3898 correctly.
3899
3900 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3901
3902 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3903 a desired tool bar string, even if there are no tool bar items.
3904
3905 * xdisp.c (Ftool_bar_lines_needed): New function.
3906 (syms_of_xdisp): Defsubr it.
3907
3908 * editfns.c (Fformat): Don't extend text properties from arguments
3909 to padding chars in the result.
3910
3911 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3912
3913 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3914
3915 2001-01-20 Andrew Innes <andrewi@gnu.org>
3916
3917 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3918 (w32_initialize): Don't set term hooks that aren't actually needed
3919 in windowed mode.
3920
3921 * xfaces.c (realize_default_face):
3922 (realize_face):
3923 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3924
3925 * xdisp.c (handle_single_display_prop): Remove references to
3926 FRAME_W32_CONSOLE_P.
3927
3928 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3929
3930 * frame.h (output_method): Remove output_w32_console method.
3931 (FRAME_W32_CONSOLE_P): Remove macro.
3932
3933 * frame.c (Qw32_console): Remove variable.
3934 (Fframep): Remove references to it.
3935 (syms_of_frame): Ditto.
3936 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3937
3938 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3939 redefinition.
3940
3941 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3942
3943 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3944
3945 2001-01-19 Andrew Innes <andrewi@gnu.org>
3946
3947 * w32.c (init_environment): Add a version-independent site-lisp
3948 directory to EMACSLOADPATH, after the version dependent one.
3949
3950 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3951
3952 * editfns.c (Fbuffer_substring): Doc fix.
3953
3954 * xdisp.c (message_dolog, message2, message2_nolog):
3955 Rename parameter LEN to NBYTES.
3956
3957 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3958
3959 * charset.c (strwidth): Use c_string_width.
3960 (c_string_width): New function.
3961 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3962 Caller changed.
3963
3964 * charset.h (c_string_width, lisp_string_width): Extern them.
3965
3966 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3967
3968 * indent.c (check_composition): Check validity of composition.
3969
3970 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3971 characters by calling c_string_width.
3972 (x_consider_frame_title): Get byte length of frame tile string
3973 correctly.
3974 (display_mode_element): Pay attention to width of non-ASCII
3975 characters by calling strwidth.
3976
3977 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3978
3979 * xfns.c (Qcancel_timer): New variable.
3980 (syms_of_xfns): Initialize and staticpro it.
3981 (Fx_hide_tip, Fx_show_tip): Use it.
3982 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3983 the timer.
3984 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3985
3986 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3987
3988 * window.h (WINDOW_LIVE_P): New macro.
3989
3990 * window.c (window_size_fixed): New variable.
3991 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3992 the doc string.
3993
3994 * eval.c (specbind): If binding a per-buffer variable which
3995 doesn't have a buffer-local value in the current buffer, change
3996 the global value by changing the value of the symbol bound in all
3997 buffers not having their own value, to make it consistent with
3998 what happens with other buffer-local variables.
3999
4000 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
4001
4002 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
4003 when searching for a newline.
4004
4005 2001-01-18 Kenichi Handa <handa@etl.go.jp>
4006
4007 * xdisp.c (display_string): Fix previous change.
4008
4009 2001-01-18 Jason Rumney <jasonr@gnu.org>
4010
4011 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
4012 GLYPH_DEBUG is defined.
4013 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
4014 true for images with `:ascent 100'.
4015 (x_set_mouse_face_gc): If the last used mouse face has gone in the
4016 meantime, use face MOUSE_FACE_ID.
4017 If first glyph isn't a character glyph, use the ASCII NUL
4018 character to determine the face.
4019 (expose_area): Do not treat left margin specially.
4020 (note_mode_line_highlight): If no local_map, check global keymap.
4021 (note_mouse_highlight): Initialize overlay.
4022 (clear_mouse_face): Don't return if tip_frame is non-nil.
4023 (show_scroll_bars): Remove unused function.
4024 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
4025 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
4026 Clip to row.
4027 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
4028 (x_free_frame_resources): Unload relief colors.
4029
4030 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4031
4032 * xdisp.c (forward_to_next_line_start): Avoid calling
4033 get_next_display_element when the newline is already found.
4034 This may change the iterator's position, when its current position is
4035 equal to the iterator's stop_charpos.
4036
4037 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
4038 zero, use this method only at the end of a line.
4039
4040 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
4041 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
4042 if SCALABLE_FONTS_P is set.
4043
4044 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
4045 so that scalable fonts are included.
4046
4047 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
4048 In the cache, use a key containing the information if scalable
4049 fonts are included.
4050 (x_load_font): Adapt to change of keys in the font cache.
4051
4052 2001-01-17 Kim F. Storm <storm@filanet.dk>
4053
4054 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
4055 XListFonts to take advantage of font caching.
4056
4057 * xterm.c (x_list_fonts): Ensure caching font information when
4058 called for a null frame, which is the case frequently when Emacs
4059 starts.
4060
4061 2001-01-17 Gerd Moellmann <gerd@gnu.org>
4062
4063 * xfns.c (QCconversion): Replaces QCalgorithm.
4064
4065 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
4066
4067 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
4068 of :algorithm.
4069
4070 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
4071 not everything could be displayed.
4072
4073 * line.h, x-list-font.c: Files removed because unused.
4074
4075 2001-01-17 Andrew Innes <andrewi@gnu.org>
4076
4077 * dired.c (directory_files_internal): Convert result from readdir
4078 to a unibyte string initially, to avoid possible misinterpretation
4079 of some bytes as the internal form of Emacs characters.
4080
4081 2001-01-17 Kenichi Handa <handa@etl.go.jp>
4082
4083 * fns.c (concat): Be sure to avoid putting the same `composition'
4084 property on the adjacent regions.
4085
4086 2001-01-16 Gerd Moellmann <gerd@gnu.org>
4087
4088 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
4089 (Fscroll_right, Fscroll_left): Set it here instead, if called
4090 interactively.
4091
4092 * buffer.c (Fset_buffer_modified_p): Set buffer's
4093 prevent_redisplay_optimizations_p flag.
4094
4095 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
4096 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
4097 with additional arg.
4098
4099 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
4100 Change prototype.
4101
4102 * xdisp.c (redisplay_preserve_echo_area): Add parameter
4103 FROM_WHERE, for debugging.
4104
4105 2001-01-16 Kenichi Handa <handa@etl.go.jp>
4106
4107 * ccl.c (Fregister_ccl_program): Handle the return value of
4108 resolve_symbol_ccl_program correctly.
4109 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
4110
4111 2001-01-15 Gerd Moellmann <gerd@gnu.org>
4112
4113 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
4114 has gone in the meantime, use face MOUSE_FACE_ID.
4115
4116 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
4117 If x_display_info_for_display returns null, don't try to close
4118 the display; we didn't open it.
4119
4120 * dispnew.c (save_or_restore_current_matrices): Function removed.
4121 (save_current_matrix, restore_current_matrix): New functions.
4122 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
4123 restore the frame's current matrix. Due to the glyph pointer
4124 setup done in adjust_glyph_matrix, there is no easy way to make
4125 saving the current matrix in the desired matrix generally correct,
4126 so don't try it.
4127
4128 2001-01-15 Kenichi Handa <handa@etl.go.jp>
4129
4130 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
4131 truncation glyphs.
4132 (display_line): Optimize for wide characters.
4133 (display_string): Don't try to display a multi-column character
4134 partially. On ttys, produce more than one truncation glyph for
4135 multi-column characters that don't fit on the line.
4136
4137 2001-01-13 Kenichi Handa <handa@etl.go.jp>
4138
4139 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
4140 Define it instead of WORDS_BIGENDIAN. Caller changed.
4141
4142 2001-01-13 Jason Rumney <jasonr@gnu.org>
4143
4144 * w32fns.c (Fimage_size, image_ascent, lookup_image)
4145 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
4146 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4147 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
4148
4149 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
4150 (x_draw_image_relief, x_draw_image_foreground_1)
4151 (x_draw_image_glyph_string): Adapt to change of image margins.
4152
4153 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
4154 variables.
4155
4156 * w32bdf.c (search_file_line, get_cached_font_char)
4157 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
4158
4159 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
4160
4161 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
4162 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
4163 (Fw32_send_sys_command): Remove unused variables.
4164 (w32_msg_pump): Add parentheses.
4165
4166 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
4167 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
4168 Add parentheses.
4169
4170 2001-01-12 Gerd Moellmann <gerd@gnu.org>
4171
4172 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
4173 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
4174 being a pair of margins.
4175 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
4176 to DEFVAR_LISP. Extend doc.
4177
4178 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
4179 margins.
4180 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
4181 pair of integers `(X . Y)', use X for the horizontal and Y for the
4182 vertical margin.
4183 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
4184 (parse_image_spec): Check it.
4185 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4186 (tiff_format, gif_format, gs_format):
4187 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
4188
4189 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4190 (x_draw_image_relief, x_draw_image_foreground_1)
4191 (x_draw_image_glyph_string): Adapt to the change of image margins.
4192
4193 * dispextern.h (struct image): Replace member `margin' with
4194 `hmargin' and `vmargin'.
4195
4196 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
4197 and GLYPHS.
4198
4199 * dispnew.c (update_text_area): Put code which decrements the
4200 stop position when the row's face extends to the end of the
4201 line in #if 0.
4202
4203 * xfns.c (x_set_mouse_color): Fix color allocation.
4204
4205 * keyboard.c: Call get_local_map with new argument list.
4206
4207 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
4208
4209 * intervals.h (enum map_property): Removed.
4210 (get_local_map): Change prototype.
4211
4212 * keymap.c: Call get_local_map with new argument list.
4213 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
4214
4215 2001-01-11 Gerd Moellmann <gerd@gnu.org>
4216
4217 * xdisp.c (build_desired_tool_bar_string): Correct the computation
4218 of the size needed for the tool bar string. For the last image,
4219 use a `display' property that reaches to the end of the string.
4220
4221 * xselect.c (selection_request_dpyinfo): New variable.
4222 (x_handle_selection_request): Set it.
4223 (x_selection_request_lisp_error): Don't call
4224 x_decline_selection_request if selection request's display has
4225 been closed.
4226
4227 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
4228 Do the unregister_colors before calling XFreeColors.
4229
4230 2001-01-10 Dave Love <fx@gnu.org>
4231
4232 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
4233 ${SOME_MACHINE_LISP}, not ${lisp}.
4234
4235 2001-01-10 Gerd Moellmann <gerd@gnu.org>
4236
4237 * xdisp.c (display_line): On ttys, produce more than one truncation
4238 glyph for multi-column characters that don't fit on the line.
4239
4240 * xselect.c (x_reply_selection_request): Add a comment.
4241
4242 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
4243 XkbGetNames instead of XkbGetKeyboard.
4244
4245 2001-01-10 Dave Love <fx@gnu.org>
4246
4247 * sysdep.c (random): Revert the declaration.
4248
4249 2001-01-09 Gerd Moellmann <gerd@gnu.org>
4250
4251 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
4252 Call function string_bytes.
4253 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
4254
4255 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
4256 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
4257 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
4258 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
4259 the current sblock.
4260 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
4261 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
4262 after sweeping strings, and at the end.
4263 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
4264
4265 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
4266 ensure that pop_message is called.
4267
4268 * keyboard.c (Fexecute_extended_command): Use a
4269 record_unwind_protect to ensure that pop_message is called.
4270
4271 * lisp.h (push_message_unwind): Add prototype.
4272
4273 * xdisp.c (push_message_unwind): New function.
4274
4275 * fileio.c (do_auto_save_unwind): Do the pop_message here
4276 instead of in Fdo_auto_save.
4277 (Fdo_auto_save): Don't call pop_message.
4278
4279 2001-01-08 Ken Raeburn <raeburn@gnu.org>
4280
4281 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
4282 in inner block.
4283
4284 2001-01-08 Gerd Moellmann <gerd@gnu.org>
4285
4286 * window.c (window_scroll_pixel_based): Adjust glyph matrices
4287 when increasing window's vscroll.
4288
4289 * macros.c (Qkbd_macro_termination_hook): New variable.
4290 (syms_of_macros): Initialize and staticpro it.
4291 (pop_kbd_macro): Run kbd-macro-termination-hook.
4292
4293 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
4294
4295 2001-01-07 Dave Love <fx@gnu.org>
4296
4297 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
4298 arglist, for documentation's sake.
4299
4300 2001-01-06 Andrew Innes <andrewi@gnu.org>
4301
4302 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
4303 of *.pdb.
4304
4305 2001-01-05 Andrew Innes <andrewi@gnu.org>
4306
4307 * term.c (update_end): Don't check updating_frame; for some reason
4308 this can be 0 sometimes, such as after dismissing a popup menu,
4309 and isn't necessary given the explicit frame argument.
4310
4311 2001-01-05 Gerd Moellmann <gerd@gnu.org>
4312
4313 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
4314 on some systems, and an unsigned long on others, like FreeBSD 4.1.
4315
4316 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4317
4318 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
4319
4320 * xfns.c (x_create_tip_frame): Preserve the value of
4321 face_change_count around the creation of the tip frame.
4322
4323 * xfns.c (last_show_tip_args): New variable.
4324 (compute_tip_xy): New function.
4325 (Fx_show_tip): Reuse an existing tip frame, if possible.
4326 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
4327
4328 2001-01-04 Dave Love <fx@gnu.org>
4329
4330 * editfns.c (Fformat): Doc fix.
4331
4332 * systime.h (set_file_times): Prototype.
4333
4334 * widget.h (EmacsFrameSetCharSize_): Prototype.
4335
4336 * sysdep.c (random, srandom): Declare explicitly.
4337
4338 * dispextern.h (move_it_vertically_backward): Declare.
4339
4340 2001-01-04 Gerd Moellmann <gerd@gnu.org>
4341
4342 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
4343 like in Fx_create_frame.
4344
4345 * xfaces.c (set_font_frame_param): Don't do anything for
4346 non-graphical frames.
4347
4348 * window.c (Fdelete_other_windows): Set window's window_end_valid
4349 to nil when changing the window's start. Don't change the
4350 window's start when its top position hasn't changed. If we do,
4351 this will set the window's optional_new_start, which act's like a
4352 force_start during redisplay with C-x 1 M-> under particular
4353 circumstances (see report from Per Starback to emacs-pretest-bug
4354 from 2000-12-13.).
4355
4356 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4357
4358 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
4359 short cut at the start of the function. Add an assertion.
4360 (reseat_at_next_visible_line_start): Add an assertion.
4361
4362 * window.c (Frecenter): When changing the window start, set the
4363 window's window_end_valid to nil.
4364 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
4365
4366 * dispextern.h (move_it_past_eol): Add prototype.
4367
4368 * xdisp.c (move_it_past_eol): New function.
4369
4370 * window.c (Fwindow_end): Doc fix.
4371
4372 2001-01-03 Dave Love <fx@gnu.org>
4373
4374 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
4375
4376 2001-01-03 Gerd Moellmann <gerd@gnu.org>
4377
4378 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
4379 the enabled_p flag of the glyph row at window_end_vpos to 0.
4380 (handle_single_display_prop): Fix last change.
4381
4382 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4383
4384 * window.c (Frecenter): Doc fix.
4385
4386 2001-01-02 Andrew Innes <andrewi@gnu.org>
4387
4388 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
4389
4390 * frame.h (output_method): Add output_w32_console method.
4391 (FRAME_W32_CONSOLE_P): New macro.
4392
4393 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
4394 use output_w32_console method.
4395 (Qw32_console): New Lisp_Object.
4396 (Fframep): Return it.
4397 (syms_of_frame): Init it.
4398 (Fframe_parameters): Report w32console as font for w32_console frames.
4399
4400 * xfaces.c (realize_default_face): Set face foreground and
4401 background to unspecified for w32_console frames.
4402 (realize_face): Realize face cache for w32_console frames.
4403 (realize_tty_face): Accept w32_console frames.
4404
4405 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
4406 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
4407 necessary, even if running interactively.
4408
4409 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
4410 w32_console frames.
4411
4412 * w32term.c (x_update_begin):
4413 (x_update_end):
4414 (x_clear_frame):
4415 (x_ins_del_lines):
4416 (x_change_line_highlight):
4417 (x_delete_glyphs):
4418 (w32_ring_bell):
4419 (x_update_begin):
4420 (x_update_end):
4421 (w32_reassert_line_highlight):
4422 (w32_frame_rehighlight):
4423 (w32_frame_raise_lower): Do nothing if not w32 frame.
4424
4425 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
4426
4427 * w32fns.c (Fx_display_color_cells): Determine correct value, when
4428 system doesn't tell us directly.
4429 (Fx_display_visual_class): Implement properly.
4430
4431 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4432
4433 * window.c (Frecenter): Handle centering in graphical frames
4434 specially. Centering on the basis of line counts doesn't work
4435 reliably with variable-height lines.
4436
4437 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
4438
4439 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
4440 and al[].
4441
4442 * composite.c (run_composition_function): Remove unused var `val'.
4443 (update_compositions): Remove unused variable `hook'.
4444
4445 * intervals.c (get_local_map): Remove unused variable `tem'.
4446
4447 * doprnt.c (doprnt1): Remove unused variable `size'.
4448
4449 * fns.c (Flength): Remove unused variable `tail'.
4450 (Fdelete): Remove unused variable `size'.
4451
4452 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
4453 and `gcpro2'.
4454
4455 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
4456
4457 * data.c (find_symbol_value): Remove extra 3rd argument in the
4458 call to swap_in_symval_forwarding.
4459
4460 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
4461
4462 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
4463 (trivial_regexp_p): Remove unused variable `c'.
4464 (boyer_moore): Remove unused variable `k'.
4465
4466 * indent.c (current_column): Remove unused variable `stopchar'.
4467 (Fcompute_motion): Remove unused variable `contin'.
4468
4469 * casefiddle.c (casify_object): Remove unused variable `tolen'.
4470
4471 * dired.c (directory_files_internal): Fix a typo in a comment.
4472 Remove an unused variable `handler'.
4473 (file_name_completion): Remove unused function-scope variable `dp'.
4474 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
4475 on BSD4_2.
4476
4477 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
4478
4479 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
4480 and `buf'.
4481 (Fmarker_insertion_type): Remove unused variable `buf'.
4482
4483 * insdel.c (make_gap): Remove unused variable `result'.
4484
4485 * keyboard.c (record_char): Remove unused function-scope var `help'.
4486 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
4487 (menu_bar_items): Remove unused function-scope variable `tem'.
4488
4489 * fontset.c (fontset_ref): Remove unused variable `i'.
4490 (fontset_set): Remove unused variables `j' and `tmp'.
4491 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
4492 (make_fontset_for_ascii_face): Remove unused variable `name'.
4493 (fs_load_font): Remove unused variable `font_idx'.
4494 (fs_query_fontset): Remove unused function-local variable `fontset'.
4495 (list_fontsets): Remove unused variable `tail'.
4496 (Fnew_fontset): Remove unused variables `family' and `registry'.
4497 (accumulate_font_info): Remove unused variable `tmp'.
4498 (Ffontset_font): Remove unused variable `id'.
4499 (syms_of_fontset): Remove unused variable `i'.
4500
4501 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
4502 to x_term_init.
4503 (lookup_image): Remove unused variable `file'.
4504 (xbm_load): Remove unused variables `bitmap_data', `height', and
4505 `width'. Remove function-local variable `i', leave the
4506 block-local one.
4507 (gif_load): Remove unused variable `inc'.
4508
4509 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
4510 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
4511 leave only the one in the inner block.
4512
4513 * xfaces.c (face_fontset, realize_default_face): Remove unused
4514 variable `fontset'.
4515 (face_at_buffer_position): Remove unused variable `multibyte_p'.
4516
4517 * term.c (encode_terminal_code): Remove unused variable `c'.
4518
4519 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
4520 char *' instead of `char *'.
4521
4522 * category.c (Fcategory_docstring): Remove unused variable `doc'.
4523 (Fget_unused_category): Remove unused variable `docstring_vector'.
4524 (Fchar_category_set): Remove unused variables `val', `charset',
4525 `c1' and `c2'.
4526
4527 * coding.c (detect_coding_iso2022, setup_coding_system):
4528 Remove unused variable `i'.
4529 (detect_coding_mask): Remove unused variable `idx'.
4530 (detect_coding): Remove unused variable `i'.
4531 (ccl_coding_driver): Remove unused variable `result'.
4532 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
4533 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
4534 (encode_coding_string): Remove unused variables `gcpro1' and
4535 `saved_coding_symbol'.
4536 (Ffind_coding_systems_region_internal): Remove function-local
4537 variable args[], leave only the block-local one.
4538 (code_convert_region1): Remove unused variable `len'.
4539
4540 * charset.c (char_printable_p): Remove unused variable `chars'.
4541 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
4542 (str_to_multibyte): Remove unused variable `c'.
4543
4544 * window.c (size_window): Remove block-local variable `min_size'.
4545
4546 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
4547 `header_line_height'.
4548 (append_space, extend_face_to_end_of_line): Declare `saved_what'
4549 enum display_element_type.
4550
4551 2001-01-02 Gerd Moellmann <gerd@gnu.org>
4552
4553 * xterm.c (x_connection_closed): Catch X errors around all
4554 statements that call X. Save away the error message in a local copy.
4555
4556 * xterm.c (x_connection_closed): Set handling_signal to 0 at
4557 the start.
4558
4559 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
4560 in or at the start of invisible text.
4561
4562 * dispnew.c (update_window): Don't check_current_matrix_flags.
4563
4564 2001-01-01 Jason Rumney <jasonr@gnu.org>
4565
4566 * w32fns.c (x_figure_window_size): Do not allow new_height and
4567 new_width of frame to override specified values.
4568
4569 2000-12-30 Kenichi Handa <handa@etl.go.jp>
4570
4571 * composite.c (find_composition): Fix a code for searching backward.
4572
4573 2000-12-29 Gerd Moellmann <gerd@gnu.org>
4574
4575 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
4576 (update_window) [GLYPH_DEBUG]: Call it.
4577 (scrolling_window): Prevent including current rows which are below
4578 what's displayed in the window.
4579
4580 * xdisp.c (try_window_reusing_current_matrix)
4581 <new start <= old start>: Disable rows in the current matrix
4582 which are below the window after scrolling.
4583
4584 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
4585 is zero. It's not worth the complexity.
4586 (invisible_text_between_p): Put in #if 0 because unused.
4587
4588 2000-12-28 Gerd Moellmann <gerd@gnu.org>
4589
4590 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
4591 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
4592
4593 * keyboard.c (echo_char): If C is an integer, always call
4594 push_key_description. Former code could signal an invalid
4595 character error.
4596
4597 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
4598 If set, print multibyte text.
4599 (Fsingle_key_description): Call push_key_description with
4600 FORCE_MULTIBYTE set.
4601 (describe_buffer_bindings): Likewise.
4602
4603 * lisp.h (push_key_description): Add prototype.
4604
4605 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
4606 around the call to redisplay_internal.
4607
4608 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4609
4610 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
4611
4612 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4613
4614 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
4615 (ccl_driver): New local variable `extra_bytes'.
4616
4617 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
4618
4619 * coding.c (setup_coding_system):
4620 Initialize coding->spec.ccl.eight_bit_carryover.
4621 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
4622
4623 2000-12-28 Kenichi Handa <handa@etl.go.jp>
4624
4625 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
4626 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
4627 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
4628 (decode_composition_emacs_mule): New function.
4629 (decode_coding_emacs_mule): Decode composition sequence by calling
4630 decode_composition_emacs_mule.
4631 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
4632 (encode_coding_emacs_mule): Changed from macro to function.
4633 If a text contains compositions, encode them correctly.
4634 (setup_coding_system): Set coding->commong_flags for emacs-mule so
4635 that decoding and encoding are required.
4636
4637 2000-12-27 Gerd Moellmann <gerd@gnu.org>
4638
4639 * xfaces.c (PT_PER_INCH): New macro.
4640 (xlfd_point_size): Compute real point size from font's pixel size.
4641 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
4642 instead of 72.
4643
4644 * .gdbinit: Comment out the line pointing to the Lesstif source
4645 directory.
4646
4647 * window.c (Frecenter): Use displayed_window_lines instead
4648 of window_internal_height.
4649
4650 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4651 instead of x-toolkit-scroll-bars-p.
4652 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4653
4654 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
4655 instead of x-toolkit-scroll-bars-p.
4656 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
4657
4658 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
4659 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
4660 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
4661 New variables.
4662 (add_window_display_history, add_frame_display_history)
4663 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
4664 (build_frame_matrix_from_leaf_window): Remove unused code.
4665 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
4666 redisplay history.
4667 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
4668 (update_window) [GLYPH_DEBUG]: Likewise.
4669 (syms_of_display): Defsubr dump-redisplay-history.
4670
4671 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4672
4673 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
4674 the end of the prompt. Set echo_after_prompt to the offset
4675 of echoptr in echobuf.
4676
4677 * xdisp.c (init_from_display_pos): Pop until the iterator's
4678 stack is empty; there may be frames for stretch or images
4679 on the stack.
4680
4681 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
4682 (save_or_restore_current_matrix): New function for the same
4683 purpose, but more efficient.
4684 (adjust_frame_glyphs_for_frame_redisplay): Use it.
4685
4686 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
4687
4688 * xdisp.c (syms_of_xdisp): Fix last change.
4689
4690 2000-12-23 Gerd Moellmann <gerd@gnu.org>
4691
4692 * xdisp.c (syms_of_xdisp): Doc fix.
4693
4694 * xdisp.c (redisplay_window): Remove label restore_buffers;
4695 use finish_scroll_bars instead to make sure that scroll bars
4696 are redeemed. If we don't do this, flickering can result from
4697 scroll bars being destroyed and recreated.
4698
4699 2000-12-22 Jason Rumney <jasonr@gnu.org>
4700
4701 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
4702 in the wrong colors when the foreground is not black.
4703 (expose_window): Don't redraw the window that's currently being
4704 updated.
4705
4706 2000-12-22 Gerd Moellmann <gerd@gnu.org>
4707
4708 * window.c (size_window): When setting the window's too_small_ok
4709 flag, compare old size with minimum size depending on WIDTH_P,
4710 don't compare with window_min_width.
4711
4712 * window.c (delete_window): Simplify somewhat.
4713 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
4714 freeing window matrices. The flag windows_or_buffers_changed is
4715 set, so the next redisplay will consider all windows; this should
4716 suffice.
4717
4718 2000-12-22 Kenichi Handa <handa@etl.go.jp>
4719
4720 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
4721
4722 * ccl.h (struct ccl_program): New member cr_consumed.
4723
4724 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
4725 (CCL_READ_CHAR): Handle EOL conversion here.
4726 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
4727
4728 2000-12-21 Gerd Moellmann <gerd@gnu.org>
4729
4730 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
4731
4732 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
4733 otherwise tabs of different size compare equal.
4734
4735 * callint.c (Fcall_interactively): Prevent a compiler warning.
4736
4737 * print.c (print_unwind): Return nil.
4738 (PRINTDECLARE): Initialize all local variables.
4739 (print_preprocess): Add a default case.
4740
4741 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
4742
4743 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
4744
4745 * window.c (delete_window, Fsplit_window)
4746 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
4747
4748 * dispextern.h (ensure_frame_matrix): Function declaration removed.
4749
4750 * dispnew.c (ensure_frame_matrix): Removed.
4751 (save_frame_matrix, restore_frame_matrix): New functions.
4752 (adjust_frame_glyphs_for_frame_redisplay): Use them.
4753
4754 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
4755 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
4756
4757 2000-12-21 Andrew Innes <andrewi@gnu.org>
4758
4759 * w32term.c (x_update_begin): Regenerate the palette here, rather
4760 than for each window.
4761
4762 * w32xfns.c (select_palette): Avoid calling SelectPalette if
4763 palette is NULL, since this corrupts memory! Also get
4764 display_info reference from frame.
4765
4766 2000-12-21 Jason Rumney <jasonr@gnu.org>
4767
4768 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
4769
4770 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
4771 to avoid returning without releasing it.
4772
4773 2000-12-21 Kenichi Handa <handa@etl.go.jp>
4774
4775 * keymap.c (push_key_description): Don't convert eight-bit-control
4776 and eight-bit-graphic to multibyte character.
4777
4778 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
4779 generic character and CODE1 is nil, return the smallest character
4780 in CHARSET.
4781
4782 2000-12-20 Dave Love <fx@gnu.org>
4783
4784 * s/osf5-0.h (NSIG): Don't redefine.
4785
4786 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
4787
4788 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
4789 excluding menu-bar and tool-bar.
4790 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
4791 (menu_item_p): Remove.
4792 (where_is_internal_1): Don't ignore menu-items.
4793
4794 2000-12-20 Gerd Moellmann <gerd@gnu.org>
4795
4796 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
4797 into account.
4798
4799 * window.c (make_window): Initialize window's min_hscroll.
4800 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
4801 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
4802 to zero.
4803 (struct saved_window): New member min_hscroll.
4804 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
4805 (Fset_window_configuration): Set window's min_hscroll.
4806 (save_window_save): Save window's min_hscroll.
4807 (compare_window_configurations): Compare min_hscroll values.
4808
4809 * window.h (struct window): New member min_hscroll.
4810
4811 * keyboard.c (echo_prompt): Prevent a compiler warning.
4812
4813 * xdisp.c (try_cursor_movement): Fix last change. The real
4814 condition is that PT is at the end of the row, and should
4815 be displayed at the start of the next row.
4816
4817 * xdisp.c (try_cursor_movement): If we end on a partially
4818 visible line, end we already decided to scroll, return -1.
4819
4820 * dispextern.h (ensure_frame_matrix): Add prototype.
4821
4822 * window.c (delete_window, Fsplit_window)
4823 (Fset_window_configuration): Call ensure_frame_matrix.
4824
4825 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4826 New functions.
4827 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4828 completed, call fake_current_matrices instead of marking frame
4829 garbaged.
4830
4831 2000-12-20 Jason Rumney <jasonr@gnu.org>
4832
4833 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4834
4835 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4836
4837 * fns.c (Frequire): Doc fix.
4838
4839 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4840
4841 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4842
4843 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4844 currently displaying a message.
4845
4846 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4847 xterm.h.
4848 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4849
4850 2000-12-18 Andrew Innes <andrewi@gnu.org>
4851
4852 * w32.c (w32_strerror): New function.
4853
4854 * w32.h (w32_strerror): New extern.
4855
4856 * w32fns.c (Fw32_shell_execute): Use it.
4857
4858 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4859
4860 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4861
4862 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4863
4864 * msdos.c (IT_set_face): Obey inverse_video.
4865
4866 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4867
4868 * dired.c (directory_files_internal): Always return decoded filenames.
4869
4870 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4871
4872 * xterm.c (x_connection_closed): Prevent being called recursively
4873 because of an error condition in XtCloseDisplay.
4874
4875 * xdisp.c (init_iterator): If noninteractive, and the frame's
4876 face cache is null, make one.
4877
4878 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4879
4880 * process.c (wait_reading_process_input): Check for pending
4881 input when running timers.
4882
4883 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4884
4885 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4886
4887 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4888
4889 * process.c (read_process_output): Don't run a filter if the code
4890 decoder produces nothing but carryover.
4891
4892 2000-12-17 Andrew Innes <andrewi@gnu.org>
4893
4894 * w32.c (sys_rename): Only check errno against EEXIST, and not
4895 EACCES, when determining whether rename failed because the target
4896 exists. This was resulting in indefinite looping on Windows 9x if
4897 the source file was locked by another process.
4898
4899 * w32fns.c (Ffile_system_info): New function.
4900 (syms_of_w32fns): Defsubr it.
4901
4902 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4903
4904 * window.c (coordinates_in_window): Fix computation for
4905 position on vertical line between mode lines.
4906
4907 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4908 Don't alter tip_frame or tip_window.
4909 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4910 was deleted.
4911
4912 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4913 Don't alter tip_frame or tip_window.
4914 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4915 was deleted.
4916
4917 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4918
4919 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4920 be consistent with the doc string. Reported by NAKAJIMA Mikio
4921 <minakaji@osaka.email.ne.jp>.
4922
4923 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4924
4925 * xfaces.c (Vface_ignored_fonts): New variable.
4926 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4927 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4928
4929 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4930
4931 * dispnew.c (update_window): Detect pending input every nth line
4932 updated, i.e. do it depending on real work done, and not on the
4933 vpos of the line.
4934
4935 * xterm.c (expose_window): Don't redraw the window that's
4936 currently being updated.
4937
4938 * window.c (Fset_window_point): Remove test for
4939 cursor_in_non_selected_windows.
4940
4941 * lread.c (read1): Recognize end of file after `\\'.
4942
4943 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4944 not unwind_create_frame.
4945
4946 2000-12-15 Dave Love <fx@gnu.org>
4947
4948 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4949 bcopy & al.
4950
4951 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4952
4953 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4954
4955 * coding.c (setup_coding_system): Clear all members of the struct
4956 coding_system at first.
4957 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4958 argument.
4959 (code_convert_region): Don't override coding->src_multibyte and
4960 coding->dst_multibyte.
4961
4962 * fns.c (Fmd5): Docstring improved.
4963
4964 2000-12-15 Miles Bader <miles@gnu.org>
4965
4966 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4967 are actually marked as mode-lines; otherwise use
4968 estimate_mode_line_height.
4969
4970 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4971
4972 * editfns.c (Fformat): Prevent a buffer overrun when the format
4973 specifies a precision.
4974
4975 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4976
4977 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4978 argument is outside the range [2..3].
4979
4980 2000-12-14 Andrew Innes <andrewi@gnu.org>
4981
4982 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4983 nothing to do. Bind inhibit-quit.
4984 (tip_frame): Make it a Lisp_Object.
4985 (x_create_tip_frame): Set tip_frame after it has been added to
4986 Vframe_list.
4987 (Fx_show_tip): Don't set tip_frame here.
4988 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4989 (unwind_create_frame, unwind_create_tip_frame): New functions.
4990 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4991 while a frame is only partially constructed.
4992
4993 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4994 (x_free_frame_resources): New function.
4995 (x_destroy_window): Use it.
4996
4997 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4998
4999 * xfns.c (Fx_backspace_delete_keys_p): New function.
5000 (syms_of_xfns): Defsubr it.
5001
5002 * config.in (HAVE_XKBGETKEYBOARD): Add.
5003
5004 2000-12-14 Kenichi Handa <handa@etl.go.jp>
5005
5006 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
5007 Always store string in multibyte representation in echobuf.
5008 (echo_char): Always store string in multibyte representation in
5009 echobuf.
5010 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
5011 (read_key_sequence): Adjusted for the change of echo_prompt.
5012
5013 * fns.c (Fmd5): Docstring improved.
5014
5015 * lisp.h (detect_coding_system): Prototype adjusted.
5016
5017 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
5018 (detect_coding_emacs_mule, detect_coding_iso2022,)
5019 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
5020 (detect_coding_utf_16, detect_coding_ccl): Make them static.
5021 New argument MULTIBYTEP. Callers changed.
5022 (detect_coding_mask, detect_coding_system): New argument
5023 MULTIBYTEP. Callers changed.
5024 (decode_coding_string): Set coding->src_multibyte and
5025 coding->dst_multibyte before calling detect_coding and detect_eol.
5026 Update them after some coding system is detected.
5027
5028 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
5029
5030 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
5031
5032 * keyboard.c (menu_bar_items, tool_bar_items):
5033 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
5034
5035 2000-12-13 Gerd Moellmann <gerd@gnu.org>
5036
5037 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
5038 New variables.
5039 (unwind_create_frame, unwind_create_tip_frame): New functions.
5040 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
5041 while a frame is only partially constructed.
5042
5043 * xterm.h (x_free_frame_resources): Declare.
5044
5045 * xterm.c (x_free_frame_resources): New function.
5046 (x_destroy_window): Use it.
5047
5048 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
5049 don't interrupt the update for pending input initially, i.e.
5050 update at least some lines.
5051
5052 * keyboard.c (do_mouse_tracking): Make externally visible.
5053
5054 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
5055
5056 * xfns.c (gray_bitmap_bits): Declare `char *'.
5057
5058 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5059
5060 * xdisp.c (display_tool_bar_line): Make sure that tool bar
5061 lines start with a relief line.
5062
5063 2000-12-12 Dave Love <fx@gnu.org>
5064
5065 * window.c (Fdisplay_buffer): Doc fix.
5066 (Fwindow_list): Remove unused var.
5067
5068 * buffer.h (mmap_set_vars): Declare.
5069
5070 * window.h (Fset_window_point): Declare.
5071
5072 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
5073
5074 * msdos.c (fast_find_position): Don't overstep the last window row.
5075 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
5076 variable `area'. When looking for a row under (X,Y), give up if some
5077 of the previous rows is not enabled.
5078
5079 2000-12-12 Gerd Moellmann <gerd@gnu.org>
5080
5081 * window.c (Fset_window_point): If displaying cursors in windows
5082 other than the selected window, make sure redisplay updates
5083 other windows to show the new value of point in the window.
5084
5085 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
5086
5087 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
5088 the buffer is the sole visible buffer when in the mini-buffer.
5089
5090 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
5091 Bind `inhibit-read-only' to t.
5092 (unwind_with_echo_area_buffer): Use AREF.
5093
5094 * xfns.c (Fx_hide_tip): Simplified.
5095
5096 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
5097 instead of `1'.
5098
5099 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
5100
5101 2000-12-11 Gerd Moellmann <gerd@gnu.org>
5102
5103 * xfns.c (Fx_hide_tip): Fix last change.
5104
5105 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
5106 nothing to do. Bind inhibit-quit.
5107 (tip_frame): Make it a Lisp_Object.
5108 (x_create_tip_frame): Set tip_frame after it has been added to
5109 Vframe_list.
5110 (Fx_show_tip): Don't set tip_frame here.
5111
5112 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
5113
5114 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
5115 Lisp_Object.
5116
5117 * dispextern.h: Change external declaration of tip_frame.
5118
5119 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
5120 return an empty string.
5121
5122 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
5123 of the window's update_mode_line flag, since the former is set by
5124 force-mode-line-update, not the latter. This makes
5125 column-number-mode slightly faster.
5126
5127 * xdisp.c (try_window_id) <all changes above window start>:
5128 Set the cursor.
5129
5130 2000-12-11 Paul Eggert <eggert@twinsun.com>
5131
5132 * config.in (HAVE_FTELLO): Remove.
5133 (HAVE_FSEEKO): Add.
5134 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
5135 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
5136 HAVE_FTELLO.
5137 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
5138 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
5139
5140 2000-12-11 Miles Bader <miles@gnu.org>
5141
5142 * window.c (displayed_window_lines): Don't round up when
5143 converting empty space at bottom to lines.
5144 Handle non-newline-terminated final lines properly.
5145 (Fwindow_text_height): New function (used to be in lisp).
5146 (syms_of_window): Initialize it.
5147
5148 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
5149
5150 * syntax.c (scan_lists): Check that the right quote char has the
5151 right Sstring syntax when jumping over strings.
5152 (init_syntax_once): Use Smax rather than 13.
5153
5154 2000-12-09 Miles Bader <miles@gnu.org>
5155
5156 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
5157 with PARTIALLY, inverting the sense.
5158 (window_scroll_pixel_based): Scroll partially visible lines into
5159 place if we hit the beginning or end of the buffer.
5160 (displayed_window_lines): Don't include partially visible lines.
5161 (Fmove_to_window_line): Skip past any partially visible first line.
5162
5163 2000-12-08 Gerd Moellmann <gerd@gnu.org>
5164
5165 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
5166
5167 * tparam.c (tparam1): Change the way buffers are reallocated to be
5168 portable and less obfuscated.
5169
5170 * termcap.c (tgetent): Change the way buffers are reallocated to
5171 be portable and less obfuscated.
5172
5173 * macros.c (store_kbd_macro_char): Change the way buffers are
5174 reallocated to be portable and less obfuscated.
5175
5176 * lread.c (read1): Change the way buffers are reallocated to be
5177 portable and less obfuscated.
5178
5179 * doc.c (Fsubstitute_command_keys): Change the way buffers
5180 are reallocated so that it is portable.
5181
5182 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
5183
5184 * dosfns.c (Ffile_system_info): New function.
5185 (syms_of_dosfns): Defsubr it.
5186
5187 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
5188
5189 * alloc.c (gc_sweep): Add comment.
5190
5191 2000-12-07 Gerd Moellmann <gerd@gnu.org>
5192
5193 * sound.c (vox_configure): Change order of ioctls.
5194 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
5195 Ignore errors when changing volume.
5196 (vox_close): Don't reset the device.
5197
5198 * process.c (read_process_output): Make sure the process marker's
5199 position is valid when the process buffer is changed in
5200 after-change functions. W3 does that.
5201
5202 * xfns.c (x_free_gcs): New function.
5203
5204 * xterm.h (x_free_gcs): Add prototype.
5205
5206 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
5207 freeing GCs here.
5208
5209 * xterm.c (x_destroy_window): Call x_free_gcs so that
5210 resources of non-toolkit X windows will be freed.
5211
5212 2000-12-07 Andrew Innes <andrewi@gnu.org>
5213
5214 * w32fns.c (xlfd_charset_of_font): Fix last change.
5215
5216 2000-12-06 Dave Love <fx@gnu.org>
5217
5218 * md5.h (__P): Don't define -- it comes from config.h.
5219
5220 * strftime.c: Change some #if foo to #ifdef foo.
5221
5222 2000-12-06 Andrew Innes <andrewi@gnu.org>
5223
5224 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
5225
5226 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
5227 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
5228 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
5229
5230 2000-12-06 Gerd Moellmann <gerd@gnu.org>
5231
5232 * alloc.c (gc_sweep): Prevent symbols read during loadup
5233 from being freed.
5234
5235 * xdisp.c (underlying_face_id): New function.
5236 (handle_face_prop, face_before_or_after_it_pos): Use it
5237 to determine the face ``under'' a string. Let strings inherit
5238 the face of the buffer under them.
5239
5240 * xfaces.c (face_at_string_position): Update function comment.
5241
5242 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
5243 matrix if the window's left position has changed; we need to
5244 redraw it in this case.
5245
5246 * dispextern.h (struct glyph_matrix): Add member window_left_x.
5247
5248 * window.c (coordinates_in_window): Check mouse on mode-line or
5249 header-line first.
5250
5251 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
5252 advertized by the function documentation.
5253
5254 * window.c (syms_of_window): Doc fix.
5255
5256 * sound.c (vox_configure): Set volume for left and right channel.
5257 (sound_cleanup): Return nil.
5258
5259 * xdisp.c (move_it_by_lines): Fix paren typo.
5260
5261 * xterm.c (x_load_font): Don't use the font's max_bounds for
5262 computing the height of the font. If max_bounds' ascent or
5263 descent are greater than the font's ascent or descent, this means
5264 glyphs overlap, which should be handled now by redisplay.
5265
5266 * window.c (Veven_window_heights): New variable.
5267 (syms_of_window): DEFVAR_LISP it.
5268 (Fdisplay_buffer): Check Veven_window_heights before evening the
5269 window heights.
5270
5271 2000-12-06 Miles Bader <miles@gnu.org>
5272
5273 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
5274 update `default-frame-alist' instead of setting no frame parameters.
5275
5276 2000-12-06 Kenichi Handa <handa@etl.go.jp>
5277
5278 * composite.c (update_compositions): Fix typo (use the correct
5279 variable).
5280
5281 2000-12-05 Jason Rumney <jasonr@gnu.org>
5282
5283 * md5.h: Remove underscores from function declarations.
5284 (__attribute__, __alignof__) [!__GNUC__]: Define.
5285
5286 * md5.c: Delay include of md5.h until after namespace cleaning.
5287
5288 * makefile.w32-in (fns.o): Depend on md5.h
5289 (md5.o): New target.
5290 (sunfns.o): Remove.
5291
5292 * makefile.nt: Likewise.
5293
5294 2000-12-05 Jason Rumney <jasonr@altavista.net>
5295
5296 * w32term.c (expose_area): Complete last change.
5297
5298 2000-12-05 Ken Raeburn <raeburn@gnu.org>
5299
5300 * minibuf.c: Include intervals.h.
5301
5302 2000-12-05 Jason Rumney <jasonr@gnu.org>
5303
5304 * w32term.c (x_produce_glyphs): If a font for a component of
5305 a composition is not found, use 1 pixel dot ascent and 0 dot
5306 descent value to avoid displaying terribly tall empty boxes.
5307 (expose_area): Pass x-coordinate relative to the exposed
5308 area to x_draw_glyphs instead of a window-relative coordinate.
5309
5310 2000-12-05 Gerd Moellmann <gerd@gnu.org>
5311
5312 * xdisp.c (next_element_from_ellipsis): Save face before selective
5313 display in saved_face_id, and set face_before_selective_p.
5314 (reseat_1): Reset face_before_selective_p.
5315 (append_space, extend_face_to_end_of_line): If iterator's
5316 face_before_selective_p is set, use the face from saved_face_id.
5317 (extend_face_to_end_of_line): For tty frames, make sure to
5318 use the right face id when producing spaces at the end of
5319 the line.
5320
5321 * dispextern.h (struct it): Add face_before_selective_p.
5322
5323 * keyboard.c (record_char): Don't record identical help-echo
5324 events in recent_keys.
5325
5326 * xterm.c [USE_X_TOOLKIT]: Close the display.
5327 (xim_close_dpy): Handle case that the display has been closed.
5328
5329 * xterm.c (x_destroy_window): Reset the frame's X window after
5330 destroying it.
5331
5332 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
5333 variable window_width.
5334 (line_draw_cost): Fix code skipping over spaces at the end of the
5335 line when must_write_spaces is not set.
5336 (scrolling_window): Fix code inserting runs in list of all runs.
5337
5338 2000-12-05 Kenichi Handa <handa@etl.go.jp>
5339
5340 * coding.c (setup_coding_system): Be sure to initialize
5341 coding->category_idx.
5342
5343 2000-12-04 Gerd Moellmann <gerd@gnu.org>
5344
5345 * xterm.c (PER_CHAR_METRIC): Removed because not used.
5346
5347 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
5348 area to x_draw_glyphs instead of a window-relative coordinate.
5349
5350 * fileio.c (auto_save_error): Add parameter ERROR. Show the
5351 error in the message.
5352
5353 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
5354 timer after having read a key. It's not good for code reading
5355 several keys in a loop, like an input method.
5356
5357 * fileio.c (Finsert_file_contents): When VISIT is t, don't
5358 record undo information for format-decode.
5359
5360 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
5361 current buffer is read-only, not if it isn't.
5362
5363 * keyboard.c (record_char): Record `help-echo' input events
5364 in recent_keys only if they display some help. Don't record
5365 `help-echo' events as macro char.
5366
5367 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
5368
5369 * editfns.c (save_excursion_restore): Don't move point
5370 in another window if it is showing the wrong buffer.
5371 Avoid the call to Fwindow_live_p, for speed.
5372
5373 2000-12-04 Kenichi Handa <handa@etl.go.jp>
5374
5375 * xfaces.c (struct font_name): New member registry_priority.
5376 (split_font_name): Initialize the above member to zero.
5377 (concat_font_list): New function.
5378 (font_list): Include fonts of all alternative registries.
5379 (FONT_POINT_SIZE_QUANTUM): New macro.
5380 (better_font_p): Ignore point size difference less than
5381 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
5382
5383 * xterm.c (x_produce_glyphs): If a font for a component of
5384 a composition is not found, use 1 pixel dot ascent and 0 dot
5385 descent value to avoid displaying terribly tall empty boxes.
5386
5387 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
5388
5389 2000-12-03 Ken Raeburn <raeburn@gnu.org>
5390
5391 * coding.h (code_convert_string1): Declare.
5392
5393 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
5394
5395 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
5396
5397 2000-12-02 Jason Rumney <jasonr@gnu.org>
5398
5399 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
5400 correctly for single byte character case.
5401 (w32_per_char_metric): Do not try to make any assumptions about
5402 the metrics of BDF fonts.
5403 (x_estimate_mode_line_height): If `mode-line' face
5404 hasn't a font, use that of the frame, as drawing glyphs does.
5405 (note_mouse_highlight): Change the cursor shape on the vertical
5406 border between windows [not enabled].
5407
5408 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
5409
5410 * w32fns.c (Fx_create_frame): Reintroduce the call to
5411 face-set-after-frame-defaults.
5412 (Vx_window_horizontal_drag_shape): New variable.
5413 (syms_of_xfns): DEFVAR_LISP it.
5414 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
5415 enabled].
5416
5417 2000-12-02 Simon Josefsson <simon@josefsson.org>
5418
5419 * fns.c (Fmd5): Use a different logic to decide the coding system
5420 to use.
5421
5422 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
5423
5424 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
5425
5426 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
5427
5428 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5429
5430 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
5431 height for YNegative.
5432 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
5433 height; also see comment there.
5434
5435 * window.c (coordinates_in_window): Handle computations for
5436 positions on the vertical bar and fringes differently for
5437 window-system frames. Consider some pixels near the vertical bar
5438 as on the bar if the frame doesn't have vertical scroll bars.
5439 Associate positions between mode or header lines with the
5440 right window, the left one.
5441
5442 2000-12-01 Jason Rumney <jasonr@gnu.org>
5443
5444 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
5445
5446 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
5447 invalid frame.
5448
5449 2000-12-01 Gerd Moellmann <gerd@gnu.org>
5450
5451 * window.c (struct saved_window): Add members orig_top and orig_height.
5452 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
5453 (save_window_save, Fset_window_configuration): Save/restore
5454 window's orig_top and orig_height.
5455
5456 2000-12-01 Jason Rumney <jasonr@gnu.org>
5457
5458 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
5459
5460 * w32fns.c (x_set_cursor_color): Fix last change.
5461
5462 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5463
5464 * xdisp.c (echo_area_display): If cursor is in the echo area, make
5465 sure that the next redisplay displays the minibuffer, so that
5466 the cursor will be replaced with what the minibuffer wants.
5467
5468 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
5469 #ifndef instead of using #if.
5470 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
5471 USE_TOOLKIT_SCROLL_BARS is defined.
5472
5473 2000-11-30 Jason Rumney <jasonr@gnu.org>
5474
5475 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
5476 x_display_cursor.
5477
5478 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5479
5480 * fns.c (Fmd5): Doc fix.
5481
5482 2000-11-30 Simon Josefsson <simon@josefsson.org>
5483
5484 * fns.c (Fmd5): New function.
5485 (syms_of_fns): Defsubr md5.
5486
5487 * Makefile.in (obj): Add md5.o
5488
5489 2000-11-30 Gerd Moellmann <gerd@gnu.org>
5490
5491 * md5.h, md5.c: New files, taken from glibc.
5492
5493 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
5494
5495 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
5496 hasn't a font, use that of the frame, as drawing glyphs does.
5497
5498 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
5499
5500 * eval.c (Frun_hooks): Allow 0 arguments.
5501
5502 2000-11-29 Gerd Moellmann <gerd@gnu.org>
5503
5504 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
5505 is over the menu bar widget, say it's not on the frame.
5506
5507 * xfns.c (Fx_create_frame): Reintroduce the call to
5508 face-set-after-frame-defaults.
5509
5510 * eval.c (Fsignal): Reset handling_signal.
5511
5512 2000-11-28 Jason Rumney <jasonr@gnu.org>
5513
5514 * w32menu.c (add_menu_item): Reset menu item text when changing
5515 type to radio button.
5516
5517 2000-11-28 Gerd Moellmann <gerd@gnu.org>
5518
5519 * xselect.c: Update copyright.
5520
5521 * window.c (coordinates_in_window): If on a mode or header line,
5522 but sufficiently close to its start, return ``on vertical
5523 border''. This gives us a way to drag windows horizontally when
5524 using toolkit scroll bars.
5525
5526 * xterm.c (note_mouse_highlight): Change the cursor shape
5527 on the vertical border between windows.
5528
5529 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
5530
5531 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
5532 (syms_of_xfns): DEFVAR_LISP it.
5533 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
5534
5535 * textprop.c (text_read_only): New function.
5536 (verify_interval_modification): Use it instead of signaling
5537 `text-read-only'. This makes it easier to catch this error
5538 with a breakpoint.:
5539
5540 * xdisp.c (forward_to_next_line_start): Check for newlines,
5541 not end of line, which includes CR.
5542
5543 2000-11-28 Kenichi Handa <handa@etl.go.jp>
5544
5545 * coding.c (Ffind_coding_systems_region_internal): Be sure to
5546 include no-conversion.
5547
5548 2000-11-27 Jason Rumney <jasonr@gnu.org>
5549
5550 * w32fns.c (w32_load_system_font): Always mark font as double byte
5551 if codepage is unicode.
5552
5553 2000-11-27 Gerd Moellmann <gerd@gnu.org>
5554
5555 * xdisp.c (forward_to_next_line_start): If already on a newline,
5556 just consume it to avoid unintended skipping over invisible text below.
5557
5558 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
5559 `vertical-line', `mode-line' and `header-line' events.
5560
5561 * xdisp.c (try_window_id): Avoid starting to display in the middle
5562 of a character, a TAB for instance. This is easier than to set
5563 up the iterator exactly, and it's not a frequent case, so the
5564 additional effort wouldn't really pay off.
5565
5566 2000-11-26 Andrew Choi <akochoi@i-cable.com>
5567
5568 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
5569 init_window_once.
5570
5571 2000-11-25 Jason Rumney <jasonr@gnu.org>
5572
5573 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
5574 Args to window_from_coordinates should be pixel coordinates.
5575
5576 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
5577 redisplay handles them properly.
5578
5579 2000-11-25 Miles Bader <miles@gnu.org>
5580
5581 * indent.c (compute_motion): Keep pos_byte in sync with pos.
5582
5583 2000-11-24 Jason Rumney <jasonr@gnu.org>
5584
5585 * w32.c (init_environment): Set LANG environment variable based on
5586 locale settings, if not set.
5587
5588 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
5589 making tool bar smaller. When clearing the frame, also
5590 clear current matrices. Clear frame when tool bar disappears.
5591 Don't use more lines for the tool-bar than is available.
5592 (x_change_window_heights): New function.
5593
5594 2000-11-24 Gerd Moellmann <gerd@gnu.org>
5595
5596 * xdisp.c (init_from_display_pos): If POS says we're already after
5597 an overlay string ending at POS, make sure to pop the iterator
5598 because it will be in front of that overlay string. When POS is
5599 ZV, we've thereby also ``processed'' overlay strings at ZV.
5600
5601 * xfaces.c (lface_from_face_name): Function comment fix.
5602
5603 2000-11-24 Miles Bader <miles@gnu.org>
5604
5605 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
5606 apply `mode-line-inverse-video' -- zero means force display using
5607 the default face, non-zero means display using the specialized face.
5608 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
5609
5610 2000-11-23 Kenichi Handa <handa@etl.go.jp>
5611
5612 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
5613 hard coded `4'.
5614
5615 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
5616
5617 * coding.c (decode_coding_emacs_mule): Fix the case of
5618 CODING_EOL_LF, which used uninitialized value of c.
5619
5620 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
5621
5622 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
5623
5624 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5625
5626 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
5627 buffer object.
5628
5629 * frame.h (struct frame): Replace desired_tool_bar_items,
5630 current_tool_bar_items, n_desired_tool_bar_items,
5631 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
5632
5633 * frame.c (make_frame): Change initialization of tool bar
5634 items accordingly.
5635
5636 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
5637 Change references to members deleted from struct frame to use the
5638 new ones.
5639
5640 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
5641 references to members deleted from struct frame to use the new ones.
5642
5643 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
5644
5645 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
5646
5647 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
5648 (note_tool_bar_highlight): Change references to members deleted
5649 from struct frame to use the new ones.
5650
5651 2000-11-23 Miles Bader <miles@gnu.org>
5652
5653 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
5654 the face's inverse-video attribute, rather than overriding it.
5655
5656 2000-11-22 Gerd Moellmann <gerd@gnu.org>
5657
5658 * xfns.c (x_set_tool_bar_lines): Clear internal border when
5659 making tool bar smaller.
5660
5661 2000-11-22 Dave Love <fx@gnu.org>
5662
5663 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
5664
5665 2000-11-22 Miles Bader <miles@gnu.org>
5666
5667 * keyboard.c (Vminibuffer_message_timeout): New variable.
5668 (command_loop_1): Use it to determine message timeout.
5669 (syms_of_keyboard): Initialize it.
5670
5671 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
5672
5673 2000-11-22 Kenichi Handa <handa@etl.go.jp>
5674
5675 * sysdep.c: Move the code for declaring h_errno after #include
5676 <netdb.h>.
5677
5678 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5679
5680 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
5681 the menu bar when the tooltip is unmapped.
5682
5683 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
5684 sole visible buffer when we're currently in the mini-buffer, and
5685 give up if so.
5686
5687 2000-11-21 Jason Rumney <jasonr@gnu.org>
5688
5689 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
5690 put on the clipboard.
5691 (Fw32_get_clipboard_data): Compare data on clipboard with saved
5692 copy of what Emacs last put there. If they are the same, do not
5693 use the clipboard copy to avoid losing data due to coding conversions.
5694
5695 2000-11-22 Miles Bader <miles@gnu.org>
5696
5697 * minibuf.c (Vminibuffer_prompt_properties): New variable.
5698 (syms_of_minibuf): Initialize it.
5699 (read_minibuf): Add properties from Vminibuffer_prompt_properties
5700 to prompt, don't make read-only.
5701
5702 2000-11-21 Gerd Moellmann <gerd@gnu.org>
5703
5704 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
5705 Add BEFORE/AFTER_POTENTIAL_GC.
5706
5707 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
5708
5709 * buffer.c (mmap_free_1): Avoid a compiler warning.
5710
5711 * term.c, cm.c: Don't try to include termcap.h; see comment there.
5712
5713 2000-11-21 Kenichi Handa <handa@etl.go.jp>
5714
5715 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
5716 ... #endif scope.
5717
5718 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5719
5720 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
5721 screen supports it.
5722
5723 * s/gnu-linux.h: Don't use `#cpu'.
5724
5725 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
5726 not defined in mman.h.
5727
5728 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
5729 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
5730 and store an index in the XClientMessageEvent. Storing a
5731 Lisp_Object or pointer can fail on a 64 bit system, since X only
5732 transfers 32 bits.
5733 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
5734
5735 2000-11-20 Dave Love <fx@gnu.org>
5736
5737 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
5738
5739 2000-11-20 Gerd Moellmann <gerd@gnu.org>
5740
5741 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
5742
5743 2000-11-20 Kenichi Handa <handa@etl.go.jp>
5744
5745 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
5746 by WIDTH.
5747
5748 * alloc.c (make_string): Fix previous change. Be sure to make
5749 unibyte string correctly.
5750
5751 2000-11-19 Gerd Moellmann <gerd@gnu.org>
5752
5753 * window.c (Fwindow_list): Change parameter list to be XEmacs
5754 compatible.
5755 (window_list_1): New function.
5756 (window_loop): Use it instead of Fwindow_list.
5757
5758 * sysdep.c (emacs_ospeed): New variable.
5759 (toplevel): Don't declare ospeed extern.
5760 (init_baud_rate): Use emacs_ospeed instead of ospeed.
5761
5762 * termcap.c (ospeed): Remove.
5763 (tputs) [!emacs]: Remove unused code.
5764 (tgetent): Avoid a compiler warning.
5765
5766 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
5767 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
5768 SCROLL_BAR_X_WIDGET with additional argument DPY.
5769
5770 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
5771 removed.
5772 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
5773 Take the X display as additional argument.
5774 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
5775 `Widget' is a pointer type that's not easily stored in Lisp_Object
5776 form in a portable way.
5777
5778 * dispnew.c (update_text_area): Fix last change.
5779
5780 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5781
5782 * xdisp.c: Use BINDING_STACK_SIZE throughout.
5783
5784 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
5785 clear current matrices.
5786
5787 * buffer.c (mmap_enlarge): Don't print a message on stderr
5788 if mapping new memory at the end of the existing region fails.
5789
5790 * dispnew.c (update_text_area): Don't skip over equal glyphs
5791 when the last current glyph overlaps the glyph to its right.
5792
5793 2000-11-18 Miles Bader <miles@gnu.org>
5794
5795 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
5796 lines that *end* with "..." too (that's the most common case!).
5797
5798 2000-11-18 Gerd Moellmann <gerd@gnu.org>
5799
5800 * xdisp.c (resize_mini_window): Temporarily change to the
5801 mini-window's buffer if necessary.
5802
5803 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
5804 the tooltip obscures less text under it.
5805
5806 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5807
5808 * puresize.h (BASE_PURESIZE): Increase to 700000.
5809
5810 2000-11-18 Jason Rumney <jasonr@gnu.org>
5811
5812 * w32term.c (w32_draw_bitmap): Use face to set colors.
5813
5814 2000-11-17 Dave Love <fx@gnu.org>
5815
5816 * lread.c (Fload): Fix #ifdef for pcc.
5817
5818 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5819
5820 * xdisp.c (pos_visible_p): Compute the default character height
5821 differently.
5822
5823 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5824
5825 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5826 knowing the line's height; use the default font's height in that case.
5827
5828 * xfaces.c (weight_table): Add `demi' with the same meaning as
5829 `demibold'.
5830
5831 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5832
5833 * dispnew.c (null_row): New global static variable.
5834 (clear_glyph_row): Delete local static variable null_row.
5835
5836 2000-11-15 Jason Rumney <jasonr@gnu.org>
5837
5838 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5839 (w32_alloc_lighter_color): Use new brightness calculations from
5840 xterm.c. Scale delta to be in the range expected by W32.
5841 (w32_draw_relief_rect): Use frame relief colors.
5842
5843 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5844
5845 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5846 (Qinhibit_default_face_x_resources): New variable.
5847 (syms_of_frame): Initialize it.
5848 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5849
5850 * xdisp.c (pos_visible_p): Improve function comment.
5851
5852 * lisp.h (BINDING_STACK_SIZE): New macro.
5853
5854 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5855 reading the directory if readdir returns null and errno is EAGAIN
5856 or EINTR.
5857
5858 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5859
5860 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5861 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5862 Set amount_to_scroll to max of dx and scroll_step so that
5863 scroll-conservatively doesn't defeat scroll-step>1.
5864 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5865 scroll-conservatively for line-at-a-time scrolling.
5866
5867 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5868
5869 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5870 extra argument.
5871
5872 * xdisp.c (current_mode_line_height, current_header_line_height):
5873 New variables.
5874 (init_xdisp): Initialize them.
5875 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5876 and use exact mode line heights if it is set.
5877
5878 * lisp.h (pos_visible_p): Change prototype.
5879
5880 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5881 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5882 and current_header_line_height first.
5883 (current_mode_line_height, current_header_line_height):
5884 Declare extern.
5885
5886 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5887
5888 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5889 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5890 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5891
5892 2000-11-14 Miles Bader <miles@gnu.org>
5893
5894 * xterm.c (x_alloc_lighter_color): Include an additive component
5895 too for dark colors, because FACTOR isn't enough.
5896 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5897 New macros.
5898
5899 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5900
5901 * keyboard.c (show_help_echo): Call message3_nolog with number of
5902 bytes in the help string as 2nd parameter, instead of the number
5903 of characters.
5904
5905 2000-11-13 Miles Bader <miles@gnu.org>
5906
5907 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5908 (Fload): Use new openp return protocol.
5909 Don't try to use Vload_source_file_function to load .elc files.
5910 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5911 openp return protocol.
5912 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5913
5914 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5915
5916 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5917
5918 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5919 Defined these macros.
5920 (NLIST_STRUCT): Avoid re-defining it.
5921
5922 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5923 -I/usr/contrib/X11R6/include.
5924 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5925
5926 2000-11-10 Jason Rumney <jasonr@gnu.org>
5927
5928 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5929
5930 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5931 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5932
5933 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5934 (Qw32_charset_vietnamese): New symbol.
5935 (xlfd_charset_of_font): New function.
5936 (w32_load_system_font): Use it.
5937 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5938 when Vw32_charset_info_alist is nil to ensure default face always
5939 has font. Use Fcar and Fcdr for safety.
5940 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5941 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5942 pseudo-codepages for special cases.
5943 (w32_to_x_font): New parameter to allow charset portion to be
5944 specified where there is many to one mapping. Callers changed.
5945 (w32_list_fonts): Avoid listing fonts that won't display.
5946
5947 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5948
5949 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5950 (font_list_1): Renamed from font_list.
5951 (font_list): New function, trying alternative registries from
5952 Vface_alternative_font_registry_alist.
5953 (Finternal_set_alternative_font_registry_alist): New function.
5954 (syms_of_xfaces): Initialize and Staticpro
5955 Vface_alternative_font_registry_alist.
5956 Defsubr Finternal_set_alternative_font_registry_alist.
5957
5958 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5959
5960 * lisp.h (Flooking_at): Declare.
5961
5962 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5963
5964 * dired.c (directory_files_internal): Fix a braino.
5965
5966 * dired.c (directory_files_internal): Add missing GCPRO's.
5967 Some cleanup.
5968
5969 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5970
5971 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5972 (resize_mini_window): Return quickly if Vresize_mini_window is
5973 nil. Don't return if Vmax_mini_window_height is nil.
5974
5975 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5976 (syms_of_xdisp): Initialize them.
5977 (resize_mini_window): Act according to the setting of
5978 Vresize_mini_window.
5979 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5980
5981 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5982 scroll bar widget after configuring it, so that it will appear at
5983 the right position from the start.
5984 (XTredeem_scroll_bar): Cleaned up.
5985
5986 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5987
5988 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5989 font is taller than the frame line, we don't have to bias the
5990 division by two.
5991
5992 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5993
5994 2000-11-07 Dave Love <fx@gnu.org>
5995
5996 * config.in (HAVE_MKSTEMP): Add.
5997
5998 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5999
6000 2000-11-07 Gerd Moellmann <gerd@gnu.org>
6001
6002 * window.c (Fset_window_configuration): Don't try to preserve
6003 point in the current buffer, if that buffer is displayed in more
6004 than one window.
6005
6006 * xfaces.c (lookup_named_face): If default face isn't realized,
6007 try to realize it. Return -1 if not successful.
6008 (Fx_list_fonts): Handle case that face cannot be determined.
6009 (Fface_font): Likewise.
6010
6011 2000-11-06 Gerd Moellmann <gerd@gnu.org>
6012
6013 * window.c (displayed_window_lines): Detect partially
6014 visible lines at the bottom correctly.
6015
6016 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
6017
6018 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
6019 when ensuring we don't do visit in indirect buffer.
6020
6021 2000-11-06 Kenichi Handa <handa@etl.go.jp>
6022
6023 * composite.h (compose_chars_in_text): Add prototype.
6024
6025 * composite.c (Vcomposition_function_table): New variable.
6026 (Qcomposition_function_table): New variable.
6027 (run_composition_function): Call
6028 Vcompose_chars_after_function with three arguments.
6029 (compose_chars_in_text): New function.
6030 (syms_of_composite): Modified the doc-string of
6031 Vcompose_chars_after_function. Declare composition-function-table
6032 as a lisp variable, and initialize it.
6033
6034 * xfns.c (x_encode_text): Suppress producing escape sequences for
6035 composition.
6036
6037 * xselect.c: Include composite.h.
6038 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
6039
6040 2000-11-05 Andrew Innes <andrewi@gnu.org>
6041
6042 * w32term.c (x_produce_glyphs): Fix typo in enum name.
6043
6044 * sysdep.c (read_input_waiting): Remove extraneous argument to
6045 read_socket_hook.
6046
6047 * w32fns.c (Fx_server_version): Include w32_build_number in the
6048 return list.
6049
6050 * w32heap.c (w32_build_number): New variable.
6051 (cache_system_info): Set it.
6052
6053 * w32heap.h (w32_build_number): Add extern.
6054
6055 * emacs.c (syms_of_emacs): Update docstring for
6056 system-configuration, to reflect the actual usage on MS-Windows.
6057
6058 2000-10-31 Gerd Moellmann <gerd@gnu.org>
6059
6060 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
6061 process idle timers while waiting for another event.
6062
6063 * dispnew.c (update_frame_line): Handle case where spaces in
6064 the default face are colored.
6065
6066 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
6067 window height hasn't changed.
6068
6069 2000-10-31 Jason Rumney <jasonr@gnu.org>
6070
6071 * w32term.c (x_produce_glyphs): Handle composite characters.
6072 (x_draw_glyph_string_foreground)
6073 (x_draw_composite_glyph_string_foreground): Restore old font.
6074
6075 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
6076
6077 * minibuf.c (read_minibuf): Reset the undo history just before
6078 starting the recursive-edit.
6079
6080 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6081
6082 * xfaces.c (menu_face_change_count): New variable.
6083 (Finternal_set_lisp_face_attribute): Increment it for changes
6084 of the `menu' face.
6085 (realize_basic_faces): Reflect changes in the `menu' faces
6086 in menu bars.
6087
6088 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
6089 dy obtained from the iterator's y-position after moving from
6090 scroll_margin_pos to PT; see comment there.
6091
6092 * xdisp.c (safe_eval_handler): Call add_to_log.
6093
6094 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
6095 is not a symbol or string.
6096
6097 * xdisp.c (echo_area_display): Don't perform a display update from
6098 inside redisplay. The update will happen anyway at the end of
6099 redisplay, and it can confuse redisplay (GC messages while
6100 redisplaying, for instance.)
6101
6102 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
6103
6104 * xrdb.c (x_load_resources): Use the class name in the defaults.
6105
6106 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
6107 (regex_compile): Catch bogus \(\1\).
6108
6109 2000-10-30 Gerd Moellmann <gerd@gnu.org>
6110
6111 * xterm.c (x_alloc_nearest_color): Fix last change to compare
6112 RGB values.
6113
6114 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
6115 we have a color cache, check that the cached color equals the
6116 allocated color. If not, clear the color cache.
6117
6118 * window.c (displayed_window_lines): Change buffers if necessary.
6119 Fix computation of displayed lines.
6120
6121 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
6122 update_menu_bindings to DEFVAR_BOOL.
6123
6124 2000-10-30 Kenichi Handa <handa@etl.go.jp>
6125
6126 * search.c (Fset_match_data): Be sure to make search_regs always sane.
6127
6128 * puresize.h (BASE_PURESIZE): Increase to 680000.
6129
6130 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
6131
6132 2000-10-29 Jason Rumney <jasonr@gnu.org>
6133
6134 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
6135
6136 * w32term.c (w32_bdf_per_char_metric): Negate descent.
6137 (w32_cache_char_metrics): Handle possibility that 'x' does not
6138 exist in a BDF font.
6139 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
6140
6141 * w32bdf.h (bdffont): Add nchars.
6142
6143 * w32bdf.c (set_bdf_font_info): Set it.
6144 (w32_BDF_TextOut): Swap byte order of double byte characters.
6145 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
6146
6147 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
6148
6149 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
6150 don't override the colors in frame's param_alist, unless they are
6151 unspecified.
6152
6153 * term.c (reassert_line_highlight): If inverse_video is non-zero,
6154 reverse the effect of the highlight flag.
6155
6156 2000-10-27 Ken Raeburn <raeburn@gnu.org>
6157
6158 * window.h (Fwindow_live_p): Declare.
6159
6160 * undo.c (record_delete): Check that last_undo_buffer is really a
6161 buffer before applying XBUFFER to it.
6162
6163 * keymap.c (where_is_internal): Pass lisp object, not integer, to
6164 Faref.
6165
6166 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6167
6168 * lisp.h (KEYMAPP): New macro.
6169 (get_keymap): Remove.
6170 (get_keymap_1): Rename get_keymap.
6171
6172 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
6173
6174 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
6175
6176 * xmenu.c (single_submenu): Use KEYMAPP.
6177 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6178 Use KEYMAPP rather than Fkeymapp.
6179
6180 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
6181
6182 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
6183 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
6184 Use KEYMAPP rather than Fkeymapp.
6185 (single_submenu): Use KEYMAPP.
6186 (w32_menu_show, w32_dialog_show): Use TRUE.
6187
6188 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
6189
6190 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
6191 (Fkeymapp): Use KEYMAPP.
6192 (get_keymap): Rename from get_keymap_1. Remove old def.
6193 Return t when autoload=0 and error=0 and the keymap needs autoloading.
6194 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
6195 (Fminor_mode_key_binding): Don't raise an error if the binding
6196 is not a keymap.
6197 (Fuse_global_map, Fuse_local_map): Allow autoloading.
6198 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
6199
6200 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
6201 Allow Vspecial_event_map to be autoloaded.
6202 (menu_bar_items): Fetch the keymap rather than using keymapp.
6203 (menu_bar_one_keymap): No need to follow func-indirect any more.
6204 (parse_menu_item): get_keymap_1 -> get_keymap.
6205 (tool_bar_items): Fetch the keymap rather than using keymapp.
6206 (read_key_sequence): Use KEYMAPP.
6207
6208 * intervals.c (get_local_map): Use get_keymap rather than following
6209 function-indirections explicitly.
6210
6211 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
6212
6213 2000-10-27 Jason Rumney <jasonr@gnu.org>
6214
6215 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
6216 point, as Windows has oversized fonts.
6217
6218 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
6219
6220 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6221
6222 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
6223 (freehook, reallochook): Handle null pointer arguments.
6224 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
6225
6226 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
6227
6228 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
6229 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
6230 Giving in to popular pressure to shut up the compiler with casts.
6231
6232 2000-10-27 Gerd Moellmann <gerd@gnu.org>
6233
6234 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
6235 signed value, and use a default value computed from the font's
6236 maximum descent.
6237
6238 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
6239
6240 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
6241 that specify a negative underline position can still use underlines.
6242
6243 * window.c (Fpos_visible_in_window_p): Make POS default to
6244 WINDOW's point, not the current buffer's point.
6245
6246 2000-10-26 Dave Love <fx@gnu.org>
6247
6248 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
6249 when it's necessary.
6250
6251 2000-10-26 Gerd Moellmann <gerd@gnu.org>
6252
6253 * window.c (size_window): Compute size difference from sum of old
6254 child window sizes instead of from parent's size.
6255
6256 * xdisp.c (pos_visible_p): Change current buffer if necessary.
6257 Handle obscured lines at the top of the window.
6258
6259 * frame.c (Fdelete_frame): Doc fix. Move running the hook
6260 down after the last error condition check.
6261
6262 * frame.c (Fdelete_frame): Run delete-frame-hook.
6263
6264 2000-10-26 Kenichi Handa <handa@etl.go.jp>
6265
6266 * coding.c (decode_coding): Fix previous change (check also
6267 CODING_MODE_LAST_BLOCK).
6268
6269 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6270
6271 * regex.c: More `unsigned char' -> `re_char' changes.
6272 Also change several `int' into `re_wchar_t'.
6273 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
6274 (PUSH_FAILURE_POINTER): Don't cast any more.
6275 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
6276 We want GCC to complain, since this piece of code makes
6277 re_match non-reentrant, which *should* be fixed.
6278 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
6279 (EXTEND_BUFFER): Use RETALLOC.
6280 (SET_LIST_BIT): Don't cast.
6281 (re_wchar_t): New type.
6282 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
6283 that those two functions will always properly return.
6284 (IMMEDIATE_QUIT_CHECK): Cast to void.
6285 (analyse_first): Use recursion rather than an explicit stack.
6286 (re_compile_fastmap): Can't fail anymore.
6287 (re_search_2): Don't check re_compile_fastmap for failure.
6288 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
6289 Now also sets the new value (passed in a new argument).
6290 (re_match_2_internal): Use it.
6291 Also, use a new var `reg' of type size_t when looping through regs
6292 rather than reuse the inappropriate `mcnt'.
6293
6294 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
6295 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
6296 (where_is_internal): Renamed from Fwhere_is_internal.
6297 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
6298 (Fwhere_is_internal): New function wrapping where_is_internal.
6299 (where_is_internal_1): Handle the case where we're filling the cache.
6300 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
6301
6302 2000-10-25 Miles Bader <miles@gnu.org>
6303
6304 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
6305
6306 2000-10-25 Gerd Moellmann <gerd@gnu.org>
6307
6308 * window.c (pos_fully_visible_p): Removed.
6309 (Fpos_visible_in_window_p): Use pos_visible_p to determine
6310 if position is visible and/or fully visible.
6311
6312 * lisp.h (pos_visible_p): Add prototype.
6313
6314 * xdisp.c (pos_visible_p): New function.
6315
6316 2000-10-25 Kenichi Handa <handa@etl.go.jp>
6317
6318 * process.c (send_process): If OBJECT is t, it means that the data
6319 is from C string, but we should encode it. Before calling
6320 setup_raw_text_coding_system, be sure to flush out data by the
6321 previous coding system.
6322
6323 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
6324
6325 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
6326 assignment of startpos to prev when startpos == pos.
6327
6328 * editfns.c (find_field): Set the field stickiness correctly from
6329 overlay fields. Use renamed `text_property_stickiness'.
6330 (text_property_stickiness): Renamed from `char_property_stickiness'.
6331 Only check text properties, not overlays.
6332 * textprop.c (get_char_property_and_overlay): New function.
6333 (Fget_char_property): Use it.
6334 * intervals.h (get_char_property_and_overlay): Add declaration.
6335
6336 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
6337
6338 * keymap.c: Use AREF, ASET and ASIZE macros.
6339 (Fmake_sparse_keymap): Docstring fix.
6340 (synkey): Remove.
6341 (shadow_lookup): Move up.
6342 Handle the case where lookup-key returns an integer.
6343 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
6344 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
6345 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
6346 Simplify/rewrite the keymap-finding code.
6347 Add check for command shadowing, using shadow_lookup.
6348
6349 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
6350
6351 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
6352 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
6353 a symbol.
6354
6355 2000-10-24 Andrew Innes <andrewi@gnu.org>
6356
6357 * dired.c (directory_files_internal_unwind): New function.
6358 (directory_files_internal): Use it to ensure closedir is called
6359 even if expand-file-name or file-attributes throw, eg. because of
6360 a user interrupt. Also enable immediate_quit while calling
6361 re_search, so that matching can be interrupted as well.
6362
6363 2000-10-24 Andrew Innes <andrewi@gnu.org>
6364
6365 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
6366 NT-Emacs only.
6367 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
6368 so that re_search functions only quit when callers expect them to.
6369
6370 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6371
6372 * regex.c (regex_compile): Change the way of handling a range from
6373 a char less than 256 to a char not less than 256.
6374
6375 2000-10-24 Gerd Moellmann <gerd@gnu.org>
6376
6377 * window.c (size_window): Prevent setting window's width or
6378 height to a negative value (esp. with XSETFASTINT).
6379
6380 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
6381 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
6382 (protect_malloc_state) [GC_MALLOC_CHECK &&
6383 GC_PROTECT_MALLOC_STATE]: New function.
6384 (PROTECT_MALLOC_STATE): New macro.
6385 (__malloc_initialize, morecore, _malloc_internal)
6386 (_free_internal) _realloc_internal): Use it to make _heapinfo
6387 read-only outside of gmalloc.
6388
6389 * keymap.c: Update copyright.
6390
6391 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
6392 a symbol.
6393
6394 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
6395
6396 * filelock.c (unlock_all_files): Use unlock_file to expand each
6397 buffer's file_truename before trying remove its lock file.
6398
6399 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
6400
6401 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
6402 or CRLF, decode EOLs.
6403
6404 2000-10-24 Kenichi Handa <handa@etl.go.jp>
6405
6406 * window.c (Fdisplay_buffer): Fix doc.
6407
6408 2000-10-23 Jason Rumney <jasonr@gnu.org>
6409
6410 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
6411 ASCII font of default fontset on Windows.
6412
6413 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
6414 xterm.c comment below).
6415
6416 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
6417
6418 2000-10-23 Gerd Moellmann <gerd@gnu.org>
6419
6420 * xterm.c (x_connection_closed): Reset handling_signal.
6421
6422 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
6423
6424 2000-10-23 Miles Bader <miles@gnu.org>
6425
6426 * window.c (window_scroll_pixel_based, window_scroll_line_based):
6427 Pass nil for FULLY argument to Fpos_visible_in_window_p to
6428 maintain old behavior.
6429 * minibuf.c (Fminibuffer_complete): Likewise.
6430
6431 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
6432
6433 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
6434 that when a font can't be exactly centered, it errs up rather than
6435 down.
6436
6437 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
6438
6439 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
6440
6441 2000-10-23 Andrew Choi <akochoi@i-cable.com>
6442
6443 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
6444
6445 * dispnew.c [macintosh]: Include macterm.h.
6446 (init_display) [macintosh]: Initialization for window system.
6447
6448 * emacs.c (main) [macintosh]: Call syms_of_textprop,
6449 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
6450 syms_of_search, x_term_init, and init_keyboard before calling
6451 init_window_once. Also, call syms_of_xmenu.
6452
6453 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
6454 default fontset to Monaco.
6455
6456 * frame.c [macintosh]: Include macterm.h. Remove declarations of
6457 NewMacWindow and DisposeMacWindow.
6458 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
6459 instead of calling NewMacWindow and setting fields of
6460 f->output_data.mac directly. Call init_frame_faces.
6461 (Fdelete_frame) [macintosh]: Remove unused code.
6462 (Fmodify_frame_parameters) [macintosh]: Call
6463 x_set_frame_parameters instead of mac_set_frame_parameters.
6464
6465 * frame.h [macintosh]: Define menu_bar_lines field in struct
6466 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
6467
6468 * keyboard.c [macintosh]: Include macterm.h.
6469 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
6470 and menu_bar_activate_event type events as for X and NT.
6471 (make_lispy_event) [macintosh]: Construct lisp events of type
6472 MENU_BAR_EVENT as for X and NT.
6473
6474 * sysdep.c [macintosh]: Remove declaration for sys_signal.
6475 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
6476 (sys_subshell) [macintosh]: Remove definition entirely.
6477 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
6478 Vwindow_system_version here. Remove initialization of
6479 Vx_bitmap_file_path.
6480 (read_input_waiting): Correct the number of parameters passed to
6481 read_socket_hook.
6482 Move all Macintosh functions to mac/mac.c.
6483
6484 * term.c [macintosh]: Include macterm.h.
6485
6486 * window.c [macintosh]: Include macterm.h.
6487
6488 * xdisp.c [macintosh]: Include macterm.h. Declare
6489 set_frame_menubar and pending_menu_activation.
6490 (echo_area_display) [macintosh]: Do not return if terminal frame
6491 is the selected frame.
6492 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
6493 Allow only the selected frame to set menu bar.
6494 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
6495 calling FRAME_EXTERNAL_MENU_BAR (f).
6496 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
6497
6498 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
6499 and check_x. Declare XCreateGC. Define x_create_gc and
6500 x_free_gc. Initialize font_sort_order.
6501 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
6502 but call x_list_fonts instead of w32_list_fonts.
6503 (Finternal_face_x_get_resource) [macintosh]: Do not call
6504 display_x_get_resource.
6505 (prepare_face_for_display) [macintosh]: Set xgcv.font.
6506 (realize_x_face) [macintosh]: Load the font if it is specified in
6507 ATTRS.
6508 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
6509
6510 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
6511
6512 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
6513 is nil: since we go to the end of submap anyway, we'd end up
6514 setting nil to nil.
6515 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
6516 doesn't obey autoload.
6517
6518 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6519
6520 * msdos.c (dos_set_window_size): Update screen dimension variables.
6521
6522 2000-10-21 Jason Rumney <jasonr@gnu.org>
6523
6524 * w32term.c (w32_cache_char_metrics): Double check that font is
6525 really fixed pitch before trusting tmPitchAndFamily.
6526
6527 2000-10-21 Andrew Innes <andrewi@gnu.org>
6528
6529 * w32gui.h (w32_char_font_type): Move enum from w32term.c
6530
6531 * w32term.h: Extern decl for w32_cache_char_metrics.
6532
6533 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
6534
6535 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
6536 (w32_unload_font): Free per_char array if present.
6537
6538 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
6539 cached information in emulated XFontStruct to handle common cases
6540 quickly. Do not allocate XCharStruct for return.
6541 (w32_native_per_char_metric): New function.
6542 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
6543 allocating one.
6544 (x_produce_glyphs): Don't get an HDC. Change calls to
6545 w32_per_char_metric to match arg change above. Remove calls to
6546 free results.
6547 (w32_get_glyph_overhangs): Ditto.
6548 (w32_cache_char_metrics): New function.
6549
6550 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
6551 ($(BLD)/casefiddle.$(O)): Remove compile command.
6552 ($(BLD)/gmalloc.$(O)): Remove compile command.
6553 ($(BLD)/dispnew.obj):
6554 ($(BLD)/keyboard.obj):
6555 ($(BLD)/w32inevt.obj):
6556 ($(BLD)/w32bdf.obj):
6557 ($(BLD)/alloc.obj):
6558 ($(BLD)/buffer.obj):
6559 ($(BLD)/editfns.obj):
6560 ($(BLD)/emacs.obj):
6561 ($(BLD)/fileio.obj):
6562 ($(BLD)/fns.obj):
6563 ($(BLD)/indent.obj):
6564 ($(BLD)/insdel.obj):
6565 ($(BLD)/intervals.obj):
6566 ($(BLD)/minibuf.obj):
6567 ($(BLD)/print.obj):
6568 ($(BLD)/scroll.obj):
6569 ($(BLD)/sysdep.obj):
6570 ($(BLD)/textprop.obj):
6571 ($(BLD)/widget.obj):
6572 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
6573 ($(BLD)/term.obj): Add dependency on dispextern.h.
6574
6575 * makefile.nt ($(BLD)\dispnew.obj):
6576 ($(BLD)\keyboard.obj):
6577 ($(BLD)\w32inevt.obj):
6578 ($(BLD)\w32bdf.obj):
6579 ($(BLD)\alloc.obj):
6580 ($(BLD)\buffer.obj):
6581 ($(BLD)\editfns.obj):
6582 ($(BLD)\emacs.obj):
6583 ($(BLD)\fileio.obj):
6584 ($(BLD)\fns.obj):
6585 ($(BLD)\indent.obj):
6586 ($(BLD)\insdel.obj):
6587 ($(BLD)\intervals.obj):
6588 ($(BLD)\minibuf.obj):
6589 ($(BLD)\print.obj):
6590 ($(BLD)\scroll.obj):
6591 ($(BLD)\sysdep.obj):
6592 ($(BLD)\textprop.obj):
6593 ($(BLD)\widget.obj):
6594 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
6595 ($(BLD)\term.obj): Add dependency on dispextern.h
6596
6597 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
6598
6599 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
6600 with an additional argument of Qt.
6601
6602 2000-10-21 Miles Bader <miles@gnu.org>
6603
6604 * window.c (pos_fully_visible_in_window_p): New function.
6605 (Fpos_visible_in_window_p): Add FULLY argument.
6606 Use pos_fully_visible_in_window_p.
6607 (window_scroll_pixel_based, window_scroll_line_based): Update
6608 calls to Fpos_visible_in_window_p.
6609 * lisp.h (Fpos_visible_in_window_p): Update prototype
6610
6611 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6612
6613 * alloc.c (toplevel): Conditionalize compilation of mem_*
6614 functions differently.
6615
6616 2000-10-20 Jason Rumney <jasonr@gnu.org>
6617
6618 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
6619 mem_init where it used to be. mem_z etc not defined otherwise.
6620
6621 2000-10-20 Gerd Moellmann <gerd@gnu.org>
6622
6623 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
6624 GC_MALLOC_CHECK.
6625 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
6626 structure definition and related variabled to the top of the file.
6627 Include this code when GC_MALLOC_CHECK is defined.
6628 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
6629 register/unregister allocated region.
6630 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
6631 which isn't allocated.
6632 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
6633 something which is already in use.
6634 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
6635 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
6636 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
6637 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
6638
6639 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
6640 _malloc_internal instead of malloc.
6641 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
6642 of free.
6643
6644 2000-10-20 Andrew Innes <andrewi@gnu.org>
6645
6646 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
6647 Windows.
6648 (my_strftime) <macro>: Don't use macro arg list when redefining as
6649 _strftime_copytm.
6650 (my_strftime) <function>: Supply 0 as ut argument.
6651
6652 2000-10-19 Jason Rumney <jasonr@altavista.net>
6653
6654 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
6655 including dispextern.h, as it stops faces from working.
6656
6657 * w32fns.c (Fx_create_frame): Don't bother calling
6658 face-set-after-frame-default since the caller does it for us
6659 anyway. Clean up calls to x_get_arg to be consistent with X.
6660
6661 * w32term.c (x_produce_glyphs): Handle
6662 unibyte_display_via_language_environment correctly.
6663 (w32_draw_box_rect): Fix the calculation of width and height.
6664
6665 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
6666 as it has stopped working.
6667 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
6668 menu-bar.
6669
6670 2000-10-19 Gerd Moellmann <gerd@gnu.org>
6671
6672 * eval.c (skip_debugger): Prevent a compiler warning.
6673 (Fcondition_case): Likewise.
6674 (Fbacktrace_frame): Use a null interactive spec.
6675
6676 2000-10-19 Kenichi Handa <handa@etl.go.jp>
6677
6678 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
6679
6680 2000-10-18 Gerd Moellmann <gerd@gnu.org>
6681
6682 * strftime.c: Sync with glibc, file version 1.78.
6683 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
6684 should no longer be used according to ISO 8601.
6685
6686 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
6687 no map for meta_prefix_char, don't try to use it as a keymap.
6688 Instead, if T_OK is non-zero, look up a default binding, if any,
6689 otherwise, if T_OK is zero, return nil.
6690
6691 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
6692 (x_to_xcolors, png_load): Use x_query_color.
6693
6694 * xterm.c (x_color_cells, x_query_colors, x_query_color):
6695 New functions.
6696 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
6697 which can be slow.
6698 (x_copy_color, x_alloc_lighter_color): Likewise.
6699
6700 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
6701 (x_query_color, x_query_colors): Add prototype.
6702
6703 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
6704 check_string_bytes only if not noninteractive, increase count to 50.
6705
6706 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
6707
6708 * insdel.c (adjust_markers_for_delete): Handle before-insertion
6709 markers correctly.
6710
6711 2000-10-17 Gerd Moellmann <gerd@gnu.org>
6712
6713 * alloc.c (pure_bytes_used): Renamed from pureptr.
6714 (ALIGN): New macro.
6715 (pure_alloc): New function.
6716 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
6717 Use it.
6718 (Fpurecopy): Use PURE_POINTER_P.
6719
6720 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
6721 PT has moved backward.
6722
6723 * xdisp.c (cursor_row_p): Take continued lines into account.
6724
6725 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
6726 string's size_byte.
6727 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
6728 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
6729 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
6730 string allocated.
6731
6732 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
6733 of selective display off while searching for the next line start.
6734
6735 2000-10-17 Kenichi Handa <handa@etl.go.jp>
6736
6737 * Makefile.in (term.o): Depend on dispextern.h.
6738
6739 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
6740
6741 * keymap.c (keymap_memberp): Ensure that nil is not a member.
6742
6743 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6744
6745 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
6746 the iterator at the beginning, so that they can be set later on,
6747 for instance in reseat_at_next_visible_line_start, without being
6748 overwritten.
6749
6750 * xfns.c (pbm_format): Add :foreground and :background keywords.
6751 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
6752 (xbm_load): Recognize foreground and background color specifications.
6753
6754 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
6755
6756 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
6757
6758 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
6759
6760 * msdos.c (IT_set_face): Compare highlighted face with the default
6761 face, and invert colors if these faces' colors are identical.
6762 (Fmsdos_remember_default_colors): Don't swap foreground and
6763 background colors in initial_colors[].
6764 (IT_set_frame_parameters): Don't swap frame's foreground and
6765 background pixels. If ALIST includes "(reverse . t)", swap
6766 foreground-color and background-color properties in frame's
6767 param_alist. If the original frame's param_alist doesn't specify
6768 the colors, store unspecified-fg and unspecified-bg, reversed if
6769 required.
6770
6771 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
6772 the colors are unspecified and reversed, reverse fore- and back-
6773 ground in the returned value.
6774 (Fframe_parameter): Ditto.
6775
6776 2000-10-16 Gerd Moellmann <gerd@gnu.org>
6777
6778 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
6779 get_last_unchanged_at_beg_row.
6780 (find_first_unchanged_at_end_row): Renamed from
6781 get_first_unchanged_at_end_row.
6782 (find_first_unchanged_at_end_row): Convert assertions to
6783 unconditional tests which abort. When looking for a row in
6784 unchanged text, don't go further back than first_text_row.
6785
6786 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
6787 Don't add in the last line's height when deciding if the new
6788 position is below the scroll margin.
6789
6790 2000-10-16 Miles Bader <miles@gnu.org>
6791
6792 * editfns.c (Fconstrain_to_field): Check carefully for field
6793 boundaries if either OLD_POS or NEW_POS has a non-nil field
6794 property, even if they're the same.
6795
6796 2000-10-16 Kenichi Handa <handa@etl.go.jp>
6797
6798 * xterm.c (x_draw_box_rect): Fix the calculation of width and
6799 height for XFillRectangle.
6800
6801 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
6802
6803 * syntax.c (Fstring_to_syntax): New function extracted from
6804 Fmodify_syntax_entry.
6805 (Fmodify_syntax_entry): Use it and document the ! and | fences.
6806 (skip_chars, Fforward_comment): Remove unused variables.
6807 (syms_of_syntax): Add defsubr for string-to-syntax.
6808 (describe_syntax): Add code for comment and string fences.
6809
6810 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
6811
6812 * keymap.c (access_keymap): Add AUTOLOAD parameter.
6813 Do the meta->esc mapping. Call get_keyelt before returning.
6814 Start scanning from the second element (the first is always `keymap')
6815 to make it easier to detect when we reach a parent map.
6816 Handle the case of inheriting from a symbol whose function is a map.
6817 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6818 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6819 (get_keyelt, Flookup_key): Update call to access_keymap.
6820 Remove the meta->esc mappings.
6821 (define_as_prefix): Delete old disabled code.
6822 (menu_item_p): New function.
6823 (where_is_internal_1): Skip over the few remaining menu items.
6824 * lisp.h (access_keymap): Update prototype.
6825 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6826 Update call to access_keymap.
6827 (follow_key, read_key_sequence): Update calls to access_keymap.
6828 Remove the meta->esc mappings.
6829
6830 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6831
6832 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6833 with additional argument.
6834
6835 * xdisp.c (cursor_row_p): New function.
6836 (try_cursor_movement, display_line): Use it.
6837
6838 * xdisp.c (append_space): Also save/restore iterator's current
6839 character and its length.
6840
6841 * xdisp.c (init_from_display_pos): Add an assertion.
6842 (handle_stop): Don't set iterator's add_overlay_start.
6843 (handle_invisible_prop): Likewise.
6844 (load_overlay_strings): If text under an overlay is invisible,
6845 take both before- and after-strings into account when the iterator
6846 is positioned either at the start or at the end of the overlay.
6847 (forward_to_next_line_start): Rewritten.
6848 (reseat_at_next_visible_line_start): Rewritten.
6849 (set_iterator_to_next): Add parameter RESEAT_P.
6850
6851 * dispextern.h (struct it): Remove member add_overlay_start.
6852 (set_iterator_to_next): Change prototype.
6853
6854 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6855
6856 * coding.c (code_convert_region): Be sure to initialize
6857 coding->category_idx.
6858 (decode_coding_string): Set coding->src_multibyte and
6859 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6860 (encode_coding_string): Set coding->src_multibyte and
6861 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6862
6863 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6864
6865 * xfns.c (Fx_create_frame): Don't bother calling
6866 face-set-after-frame-default since the caller does it for us anyway.
6867
6868 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6869
6870 * window.c (coordinates_in_window): Fix detection of vertical line
6871 on character terminals.
6872
6873 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6874
6875 * editfns.c (save_excursion_save): Additionally record the
6876 selected window.
6877 (save_excursion_restore): If buffer was visible in a window, and a
6878 different window was selected, and the old selected window is
6879 still live, restore point in that window.
6880
6881 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6882
6883 * xterm.c (x_produce_glyphs): Handle
6884 unibyte_display_via_language_environment correctly.
6885
6886 * regex.c (regex_compile): Change the way of handling a range from
6887 unibyte char to multibyte char.
6888
6889 * syntax.c (skip_chars): Change the way of handling a range from
6890 unibyte char to multibyte char.
6891
6892 * process.c (read_process_output): Cancel previous change.
6893
6894 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6895
6896 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6897
6898 * charset.c (Ffind_charset_string): Doc fix.
6899 (Ffind_charset_region): Doc fix.
6900
6901 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6902
6903 * process.c (read_process_output): Fix previous change. Adjust
6904 multibyteness of text to insert in a buffer by
6905 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6906
6907 2000-10-10 Andreas Schwab <schwab@suse.de>
6908
6909 * alloc.c (mark_object): Remove all workarounds installed on
6910 1993-08-08.
6911
6912 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6913
6914 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6915 (base64_encode_1): Make it work for a text of multibyte form.
6916 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6917 case. Don't call str_to_multibyte because base64_decode_1
6918 produces correct multibyte form for eight-bit codes.
6919 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6920 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6921 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6922 codes.
6923
6924 * charset.h (CHAR_STRING): Optimized for single byte characters.
6925
6926 2000-10-09 Andreas Schwab <schwab@suse.de>
6927
6928 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6929 -1 after socket is closed, to fall through to error processing.
6930
6931 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6932
6933 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6934 variables. If ALIST includes foreground-color or
6935 background-color, change also the colors of the default face for
6936 this frame.
6937
6938 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6939
6940 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6941 them extern (they are defined on xfaces.c).
6942 (syms_of_msdos): Don't intern and don't staticpro
6943 Qbackground_color and Qforeground_color.
6944
6945 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6946
6947 * frame.c (Fframe_parameter): For non-windowed frames, if
6948 f->param_alist says foreground or background color is unspecified,
6949 call tty_color_name to return the color name computed from the
6950 frame's current colors.
6951
6952 2000-10-06 Dave Love <fx@gnu.org>
6953
6954 * terminfo.c (ospeed): Don't declare.
6955
6956 * sysdep.c: Don't include string.h.
6957 (h_errno): Declare conditional also on TRY_AGAIN.
6958
6959 * charset.c (Ffind_charset_string): Doc fix.
6960
6961 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6962 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6963 error messages.
6964
6965 2000-10-05 Dave Love <fx@gnu.org>
6966
6967 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6968 position like menu-bar.
6969
6970 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6971
6972 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6973
6974 * xdisp.c (handle_single_display_prop): Use safe_call1.
6975 (safe_call): Renamed from call_function.
6976 (safe_call1): New function.
6977 (handle_fontified_prop): Use safe_call1 instead of call1.
6978 (safe_eval): Renamed from eval_form.
6979 (safe_eval_handler): Renamed from eval_handler.
6980 (handle_single_display_prop, display_mode_element): Use safe_eval
6981 instead of eval_form.
6982
6983 * xfaces.c (merge_face_heights): Use safe_call instead of
6984 call_function.
6985
6986 * keyboard.c (show_help_echo): Use safe_call instead of
6987 call_function; use safe_eval instead of eval_form.
6988
6989 * lisp.h (safe_call): Renamed from call_function.
6990 (safe_eval): Renamed from eval_form.
6991 (safe_call1): Add prototype.
6992
6993 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6994
6995 * xfns.c (image_ascent): Rearrange ascent calculation for the
6996 has-a-font case.
6997
6998 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6999
7000 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
7001 (where_is_internal_1): Don't bother ignoring menu-items any more.
7002
7003 2000-10-04 Gerd Moellmann <gerd@gnu.org>
7004
7005 * keyboard.c (update_menu_bindings): New variable.
7006 (parse_menu_item): Use AREF. If update_menu_bindings
7007 is 0, don't update menu bindings.
7008 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
7009
7010 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
7011
7012 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
7013 to `mark_object'.
7014
7015 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
7016
7017 * syntax.c (forw_comment): Match nestedness of ender/starter.
7018 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
7019 (prev_char_comstart_first): Remove.
7020 (back_comment): Check two-char comment markers more carefully
7021 to better handle overlapping cases like *//* or /* */* */ ...
7022 Match nestedness of ender/starter.
7023
7024 2000-10-02 Dave Love <fx@gnu.org>
7025
7026 * config.in (HAVE_GAI_STRERROR): Add undef.
7027
7028 * process.c (Fopen_network_stream): Use it.
7029
7030 * m/alpha.h (NO_REMAP): Don't define.
7031
7032 2000-10-02 Gerd Moellmann <gerd@gnu.org>
7033
7034 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
7035 return with a string converted to an integer or vice versa when
7036 Vmocklisp_arguments is t.
7037 (Fsignal): Likewise. The function can return for `quit'.
7038 (struct gcpro): Declare member `var' to point to a volatile
7039 Lisp_Object.
7040
7041 * eval.c (error): Prevent compiler warning.
7042
7043 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
7044
7045 * keymap.c (keymap_memberp): New function.
7046 (Fset_keymap_parent): Use it.
7047 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
7048 Use keymap_memberp to avoid creating cycles.
7049 (access_keymap): Use KEYMAPP.
7050
7051 2000-09-30 Gerd Moellmann <gerd@gnu.org>
7052
7053 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
7054 gai_strerror. Make sure xerrno is set if connect fails. Improve
7055 error recovery.
7056
7057 2000-09-29 Jason Rumney <jasonr@gnu.org>
7058
7059 * w32term.c (w32_char_font_type, w32_encode_char)
7060 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
7061 (w32_bdf_per_char_metric): New function.
7062 (w32_per_char_metric): Use it.
7063 (x_draw_glyph_string_background): Always draw background for BDF
7064 glyphs.
7065
7066 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
7067 GDI object which is a scarce resource.
7068
7069 * w32bdf.c (search_file_line): Fix skipping of whitespace.
7070 (get_quoted_string): Fix limit on memchr search.
7071 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
7072 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
7073 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
7074 (get_cached_font_char, cache_char_offset): Use macro
7075 BDF_CODEPOINT_RANGE_COVER_P.
7076 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
7077 (clear_cached_bitmap_slots): New function.
7078 (GET_HEX_VALUE): G-Z, g-z are not hex.
7079 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
7080 (get_bitmap_with_cache): Use new cache implementation.
7081 (create_offscreen_bitmap): New function.
7082 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
7083
7084 * w32term.c (x_produce_glyphs): If the distance from the current
7085 position to the next tab stop is less than a canonical character
7086 width, use the tab stop after that.
7087 (x_draw_glyphs): Handle case START and END are out of bounds more
7088 carefully.
7089 (x_clear_mouse_face): Block/unblock input.
7090 (x_display_and_set_cursor): Don't show a hollow box cursor for
7091 buffers whose cursor_type is nil.
7092
7093 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7094
7095 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
7096
7097 * dispextern.h (updating_frame): Declare extern.
7098
7099 2000-09-29 Andreas Schwab <schwab@suse.de>
7100
7101 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
7102
7103 2000-09-29 Gerd Moellmann <gerd@gnu.org>
7104
7105 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
7106 use its function definition.
7107 (tool_bar_items): Likewise.
7108
7109 * lisp.h (fatal): Declare NO_RETURN.
7110
7111 2000-09-29 Kenichi Handa <handa@etl.go.jp>
7112
7113 * keymap.c: Remove the line "#undef NULL".
7114
7115 2000-09-28 Gerd Moellmann <gerd@gnu.org>
7116
7117 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
7118
7119 2000-09-28 Dave Love <fx@gnu.org>
7120
7121 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
7122
7123 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
7124
7125 * .gdbinit (xreload): Note its need on GNU/Linux.
7126
7127 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
7128 r_alloc, r_alloc_free.
7129
7130 2000-09-28 Kenichi Handa <handa@etl.go.jp>
7131
7132 * syntax.c (skip_chars): Handle negation correctly.
7133
7134 2000-09-27 Gerd Moellmann <gerd@gnu.org>
7135
7136 * xfaces.c (realize_default_face): Call set_lface_from_font_name
7137 with non-zero FORCE_P argument.
7138
7139 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
7140 Add assertions.
7141
7142 * xdisp.c (window_box_height): Add an assertion.
7143
7144 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
7145 tool-bar than is available.
7146 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
7147
7148 2000-09-27 Dave Love <fx@gnu.org>
7149
7150 * s/irix6-5.h: Now works 64-bit. Tidied.
7151
7152 2000-09-26 Gerd Moellmann <gerd@gnu.org>
7153
7154 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
7155 instead of BITS_PER_INT.
7156 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
7157 EMACS_UINT, respectively.
7158 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
7159
7160 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
7161
7162 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
7163
7164 * window.c (freeze_window_starts): Construct last argument for
7165 foreach_window differently.
7166
7167 * xfns.c (x_decode_color): Don't return a Lisp_Object.
7168
7169 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
7170 EMACS_UINT instead of `int' and `unsigned int'.
7171 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
7172
7173 * frame.h (struct frame): Make the `nothing' member of union
7174 output_data an EMACS_INT.
7175
7176 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
7177 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
7178 size in the sdata structure.
7179 (SDATA_NBYTES, SDATA_DATA): New macros.
7180 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
7181 differently for the different layout of the sdata structure.
7182 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
7183 in sdata.
7184 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
7185 Check that size recorded in the string size and size recorded in
7186 the sdata structure agree.
7187
7188 2000-09-25 Dave Love <fx@gnu.org>
7189
7190 * buffer.c: Include stdio.h.
7191
7192 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
7193
7194 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
7195
7196 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
7197 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
7198 (__malloc_extra_blocks): Declare as __malloc_size_t.
7199
7200 2000-09-25 Gerd Moellmann <gerd@gnu.org>
7201
7202 * alloc.c (mark_image): Use GC_NILP instead of NILP.
7203
7204 * keyboard.c (show_help_echo): Set help_echo_showing_p.
7205 (read_char): If help-echo is showing, preserve the echo area
7206 when redisplaying.
7207
7208 * xdisp.c (help_echo_showing_p): New variable.
7209 (set_message): Reset it to 0.
7210 (init_xdisp): Initialize help_echo_showing_p.
7211
7212 * dispextern.h (help_echo_showing_p): Declare extern.
7213
7214 * config.in: Fix typo in __GNUC_MINOR__.
7215
7216 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
7217
7218 * s/freebsd.h (POSIX_SIGNALS): Define.
7219
7220 * xterm.c (x_clear_mouse_face): Block/unblock input.
7221
7222 2000-09-24 Dave Love <fx@gnu.org>
7223
7224 * fns.c (base64_encode_1): Fix last change.
7225
7226 2000-09-22 Gerd Moellmann <gerd@gnu.org>
7227
7228 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
7229
7230 * xdisp.c (try_window_reusing_current_matrix): More fixes
7231 for the case window has a header-line.
7232
7233 2000-09-22 Dave Love <fx@gnu.org>
7234
7235 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
7236 a doc string.
7237
7238 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
7239
7240 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
7241
7242 2000-09-21 Gerd Moellmann <gerd@gnu.org>
7243
7244 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
7245 for GCC >= 2.5.
7246
7247 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
7248 Declare NO_RETURN.
7249
7250 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
7251 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
7252 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
7253 warnings.
7254
7255 * marker.c (byte_char_debug_check): Return void.
7256
7257 * xfns.c (Fx_create_frame): Set default frame parameter value
7258 for tool-bar-lines to 1.
7259
7260 * dispnew.c (scrolling_window): Compare y-positions of rows
7261 equal at the start. Some simplification.
7262
7263 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
7264 reused rows' y-position in the case window has a header-line, and
7265 new window start is greater than old window start.
7266
7267 * process.c (process_sent_to): New variable.
7268 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
7269 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
7270 Declare more parameters volatile.
7271
7272 * lread.c (Vrecursive_load_depth_limit): New variable.
7273 (Fload): Check recursive loads whose recursion depth exceeds
7274 Vrecursive_load_depth_limit.
7275 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
7276
7277 2000-09-20 Gerd Moellmann <gerd@gnu.org>
7278
7279 * fileio.c (Fread_file_name): Doc fix.
7280
7281 * editfns.c (Fmessage_or_box): Doc fix.
7282
7283 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
7284
7285 * xfns.c (xbm_scan): Allow C-style comments.
7286
7287 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
7288 symbols are specified, add color translations to the cache.
7289 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
7290 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
7291 xpm_cache_color.
7292 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
7293 structures to xpm_init_color_cache.
7294
7295 2000-09-19 Gerd Moellmann <gerd@gnu.org>
7296
7297 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
7298
7299 2000-09-19 Andrew Innes <andrewi@gnu.org>
7300
7301 * makefile.nt (bootstrap-emacs): Don't change directory.
7302
7303 2000-09-19 Kenichi Handa <handa@etl.go.jp>
7304
7305 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
7306
7307 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
7308 If output buffer is too small, signal an appropriated error.
7309
7310 2000-09-18 Dave Love <fx@gnu.org>
7311
7312 * keyboard.c (menu_bar_items, tool_bar_items)
7313 (current_active_maps): Remove redundant get_local_map call.
7314
7315 2000-09-18 Gerd Moellmann <gerd@gnu.org>
7316
7317 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
7318 cursor for buffers whose cursor_type is nil.
7319
7320 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
7321 a feature to implement that is already implemented.
7322 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
7323 warnings.
7324
7325 * xfns.c (x_clear_image_1): New function.
7326 (x_clear_image): Use it.
7327 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
7328
7329 * dispnew.c (update_window): Move test for invisible lines
7330 at the top to update_window_line.
7331 (update_window_line): Handle invisible lines here.
7332
7333 * xfns.c (clear_image_cache): Clear current matrices of all
7334 frames sharing an image cache. Block input while freeing
7335 images. Fix timestamp comparison.
7336 (x_clear_image): Also free the mask.
7337
7338 * xfns.c (lookup_image): Block input while loading the image so
7339 that we won't get interrupted in a state where the image isn't yet
7340 set up completely.
7341 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
7342 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
7343 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
7344 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
7345
7346 2000-09-16 Gerd Moellmann <gerd@gnu.org>
7347
7348 * dispnew.c (update_window): Make sure to make desired rows
7349 current even if they are completely invisible at the top
7350 of a window.
7351
7352 2000-09-15 Gerd Moellmann <gerd@gnu.org>
7353
7354 * xfns.c (lookup_image): Build mask before applying an algorithm.
7355 Recognize algorithm `disabled'.
7356 (cross_disabled_images): New variable.
7357 (COLOR_INTENSITY): New macro.
7358 (x_detect_edges): Use COLOR_INTENSITY.
7359 (x_disable_image): New function.
7360 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
7361
7362 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
7363 disabled state, don't apply an image transformation algorithm if
7364 the user specified an image for the disabled state. Use
7365 `:algorithm disabled' for creating a disabled item's image if the
7366 user hasn't specified an image.
7367
7368 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
7369 allocation functions with the XPM lib.
7370 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
7371 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
7372 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
7373 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
7374 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
7375 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
7376 functions, if possible, because these handle color allocation
7377 failure more gracefully.
7378 (Fimage_mask_p): New function.
7379
7380 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
7381 (Qedge_detection, Qheuristic): New symbols.
7382 (syms_of_xfns): Initialize new symbols.
7383 (lookup_image): Handle `:mask X', `:algorithm emboss', and
7384 `algorithm (edge-detection ...)'.
7385 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
7386 (tiff_format, gif_format, gs_format): Add `:mask'.
7387 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
7388 (GIF_MASK, GS_MASK): New enumerators.
7389 (x_laplace_read_row, x_laplace_write_row): Functions removed.
7390 (emboss_matrix, laplace_matrix): New variables.
7391 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
7392 (x_edge_detection): New functions.
7393 (x_laplace): Rewritten in terms of x_detect_edges.
7394 (x_build_heuristic_mask): If image has a mask, free it.
7395
7396 2000-09-14 Andrew Innes <andrewi@gnu.org>
7397
7398 * makefile.w32-in: Revert to Unix line endings.
7399
7400 2000-09-14 Andrew Innes <andrewi@gnu.org>
7401
7402 * makefile.w32-in: Standardize indentation somewhat.
7403 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
7404 cater for differences between shells.
7405
7406 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
7407
7408 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7409
7410 * xterm.c (x_produce_glyphs): If the distance from the current
7411 position to the next tab stop is less than a canonical character
7412 width, use the tab stop after that.
7413
7414 2000-09-14 Dave Love <fx@gnu.org>
7415
7416 * buffer.c (alloc_buffer_text): Fix xmalloc call.
7417
7418 2000-09-14 Gerd Moellmann <gerd@gnu.org>
7419
7420 * xdisp.c (handle_fontified_prop): While running fontification
7421 functions, bind `fontification-functions' and
7422 `after-change-functions' to nil.
7423
7424 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
7425 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
7426
7427 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
7428
7429 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
7430 USE_MMAP_FOR_BUFFERS.
7431
7432 * insdel.c (make_gap): Use enlarge_buffer_text.
7433
7434 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
7435 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
7436 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
7437 from former r_alloc_* functions in ralloc.c.
7438 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
7439 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
7440 (mmap_init) [REL_ALLOC_MMAP]: New function.
7441 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
7442 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
7443 BUFFER_FREE.
7444
7445 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
7446 (enlarge_buffer_text): Add prototype.
7447
7448 * ralloc.c: Remove everything having to do with the use of mmap.
7449
7450 2000-09-13 Gerd Moellmann <gerd@gnu.org>
7451
7452 * sound.c (Fplay_sound): Doc fix.
7453
7454 * keyboard.c: Avoid some more compiler warnings.
7455 (parse_tool_bar_item): Ignore cached key bindings.
7456
7457 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
7458 and allocation of Lisp data.
7459
7460 2000-09-12 Gerd Moellmann <gerd@gnu.org>
7461
7462 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
7463 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
7464 defaults first.
7465
7466 * lread.c (Fload): Put code checking for recursive loads in #if 0.
7467
7468 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
7469
7470 * ccl.c: Comment fixed.
7471 (MAX_MAP_SET_LEVEL): Increased to 30.
7472 (PUSH_MAPPING_STACK): Enclose with do-while block.
7473 (POP_MAPPING_STACK): Likewise.
7474 (stack_idx_of_map_multiple): New variable.
7475 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
7476 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
7477 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
7478 (ccl_driver) <CCL_MapSingle>: Likewise.
7479 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
7480 with the case where looking up process reaches to the end of
7481 map-set, and call CCL programs as the above change.
7482
7483 2000-09-11 Gerd Moellmann <gerd@gnu.org>
7484
7485 * xfns.c (png_load, jpeg_load): Declare some variables volatile
7486 that might be clobbered by longjmp.
7487 (check_x_display_info, x_decode_color, create_frame_xic)
7488 (Fx_display_backing_store, Fx_display_visual_class)
7489 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
7490
7491 * lread.c (init_lread): Set Vloads_in_progress to nil.
7492 (Fload): Show list of recursively loaded files, when signaling an
7493 error.
7494
7495 * lread.c (Vloads_in_progress): New variable.
7496 (record_load_unwind): New function.
7497 (Fload): Check for recursive loads.
7498 (syms_of_lread): Initialize Vloads_in_progress.
7499 (read_integer, read1): Avoid some compiler warnings.
7500
7501 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
7502 compiler warnings.
7503
7504 2000-09-11 Miles Bader <miles@gnu.org>
7505
7506 * editfns.c (Fbuffer_string): Doc fix.
7507
7508 2000-09-10 Gerd Moellmann <gerd@gnu.org>
7509
7510 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
7511
7512 2000-09-09 Ken Raeburn <raeburn@gnu.org>
7513
7514 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
7515 whether to include other header files.
7516
7517 2000-09-09 Gerd Moellmann <gerd@gnu.org>
7518
7519 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
7520 by Fmemq as a boolean.
7521
7522 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
7523
7524 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
7525
7526 2000-09-08 Gerd Moellmann <gerd@gnu.org>
7527
7528 * ralloc.c (mmap_fd): Remove initializer which can make it
7529 read-only in a dumped Emacs.
7530 (mmap_fd_1): New variable.
7531 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
7532 restore it from there.
7533 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
7534 unconditionally so that mmap_fd can be initialized there.
7535 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
7536 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
7537 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
7538
7539 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
7540
7541 * xdisp.c (dump_glyph_row): Fix printf format string.
7542 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
7543
7544 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
7545
7546 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
7547 inheritance.
7548
7549 * xdisp.c (try_window_id): When trying to locate cursor in
7550 unchanged rows at the top, handle the case that we can't find it.
7551
7552 * xterm.c (x_draw_glyphs): Handle case START and END are out
7553 of bounds more carefully.
7554
7555 2000-09-08 Dave Love <fx@gnu.org>
7556
7557 * s/sol2.h (REL_ALLOC_MMAP): Define.
7558 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
7559
7560 * ralloc.c: Don't include string.h (redundant).
7561 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
7562 [!MAP_ANON]: Include fcntl.h.
7563 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
7564 (r_alloc, r_re_alloc, r_alloc_free)
7565 (mmap_enlarge, mmap_set_vars): Use it.
7566 (r_alloc_init_fd): New function.
7567 (__morecore) [SYSTEM_MALLOC]: Don't declare.
7568 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
7569 malloc type.
7570
7571 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
7572 Remove vm-limit.o.
7573
7574 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
7575 change to __NetBSD__.
7576
7577 2000-09-08 Kenichi Handa <handa@etl.go.jp>
7578
7579 * search.c (compile_pattern): Check the multibyteness of cached
7580 string and PATTERN.
7581
7582 2000-09-08 Miles Bader <miles@gnu.org>
7583
7584 * xfaces.c (default_face_vector): Function removed.
7585 (Finternal_merge_in_global_face): Restore old global/local
7586 attribute override order. Use inline loop instead of calling
7587 default_face_vector.
7588
7589 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7590
7591 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
7592 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
7593 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
7594 where necessary, in case POINTER_TYPE is `void'.
7595
7596 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
7597
7598 * frame.c (make_terminal_frame): Initialize frame foreground and
7599 background colors to unspecified, for the initial instance of an
7600 MSDOS frame.
7601
7602 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7603
7604 * ralloc.c (mmap_find): Fix overlap computation.
7605 (mmap_enlarge): Compute nbytes before trying to find an
7606 overlapping region.
7607
7608 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
7609 instead of `!='.
7610
7611 * lread.c (syms_of_lread): Change value of regexp
7612 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
7613
7614 * xmenu.c (xdialog_show): When looking up the selection in
7615 menu_items, take `quote' boundaries into account; this corresponds
7616 to a nil ITEM in x-popup-dialog.
7617
7618 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7619
7620 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
7621 not 0x81.
7622 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
7623
7624 * coding.c (encode_coding_sjis_big5): Use translation table for
7625 encoding, not decoding. Fix the handling of latin-jisx0201.
7626 Check for the charset katakana-jisx0201 too.
7627 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
7628 (detect_coding_sjis): Check the byte sequence more rigidly.
7629
7630 2000-09-07 Gerd Moellmann <gerd@gnu.org>
7631
7632 * xfaces.c (Vparam_value_alist): New variable.
7633 (syms_of_xfaces): Initialize it.
7634 (Finternal_set_lisp_face_attribute): Avoid more consing.
7635
7636 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
7637 specially.
7638 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
7639 (Qbackground_mode): New variable.
7640 (syms_of_frame_1): Initialize Qbackground_mode.
7641
7642 * lisp.h (Qdisplay): Declare extern.
7643
7644 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
7645 change face on all frames, and change the default for new frames.
7646
7647 2000-09-07 Dave Love <fx@gnu.org>
7648
7649 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
7650
7651 2000-09-07 Kenichi Handa <handa@etl.go.jp>
7652
7653 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
7654
7655 * charset.c: Include composite.h
7656 (lisp_string_width): New function.
7657 (Fstring_width): Call lisp_string_width instead of strwidth.
7658
7659 * Makefile.in (charset.o): Depends on composite.h.
7660
7661 * process.c (read_process_output): Before inserting the decoded
7662 text in the buffer, adjust the multibyteness.
7663
7664 2000-09-06 Gerd Moellmann <gerd@gnu.org>
7665
7666 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
7667 buffer's text buffer is null, map new memory.
7668
7669 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
7670 POINTER_TYPE and size_t.
7671 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
7672 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
7673 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
7674 [REL_ALLOC_MMAP]: New macros.
7675 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
7676 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
7677 [REL_ALLOC_MMAP]: New functions.
7678
7679 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
7680 before and after unexec.
7681
7682 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
7683 text buffers if necessary.
7684
7685 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
7686 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
7687 in prototypes.
7688
7689 * config.in (HAVE_MMAP): Add #undef.
7690
7691 2000-09-05 Gerd Moellmann <gerd@gnu.org>
7692
7693 * frame.c (Qdisplay_type): New variable.
7694 (syms_of_frame_1): Initialize it.
7695 (Fframe_parameter): New function that avoids consing.
7696 (syms_of_frame): Defsubr it.
7697
7698 * buffer.c (Fother_buffer): Consider buffers as invisible when
7699 they are displayed in a window on an invisible frame.
7700
7701 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
7702 get-largest-window always return nil.
7703
7704 2000-09-04 Gerd Moellmann <gerd@gnu.org>
7705
7706 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
7707 variable; recognize Emacs 19 elc files.
7708
7709 2000-09-04 Miles Bader <miles@gnu.org>
7710
7711 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
7712 before initially popping up the menu, so the menu doesn't flash
7713 when the face settings are significantly different from the defaults.
7714
7715 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
7716
7717 * regex.c (WIDE_CHAR_SUPPORT): New macro.
7718 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
7719 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
7720 (BIT_UNIBYTE): Remove.
7721 (re_match_2_internal): Delete corresponding code and streamline the
7722 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
7723 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
7724 (re_wctype_t): New type.
7725 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
7726 (regex_compile): Use them and fix handling of overly long char classes.
7727
7728 2000-09-03 Andrew Innes <andrewi@gnu.org>
7729
7730 * makefile.w32-in: Change to DOS line endings.
7731
7732 * s/ms-w32.h (ORDINARY_LINK): New define.
7733
7734 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
7735 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
7736
7737 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
7738 (distclean): Delete them here instead.
7739
7740 * w32proc.c (compare_env): Convert to uppercase for comparison,
7741 not lowercase, to match how the native Windows shell works.
7742
7743 2000-09-03 Jason Rumney <jasonr@gnu.org>
7744
7745 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
7746 CVS changes the line-ends when checking in/out on DOS/Windows.
7747
7748 * makefile.nt (emacs): Do not change directory to run temacs, as
7749 the load-path is set relative to current directory.
7750
7751 2000-09-03 Miles Bader <miles@gnu.org>
7752
7753 * xterm.c (x_alloc_lighter_color_for_widget): New function.
7754
7755 2000-09-02 Gerd Moellmann <gerd@gnu.org>
7756
7757 * xdisp.c (redisplay_mode_lines): New function.
7758 (display_mode_lines): Return number of mode lines displayed.
7759 (echo_area_display): Use redisplay_mode_lines to draw garbaged
7760 mode lines. Don't temporarily bind redisplay-dont-pause to t.
7761
7762 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
7763 string.h and strings.h.
7764 (index) [HAVE_INDEX]: Add prototype.
7765
7766 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
7767 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
7768
7769 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
7770 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
7771
7772 2000-09-01 Gerd Moellmann <gerd@gnu.org>
7773
7774 * lread.c (read1): Accept `?' as symbol constituent, for
7775 compatiblity with XEmacs.
7776
7777 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
7778
7779 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
7780 (struct re_pattern_buffer): Remove newline_anchor.
7781 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
7782 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
7783 (re_max_failures, fail_stack): Use size_t rather than unsigned.
7784 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
7785 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
7786 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
7787 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
7788 Get rid of references to newline_anchor.
7789 (regcomp): Allocate and precompute a fastmap.
7790
7791 2000-08-31 Gerd Moellmann <gerd@gnu.org>
7792
7793 * lread.c (openp): GCPRO local variable `filename'.
7794
7795 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
7796
7797 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
7798
7799 * regex.c: Merge some changes from GNU libc. Add prototypes.
7800 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
7801 Use memcmp and memcpy instead of bcopy and bcmp.
7802 (init_syntax_once): Use ISALNUM.
7803 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
7804 (REG_UNSET_VALUE): Remove. Use NULL instead.
7805 (REG_UNSET, re_match_2_internal): Use NULL.
7806 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
7807 New macros.
7808 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
7809 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
7810 (regex_compile): In handle_interval, return an error rather than try to
7811 unfetch the interval if we can't find the closing brace.
7812 Obey the RE_NO_GNU_OPS syntax bit.
7813 (TOLOWER): New macro.
7814 (regcomp): Use it.
7815 (regexec): Allocate regs.start and regs.end as one block.
7816
7817 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7818
7819 * xdisp.c (echo_area_display): Check display_completed instead
7820 of calling detect_input_pending.
7821
7822 * dispnew.c (update_frame): Only set display_completed here; move
7823 the update_begin and update_end calls here from update_frame_1.
7824 (update_frame_1): Don't set display_completed here, don't call
7825 update_begin/update_end.
7826
7827 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7828 instead of store_frame_param.
7829
7830 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7831
7832 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7833 desired window matrix hasn't been displayed, use the current row
7834 instead. Make sure that only those frame rows are updated for
7835 which there exists a corresponding enabled desired row.
7836
7837 2000-08-29 Miles Bader <miles@gnu.org>
7838
7839 * xfaces.c (default_face_vector): New function.
7840 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7841
7842 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7843
7844 * lread.c (openp): Prevent temporary string passed to
7845 Ffile_readable_p from being garbage collected.
7846
7847 2000-08-28 Dave Love <fx@gnu.org>
7848
7849 * keymap.c (store_in_keymap): Add `static' to declaration.
7850
7851 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7852
7853 * emacs.c, callint.c, doc.c, editfns.c
7854 (toplevel) [HAVE_STRING_H]: Include string.h.
7855 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7856 (index): Remove prototypes which might conflict with non-standard
7857 definitions of index/strchr.
7858
7859 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7860 (rindex): Define only if !HAVE_RINDEX.
7861
7862 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7863
7864 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7865
7866 2000-08-28 Miles Bader <miles@gnu.org>
7867
7868 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7869 made inconsistent by a font-related attribute in FROM.
7870 (merge_face_inheritance): Add function comment.
7871
7872 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7873
7874 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7875 the 4th arg (PREV_EVENT) Qt to suppress input method.
7876
7877 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7878
7879 * regex.c: Indent cpp directives and remove parens after `defined'.
7880 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7881 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7882 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7883 (re_compile_pattern): Use size_t for length.
7884 (init_syntax_once): Move to a better place.
7885 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7886 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7887
7888 * syntax.c (back_comment): Detect cases where a comment-starter is
7889 actually inside another comment as in: /* a // b */ c // d \n.
7890 Make it clear that `comstart_pos' is unused for nested comments.
7891
7892 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7893 (KEYMAPP): New macro.
7894 (Fkeymap_parent, Fset_keymap_parent): Use it.
7895 (fix_submap_inheritance): Mark it static.
7896 (define_as_prefix, describe_buffer_bindings, describe_command)
7897 (describe_translation, describe_map): Complete prototypes.
7898
7899 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7900
7901 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7902 to better match the key-lookup behavior.
7903
7904 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7905
7906 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7907 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7908
7909 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7910
7911 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7912 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7913 (xterm.o): Depend on coding.h
7914
7915 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7916
7917 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7918 the corresponding '#endif'.
7919
7920 2000-08-26 Miles Bader <miles@gnu.org>
7921
7922 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7923 * xfaces.c (QCinherit): New variable.
7924 (syms_of_xfaces): Initialize it.
7925 (LFACE_INHERIT): New macro.
7926 (Finternal_get_lisp_face_attribute)
7927 (merge_face_vector_with_property)
7928 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7929 (check_lface_attrs): Allow new types of face height. Check
7930 inherit attribute.
7931 (CYCLE_CHECK): New macro.
7932 (merge_face_inheritance): New function.
7933 (merge_face_vectors): Merge inherited faces too. Add F and
7934 CYCLE_CHECK arguments.
7935 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7936 (lookup_named_face, lookup_derived_face, realize_named_face)
7937 (face_at_string_position, face_at_buffer_position): Supply
7938 new F and CYCLE_CHECK arguments to merge_face_vectors.
7939 (merge_face_heights): New function.
7940 (merge_face_vectors, merge_face_vector_with_property)
7941 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7942 handle relative face heights.
7943 (lface_same_font_attributes_p): Compare heights using EQ.
7944
7945 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7946
7947 * charset.c (char_to_string): Check the character validity.
7948 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7949
7950 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7951
7952 * regex.c (PUSH_FAILURE_COUNT): New macro.
7953 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7954 Handle popping of a register's or a counter's data.
7955 (POP_FAILURE_POINT): Use the new name.
7956 (re_match_2_internal): Push counter data on the stack for succeed_n,
7957 jump_n and set_number_at and remove misleading dead code in succeed_n.
7958
7959 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7960
7961 * xdisp.c (redisplay_internal): If considering all windows on all
7962 frames, update the display for each frame as soon as possible,
7963 instead of first building all desired matrices for all frames, and
7964 then updating them all.
7965 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7966
7967 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7968
7969 * bytecode.c (mark_byte_stack): Add a comment.
7970
7971 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7972 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7973 a graphical frame.
7974
7975 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7976
7977 * minibuf.c (do_completion): Always use compare-string, not
7978 string-equal because the latter doesn't pay attention to
7979 multibyteness of strings.
7980
7981 * process.c (create_process): Don't setup raw-text coding here.
7982 (Fopen_network_stream): Don't set coding->src_multibyte and
7983 coding->dst_multibyte here.
7984 (read_process_output): For process filter, return unibyte string
7985 if default-enable-multibyte-characters is nil.
7986 (send_process): If OBJECT is multibyte text, be sure to encoded it
7987 by the specified coding system for the process. Otherwise, setup
7988 raw-text coding.
7989 (init_process): Don't initialize default-process-coding-system here.
7990
7991 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7992
7993 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7994 <scroll-down-aggressively>: Likewise.
7995
7996 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7997
7998 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7999 zero. Set coding->produced_char correctly.
8000
8001 2000-08-22 Andrew Innes <andrewi@gnu.org>
8002
8003 * makefile.w32-in: New file.
8004
8005 * unexw32.c (unexec): Ignore old_name, and use the actual location
8006 of the current executable instead. Base new_name on this.
8007
8008 * w32proc.c (create_child): Remove reference to security
8009 descriptor, which isn't needed and doesn't compile with mingw32.
8010
8011 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8012 up dllimport attributes.
8013 (x_update_window_end): Update prototype.
8014
8015 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
8016 extern, which screws up dllimport attributes.
8017
8018 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8019 up dllimport attributes.
8020
8021 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
8022 screws up dllimport attributes.
8023
8024 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8025 up dllimport attributes.
8026 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
8027 screws up dllimport attributes.
8028
8029 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8030 up dllimport attributes.
8031
8032 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
8033 screws up dllimport attributes.
8034
8035 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
8036 screws up dllimport attributes.
8037
8038 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8039 up dllimport attributes.
8040
8041 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
8042 unnecessary extern, which screws up dllimport attributes.
8043 (main): Ditto.
8044
8045 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8046 up dllimport attributes.
8047
8048 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
8049 unnecessary extern, which screws up dllimport attributes.
8050
8051 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
8052 screws up dllimport attributes.
8053
8054 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
8055 up dllimport attributes.
8056
8057 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
8058
8059 * w32bdf.c (search_file_line):
8060 (set_bdf_font_info):
8061 (seek_char):
8062 (w32_get_bdf_glyph):
8063 (w32_BDF_to_x_font): Fix compile warnings.
8064
8065 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
8066
8067 * w32select.c: Include keyboard.h before frame.h.
8068
8069 * w32fns.c (max): Define macro.
8070 (JOHAB_CHARSET): Define if not known.
8071 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
8072 (Fx_show_tip): Synch with X version.
8073
8074 * w32xfns.c: Include keyboard.h before frame.h.
8075
8076 * w32fns.c: Include keyboard.h before frame.h.
8077
8078 * w32term.c: Include keyboard.h before frame.h.
8079
8080 * fontset.c: Include keyboard.h before frame.h.
8081
8082 * w32inevt.c: Include keyboard.h before frame.h.
8083 (MOUSE_MOVED): Define if not known.
8084
8085 * minibuf.c: Include keyboard.h before frame.h.
8086
8087 * keyboard.c: Include keyboard.h before frame.h.
8088
8089 * indent.c: Include keyboard.h before frame.h.
8090
8091 * dispnew.c: Include keyboard.h before frame.h.
8092
8093 * buffer.c: Include keyboard.h before frame.h.
8094
8095 * alloc.c: Include keyboard.h before frame.h.
8096
8097 * print.c: Include keyboard.h before frame.h.
8098
8099 * process.c: Include keyboard.h before frame.h.
8100
8101 * scroll.c: Include keyboard.h before frame.h.
8102
8103 * sysdep.c: Include keyboard.h before frame.h.
8104
8105 * term.c: Include keyboard.h before frame.h.
8106
8107 * window.c: Include keyboard.h before frame.h.
8108
8109 * xdisp.c: Include keyboard.h before frame.h.
8110 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
8111
8112 * frame.c: Include keyboard.h before frame.h.
8113
8114 * w32heap.h: Undefine min, max.
8115
8116 * w32gui.h: Undefine min, max.
8117
8118 * unexw32.c: Change PUCHAR to PCHAR.
8119 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
8120 (relocate_offset):
8121 (get_section_info):
8122 (copy_executable_and_dump_data): Remove unnecessary static defs.
8123 (copy_executable_and_dump_data): Fix compile warnings.
8124
8125 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
8126
8127 * w32console.c (min): Define macro.
8128 (clear_frame, write_glyphs): Fix compile warning.
8129
8130 * w32proc.c (compare_env):
8131 (find_child_console): Fix compile warning.
8132
8133 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
8134 sys_errlist instead of _sys_errlist.
8135 (get_emacs_configuration_options): New function.
8136
8137 * s/ms-w32.h (sys_nerr): Provide default definition.
8138 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
8139 name with _ prepended.
8140 (NSIG): Define if not known.
8141 (get_emacs_configuration): Provide extern declaration.
8142 (get_emacs_configuration_options): Provide extern declaration.
8143 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
8144
8145 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
8146 (map_w32_filename):
8147 (read_unc_volume): Fix compile warning.
8148
8149 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
8150 definitions from being used.
8151
8152 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
8153
8154 * w32.c (unc_volume_file_attributes):
8155 (open_unc_volume): Make arg const.
8156
8157 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
8158 (read_input_waiting): Remove excess parameter.
8159
8160 * w32.c (init_environment): Call _access.
8161 (check_windows_init_file): Call _close.
8162 (init_user_info): Call _putenv.
8163 (init_environment): Call _putenv and _strdup.
8164 (init_ntproc): Reset volume info cache on startup.
8165
8166 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
8167 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
8168 cannot override the CRT malloc.
8169
8170 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
8171 (LINK_FLAGS): Append to original value of LINK_FLAGS.
8172
8173 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
8174 unless we are linking with a static CRT.
8175 (RVA_TO_PTR): Cast result to unsigned char*.
8176
8177 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
8178 (add_volume_info): Use xstrdup.
8179
8180 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
8181
8182 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
8183 (do_completion, Fminibuffer_complete_word): Use it.
8184 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
8185 var so it can take non-boolean values.
8186
8187 2000-08-21 Gerd Moellmann <gerd@gnu.org>
8188
8189 * editfns.c (find_field): Formatting changes.
8190 (toplevel): Some old-style function forward declarations
8191 changed to prototypes, some new protypes added, some functions
8192 made static.
8193
8194 * lisp.h (set_time_zone_rule): Add prototype.
8195 (use_dialog_box): External declaration.
8196
8197 * keyboard.c (gen_help_event): Add parameter SIZE.
8198 (kbd_buffer_events_waiting): Slightly rewritten.
8199 (clear_event): New function.
8200 (kbd_buffer_get_event): Use it, and clear the input_events of
8201 HELP_EVENTs.
8202 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
8203 don't fill the newly created array with nils.
8204 (toplevel): Convert some old-style function forward declarations
8205 to prototypes.
8206
8207 * keyboard.h (gen_help_event): Change prototype.
8208
8209 * xterm.c (XTread_socket): Change calls to gen_help_event.
8210
8211 * w32term.c (w32_read_socket): Change calls to gen_help_event.
8212
8213 * eval.c (Fmacroexpand): Doc fix.
8214
8215 2000-08-20 Jason Rumney <jasonr@gnu.org>
8216
8217 * w32term.h (x_display_info_for_display): Remove as this function
8218 does not exist on W32.
8219
8220 * w32term.c (help_echo_window): New variable.
8221 (syms_of_w32term): staticpro it.
8222 (note_mode_line_highlight): Set it.
8223 (XTextExtents16): Removed as there is no equivalent on W32.
8224 (x_compute_glyph_string_overhangs): Incomplete body removed, as
8225 the X way of doing this will not work for W32.
8226 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
8227 (x_draw_image_foreground): Avoid drawing outside of the clip area
8228 when image doesn't have a mask.
8229 (note_mouse_highlight): Process overlays in the right order of
8230 priority. Set help_echo_window.
8231 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
8232 because that's more visible for large images.
8233
8234 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
8235 name to single_keymap_panes.
8236 (w32_menu_show): Set wv->title when dealing with titles.
8237 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
8238
8239 2000-08-21 Miles Bader <miles@gnu.org>
8240
8241 * minibuf.c (do_completion): Try again if we rewrite the input
8242 string, but no completion was done, so that any completion message
8243 will be correct.
8244
8245 2000-08-20 Gerd Moellmann <gerd@gnu.org>
8246
8247 * xfaces.c (lface_equal_p): Compare strings differently.
8248 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
8249 (realize_tty_face): Use them.
8250 (syms_of_xfaces): Initialize new variables.
8251 (map_tty_color): New function, extracted from realize_tty_face.
8252 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
8253 foreground or background color, store the new color name in the
8254 realized face; previous code trying to do this had no effect.
8255 (realize_tty_face): Use map_tty_color.
8256 (Fclear_face_cache): Set face_change_count and ensure thorough
8257 redisplay.
8258
8259 2000-08-19 Gerd Moellmann <gerd@gnu.org>
8260
8261 * undo.c (record_first_change, record_marker_adjustment): Don't
8262 use XBUFFER on last_undo_buffer which might not be a buffer.
8263
8264 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8265
8266 * coding.c (decode_coding_string): Set members consumed,
8267 consumed_char, produced, produced_char of *coding correctly. If
8268 decode_coding doesn't consume any byte, don't try anymore.
8269 (encode_coding_string): Likewise.
8270
8271 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8272
8273 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
8274 conditional have void type, for Standard C compilers.
8275
8276 * xdisp.c (redisplay_internal): Compare windows for equality with
8277 EQ, instead of applying XWINDOW to something that might not
8278 be a window.
8279
8280 2000-08-18 Kenichi Handa <handa@etl.go.jp>
8281
8282 * fontset.c (Finternal_char_font): Search only the selected frame
8283 for a window of the current buffer.
8284
8285 2000-08-18 Gerd Moellmann <gerd@gnu.org>
8286
8287 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
8288 Lisp_Objects.
8289
8290 * keyboard.c (kbd_buffer_get_event): Handle the case that the
8291 second half of a HELP_EVENT is found at the start of kbd_buffer.
8292
8293 2000-08-18 Miles Bader <miles@gnu.org>
8294
8295 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
8296
8297 * editfns.c (save_restriction_save): Rewrite to use markers.
8298 (save_restriction_restore): Rewrite to understand new form of data
8299 saved by save_restriction_save.
8300 (Fsave_restriction): Remove cautionary note in doc-string.
8301
8302 2000-08-17 Gerd Moellmann <gerd@gnu.org>
8303
8304 * fileio.c (build_annotations): Add a comment explaining the
8305 return value of format-annotate-function. Replace a spurious call
8306 to Flength with a CONSP test. Call format-annotate-function with
8307 a fifth arg specifying how many times the function is been called
8308 in a row, to let it choose temporary buffers appropriately.
8309
8310 2000-08-17 Dave Love <fx@gnu.org>
8311
8312 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
8313 declare make_temp_name twice.
8314
8315 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
8316 (unreadpure): Give it an arg.
8317
8318 * unexalpha.c: Prototype fatal_unexec, mark_x,
8319 update_dynamic_symbols. Declare unexec as void.
8320
8321 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
8322 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
8323
8324 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
8325 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
8326
8327 * alloca.c: Use #error.
8328 [POINTER_TYPE]: Use it.
8329
8330 * eval.c (Fdefvar): Doc fix.
8331
8332 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
8333 INITIALIZE_INTERVAL.
8334
8335 * buffer.h: Avoid DECLARE_INTERVALS.
8336
8337 * config.in: Add size_t.
8338
8339 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
8340
8341 * w16select.c (set_clipboard_data): If there's not enough memory
8342 to put text into clipboard, return 1, as Fw16_set_clipboard_data
8343 expects. In case of other failures, return 3.
8344 (system_error_msg): New error message.
8345 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
8346 system_error_msg.
8347
8348 2000-08-16 Gerd Moellmann <gerd@gnu.org>
8349
8350 * term.c (write_glyphs): Also turn off inverse video after turning
8351 off other appearances in case TS_exit_attribute_mode is not equal
8352 to TS_end_standout_mode.
8353 (insert_glyphs): Turn inverse video on/off for each run of glyphs
8354 with the same face.
8355 (turn_off_face): Reset standout_mode only if
8356 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
8357 is equal to TS_end_standout_mode.
8358
8359 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8360
8361 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
8362 sequence at the end of the source block.
8363
8364 * ccl.c (Fccl_program_p): Docstring modified.
8365 (Fccl_execute): Likewise.
8366 (Fccl_execute_on_string): Likewise.
8367
8368 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
8369
8370 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
8371
8372 2000-08-16 Kenichi Handa <handa@etl.go.jp>
8373
8374 The following changes are mainly to fix bugs of
8375 encode/decode-coding-string failing if encoding/decoding return
8376 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
8377 variable conversion_buffer.
8378
8379 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
8380 decrement dst_end to avoid buffer overflow in the later call of
8381 string_as_multibyte
8382
8383 * coding.h (conversion_buffer_size, conversion_buffer)
8384 (get_conversion_buffer): Extern deleted.
8385
8386 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
8387 (conversion_buffer, conversion_buffer_size): Variables deleted.
8388 (get_conversion_buffer): Function deleted.
8389 (struct conversion_buffer): New structure.
8390 (MAX_ALLOCA): New macro.
8391 (allocate_conversion_buffer): New macro.
8392 (extend_conversion_buffer, free_conversion_buffer): New functions.
8393 (ccl_coding_driver): Set coding->result.
8394 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
8395 this is the last block of source.
8396 (encode_coding): Likewise. Handle the source block as the last
8397 one only when the whole source text is consumed.
8398 (decode_coding_string): Handle the case that the output buffer is
8399 too small to decode the whole source text. Use
8400 allocate_conversion_buffer, extend_conversion_buffer and
8401 free_conversion_buffer, not get_conversion_buffer.
8402 (encode_coding_string): Likewise.
8403 (init_coding): Function deleted.
8404 (init_coding_once): Delete code to initialize conversion_buffer_size.
8405
8406 * emacs.c (main): Don't call init_coding.
8407
8408 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
8409
8410 * term.c (write_glyphs): Use a locally declared conversion_buffer.
8411 (insert_glyphs): Likewise.
8412
8413 * w32console.c (write_glyphs): Use a locally declared
8414 conversion_buffer.
8415
8416 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
8417
8418 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
8419 member of display_info is NULL.
8420
8421 2000-08-15 Gerd Moellmann <gerd@gnu.org>
8422
8423 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
8424
8425 * term.c (turn_off_face): Reset standout_mode when resetting
8426 appearances with capability `me'.
8427 (write_glyphs): Switch on inverse video before each face change.
8428
8429 2000-08-14 Dave Love <fx@gnu.org>
8430
8431 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
8432 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
8433 (lisp_free): Declare and make static.
8434
8435 * window.c: Fix embedded comment.
8436 (syms_of_window): Fix doc string.
8437
8438 2000-08-14 Gerd Moellmann <gerd@gnu.org>
8439
8440 * keymap.c (push_key_description): If C without modifiers is < 32,
8441 make sure to print `C-' before `M-', like in the manual.
8442
8443 2000-08-11 Gerd Moellmann <gerd@gnu.org>
8444
8445 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
8446 since they aren't relocated anymore.
8447 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
8448
8449 * xdisp.c (try_cursor_movement): Fix handling of cursor in
8450 partially visible line which is smaller than the window's height.
8451
8452 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8453
8454 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
8455 the multibyte form of eight-bit-control characters.
8456 (Fccl_execute_on_string): Initialize ccl->multibyte.
8457
8458 * ccl.h (struct ccl_program): New member multibyte.
8459
8460 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
8461
8462 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8463
8464 * regex.c (regex_compile) <normal_char>: Pay attention to
8465 multibyteness.
8466 (analyse_first) <exactn>: Setup fastmap correctly for
8467 eight-bit-control characters.
8468
8469 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8470
8471 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
8472
8473 * keyboard.c (make_lispy_event): Handle the new event type
8474 multibyte_char_keystroke.
8475
8476 * xterm.c: Include coding.h.
8477 (XTread_socket): Work around a bug of XmbLookupString. If the
8478 input is from XIM, decode it according to the current locale. In
8479 that case, generate multibyte_char_keystroke events.
8480
8481 2000-08-11 Kenichi Handa <handa@etl.go.jp>
8482
8483 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
8484 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
8485
8486 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8487
8488 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
8489 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
8490 (move_it_in_display_line_to): Record iterator's ascent and descent
8491 before producing glyphs, and restore them when we know the glyph
8492 doesn't fit on the line.
8493 (move_it_to): Restructured so that it's easier to debug. If
8494 moving to a vpos, and not moving to an x or character position,
8495 stop as soon as the specified vpos is reached; don't move further
8496 into that line because that might change the computed line height.
8497 (try_cursor_movement): New function, extracted from the cursor
8498 movement branch of redisplay_window. If ending on a partially
8499 visible line, don't try to scroll if the cursor line is taller
8500 than the window.
8501 (redisplay_window): Use try_cursor_movement.
8502
8503 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
8504 because that function doesn't cope with variable-height lines.
8505
8506 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
8507 box cursor because that's better visible for large images.
8508
8509 2000-08-10 Miles Bader <miles@gnu.org>
8510
8511 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
8512
8513 2000-08-10 Gerd Moellmann <gerd@gnu.org>
8514
8515 * xdisp.c (Vmessages_buffer_name): New variable.
8516 (message_dolog): Use it.
8517 (syms_of_xdisp): Initialize it.
8518
8519 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
8520
8521 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
8522 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
8523 redundant now that keyboard.h is included.
8524
8525 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
8526
8527 * keyboard.c (kbd_buffer_events_waiting): New function.
8528
8529 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
8530
8531 * msdos.c: Include keyboard.h.
8532 (XMenuActivate): Empty no_event events from the event buffer. If
8533 no events are left after that, call clear_input_pending.
8534 (mouse_clear_clicks): New function, code moved from mouse_init.
8535 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
8536 mouse driver to ``forget'' any past clicks.
8537
8538 * Makefile.in (msdos.o): Depend on keyboard.h.
8539
8540 2000-08-09 Gerd Moellmann <gerd@gnu.org>
8541
8542 * lisp.h (input_pending): External declaration.
8543
8544 * dispextern.h (Qredisplay_dont_pause): Declare extern.
8545
8546 * xdisp.c (echo_area_display): Display thoroughly if input is
8547 pending. Bind redisplay-dont-pause to t during the redisplay.
8548 in case input is pending.
8549
8550 * dispnew.c (Qredisplay_dont_pause): New variable.
8551 (syms_of_display): Initialize and staticpro it.
8552 (update_frame_1): Don't interrupt the display for pending input if
8553 redisplay_dont_pause is set.
8554
8555 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
8556
8557 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8558
8559 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
8560
8561 * callproc.c (Fcall_process): Terminate the unwind-protect around
8562 the post-read-conversion of coding system.
8563
8564 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
8565 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
8566 * buffer.h (overlays_at): Update prototype.
8567 * xdisp.c (next_overlay_change): Update call to overlays_at.
8568 * xfaces.c (face_at_buffer_position): Likewise.
8569 * textprop.c (Fget_char_property): Likewise.
8570 * xterm.c (note_mouse_highlight): Likewise.
8571
8572 * minibuf.c (do_completion): Don't consider a simple change of
8573 case as `completion'.
8574
8575 2000-08-08 Ken Raeburn <raeburn@gnu.org>
8576
8577 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
8578 * undo.c (record_delete): Make sure last_point_position_buffer is
8579 a buffer before comparing pointers.
8580
8581 * coding.h (decode_coding_string): Declare.
8582
8583 * intervals.h (Fprevious_single_char_property_change): Declare.
8584
8585 * textprop.c (Fprevious_single_char_property_change): Don't do
8586 arithmetic directly on lisp objects.
8587
8588 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
8589
8590 * keyboard.h (menu_item_eval_property): Declare.
8591
8592 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
8593 reuse as buffer name, instead of recreating (and discarding) every
8594 time a message is logged.
8595 (with_echo_area_buffer): Make callback arg A2 a lisp object.
8596 (current_message_1, truncate_message_1, set_message_1)
8597 (display_echo_area_1, resize_mini_window_1): Signatures changed.
8598 (current_message, truncate_echo_area, display_echo_area)
8599 (resize_echo_area_axactly): Changed calls.
8600
8601 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
8602 Lisp object.
8603 (Ffind_coding_systems_region_internal): First argument to Fappend
8604 must be an integer, not a Lisp object.
8605
8606 2000-08-08 Kenichi Handa <handa@etl.go.jp>
8607
8608 * charset.c (Fchar_width): Doc fix.
8609
8610 2000-08-08 Gerd Moellmann <gerd@gnu.org>
8611
8612 * charset.c (Fstring_width): Doc fix.
8613
8614 2000-08-07 Gerd Moellmann <gerd@gnu.org>
8615
8616 * xdisp.c (start_display): When starting display on a continuation
8617 line, clear ascent and descent members of the iterator structure;
8618 the height of the continued line does not affect the height of the
8619 continuation line.
8620 (make_cursor_line_fully_visible): Do nothing if cursor is on a
8621 line taller than the window.
8622 (redisplay_window) <forced window start>: Handle case that the
8623 middle of the window is not found in any row.
8624 (dump_glyph_row): Show more information.
8625 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
8626 first text line in a glyph matrix.
8627
8628 * xterm.c (x_draw_image_foreground): Avoid drawing outside
8629 of the clip area when image doesn't have a mask.
8630
8631 * fns.c (sweep_weak_table): Fix survival conditions for
8632 key-or-value and key-and-value weakness.
8633
8634 * .gdbinit (xhashtable): New command.
8635
8636 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
8637 tables out of the list of all weak hash tables.
8638
8639 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
8640 a new buffer is created, make sure echo_area_buffer[] references
8641 the new buffer.
8642
8643 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
8644
8645 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
8646 the doc string.
8647
8648 2000-08-07 Kenichi Handa <handa@etl.go.jp>
8649
8650 * syntax.c (skip_chars): Fix previous change. Make the handling
8651 of unibyte string consistent with that of regex search.
8652
8653 2000-08-05 Gerd Moellmann <gerd@gnu.org>
8654
8655 * xmenu.c (popup_get_selection): Use xfree instead of free.
8656
8657 * fileio.c (Finsert_file_contents): Use xfree instead of free.
8658
8659 * editfns.c (Ftranspose_regions): Use xfree instead of free.
8660
8661 * callproc.c (child_setup): Use xfree instead of free.
8662
8663 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
8664 instead of malloc.
8665 (run_mac_command, closedir): Use `xfree' instead of `free'.
8666
8667 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
8668
8669 * eval.c (error): Use xfree instead of free.
8670
8671 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
8672
8673 * fns.c: Replace `illegal' with `invalid'.
8674 (Fmake_hash_table, make_hash_table): Allow table size of 0.
8675
8676 2000-08-05 Kenichi Handa <handa@etl.go.jp>
8677
8678 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
8679 conversion.
8680
8681 2000-08-04 Noah Friedman <friedman@splode.com>
8682
8683 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
8684 docstring.
8685
8686 2000-08-04 Gerd Moellmann <gerd@gnu.org>
8687
8688 * syntax.c (skip_chars): Fix typo in error message.
8689
8690 2000-08-04 Andreas Schwab <schwab@suse.de>
8691
8692 * m/ia64.h: Moved from s/ia64.h.
8693
8694 2000-08-04 Kenichi Handa <handa@etl.go.jp>
8695
8696 * process.c (read_process_output): Big simplification. Handle
8697 composition and post-read-conversion of coding system correctly.
8698 (send_process): Handle composition correctly.
8699
8700 * callproc.c (Fcall_process): Handle post-read-conversion of
8701 coding system if any.
8702
8703 * coding.c (decode_coding_iso2022): More strict check for handling
8704 single shifting.
8705 (coding_restore_composition): Pay attention to the case that
8706 cmp_data is not set properly (because of invalid code in the
8707 source text).
8708 (run_pre_post_conversion_on_str): Include text properties in the
8709 resulting string.
8710 (decode_coding_string): Set members of coding correctly.
8711
8712 2000-08-03 Gerd Moellmann <gerd@gnu.org>
8713
8714 * s/ia64.h: New file.
8715
8716 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
8717 Use NULL instead of 0 at the end of variable argument list of
8718 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
8719 sizeof (int) < sizeof (void *).
8720
8721 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
8722 of variable argument lists of XtVaGetValues and XtVaSetValues.
8723
8724 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
8725 variable argument lists of XtVaGetValues and XtVaSetValues.
8726
8727 2000-08-02 Gerd Moellmann <gerd@gnu.org>
8728
8729 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
8730 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
8731
8732 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
8733 prototype.
8734
8735 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
8736 in call to Fsingle_key_description.
8737
8738 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
8739 Callers changed.
8740
8741 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
8742
8743 * window.c (display_buffer_reuse_frames): New variable.
8744 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
8745 frames displaying BUFFER.
8746 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
8747
8748 2000-08-01 Miles Bader <miles@gnu.org>
8749
8750 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
8751 when to constrain NEW_POS (they were pretty screwed up before).
8752
8753 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
8754
8755 * msdos.c (run_msdos_command): Save and restore the master
8756 environment, for the case that child_setup signals an error.
8757 When mirroring slashes in DOS shell commands, don't fail when
8758 argv[2] has embedded blanks.
8759 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
8760 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
8761 (dos_ttraw): Call mouse_setup_buttons.
8762
8763 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
8764 using alloca; free it after run_msdos_command returns.
8765
8766 2000-07-27 Dave Love <fx@gnu.org>
8767
8768 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
8769 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
8770
8771 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
8772
8773 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
8774
8775 * editfns.c (lisp_time_argument): Fix last change.
8776
8777 2000-07-27 Gerd Moellmann <gerd@gnu.org>
8778
8779 * fns.c (Fdelete): Make it work on vectors and strings in addition
8780 to lists.
8781
8782 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
8783 (syms_of_fns): Initialize new variables.
8784 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
8785 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
8786 weakness, with t meaning the same as `key-and-value'.
8787
8788 2000-07-27 Kenichi Handa <handa@etl.go.jp>
8789
8790 * coding.h (struct coding_system): Member safe_charset deleted.
8791
8792 * coding.c (Qsafe_charsets): This variable deleted.
8793 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
8794 New variables.
8795 (coding_safe_chars): New function.
8796 (CODING_SAFE_CHAR_P): New macro.
8797 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
8798 checking safe_charsets member of the coding system. Caller changed.
8799 (detect_coding_iso2022): New local variable safe_chars.
8800 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
8801 safe_charsets member of the coding system.
8802 (decode_coding_iso2022): New local variable safe_chars.
8803 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
8804 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
8805 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
8806 (ENCODE_UNSAFE_CHARACTER): New macro.
8807 (encode_coding_iso2022): New local variable safe_chars. Check
8808 unsafe chars.
8809 (setup_coding_system): Delete the code to initialize
8810 coding->safe_charses
8811 (intersection, find_safe_codings): New functions.
8812 (Ffind_coding_systems_region_internal): New function.
8813 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
8814 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
8815 variable and initialize it.
8816
8817 * fns.c (char_table_ref_and_index): New function.
8818
8819 * lisp.h (char_table_ref_and_index): Add prototype.
8820
8821 2000-07-26 Sam Steingold <sds@gnu.org>
8822
8823 * editfns.c (lisp_time_argument): Added third argument `usec'.
8824 (Ffloat_time): New built-in Lisp function.
8825
8826 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8827
8828 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8829 for the character code.
8830
8831 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8832 GNU/Linux.
8833
8834 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8835 if called for a popup menu.
8836 (xmenu_show): Store help string in widget values.
8837
8838 2000-07-26 Dave Love <fx@gnu.org>
8839
8840 * syswait.h: Move some definitions.
8841 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8842 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8843 perspicuous definitions.
8844 (WTERMSIG): Fix bit pattern used.
8845
8846 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8847
8848 * print.c (print_object): If vector printing is truncated, print
8849 "..." to indicate it as well as the case of list printing.
8850
8851 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8852
8853 * xdisp.c (next_element_from_display_vector): Improve comments.
8854
8855 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8856 for the character code, and the rest for the face id as in 20.x.
8857 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8858
8859 * window.c (window_display_table): Cleaned up.
8860
8861 * syntax.c (Fforward_word): Add last arg nil in call of
8862 Fconstrain_to_field.
8863
8864 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8865
8866 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8867 identical but for the letter-case, don't call
8868 barf_or_query_if_file_exists.
8869
8870 2000-07-25 Miles Bader <miles@gnu.org>
8871
8872 * editfns.c (find_field): Honor special `boundary' fields.
8873 (Qboundary): New variables.
8874 (syms_of_editfns): Initialize Qboundary.
8875 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8876 Use scan_buffer instead of find_before_next_newline, because it
8877 allows us to detect the boundary case where there's a newline at
8878 the search limit.
8879 * lisp.h (Fconstrain_to_field): Update external declaration.
8880
8881 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8882
8883 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8884 if that is nil.
8885
8886 2000-07-24 Dave Love <fx@gnu.org>
8887
8888 * s/sunos4-0.h, s/sol2.h:
8889 (LIBS_TERMCAP): Move from m/sparc.h.
8890
8891 * m/sparc.h (TERMINFO): Moved to system files (probably only
8892 relevant for sunos4 judging by its vintage).
8893 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8894 __arch64__.
8895
8896 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8897
8898 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8899 name to single_keymap_panes.
8900
8901 2000-07-24 Andreas Schwab <schwab@suse.de>
8902
8903 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8904
8905 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8906
8907 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8908 parameters instead of using int parameters. Expect FN to accept
8909 EMACS_INT parameters.
8910 (display_echo_area, resize_echo_area_axactly, current_message)
8911 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8912 with new argument list.
8913 (resize_mini_window_1): New callback function.
8914 (current_message_1, truncate_message_1, set_message_1): Change
8915 parameter lists to the new format expected by with_echo_area_buffer.
8916
8917 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8918
8919 * fontset.c (fontset_ref): Remove INLINE declaration.
8920 (fontset_ref_via_base): Likewise.
8921 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8922 to downcase.
8923
8924 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8925
8926 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8927 correct order of priority. If help echo was found in an overlay,
8928 use that overlay as the object in which the help echo was found.
8929
8930 2000-07-22 Miles Bader <miles@gnu.org>
8931
8932 * textprop.c (Fprevious_single_char_property_change): The initial
8933 property value should be from the position preceding POSITION, not
8934 following it.
8935
8936 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8937
8938 * coding.c (syms_of_coding): Doc fix for
8939 inhibit-iso-escape-detection.
8940
8941 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8942
8943 * xterm.c (note_mouse_highlight): Process overlays in the right
8944 order of priority.
8945
8946 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8947
8948 * xterm.c (note_mouse_highlight): If help-echo was found in an
8949 overlay, use that overlay as the object in which the help was found.
8950
8951 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8952
8953 * window.c (foreach_window): Instead of a fake variable argument
8954 list, take one USER_DATA argument.
8955 (foreach_window_1): Likewise, and call callback functions with two
8956 args, the window and USER_DATA.
8957 (struct check_window_data): New struct.
8958 (check_window_containing): Use it.
8959 (window_from_coordinates): Set up a struct check_window_data for
8960 foreach_window.
8961 (add_window_to_list, freeze_window_start): Change parameters
8962 according to new calling convention.
8963
8964 * window.h (foreach_window): Change prototype.
8965
8966 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8967
8968 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8969
8970 * xmenu.c (menu_help_callback): Call show_help_echo with
8971 additional arguments OBJECT and POS.
8972
8973 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8974
8975 * data.c (Faset): Allow storing any multibyte character in a
8976 string. Convert unibyte string to multibyte if necessary.
8977
8978 * xfns.c (x_encode_text): New function.
8979 (x_set_name): Use x_encode_text.
8980 (x_set_title): Likewise.
8981
8982 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8983
8984 * xterm.h (x_encode_text): Add prototype.
8985
8986 2000-07-20 Dave Love <fx@gnu.org>
8987
8988 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8989 xfree, not free.
8990
8991 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8992
8993 * msdos.c (help_echo_window): New variable.
8994 (syms_of_msdos): Initialize and staticpro it.
8995 (IT_note_mode_line_highlight): Set help_echo_window.
8996 (IT_note_mouse_highlight): Ditto.
8997 (dos_rawgetc): Store help_echo_window in the second event produced
8998 for HELP_EVENTs.
8999
9000 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
9001 Record the object that generated the help echo and the position of
9002 that object in help_echo_object and help_echo_pos. Record that
9003 some glyphs in a row are displayed in mouse-face.
9004 (IT_update_begin): Don't clear mouse highlight unless one of the
9005 enabled glyph rows is marked as being displayed in mouse-face.
9006 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
9007 and position recorded in help_echo_object and help_echo_pos to the
9008 event queue.
9009 (IT_menu_display): Accept a new argument PN: the pane number of
9010 the current menu pane. Record the pane number and the item
9011 number of the item which has associated help string.
9012 (XMenuActivate): Update the prototype for help_callback in
9013 function declaration. Call IT_menu_display with the current menu
9014 pane number as an additional argument. Call help_callback with
9015 two additional arguments: the pane number and the item number of
9016 the menu item associated with the help text.
9017 (help_echo_object, help_echo_pos): New variables.
9018 (syms_of_msdos): Initialize them and staticpro help_echo_object.
9019
9020 * msdos.h (XMenuActivate): Update prototype.
9021
9022 2000-07-19 Gerd Moellmann <gerd@gnu.org>
9023
9024 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
9025 Add some more prototypes.
9026
9027 * xterm.c, xterm.h: Add some more prototypes.
9028
9029 * lisp.h (Fnext_single_char_property_change): Add prototype.
9030
9031 * dispnew.c (direct_output_for_insert): Remove confusing
9032 outer local variable mouse_face_overwritten_p.
9033 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
9034
9035 * alloc.c (allocate_string_data): Don't copy old string contents.
9036
9037 2000-07-19 Kenichi Handa <handa@etl.go.jp>
9038
9039 * coding.c (code_convert_region): Delete text properties before
9040 shrinking the conversion region.
9041
9042 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9043
9044 * dispnew.c (update_text_area): Write the whole row if it
9045 has mouse-face in it.
9046
9047 * xfaces.c (face-alternative-font-family-alist): Remove
9048 DEFVAR_LISP; staticpro instead.
9049
9050 * xmenu.c (menu_help_callback): Call show_help_echo with
9051 new arguments.
9052
9053 * keyboard.c (show_help_echo): Add parameter WINDOW.
9054 (read_char): Call show_help_echo with window extracted from Lisp
9055 help event.
9056 (gen_help_event): Add parameter WINDOW.
9057
9058 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
9059
9060 * xterm.c (help_echo_window): New variable.
9061 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
9062 (XTread_socket): Pass help_echo_window to gen_help_event.
9063 (syms_of_xterm): Initialize and staticpro help_echo_window.
9064
9065 2000-07-18 Dave Love <fx@gnu.org>
9066
9067 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
9068
9069 2000-07-18 Gerd Moellmann <gerd@gnu.org>
9070
9071 * alloc.c (allocate_string_data): If string had already data
9072 assigned, copy old contents to new string data.
9073
9074 * coding.c (syms_of_coding): Fix typo in spelling of variable
9075 `inhibit-iso-escape-detection'.
9076
9077 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
9078
9079 * Makefile.in: Add dependencies on dispextern.h.
9080 (alloca.o): Don't define malloc and define EMACS_FREE instead of
9081 `free'; both can conflict with system header files.
9082
9083 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9084
9085 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
9086 undefined.
9087
9088 2000-07-18 Dave Love <fx@gnu.org>
9089
9090 * window.c (Fwindow_list): Declare arg `window'.
9091
9092 2000-07-18 Kenichi Handa <handa@etl.go.jp>
9093
9094 * coding.c (setup_coding_system): Don't override the explicitly
9095 specified designations.
9096
9097 2000-07-15 Miles Bader <miles@gnu.org>
9098
9099 * editfns.c (char_property_eq, char_property_stickiness): Renamed
9100 from `text_property_eq' and `text_property_stickiness', respectively.
9101 (find_field, Fconstrain_to_field, char_property_eq)
9102 (char_property_stickiness): Changed to call char-property functions
9103 instead of text-property-only ones.
9104
9105 * textprop.c (Fnext_single_char_property_change): Made a subr (was
9106 `next_single_char_property_change'). Do more error checking, and
9107 cleanup limit behavior.
9108 (Fprevious_single_char_property_change): New function.
9109 (syms_of_textprop): Initialize new subrs.
9110
9111 * xdisp.c (display_prop_end, invisible_text_between_p):
9112 Call Fnext_single_char_property_change instead of
9113 next_single_char_property_change.
9114
9115 2000-07-15 Jason Rumney <jasonr@gnu.org>
9116
9117 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
9118 after menu is finished with.
9119 (add_menu_item): Only consider wv->title as a menu title.
9120 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
9121
9122 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
9123 null title.
9124 (FONT_REGEXP): Remove unused macro, and its sub-components.
9125 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
9126
9127 * w32term.c (help_echo_object, help_echo_pos): New variables.
9128 (note_mode_line_highlight): Store additional information about the
9129 help-echo in help_echo_object and help_echo_pos. Check both
9130 `local-map' and `keymap' properties for changing the cursor
9131 (note_mouse_highlight): Store additional information about the
9132 help-echo in help_echo_object and help_echo_pos.
9133 (note_tool_bar_highlight): Set help_echo_object to nil and
9134 help_echo_pos to -1.
9135 (w32_read_socket): Use gen_help_event instead of filling
9136 input_events manually.
9137 (syms_of_w32term): Staticpro help_echo_object.
9138 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
9139 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
9140 (x_clear_mouse_face): New function.
9141 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
9142 (x_update_window_begin): No need to turn off the mouse
9143 highlight here.
9144 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9145 depending on whether they contain glyphs highlighted in mouse-face.
9146 (x_fill_stretch_glyph_string): Consume runs of stretch
9147 glyphs instead of a single one.
9148 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9149 with new argument list.
9150 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9151 (x_append_glyph, x_append_composite_glyph)
9152 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9153 changes in struct glyph starting 1999-12-27. See comments for
9154 xterm.c on 2000-07-05.
9155
9156 2000-07-14 Sam Steingold <sds@gnu.org>
9157
9158 * xfaces.c (realize_x_face): Fix the last patch:
9159 check `default_face' before dereferencing.
9160
9161 2000-07-14 Dave Love <fx@gnu.org>
9162
9163 * syntax.c (back_comment): Add null default in switch (for pcc).
9164
9165 2000-07-14 Kenichi Handa <handa@etl.go.jp>
9166
9167 * xfaces.c (realize_x_face): Make fontset using the base of the
9168 default_face's fontset, not using the default fontset.
9169
9170 * coding.c (inhibit_iso_escape_detection): New variable.
9171 (syms_of_coding): Make it a Lisp variable.
9172 (detect_coding_iso2022): If inhibit_iso_escape_detection is
9173 nonzero, ignore ISO2022's escape sequence.
9174
9175 2000-07-14 Gerd Moellmann <gerd@gnu.org>
9176
9177 * alloca.c (malloc) [emacs]: Define as xmalloc.
9178
9179 * xfns.c (Fx_show_tip): If frame parameters contain a position,
9180 use that instead of the mouse position. Add parameters DX and DY.
9181
9182 * dispextern.h (Fx_show_tip): Adjust number of parameters
9183 in prototype.
9184
9185 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
9186 if HELP is a function, call it with OBJECT and POS as parameters
9187 to get the help to display.
9188 (gen_help_event, kbd_buffer_store_help_event): New functions.
9189 (kbd_buffer_get_event): Construct the Lisp help-event differently.
9190 (read_char): Call show_help_echo with new parameters.
9191
9192 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9193 Add prototypes.
9194
9195 * xterm.c (help_echo_object, help_echo_pos): New variables.
9196 (note_mode_line_highlight): Store additional information about the
9197 help-echo in help_echo_object and help_echo_pos. Check both
9198 `local-map' and `keymap' properties for changing the cursor
9199 (note_mouse_highlight): Store additional information about the
9200 help-echo in help_echo_object and help_echo_pos.
9201 (note_tool_bar_highlight): Set help_echo_object to nil and
9202 help_echo_pos to -1.
9203 (XTread_socket): Use gen_help_event instead of filling
9204 input_events manually.
9205 (syms_of_xterm): Staticpro help_echo_object.
9206
9207 * xmenu.c (menu_highlight_callback): Use
9208 kbd_buffer_store_help_event instead of setting up and input_event
9209 structure manually.
9210
9211 * xdisp.c (eval_form): GCPRO argument sexpr.
9212 (call_function): New function.
9213 (handle_single_display_prop): Use call_function and FUNCTIONP
9214 instead of checking whether if font_height is a symbol and
9215 using eval_form.
9216
9217 * eval.c (internal_condition_case_2): New function.
9218
9219 * lisp.h (FUNCTIONP): New macro.
9220 (internal_condition_case_2, call_function): Add prototypes.
9221
9222 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
9223 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
9224 Always set `arg' member of input_events.
9225 (construct_menu_click): Unused function removed.
9226
9227 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
9228
9229 * w32term.c (construct_mouse_click, construct_mouse_wheel)
9230 (construct_drag_n_drop, x_scroll_bar_handle_click)
9231 (w32_read_socket): Always set `arg' member of input_events.
9232
9233 * keyboard.c (show_help_echo): Use eval_form. Add comment.
9234
9235 * lisp.h (eval_form): Add prototype.
9236
9237 * xdisp.c (eval_form): Make it externally visible.
9238
9239 2000-07-13 Gerd Moellmann <gerd@gnu.org>
9240
9241 * xterm.c (x_handle_tool_bar_click): Store the frame in the
9242 frame_or_window slot of TOOL_BAR_EVENT input events instead of
9243 consing. For prefix events, store the frame in the `arg' slot of
9244 the event, otherwise store the key there.
9245 (XTread_socket): Instead of consing, use the frame_or_window slot
9246 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
9247
9248 * xmenu.c (menu_highlight_callback): Store help string in the
9249 `arg' member of the input event; don't cons.
9250 (menubar_selection_callback): Use the `arg' slot of input events
9251 to queue additional information, instead of consing.
9252
9253 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
9254
9255 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
9256 TOOL_BAR_EVENTs.
9257 (w32_read_socket): Adapt to changes in HELP_EVENTs.
9258
9259 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
9260 input events to queue additional information, instead of consing.
9261
9262 * keyboard.c (kbd_buffer_gcpro): Renamed from
9263 kbd_buffer_frame_or_window. Now used for all Lisp objects
9264 referenced from the input queue.
9265 (kbd_buffer_store_event): Always use structure assignment for
9266 copying input events. Record all Lisp objects referenced from
9267 events in kbd_buffer_gcpro.
9268 (kbd_buffer_get_event): Construct Lisp `help-echo' events
9269 differently from input events. Test for prefix menu_bar_events
9270 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
9271 event in kbd_buffer_gcpro to nil.
9272 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
9273 frame_or_window is equal to its arg member as prefix events.
9274 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
9275 used by an input event to nil.
9276 (init_keyboard): Use two times the size of the input queue
9277 for kbd_buffer_gcpro.
9278 (syms_of_keyboard): Likewise.
9279
9280 * emacs.c (handle_USR2_signal, handle_USR1_signal):
9281 Use USER_SIGNAL_EVENT.
9282
9283 * termhooks.h (struct input_event): Add member `arg'.
9284 (MENU_BAR_EVENT): Renamed from menu_bar_event.
9285 (USER_SIGNAL_EVENT): Renamed from user_signal.
9286
9287 * xfaces.c (ASET): Remove definition.
9288
9289 * lisp.h (AREF, ASET, ASIZE): New macros.
9290
9291 * fontset.c (AREF, ASIZE): Remove definitions.
9292
9293 * fns.c (AREF): Remove definition.
9294
9295 * composite.c (AREF): Remove definition.
9296
9297 2000-07-12 Gerd Moellmann <gerd@gnu.org>
9298
9299 * dispnew.c (redraw_overlapped_rows): Add missing local.
9300 (scrolling_window): Remove debug code.
9301
9302 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
9303 Before scrolling, turn off a mouse-highlight in the window
9304 being scrolled.
9305
9306 * xterm.c (x_update_window_end): Add parameter
9307 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
9308 redisplay in XTframe_up_to_date.
9309 (x_clear_mouse_face): New function.
9310 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
9311
9312 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
9313 current glyph row.
9314 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
9315 it when any row is written to that contains glyphs highlighted in
9316 mouse-face.
9317 (update_window): Call the window update end hook with new
9318 parameter MOUSE_FACE_OVERWRITTEN_P.
9319 (direct_output_for_insert): Give up if row contains mouse-face.
9320
9321 * dispextern.h (struct redisplay_interface): Add parameter
9322 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
9323 (clear_mouse_face): New function pointer member.
9324
9325 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
9326
9327 * syntax.c (back_comment): Use one switch rather than a few `if's.
9328 Obey open_paren_in_column_0_is_defun_start.
9329 When reverting to the `slow' method, try to nicely handle the case
9330 of nested comments by checking that the comment-starter we found
9331 does indeed match the comment-ender.
9332 (scan_sexps_forward, scan_sexps_forward):
9333 Ignore excessive opening parenthesis rather than throwing an error.
9334
9335 2000-07-11 Gerd Moellmann <gerd@gnu.org>
9336
9337 * doc.c (Fsubstitute_command_keys): Handle case that a GC
9338 in Fwhere_is_internal or get_keymap_1 relocates string contents.
9339
9340 * dispnew.c (direct_output_forward_char): Give up if currently
9341 displaying a message instead of the minibuffer contents.
9342
9343 * xterm.c (x_update_window_begin): No need to turn off the mouse
9344 highlight here.
9345 (show_mouse_face): Set the mouse_face_p flag of glyph rows
9346 depending on whether they contain glyphs highlighted in mouse-face.
9347
9348 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
9349 compare the mouse_face_p flags of both rows.
9350
9351 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
9352
9353 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
9354
9355 * keyboard.c (show_help_echo): Accept additional parameter
9356 ok_to_overwrite_keystroke_echo.
9357 (read_char): Call show_help_echo with a zero
9358 ok_to_overwrite_keystroke_echo argument.
9359 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
9360 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
9361 ok_to_overwrite_keystroke_echo argument.
9362 * w32menu.c (w32_menu_display_help): Call show_help_echo with
9363 non-zero ok_to_overwrite_keystroke_echo argument.
9364
9365 2000-07-10 Gerd Moellmann <gerd@gnu.org>
9366
9367 * xdisp.c (try_window_id): If changes are all below what is
9368 displayed in the window, and point is in the window, we still
9369 might have to find point on the display.
9370
9371 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
9372 glyphs instead of a single one.
9373 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
9374 with new argument list.
9375 (x_set_glyph_string_gc): Make sure the face's GC is valid.
9376
9377 * keymap.c (get_keymap_1): Add comment that this function can GC.
9378 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
9379 comment that functions can GC.
9380 (Fset_keymap_parent): GCPRO arg KEYMAP.
9381
9382 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
9383
9384 * msdos.c (XMenuActivate): After exiting the menu, restore the
9385 echo area message and erase it.
9386
9387 2000-07-10 Kenichi Handa <handa@etl.go.jp>
9388
9389 * fontset.c (Ffontset_info): Make the return value more compatible
9390 with that of Emacs 20.
9391
9392 2000-07-07 Gerd Moellmann <gerd@gnu.org>
9393
9394 * eval.c (Fsignal): Handle case that backtrace_list is null.
9395
9396 2000-07-07 Kenichi Handa <handa@etl.go.jp>
9397
9398 * ccl.c (Fccl_execute): Typo fixed.
9399
9400 2000-07-06 Gerd Moellmann <gerd@gnu.org>
9401
9402 * window.c (window_loop): Add missing gcpro1 local variable.
9403
9404 * window.c (Fwindow_list): Reverse list at the end.
9405 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
9406 means allow windows on OWINDOW's frame, only.
9407 (window_loop): Simplified; use Fwindow_list.
9408
9409 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
9410
9411 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9412
9413 * xterm.c (XTread_socket): Increment handling_signal at the start,
9414 decrement it at the end.
9415
9416 * eval.c (handling_signal): New variable.
9417 (Fsignal): Abort if handling_signal is non-zero.
9418
9419 * lisp.h (handling_signal): External declaration.
9420
9421 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
9422
9423 2000-07-05 Ken Raeburn <raeburn@gnu.org>
9424
9425 Sound support for NetBSD through "Linux emulation" support:
9426 * config.in (HAVE_SOUNDCARD_H): Undef.
9427 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
9428 * Makefile.in (LIBSOUND): New variable.
9429 (LIBES): Include it.
9430 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
9431 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
9432 (vox_open): Use DEFAULT_SOUND_DEVICE.
9433 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
9434
9435 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9436
9437 * print.c (print_error_message): If Vsignaling_function is set,
9438 show it in *Messages*.
9439
9440 * lisp.h (Vsignaling_function): External declaration.
9441
9442 * eval.c (Vsignaling_function): New variable.
9443 (Fsignal): Compute it.
9444 (syms_of_eval): Staticpro it.
9445
9446 2000-07-05 Dave Love <fx@gnu.org>
9447
9448 * syswait.h: Use the autoconf recommended approach. Old code
9449 #if'd out in case we need to revert.
9450
9451 * config.in (HAVE_SYS_WAIT_H): Added.
9452
9453 2000-07-05 Andrew Innes <andrewi@gnu.org>
9454
9455 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
9456 when non-NULL instead of __morecore, to take account of buffer
9457 memory. This also solves a problem with spurious memory warnings
9458 on Windows.
9459
9460 * ralloc.c: Make real_morecore non-static.
9461
9462 * eval.c (internal_condition_case): Comment out abort if
9463 interrupt_input_blocked is not zero.
9464
9465 * makefile.nt: Add support for `bootstrap' and related targets.
9466 Include minimal debug info in emacs.exe in release build.
9467 Remove all dependencies on lisp.h, and fixup some others.
9468
9469 * w32.c (init_environment): Install code from 20.7 for providing
9470 default values for environment variables, based on the
9471 executable's own location.
9472 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
9473 (sys_socket): Install socket inheritance bug fix from 20.7.
9474
9475 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
9476 here via blockinput.h).
9477
9478 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
9479
9480 * w32menu.c (w32_menu_display_help):
9481 * xmenu.c (menu_help_callback): Use show_help_echo.
9482
9483 * keyboard.h (show_help_echo): Declare.
9484
9485 * keyboard.c (show_help_echo): New function, extracted from read_char.
9486 Feval its `msg' argument if it's a cons cell.
9487 (read_char): Use it.
9488 (follow_key): Pass `autoload' to get_keyelt.
9489
9490 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
9491 (note_tool_bar_highlight, XTread_socket):
9492 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
9493 (dos_rawgetc):
9494 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
9495 (note_tool_bar_highlight, w32_read_socket):
9496 Do not gratuitously ignore non-string `help-echo' properties.
9497
9498 2000-07-05 Gerd Moellmann <gerd@gnu.org>
9499
9500 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
9501
9502 * window.c (delete_all_subwindows): Reset Vwindow_list.
9503
9504 * xterm.c (x_append_glyph, x_append_composite_glyph)
9505 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
9506 changes in struct glyph starting 1999-12-27. Some bit-fields of
9507 struct glyph were not set, which made glyphs unequal when compared
9508 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
9509 effects were the result. This also depended on the contents of
9510 memory returned by xmalloc. If flickering happens again, activate
9511 the code in clear_glyph_row that's in #if 0. If the flickering is
9512 gone with that, chances are that it is caused by something similar.
9513
9514 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
9515
9516 * dispextern.h: Add some comments.
9517
9518 * window.c (add_window_to_list): Add parameter LIST.
9519 (window_list): Order list so that, for each frame, windows are
9520 in canonical order, and so that frames appear in the list in
9521 the order given by Vframe_list.
9522 (next_window): Reverse the handling of NEXT_P.
9523
9524 2000-07-04 Gerd Moellmann <gerd@gnu.org>
9525
9526 * window.c (Vwindow_list): New variable.
9527 (make_window, delete_window): Set Vwindow_list to nil.
9528 (check_window_containing): New function.
9529 (window_from_coordinates): Rewritten.
9530 (add_window_to_list, window_list, candidate_window_p)
9531 (decode_next_window_args, next_window): New functions.
9532 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
9533 (Fwindow_list): New function.
9534 (Fother_window): Cleaned up.
9535 (foreach_window): Add a longer "variable argument list". Let
9536 callback function return 0 to indicate that cycling over windows
9537 should stop.
9538 (foreach_window_1): Likewise.
9539 (freeze_window_start): Return int.
9540 (init_window): New function.
9541 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
9542
9543 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
9544 input_event with bzero.
9545 (main): Call init_window.
9546
9547 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
9548 a menu filter.
9549
9550 2000-07-04 Kenichi Handa <handa@etl.go.jp>
9551
9552 * composite.h (make_composition_value_copy): Extern it.
9553
9554 * composite.c (make_composition_value_copy): New function.
9555
9556 * editfns.c (Fformat): While copying text properties, make each
9557 composition property value a copy.
9558
9559 * fns.c (concat): While copying text properties, make each
9560 composition property value a copy.
9561
9562 2000-07-03 Gerd Moellmann <gerd@gnu.org>
9563
9564 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
9565
9566 * fns.c (sweep_weak_table): Mark only objects that are not
9567 marked already.
9568
9569 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
9570 include those frames as candidates which have their focus
9571 redirected to the minibuffer frame.
9572
9573 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
9574
9575 * fns.c (Fputhash): Return `value' rather than nil.
9576
9577 2000-06-30 Gerd Moellmann <gerd@gnu.org>
9578
9579 * frame.c (next_frame): Don't check focus redirection in case
9580 MINIBUF is a window. Doing so excludes frames using MINIBUF
9581 unless their focus is redirected, which contradicts the
9582 specification of next-frame, and leads to infinite loops in
9583 certain situations when cycling through windows with next-window.
9584
9585 2000-06-30 Kenichi Handa <handa@etl.go.jp>
9586
9587 * coding.c (code_convert_region): Even if the length of text is
9588 zero, try to convert it if coding->type is coding_type_ccl.
9589 (decode_coding_string, encode_coding_string): Likewise.
9590
9591 2000-06-28 Gerd Moellmann <gerd@gnu.org>
9592
9593 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
9594 the display if windows_or_buffers_changed.
9595
9596 * dispnew.c (struct row_entry): New structure.
9597 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
9598 (row_table_size, old_lines, new_lines, old_lines_size)
9599 (new_lines_size, run_pool, runs_size, runs): New variables.
9600 (add_row_entry): New function.
9601 (scrolling_window): Use data structures allocated with xmalloc and
9602 held in global variables, instead of allocating them with alloca and
9603 holding them in local variables. Use a larger hash table whose
9604 size depends on glyph matrix sizes. Don't use bzero to clear the
9605 hash table; instead, clear used slots only.
9606
9607 * fns.c (next_almost_prime): Make it externally visible.
9608
9609 * lisp.h (next_almost_prime): Add prototype.
9610
9611 * s/isc4-0.h (sigunblock): Define.
9612
9613 * s/sco5.h (sigunblock): Define.
9614
9615 2000-06-27 Dave Love <fx@gnu.org>
9616
9617 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
9618 (moved to osf5-0.h).
9619 [!NOT_C_CODE]: Protect string.h stuff.
9620
9621 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
9622 (sys_siglist, NSIG): Definitions moved here from osf1.h.
9623
9624 2000-06-27 Gerd Moellmann <gerd@gnu.org>
9625
9626 * xdisp.c (resize_mini_window): Subtract the extra line spacing
9627 below the last line from the needed window height.
9628
9629 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
9630
9631 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
9632 (Fwidget_get): Use it.
9633 (syms_of_fns): Defsubr it.
9634
9635 2000-06-26 Gerd Moellmann <gerd@gnu.org>
9636
9637 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
9638 display info for XIM.
9639 (xim_open_dpy): Likewise.
9640 (xim_close_dpy): Don't free the display info's XIM.
9641
9642 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
9643
9644 * config.in (USE_XIM): New define.
9645
9646 * keymap.c (get_keyelt): For menu-items containing a `:filter
9647 FILTER', apply FILTER to the menu-item's definition to get the
9648 real definition to use.
9649
9650 * lisp.h (QCfilter): External declaration.
9651
9652 * xfns.c (Fimage_size): New function.
9653 (syms_of_xfns): Defsubr it.
9654
9655 2000-06-26 Andreas Schwab <schwab@suse.de>
9656
9657 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
9658 Fstring_as_unibyte.
9659
9660 2000-06-25 Dave Love <fx@gnu.org>
9661
9662 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
9663
9664 * Makefile.in (blockinput.h): Depend on atimer.h.
9665 (atimer.h): Depend on systime.h.
9666
9667 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
9668
9669 * atimer.h: Protect against multiple inclusion. Include systime.h.
9670
9671 * lisp.h (swap_in_global_binding): Declare.
9672
9673 2000-06-24 Ken Raeburn <raeburn@gnu.org>
9674
9675 * process.c (Fopen_network_stream): Turn off atimers for duration
9676 of call to connect. (Patch from Gerd.)
9677
9678 2000-06-23 Dave Love <fx@gnu.org>
9679
9680 * ralloc.c: Maybe include unistd.h
9681
9682 * emacs.c (setgrp): Undefine before defining.
9683 (malloc_warning, set_time_zone_rule, index): Prototype.
9684
9685 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
9686 HAVE_STRUCT_TIMEZONE.
9687
9688 * s/osf1.h: Move string.h hack here from alpha.h and make it
9689 conditional.
9690 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
9691 _XOPEN_SOURCE.
9692 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
9693 (SOCKLEN_TYPE): Don't define.
9694
9695 * m/alpha.h: Remove string.h hack.
9696
9697 * s/osf5-0.h: New file.
9698
9699 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
9700 include time.h, done by systime.h.
9701 [__FreeBSD__]: Remove redundant includes.
9702
9703 * callproc.c (setpgrp): Undefine before defining.
9704 (delete_temp_file): Return Qnil to avoid warning.
9705
9706 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
9707
9708 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
9709 HAVE_X_WINDOWS.
9710
9711 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
9712
9713 * composite.h (compose_text): Declare.
9714
9715 * xterm.c: Don't include sys/types.h unconditionally. Don't
9716 protect its inclusion with !USG (following xmenu.c).
9717
9718 2000-06-23 Gerd Moellmann <gerd@gnu.org>
9719
9720 * xfns.c (x_create_tip_frame): Initialize frame's colors like
9721 in x_create_frame.
9722
9723 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
9724
9725 * coding.c (decode_eol_post_ccl): Special handling for undecided
9726 and inconsistent EOL types.
9727
9728 2000-06-22 Gerd Moellmann <gerd@gnu.org>
9729
9730 * xrdb.c (x_load_resources): Add default resource for scroll bar's
9731 trough color and main window's background color.
9732
9733 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
9734
9735 * xterm.h (Xt_app_con): External declaration.
9736
9737 * widget.c (EmacsFrameRealize): Fix typo.
9738
9739 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
9740
9741 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
9742 (handle_invisible_prop): Record the start of invisible text in
9743 it->add_overlay_start.
9744 (struct overlay_entry): Add member `overlay'.
9745 (handle_overlay_change): Simplify.
9746 (next_overlay_string): After having processed overlay strings at the
9747 end of the buffer, record that fact in
9748 it->overlay_strings_at_end_processed_p.
9749 (compare_overlay_entries): If before- and after-strings come
9750 from the same overlay, let before-strings come first.
9751 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
9752 (load_overlay_strings): Take it->add_overlay_start into account
9753 when adding overlay strings.
9754
9755 * dispextern.h (struct it): Add member add_overlay_start.
9756
9757 2000-06-22 Dave Love <fx@gnu.org>
9758
9759 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
9760
9761 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
9762
9763 2000-06-22 Kenichi Handa <handa@etl.go.jp>
9764
9765 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
9766 is greater than 0.
9767
9768 2000-06-21 Dave Love <fx@gnu.org>
9769
9770 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9771
9772 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
9773
9774 * syntax.c (back_comment): Simplify string-parity counting (with
9775 the added benefit of handling multiple string-styles as long as
9776 they are not intertwined).
9777 Jump to the slow code as soon as a comment starter is found in
9778 a "string_lossage" position. Fixes the case: " /* " /* " */.
9779
9780 2000-06-21 Dave Love <fx@gnu.org>
9781
9782 * Makefile.in: Use GETLOADAVG_LIBS.
9783
9784 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
9785 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
9786
9787 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9788
9789 * syntax.c (describe_syntax): Recognize the `n'estable bit.
9790 (Fforward_comment, scan_lists):
9791 Check the comstyle of single-char comment-starters.
9792 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
9793 we're just at the beginning of the comment (f.ex with (*) ... (*)).
9794 Check the comstyle of single-char comment-starters.
9795 Clarify control-flow around the Scomment case.
9796
9797 2000-06-20 Dave Love <fx@gnu.org>
9798
9799 * fns.c (make_hash_table, maybe_resize_hash_table):
9800 Cast arg of next_almost_prime.
9801
9802 * tparam.c [emacs]: Include lisp.h.
9803
9804 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
9805 and unistd.h.
9806
9807 2000-06-20 Gerd Moellmann <gerd@gnu.org>
9808
9809 * keyboard.c (adjust_point_for_property): Check if display
9810 property should be treated as intangible by looking at its value.
9811
9812 * xdisp.c (single_display_prop_intangible_p)
9813 (display_prop_intangible_p): New functions.
9814
9815 * dispextern.h (display_prop_intangible_p): Add prototype.
9816
9817 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9818
9819 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9820 argument to sigprocmask.
9821
9822 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9823 argument to sigprocmask.
9824
9825 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9826 sigprocmask_set, and pass a pointer to it to sigprocmask.
9827
9828 * sysdep.c (sigprocmask_set): New variable.
9829
9830 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9831 report_file_error.
9832
9833 2000-06-20 Sam Steingold <sds@gnu.org>
9834
9835 * xrdb.c: Don't declare xmalloc, xrealloc.
9836
9837 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9838
9839 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9840 (re_comp): Cast gettext return value to avoid complaints when
9841 !HAVE_LIBINTL.
9842
9843 2000-06-20 Dave Love <fx@gnu.org>
9844
9845 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9846
9847 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9848
9849 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9850
9851 * m/alpha.h: Don't declare xmalloc, xrealloc.
9852
9853 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9854
9855 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9856
9857 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9858
9859 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9860 HAVE_GETWD.
9861
9862 * keyboard.h (poll_for_input_1): Declare.
9863
9864 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9865
9866 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9867
9868 * doprnt.c: Don't declare xmalloc, xrealloc.
9869
9870 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9871 (getenv, ctime, getwd): Removed.
9872 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9873
9874 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9875 x_set_tool_bar_lines.
9876
9877 * config.in: Add HAVE_GETWD. Move some definitions above
9878 machine/system includes.
9879
9880 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9881
9882 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9883
9884 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9885 contain information about ENCODING.
9886
9887 * fontset.c (FONTSET_ASCII): Use the first element of char table
9888 for an ASCII font, not defalt slot.
9889 (fontset_ref_via_base): If FONTSET doesn't contain information for
9890 C, try the default fontset.
9891 (make_fontset): Don't copy the default fontset.
9892 (fontset_font_pattern): Likewise.
9893 (accumulate_font_info): If ELT is nil, use the corresponding
9894 element in the default fontset.
9895
9896 2000-06-19 Dave Love <fx@gnu.org>
9897
9898 * syntax.c (Fparse_partial_sexp): Doc fix.
9899
9900 * regex.h: Test PROTOTYPES as well as __STDC__.
9901
9902 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9903 errno, strerror. Put text after #endif in comment.
9904
9905 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9906
9907 * xterm.c (x_frame_of_widget): Likewise.
9908
9909 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9910
9911 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9912 to Vfundamental_mode_abbrev_table.
9913
9914 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9915 bogus objects are marked. This slows down GC by ~80 percent, but
9916 it might be worth trying when debugging GC-related problems.
9917 This feature requires conservative stack marking to be enabled.
9918
9919 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9920 returns XLookupChars, reset `modifiers' to zero.
9921
9922 2000-06-19 Dave Love <fx@gnu.org>
9923
9924 * mktime.c: Unprotoized.
9925
9926 2000-06-19 Richard Stallman <rms@gnu.org>
9927
9928 * data.c (set_internal): If variable is frame-local,
9929 store the new value immediately into the frame parameter alist.
9930
9931 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9932
9933 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9934 in the custom handler pointer.
9935
9936 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9937 value, or checks for CHAR_META can fail when Lisp_Object is a
9938 union type.
9939 * keymap.c (get_keyelt): Likewise.
9940
9941 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9942
9943 * ccl.h (struct ccl_program): New member eol_type.
9944 (struct ccl_spec): New member cr_carryover.
9945
9946 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9947 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9948
9949 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9950 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9951 (decode_eol_post_ccl): New function.
9952 (decode_coding): Don't detect EOL format here for CCL based coding
9953 systems.
9954 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9955 decode_eol_post_ccl after running the CCL program.
9956 (code_convert_region): Don't detect EOL format here for CCL based
9957 coding systems.
9958 (decode_coding_string): Likewise.
9959
9960 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9961
9962 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9963 when treating it as an integer.
9964
9965 * coding.h (encode_coding_string): Declare.
9966
9967 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9968 it as an integer.
9969
9970 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9971 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9972 to be passed to get_local_map.
9973
9974 * sound.c (Fplay_sound): Don't call make_number on
9975 Frun_hook_with_args count argument.
9976
9977 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9978 for lisp objects in X event structure data field, when lisp
9979 objects are represented with unions.
9980 (x_scroll_bar_to_input_event): Ditto.
9981
9982 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9983
9984 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9985 termination of string. Fix sense of test whether
9986 Vline_number_display_limit is an integer.
9987
9988 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9989
9990 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9991 only if HAVE_X_WINDOWS.
9992
9993 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9994 of titles.
9995
9996 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9997 out of bounds.
9998
9999 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
10000
10001 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
10002 of its headers.
10003
10004 2000-06-15 Kenichi Handa <handa@etl.go.jp>
10005
10006 * coding.c (decode_coding_emacs_mule): Always set src_base at the
10007 start of the while loop.
10008
10009 2000-06-15 Gerd Moellmann <gerd@gnu.org>
10010
10011 * atimer.c (alarm_signal_handler): Add forward declaration.
10012
10013 * data.c (set_internal): Remove debug code.
10014
10015 2000-06-14 Gerd Moellmann <gerd@gnu.org>
10016
10017 * Makefile.in (bootstrap-temacs): Add `-I../src'.
10018
10019 * unexec.c (toplevel) [COFF]: Include coff.h.
10020
10021 * s/lynxos.h: New file.
10022
10023 * keymap.c (Fsingle_key_description): Enclose function key and
10024 event symbol names in angle brackets.
10025
10026 * xdisp.c (setup_echo_area_for_printing): Call
10027 message_log_maybe_newline if message_buf_print is not set.
10028
10029 * print.c (printchar, strout): Don't check message_buf_print
10030 before calling setup_echo_area_for_printing because that
10031 function does something useful even when message_buf_print is
10032 already set.
10033
10034 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
10035 New variables.
10036 (ensure_echo_area_buffers): Initialize echo buffer's
10037 truncate lines setting to nil.
10038 (with_echo_area_buffer): Don't set the echo buffer's truncate
10039 lines setting here.
10040 (set_message_1): Set it here instead, based on the value
10041 of message_truncate_lines.
10042 (resize_mini_window): Handle case that lines are truncated.
10043 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
10044 DEFVAR_BOOL message-truncate-lines.
10045
10046 * keyboard.c (read_char): Bind message-truncate-lines to t
10047 while displaying a help-echo.
10048
10049 * lisp.h (Qmessage_truncate_lines): External declaration.
10050
10051 2000-06-13 Gerd Moellmann <gerd@gnu.org>
10052
10053 * xdisp.c (Vline_number_display_limit): Renamed from
10054 line_number_display_limit.
10055 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
10056 Extend documentation string. Initialize
10057 Vline_number_display_limit to nil meaning no limit.
10058 (decode_mode_spec): Use Vline_number_display_limit with its new
10059 meaning.
10060
10061 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
10062
10063 2000-06-13 Richard Stallman <rms@gnu.org>
10064
10065 * frame.c (Fmodify_frame_parameters): Doc fix.
10066
10067 * xfns.c (x_set_frame_parameters): Comment fix.
10068
10069 * frame.c (store_frame_param): Call swap_in_global_binding if the
10070 variable's current binding was chosen based on this frame.
10071
10072 * data.c (swap_in_global_binding): New function.
10073
10074 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10075
10076 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
10077 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
10078
10079 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
10080
10081 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
10082
10083 2000-06-12 Jason Rumney <jasonr@gnu.org>
10084
10085 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
10086
10087 * w32.h (EMACS_W32_H): Renamed from _NT_H_
10088
10089 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
10090
10091 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
10092
10093 2000-06-12 Gerd Moellmann <gerd@gnu.org>
10094
10095 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
10096 (syms_of_xfaces): Defsubr Sdump_colors.
10097 (x_free_colors): Don't treat b&w specially on default visual.
10098 (x_free_dpy_colors): New function.
10099 (free_face_colors): Don't check visual class; it's done
10100 in x_free_colors.
10101
10102 * xterm.c (x_frame_of_widget): New function.
10103 (x_alloc_nearest_color_for_widget): Use it.
10104 (x_copy_dpy_color): New function.
10105 (x_destroy_window): Free various colors.
10106
10107 2000-06-12 Kenichi Handa <handa@etl.go.jp>
10108
10109 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
10110
10111 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
10112
10113 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
10114
10115 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
10116
10117 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
10118
10119 2000-06-11 Dave Love <fx@gnu.org>
10120
10121 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
10122
10123 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
10124
10125 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
10126
10127 2000-06-11 Gerd Moellmann <gerd@gnu.org>
10128
10129 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
10130 to `XEvent *'.
10131
10132 2000-06-10 Kenichi Handa <handa@etl.go.jp>
10133
10134 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
10135 (regex_compile): Fix the code for handling the case of single byte
10136 char and multibyte char being mixed in a range within [...].
10137
10138 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
10139 and dst_multibyte members of coding.
10140
10141 * charset.c (update_charset_table): Update the table
10142 bytes_by_char_head.
10143 (init_charset_once): Initialize elements of bytes_by_char_head to
10144 1 except for leading codes for private charases.
10145
10146 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
10147 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
10148
10149 2000-06-09 Ken Raeburn <raeburn@gnu.org>
10150
10151 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
10152 access the data it doesn't point to.
10153
10154 2000-06-08 Gerd Moellmann <gerd@gnu.org>
10155
10156 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
10157 will be translated to a switch-frame event when reading the
10158 event queue. This is necessary because Emacs otherwise won't
10159 perform a switch-frame to a new frame until some other event, for
10160 example a keystroke event, forces it to do so. This has various
10161 effects, one visible being that the cursor of a frame created with
10162 C-x 5 2 or switched to with a window manager key binding like
10163 A-TAB stays hollow because selected_window isn't on the newly
10164 focused frame until the switch-frame is performed.
10165
10166 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
10167 generating a switch-frame event if necessary.
10168
10169 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
10170
10171 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
10172 it's an integer.
10173
10174 2000-06-08 Kenichi Handa <handa@etl.go.jp>
10175
10176 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
10177
10178 2000-06-07 Gerd Moellmann <gerd@gnu.org>
10179
10180 * window.c (displayed_window_lines): Take empty lines at
10181 the bottom of a window into account.
10182
10183 * window.c (displayed_window_lines): New function.
10184 (Fmove_to_window_line): Use displayed_window_lines to determine
10185 the number of lines to move, instead of using the window's height.
10186
10187 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
10188 to stop reading, even if the form read sets point to a different
10189 value when evaluated.
10190
10191 * xdisp.c (display_line): Fix code deciding in which line to
10192 put the cursor.
10193
10194 2000-06-07 Kenichi Handa <handa@etl.go.jp>
10195
10196 * fileio.c (e_write): Free composition data if stored in
10197 coding->cmp_data.
10198
10199 2000-06-06 Gerd Moellmann <gerd@gnu.org>
10200
10201 * xdisp.c (display_line): Set row's and iterator's
10202 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
10203 Set cursor even if row ends in the middle of a character.
10204 (dump_glyph_row): Print values of new flags.
10205 (redisplay_window) <cursor movement in unchanged window>: When
10206 point has been moved forward, and PT is at the end of the cursor
10207 row, don't place the cursor in the next row if the cursor row ends
10208 in the middle of a character or at ZV.
10209
10210 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
10211 (struct glyph_row): Add starts_in_middle_of_char_p and
10212 ends_in_middle_of_char_p.
10213 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
10214 ends_in_middle_of_char_p flag.
10215 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
10216
10217 * term.c (append_glyph): Revert change of 2000-06-06.
10218
10219 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
10220 padding glyph not fitting on line as whole character not
10221 fitting on line.
10222
10223 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
10224 this isn't true for images with `:ascent 100'.
10225
10226 2000-06-06 Kenichi Handa <handa@etl.go.jp>
10227
10228 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
10229 as modified if it is originally unmodified.
10230
10231 * term.c (encode_terminal_code): Change the way to check if
10232 terminal coding does any conversion.
10233 (append_glyph): Set glyph->pixel_width correctly.
10234
10235 * xdisp.c (display_line): While checking line continuation, pay
10236 attention to a padding glyph.
10237
10238 2000-06-05 Gerd Moellmann <gerd@gnu.org>
10239
10240 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
10241
10242 2000-06-05 Dave Love <fx@gnu.org>
10243
10244 * xdisp.c: Include fontset.h.
10245
10246 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
10247
10248 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10249
10250 * dispnew.c: Conditionally include term.h.
10251
10252 * coding.h: Declare code_convert_string_norecord.
10253
10254 * frame.h (struct frame): Use volatile unconditionally.
10255
10256 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
10257
10258 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
10259
10260 * systime.h: Protect against multiple inclusion.
10261 (timezone) [USG5_4]: Define as time_t.
10262
10263 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10264 (Foptimize_char_table, make_temp_name): Declare.
10265
10266 * Makefile.in (xdisp.o): Depend on fontset.h.
10267
10268 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
10269
10270 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
10271 (Foptimize_char_table, make_temp_name): Declare.
10272
10273 * s/irix4-0.h:
10274 * s/irix5-0.h:
10275 * s/netbsd.h: Don't define autoconfiscated MATHERR.
10276
10277 2000-06-02 Dave Love <fx@gnu.org>
10278
10279 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
10280
10281 2000-06-02 Gerd Moellmann <gerd@gnu.org>
10282
10283 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
10284 result face, set flags in that face indicating that colors may not
10285 be freed.
10286
10287 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
10288 glyph, use the ASCII NUL character to determine the face.
10289
10290 2000-06-02 Dave Love <fx@gnu.org>
10291
10292 * sysdep.c: Conditionally include stdlib.h, unistd.h.
10293 (VFORK_RETURN_TYPE): Remove.
10294
10295 * config.in: Add NO_MATHERR.
10296
10297 2000-06-01 Dave Love <fx@gnu.org>
10298
10299 * cmds.c (internal_self_insert): Don't check
10300 Vbefore_change_function, Vafter_change_function.
10301
10302 * insdel.c (signal_before_change, signal_after_change): Likewise.
10303
10304 * buffer.c (Vbefore_change_function, Vafter_change_function):
10305 Variables and their initializations deleted.
10306
10307 * callint.c (Fcall_interactively): Doc fix.
10308
10309 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
10310
10311 2000-05-31 Dave Love <fx@gnu.org>
10312
10313 * textprop.c: Revert last change -- duplicated.
10314
10315 2000-05-31 Gerd Moellmann <gerd@gnu.org>
10316
10317 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
10318 in #if 0.
10319
10320 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
10321
10322 2000-05-31 Jason Rumney <jasonr@gnu.org>
10323
10324 * search.c (Fre_search_forward, Fre_search_backward)
10325 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
10326
10327 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
10328
10329 2000-05-30 Jason Rumney <jasonr@gnu.org>
10330
10331 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
10332 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
10333
10334 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
10335
10336 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
10337 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
10338 expand a nil default_filename.
10339
10340 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
10341 pointer to glyph_to_pixel_coords, not a frame.
10342
10343 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
10344 coding.h to dependencies.
10345
10346 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
10347
10348 * w32console.c (glyph_to_pixel_coords): Change first parameter to
10349 window pointer to be consistent with w32term.c and xterm.c.
10350
10351 * w32fns.c: Format and doc changes to bring closer to xfns.c.
10352 (VIETNAMESE_CHARSET): Define if not defined in system headers.
10353 (Qline_spacing, Qcenter): New variables.
10354 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
10355 (x_set_line_spacing): New function.
10356 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
10357 (x_specified_cursor_type): New function.
10358 (x_set_cursor_type): Use it.
10359 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
10360 and icon strings.
10361 (validate_x_resource_name, x_get_resource_string): Measure lengths
10362 of external strings in bytes.
10363 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
10364 GetTextExtentPoint32 with NULL title.
10365 (Fx_create_frame): Initialize Qline_spacing.
10366 (w32_load_system_font): Initialize font->double_byte_p.
10367 (x_to_w32_charset): Use Vw32_charset_info_alist.
10368 (Image, busy cursor, tooltip functions): Merged changes from
10369 xfns.c. Not yet functional on Windows.
10370
10371 * w32gui.h (W32FontStruct): Add double_byte_p member.
10372
10373 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
10374 (emacs_button_translation): Use it.
10375 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
10376 in `mask' to be set.
10377
10378 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
10379 menu strings.
10380
10381 * w32term.c: Format and doc changes to bring closer to xterm.c.
10382 (w32_char_font_type): New enum.
10383 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
10384 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
10385 (w32_encode_char): New function.
10386 (x_encode_char): Removed.
10387 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
10388 x_encode_char and w32_font_is_double_byte.
10389 (x_produce_image_glyph): Use image_ascent.
10390 (x_produce_glyphs): Use new version of w32_per_char_metric and
10391 handle NULL return value. Allow extra line spacing.
10392 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
10393 (w32_get_glyph_overhangs): Remove unicode_p param. Use
10394 w32_font_type member of glyph instead.
10395 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
10396 (fast_find_position): Make sure not to consider rows not visible
10397 in the window.
10398 (w32_read_socket) [WM_MENUSELECT]: Cannot call
10399 w32_menu_display_help with input blocked, as it can abort.
10400 (x_display_and_set_cursor): Choose cursor depending
10401 on buffer-local value of cursor_type.
10402 (x_draw_bar_cursor): Add parameter WIDTH.
10403
10404 * w32term.h (CP_DEFAULT): Define.
10405 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
10406
10407 2000-05-30 Gerd Moellmann <gerd@gnu.org>
10408
10409 * search.c (Fre_search_forward, Fre_search_backward)
10410 (Fposix_search_backward, Fposix_search_forward): Doc fix.
10411
10412 2000-05-30 Kenichi Handa <handa@etl.go.jp>
10413
10414 * coding.c (detect_coding_iso2022): Fix code for checking
10415 CODING_CATEGORY_MASK_ISO_8_2.
10416
10417 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
10418
10419 * regex.c (PREFETCH_NOLIMIT): New function.
10420 (re_match_2_internal): Use it and adjust the end_match_2 logic.
10421
10422 2000-05-29 Gerd Moellmann <gerd@gnu.org>
10423
10424 * syntax.c (find_defun_start): Move test for
10425 open_paren_in_column_0_is_defun_start outside of the loop.
10426
10427 * xdisp.c (redisplay_window): Really switch buffers when
10428 displaying mode lines, and temporarily set selected_frame to the
10429 frame of the window that's redisplayed.
10430
10431 * xfaces.c (free_realized_faces): Block/unblock input.
10432 (free_realized_multibyte_face): Ditto.
10433
10434 2000-05-29 Dave Love <fx@gnu.org>
10435
10436 * textprop.c (Qkeymap): New variable.
10437 (syms_of_textprop): Intern it.
10438
10439 * keymap.c: Include intervals.h.
10440 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
10441
10442 * Makefile.in (keymap.o): Depend on intervals.h.
10443
10444 * keyboard.c (menu_bar_items, tool_bar_items)
10445 (Fexecute_extended_command): Deal with `keymap' property.
10446 (read_key_sequence): Track map from `keymap' property as well as
10447 `local_map'.
10448
10449 * intervals.c (get_local_map): Extra arg to allow looking for
10450 `keymap' too.
10451
10452 * intervals.h (map_property): New enum.
10453 (get_local_map): Extra arg using it.
10454 (Qkeymap): Declare.
10455
10456 * lisp.h (get_local_map): Don't declare here.
10457
10458 2000-05-29 Kenichi Handa <handa@etl.go.jp>
10459
10460 * Makefile.in (callproc.o): Depend on composite.h.
10461
10462 * callproc.c: Include composite.h.
10463 (Fcall_process): Handle composition correctly.
10464
10465 * coding.h (coding_allocate_composition_data): Extern it.
10466 (coding_restore_composition): Likewise.
10467
10468 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
10469 yet allocated, finish decoding with result
10470 CODING_FINISH_INSUFFICIENT_CMP.
10471 (coding_allocate_composition_data): Make it non-static.
10472 (coding_restore_composition): Likewise.
10473
10474 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
10475
10476 * charset.c (syms_of_charset): Revert last change.
10477
10478 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10479
10480 * term.c (produce_glyphs): Treat characters from the eight-bit-*
10481 charsets as unibyte, with 1-column screen width. Sent by Kenichi
10482 Handa.
10483
10484 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
10485
10486 * charset.c (syms_of_charset): Set width of character sets
10487 eight-bit-control and eight-bit-graphic to 1 column.
10488
10489 2000-05-26 Gerd Moellmann <gerd@gnu.org>
10490
10491 * config.in (HAVE_SPEED_T): New define.
10492
10493 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
10494 `extern speed_t'.
10495
10496 2000-05-26 Dave Love <fx@gnu.org>
10497
10498 * coding.c (shrink_decoding_region): Initialize eol_conversion.
10499
10500 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
10501 (Fsubr_arity): New function.
10502 (syms_of_data): Install them.
10503
10504 2000-05-26 Kenichi Handa <handa@etl.go.jp>
10505
10506 * charset.c (init_charset_once): Set the table bytes_by_char_head
10507 correctly.
10508
10509 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
10510 the default fontset to what Emacs uses by default.
10511 (check_registry_encoding): This function deleted.
10512 (Fset_fontset_font): Remove the adhoc condition for the default
10513 fontset. Allow cons in FONTNAME.
10514
10515 * fns.c (map_char_table): Ignore char-table entries for
10516 charsets eight-bit-control and eight-bit-graphic.
10517
10518 2000-05-25 Ken Raeburn <raeburn@gnu.org>
10519
10520 * emacs.c (main): Initialize keyboard syms before initializing
10521 window code, so face names are available.
10522
10523 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
10524
10525 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
10526 of an anchor at the beginning of a shy-group.
10527
10528 2000-05-25 Gerd Moellmann <gerd@gnu.org>
10529
10530 * xdisp.c (handle_invisible_prop): Don't try to skip over
10531 invisible text if end of text is already reached.
10532
10533 2000-05-25 Dave Love <fx@gnu.org>
10534
10535 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
10536
10537 * coding.c (encode_eol): Add null statement after label.
10538
10539 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
10540
10541 * w16select.c (Fw16_set_clipboard_data): Fix the change from
10542 2000-05-20.
10543
10544 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10545
10546 * ccl.c (ccl_driver): Fix previous change.
10547
10548 2000-05-25 Kenichi Handa <handa@etl.go.jp>
10549
10550 * coding.c (run_pre_post_conversion_on_str): Set point to the
10551 beginning of buffer before calling coding->post_read_conversion.
10552 (decode_coding_string): Give correct args to
10553 run_pre_post_conversion_on_str.
10554 (encode_coding_string): Likewise.
10555
10556 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
10557 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
10558 eight-bit-graphic correctly.
10559
10560 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
10561
10562 * fileio.c (Finsert_file_contents): Even if a file is not found,
10563 execute codes for setting up coding system. Call
10564 after-insert-file-functions unconditionally.
10565
10566 2000-05-24 Gerd Moellmann <gerd@gnu.org>
10567
10568 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
10569 BSD_PGRPS are not defined.
10570
10571 2000-05-24 Kenichi Handa <handa@etl.go.jp>
10572
10573 * charset.c (update_charset_table): Accept nil in LONG_NAME and
10574 DESCRIPTION.
10575 (syms_of_charset): Avoid building same strings.
10576
10577 2000-05-23 Gerd Moellmann <gerd@gnu.org>
10578
10579 * lread.c (Fload): Add a comment about the meaning of
10580 Vuser_init_file being t.
10581
10582 * puresize.h (BASE_PURESIZE): Increase to 675000.
10583
10584 * s/gnu-linux.h (setpgrp): Don't define it here because this
10585 prevents compilation on GNU/Linux systems with glib 2.2.
10586
10587 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
10588 as setpgid.
10589
10590 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
10591
10592 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
10593 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
10594 version.
10595 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
10596
10597 2000-05-23 Kenichi Handa <handa@etl.go.jp>
10598
10599 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10600
10601 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
10602
10603 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
10604
10605 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
10606
10607 2000-05-22 Kenichi Handa <handa@etl.go.jp>
10608
10609 * keyboard.c (read_char): Allow character codes 128..255 to be
10610 handled by input-method-function.
10611
10612 * insdel.c (adjust_markers_for_replace): Fix previous change.
10613 (adjust_after_replace): If PREV_TEXT is nil, call
10614 adjust_markers_for_insert, not adjust_markers_for_replace.
10615
10616 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
10617
10618 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
10619 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
10620 [HAVE_GRANDPT]: Define.
10621 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
10622
10623 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
10624 like SYSV_PTYS.
10625
10626 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
10627
10628 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
10629
10630 2000-05-20 Kenichi Handa <handa@etl.go.jp>
10631
10632 The following changes are to handle 8-bit characters in a
10633 multibyte buffer/string without facing with byte combining
10634 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
10635 eight-bit-graphic (for 0xA0..0xFF) are introduced.
10636
10637 * Makefile.in (fns.o): Depend on charset.h.
10638
10639 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
10640 convert it to unibyte.
10641 (make_string): Use parse_str_as_multibyte, not chars_in_text.
10642
10643 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
10644 apparent char boundary.
10645 (Fset_buffer_multibyte): Convert 8-bit characters in the range
10646 0x80..0x9F to/from multibyte form.
10647
10648 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
10649 to unibyte.
10650
10651 * callproc.c (Fcall_process): Always encode an argument string if
10652 it is multibyte. Setup src_multibyte and dst_multibyte members of
10653 process_coding properly.
10654
10655 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
10656 SPLIT_NON_ASCII_CHAR.
10657
10658 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
10659 as is.
10660 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
10661
10662 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
10663 (SPLIT_CHARACTER_SEQ): This macro deleted.
10664 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
10665 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
10666 and eight-bit-graphic.
10667 (char_to_string): Likewise. Signal an error for too large
10668 character code.
10669 (char_printable_p): Return 0 for 8-bit characters.
10670 (update_charset_table): Update iso_charset_table only when a final
10671 character is non-negative.
10672 (find_charset_in_text): Renamed from find_charset_in_str.
10673 Arguments and return value changed. Callers changed.
10674 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
10675 be -1 if CHARSET is used only internally.
10676 (Fmake_char_internal): Handle new charsets; eight-bit-control and
10677 eight-bit-graphic.
10678 (Fcharset_after): Simplified.
10679 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
10680 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
10681 (multibyte_chars_in_text): Simplified by assuming there's no
10682 invalid multibyte sequence.
10683 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10684 (str_as_unibyte): New functions.
10685 (Fstring): Simpified by assuming that byte combining never happens.
10686 (init_charset_once): Initialization for
10687 LEADING_CODE_8_BIT_CONTROL.
10688 (syms_of_charset): Intern and staticpro Qeight_bit_control and
10689 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
10690 eight-bit-control and eight-bit-graphic.
10691
10692 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
10693 (CHARSET_8_BIT_GRAPHIC): New macros.
10694 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
10695 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
10696 (CHARSET_REVERSE_CHARSET): Likewise.
10697 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
10698 eight-bit-graphic.
10699 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
10700 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
10701 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
10702 encounter an invalid multibyte sequence.
10703 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
10704 sequence is always valid.
10705 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
10706 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
10707 (CHAR_STRING): For 8-bit characters, call char_to_string.
10708 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
10709 multibyte sequence is always valid.
10710 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
10711 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
10712 (str_as_unibyte): Extern them.
10713 (BCOPY_SHORT): Fix a bug.
10714 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
10715 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
10716 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
10717 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
10718
10719 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
10720 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
10721 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
10722 (EMIT_BYTES): New macros.
10723 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
10724 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
10725 macros deleted.
10726 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
10727 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
10728 check the validity of multibyte sequence.
10729 (decode_coding_emacs_mule): New function.
10730 (encode_coding_emacs_mule): New macro.
10731 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
10732 the source.
10733 (DECODE_ISO_CHARACTER): Just return a character code.
10734 (DECODE_COMPOSITION_START): Set coding->result instead of result.
10735 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
10736 EMIT_CHAR to produced decoded characters. Exit the loop only by
10737 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
10738 block here.
10739 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
10740 only position codes for an invalid character.
10741 (encode_designation_at_bol): Return new destination pointer. 5th
10742 arg DSTP is changed to DST.
10743 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
10744 from the source by ONE_MORE_CHAR. Don't handle the case of last
10745 block here.
10746 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
10747 macros deleted.
10748 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
10749 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
10750 TWO_MORE_BYTES to fetch a byte from the source.
10751 (encode_eol): Pay attention to coding->src_multibyte.
10752 (detect_coding, detect_eol): Preserve members src_multibyte and
10753 dst_multibyte.
10754 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
10755 (encoding_buffer_size): Set magnification to 3 for all coding
10756 systems that require encoding.
10757 (ccl_coding_driver): For decoding, be sure that the result is
10758 valid multibyte sequence.
10759 (decode_coding): Initialize coding->errors and coding->result.
10760 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
10761 and raw-text, always call decode_eol. Handle the case of last
10762 block here. If not coding->dst_multibyte, convert the resulting
10763 sequence to unibyte.
10764 (encode_coding): Initialize coding->errors and coding->result.
10765 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
10766 and raw-text, always call encode_eol. Handle the case of last
10767 block here.
10768 (shrink_decoding_region, shrink_encoding_region): Detect cases
10769 that we can't skip data more rigidly.
10770 (code_convert_region): Setup src_multibyte and dst_multibyte
10771 members of coding. For decoding, if the buffer is multibyte,
10772 convert the source sequence to unibyte in advance. For encoding,
10773 if the buffer is multibyte, convert the resulting sequence to
10774 multibyte afterward.
10775 (run_pre_post_conversion_on_str): New function.
10776 (code_convert_string): Deleted and divided into the following two.
10777 (decode_coding_string, encode_coding_string): New functions.
10778 (code_convert_string1, code_convert_string_norecord): Call one of
10779 above.
10780 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
10781 MAKE_NON_ASCII_CHAR.
10782 (Fset_terminal_coding_system_internal)
10783 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
10784 and dst_multibyte members.
10785 (init_coding_once): Initialize iso_code_class with new enum
10786 ISO_control_0 and ISO_control_1.
10787
10788 * coding.h (enum iso_code_class_type): Member ISO_control_code is
10789 devided into ISO_control_0 and ISO_control_1.
10790 (struct coding_system): New members src_multibyte, dst_multibyte,
10791 errors, and result. Delete member fake_multibyte.
10792 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
10793 nonzero.
10794 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
10795 nonzero.
10796
10797 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10798 (Faset): Likewise.
10799
10800 * editfns.c (Fformat): Be sure to convert 8-bit characters to
10801 multibyte form.
10802 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
10803 combining occurs.
10804 (Ftranspose_region): Delete codes for handling byte combining.
10805
10806 * fileio.c (Finsert_file_contents): Setup src_multibyte and
10807 dst_multibyte members of coding. On handling REPLACE on unibyte
10808 buffer, convert the result of decode_coding to unibyte. On
10809 inserting into a mutibyte buffer, always call code_convert_region.
10810 (e_write): Setup coding->src_multibyte according to the
10811 multibyteness of the source (buffer or string).
10812
10813 * fns.c (concat): Handle 8-bit characters correctly.
10814 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
10815 unibyte in the result.
10816 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
10817 valid multibyte form in the result.
10818 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10819 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10820 return -1, signal an error.
10821 (base64_encode_1): New arg MULTIBYTE. Get each character by
10822 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10823 character is found, return -1.
10824 (Fbase64_decode_region): Delete codes for handling byte-combining.
10825 Treat each decoded byte as a unibyte character.
10826 (Fbase64_decode_string): Return unibyte string.
10827 (Fcompare_strings, concat, string_byte_to_char): Use
10828 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10829 FETCH_STRING_CHAR_ADVANCE.
10830 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10831 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10832
10833 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10834 SPLIT_NON_ASCII_CHAR.
10835 (fontset_ref_via_base, fontset_set): Likewise
10836
10837 * insdel.c (adjust_markers_for_record_delete): Deleted.
10838 (adjust_markers_for_insert): Argument changed. Caller changed.
10839 (adjust_markers_for_replace): Likewise.
10840 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10841 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10842 (copy_text): Delete unused local varialbe c_save. For converting
10843 to multibyte, be sure to make all 8-bit characters in valid
10844 multibyte form.
10845 (count_size_as_multibyte): Handle 8-bit characters correctly.
10846 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10847 (adjust_after_replace, replace_range, del_range_2)
10848 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10849 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10850 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10851 handling byte combining.
10852 (adjust_before_replace): Deleted.
10853
10854 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10855 SPLIT_NON_ASCII_CHAR.
10856 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10857 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10858 (Fkey_description): Likewise.
10859
10860 * lread.c (read1): On reading multibyte string, be sure to make
10861 all 8-bit chararacters in valid multibyte form.
10862 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10863
10864 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10865 unconditionally.
10866
10867 * process.c (Fstart_process): GCPRO current_dir before calling
10868 Ffind_operation_coding_system. Encode arguments here.
10869 (create_process): Don't encode arguments here. Setup
10870 src_multibyte and dst_multibyte members of struct coding.
10871 (read_process_output): Setup src_multibyte and dst_multibyte
10872 members of struct coding. If the output is to multibyte buffer,
10873 always decode the output of the process. Adjust the
10874 representation of 8-bit characters to the multibyteness of the output.
10875 (send_process): Setup coding->src_multibyte according to the
10876 multibyteness of the source.
10877
10878 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10879 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10880 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10881
10882 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10883
10884 * w16select.c (Fw16_set_clipboard_data): Setup members
10885 src_multibyte and dst_multibyte of coding. Adjusted for the
10886 change for find_charset_in_str.
10887 (Fw16_get_clipboard_data): Likewise.
10888
10889 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10890 dst_multibyte of coding.
10891 (x_to_w32_font): Likewise.
10892
10893 * w32select.c (Fw32_set_clipboard_data): Setup members
10894 src_multibyte and dst_multibyte of coding. Adjusted for the
10895 change for find_charset_in_str.
10896 (Fw32_get_clipboard_data): Likewise.
10897
10898 * xdisp.c (get_next_display_element): Handle 8-bit characters
10899 correctly.
10900 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10901 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10902
10903 * xselect.c (selection_data_to_lisp_data): Setup members
10904 src_multibyte and dst_multibyte of coding. Adjusted for the
10905 change for find_charset_in_str.
10906 (lisp_data_to_selection_data): Likewise.
10907
10908 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10909
10910 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10911
10912 * dispextern.h (Vimage_types): Add extern declaration.
10913
10914 * xdisp.c (Vimage_types): Moved here from xfns.c.
10915 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10916
10917 * xfns.c (Vimages_types): Moved to xdisp.c.
10918 (syms_of_xfns): Move `image-types' to xdisp.c.
10919
10920 * w32fns.c (Vimage_types): Removed.
10921 (syms_of_w32fns): Remove `image-types'.
10922
10923 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10924
10925 * fns.c (map_char_table): Pay attention to character number of
10926 charset. Check the validity of charset at the first level. For
10927 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10928 the default value.
10929
10930 * fontset.c: Include "buffer.h".
10931 (fs_load_font): If the face has fontset, record the face ID in
10932 that fontset.
10933 (Finternal_char_font): New function.
10934 (accumulate_font_info): New function.
10935 (Ffontset_info): Rewritten for the new fontset implementation.
10936 (syms_of_fontset): Register Vdefault_fontset in the first element
10937 of Vfontset_table. Include Vdefault_fontset in
10938 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10939 function.
10940
10941 2000-05-16 Dave Love <fx@gnu.org>
10942
10943 * m/iris5d.h: Deleted -- unused.
10944
10945 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10946
10947 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10948 `invalid' instead of `illegal'.
10949
10950 * indent.c (Fmove_to_column): When ending within a tab, insert
10951 spaces first so that markers at the end of the tab get adjusted.
10952
10953 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10954 buffer list that wasn't selected in that frame.
10955
10956 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10957 is needed on mescaline, use a 2 char prefix, and call
10958 make_temp_name with second arg non-zero.
10959
10960 * fileio.c (make_temp_name): New function, extracted from
10961 Fmake_temp_name.
10962 (Fmake_temp_name): Use it.
10963
10964 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10965
10966 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10967
10968 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10969
10970 * Makefile.in (lisp): Add env.elc.
10971
10972 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10973
10974 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10975
10976 * search.c (Freplace_match): Handle case of `\N' in the
10977 replacement when there's no group N.
10978
10979 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10980
10981 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10982 of the message to message_dolog.
10983
10984 * keyboard.c (read_char): Don't clear current message for help
10985 events; let the code handling help events handle this. Change
10986 code detecting help events that should be ignored.
10987
10988 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10989 we're interating over a string.
10990
10991 2000-05-09 Dave Love <fx@gnu.org>
10992
10993 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10994 that offset before writing. Move gcpro region past call of
10995 Ffile_regular_p.
10996
10997 2000-05-04 Dave Love <fx@gnu.org>
10998
10999 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
11000
11001 2000-05-04 Gerd Moellmann <gerd@gnu.org>
11002
11003 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
11004 of inserted characters when BUF equals the current buffer, and PT
11005 is in front of or equal to FROM.
11006
11007 2000-05-03 Gerd Moellmann <gerd@gnu.org>
11008
11009 * xdisp.c (handle_single_display_prop): If display property value
11010 is invalid, or something not supported on the frame, restore
11011 iterator's position to what it was initially. Make sure to return
11012 0 for invalid and unsupported property values.
11013
11014 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
11015 that x_per_char_metric returns null.
11016
11017 2000-05-02 Gerd Moellmann <gerd@gnu.org>
11018
11019 * xterm.h (struct face): Add forward declaration.
11020 (struct image): Ditto.
11021 (image_ascent): Add prototype.
11022
11023 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
11024 (x_draw_image_relief, x_draw_image_foreground_1): Call function
11025 image_ascent instead of using IMAGE_ASCENT.
11026
11027 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
11028 (IMAGE_ASCENT): Removed.
11029
11030 * xfns.c (Qcenter): New variable.
11031 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
11032 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
11033 (image_ascent): New function.
11034 (lookup_image): Recognize `:ascent center'.
11035 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
11036 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
11037 (xbm_load): Don't set image's ascent here.
11038 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
11039 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
11040 check ascent values here.
11041 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
11042 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
11043 (syms_of_xfns): Initialize Qcenter.
11044
11045 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
11046 to the limits, increase the limits.
11047
11048 2000-05-01 Kenichi Handa <handa@etl.go.jp>
11049
11050 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
11051 Check Vfont_encoding_alist against the full name of the opened font.
11052
11053 2000-04-28 Gerd Moellmann <gerd@gnu.org>
11054
11055 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
11056 taller than the window.
11057
11058 2000-04-28 Kenichi Handa <handa@etl.go.jp>
11059
11060 * xfaces.c (realize_x_face): Fix the argument of the second
11061 xassert. BASE_FACE may not be a face for ASCII.
11062
11063 2000-04-27 Gerd Moellmann <gerd@gnu.org>
11064
11065 * print.c (print_object): Treat print-length < 0 as nil.
11066
11067 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
11068
11069 * s/freebsd.h (TERMCAP_OBJ): Removed.
11070 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
11071
11072 * lread.c (read1): Don't treat period followed by certain
11073 characters as symbol start.
11074
11075 * xfns.c (slurp_file): New function.
11076 (xbm_image_p): Handle case of in-memory XBM files.
11077 (xbm_scan): Rewritten to work on memory buffers instead of files.
11078 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
11079 Work on memory buffers instead of files. If DATA is null test
11080 if buffer looks like an in-memory XBM file.
11081 (xbm_load_image): Renamed from xbm_load_image_file. Work on
11082 memory buffers instead of files.
11083 (xbm_file_p): New function.
11084 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
11085
11086 * lread.c (end_of_file_error): New function.
11087 (read1): Call it instead of signaling `end-of-file' directly.
11088
11089 * print.c (print_error_message): Print data of `end-of-file'
11090 with Fprinc instead of Fprin1.
11091
11092 2000-04-26 Ken Raeburn <raeburn@gnu.org>
11093
11094 * window.c (freeze_window_start): Check that minibuffer scroll
11095 window isn't nil before extracting the window structure pointer
11096 from it.
11097
11098 * undo.c (record_delete): If we hit the end of the undo list, stop
11099 picking elements apart.
11100
11101 2000-04-26 Gerd Moellmann <gerd@gnu.org>
11102
11103 * xdisp.c (display_line): If lines are continued, restore
11104 iterator's ascent/descent information to the values before the
11105 first glyph not fitting on the line.
11106
11107 2000-04-25 Gerd Moellmann <gerd@gnu.org>
11108
11109 * xdisp.c (try_window_id) <all changes above window start>: Adjust
11110 positions in glyph matrix. Don't compute new window end positions.
11111
11112 * dispnew.c (increment_matrix_positions): Renamed from
11113 increment_glyph_matrix_buffer_positions.
11114 (increment_row_positions): Renamed from
11115 increment_glyph_row_buffer_positions.
11116
11117 * dispextern.h: Change names of renamed functions from dispnew.c
11118 in prototypes.
11119
11120 2000-04-24 Gerd Moellmann <gerd@gnu.org>
11121
11122 * fileio.c (Fdo_auto_save): Create directories for auto-save
11123 list file if necessary.
11124
11125 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
11126 from buffer or frame.
11127 (automatic_hscrolling_p): New variable.
11128 (hscroll_windows): Scroll windows horizontally only if automatic
11129 hscrolling is allowed.
11130 (syms_of_xdisp): New variable `automatic-hscrolling'.
11131
11132 * frame.h (struct frame): Add member extra_line_spacing.
11133
11134 * xfns.c (x_set_line_spacing): New function.
11135 (Fx_create_frame): Set line spacing from resources.
11136 (Qline_spacing): New variable.
11137 (syms_of_xfns): Initialize Qline_spacing.
11138
11139 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
11140
11141 * buffer.c (init_buffer_once): Handle extra_line_spacing.
11142 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
11143 (reset_buffer): Don't initialize extra2 and extra3. Initialize
11144 extra_line_spacing from default value.
11145 (init_buffer_once): Initialize default value of extra_line_spacing.
11146
11147 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
11148 and extra3.
11149
11150 * xterm.c (x_produce_glyphs): Remove reference to struct it's
11151 prompt_width. Add extra line spacing.
11152
11153 * term.c (produce_glyphs): Remove reference to struct it's
11154 prompt_width.
11155
11156 * dispextern.h (struct it): Remove member prompt_width, add
11157 extra_line_spacing.
11158
11159 2000-04-22 Gerd Moellmann <gerd@gnu.org>
11160
11161 * dispnew.c (update_frame_line): When writing a whole line, make
11162 sure cursor is in the right row afterwards, otherwise a use of
11163 capability `ch' in cmgoto might leave the cursor in the row below.
11164
11165 2000-04-21 Gerd Moellmann <gerd@gnu.org>
11166
11167 * lisp.h (struct Lisp_Buffer_Cons): Remove.
11168
11169 * keyboard.c (timer_check): Fix typo in comment.
11170
11171 2000-04-21 Kenichi Handa <handa@etl.go.jp>
11172
11173 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
11174 name change: ch -> character.
11175
11176 2000-04-20 Gerd Moellmann <gerd@gnu.org>
11177
11178 * keyboard.c (echo_message_buffer): New variable.
11179 (echo_now): Set echo_message_buffer to the echo area buffer used
11180 to display the echo.
11181 (cancel_echoing): Reset echo_message_buffer to nil.
11182 (read_char): Code rewritten that handles canceling an echo or
11183 echoing a dash, respectively.
11184
11185 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
11186 directory doesn't exist.
11187
11188 2000-04-19 Dave Love <fx@gnu.org>
11189
11190 * fns.c (syms_of_fns): Defsubr mapc.
11191 (concat): Don't allow numeric args.
11192 (Fconcat): Doc change.
11193
11194 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
11195
11196 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
11197 instead define end_match(1|2) more carefully.
11198 Use GET_CHAR_BEFORE_2 for `begline'.
11199
11200 2000-04-19 Gerd Moellmann <gerd@gnu.org>
11201
11202 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
11203 on 64-bit systems where NULL is defined as `0'.
11204
11205 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
11206 the `variable argument list' to make it work on Alpha.
11207
11208 * m/alpha.h (_LP64) [!_LP64]: Define.
11209 (ORDINARY_LINK): Define for NetBSD.
11210
11211 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
11212
11213 2000-04-19 Dave Love <fx@gnu.org>
11214
11215 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
11216 change.
11217
11218 * Makefile.in (LIBS): Don't use.
11219 (GETLOADAVG_OBJ): Define again.
11220 (otherobj): Add GETLOADAVG_OBJ.
11221
11222 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
11223
11224 2000-04-18 Gerd Moellmann <gerd@gnu.org>
11225
11226 * lread.c (read_filtered_event): Cancel and start busy cursor.
11227
11228 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
11229 that the per-character metrics may be null.
11230
11231 2000-04-17 Gerd Moellmann <gerd@gnu.org>
11232
11233 * buffer.c (clone_per_buffer_values): New function.
11234 (Fmake_indirect_buffer): Add optional argument CLONE. Call
11235 clone_per_buffer_values if CLONE is not nil.
11236
11237 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
11238
11239 2000-04-16 Dave Love <fx@gnu.org>
11240
11241 * Makefile.in: Remove obsolete localcpp stuff.
11242 (GETLOADAVG_OBJ): Don't define.
11243 (obj): Move LIBOBJS...
11244 (otherobj): ... to here.
11245 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
11246 whitespace-only lines after the continuation (Irix).
11247
11248 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11249
11250 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
11251
11252 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
11253
11254 2000-04-14 Dave Love <fx@gnu.org>
11255
11256 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
11257 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
11258 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
11259 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
11260 NLIST_STRUCT.
11261
11262 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
11263 autoconfiscated HAVE_GETLOADAVG.
11264
11265 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
11266 BROKEN_MKTIME.
11267
11268 2000-04-14 Gerd Moellmann <gerd@gnu.org>
11269
11270 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
11271 (fill_in_lock_file_name): Avoid existing files that aren't links.
11272
11273 2000-04-14 Dave Love <fx@gnu.org>
11274
11275 * Makefile.in (LIBS, LIBOBJS): New variable.
11276 (INTERVAL_SRC): Convert to make variable.
11277 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
11278 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
11279 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
11280 add LIBOBJS.
11281 (SOME_MACHINE_OBJECTS): Remove interval stuff.
11282 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
11283 (shortlisp): Add facemenu, float-sup, frame.
11284 (SOME_MACHINE_LISP): Remove them from here.
11285 (LIBES): Change unused LDLIBS to autoconf LIBS.
11286
11287 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
11288
11289 2000-04-14 Kenichi Handa <handa@etl.go.jp>
11290
11291 * composite.c (update_compositions): If FROM and TO are not in a
11292 valid range, do nothing.
11293
11294 2000-04-13 Gerd Moellmann <gerd@gnu.org>
11295
11296 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
11297
11298 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
11299
11300 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
11301 as TERMCAP_OBJ.
11302
11303 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
11304
11305 * fileio.c (a_write): Remove redundant semi-colons.
11306 (e_write): Return -1 if failed to write all the data.
11307 This fixes the changes made at 1999-12-15.
11308
11309 2000-04-12 Dave Love <fx@gnu.org>
11310
11311 * fns.c (mapcar1): Test for null vals to support mapc.
11312 (Fmapc): New function.
11313
11314 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
11315
11316 * msdos.c (NUM_MOUSE_BUTTONS): Define.
11317 (IT_frame_up_to_date): Support the buffer local value of
11318 cursor-type, if defined.
11319
11320 2000-04-10 Dave Love <fx@gnu.org>
11321
11322 * editfns.c (preceding-char, following-char): Doc fix.
11323
11324 2000-04-10 Ken Raeburn <raeburn@gnu.org>
11325
11326 * Makefile.in (temacs): Revert 2000-03-12 change.
11327
11328 2000-04-10 Jason Rumney <jasonr@gnu.org>
11329
11330 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
11331
11332 2000-04-10 Gerd Moellmann <gerd@gnu.org>
11333
11334 * xdisp.c (setup_echo_area_for_printing): Choose an echo
11335 area buffer, if it's not set up yet.
11336
11337 * indent.c (compute_motion): Set immediate_quit.
11338
11339 2000-04-09 Gerd Moellmann <gerd@gnu.org>
11340
11341 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
11342 (realize_tty_face): Suppress boldness if colors are the inverse of
11343 the default colors, and tty_suppress_bold_inverse_default_colors_p
11344 is set.
11345 (Ftty_suppress_bold_inverse_default_colors): New function.
11346 (syms_of_xfaces): Defsubr it.
11347
11348 * buffer.c (Frestore_buffer_modified_p): New function.
11349 (syms_of_buffer): Defsubr it.
11350
11351 2000-04-08 Ken Raeburn <raeburn@gnu.org>
11352
11353 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
11354 charset id (int) argument, not a charset (Lisp_Object).
11355
11356 * coding.h (code_convert_string): Declare.
11357 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
11358 object, as the fourth argument to code_convert_string.
11359
11360 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
11361 (Fset_fontset_font): Use EQ to compare lisp objects.
11362
11363 2000-04-05 Ken Raeburn <raeburn@gnu.org>
11364
11365 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
11366 a pointer that looks like a lisp object.
11367 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
11368 zero, instead see whether it's an integer object, since they can't
11369 have intervals.
11370 (GET_INTERVAL_OBJECT): Simply assign to the destination.
11371
11372 * dispnew.c (allocate_matrices_for_frame_redisplay)
11373 (direct_output_forward_char): Use X(U)INT and make_number as needed
11374 to convert between (unsigned) int values and lisp integers.
11375 * keyboard.c (read_key_sequence): Likewise.
11376 * lread.c (substitute_object_recurse): Likewise.
11377 * fns.c (concat, hash_lookup, hash_remove): Likewise.
11378 * minibuf.c (do_completion, Fminibuffer_complete_word)
11379 (Fminibuffer_completion_help): Likewise.
11380 * term.c (produce_special_glyphs): Likewise.
11381
11382 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
11383 * print.c (print_preprocess, print_object): Likewise.
11384
11385 * search.c (compile_pattern): Use NILP when checking for nil.
11386
11387 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
11388 __OPTIMIZE__]: Provide a GNU C macro version that handles
11389 lisp-object unions.
11390 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
11391 field, to better cope with ENABLE_CHECKING and calls that modify a
11392 Lisp_Object using its old value.
11393
11394 2000-04-04 Gerd Moellmann <gerd@gnu.org>
11395
11396 * window.c (compare_window_configurations): Signal an error
11397 if parameters C1 or C2 aren't window configurations.
11398
11399 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
11400 AFTER_POTENTIAL_GC calls around calls to functions that can
11401 signal an error and thus invoke the debugger.
11402
11403 2000-04-03 Gerd Moellmann <gerd@gnu.org>
11404
11405 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
11406 an error if decoding fails.
11407
11408 * keyboard.c (lispy_mouse_names): Variable removed.
11409 (Vlispy_mouse_stem): New variable.
11410 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
11411 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
11412 for any mouse button number. Increase size of mouse_syms and
11413 button_down_location as needed. Call modify_event_symbol with
11414 different arguments.
11415 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
11416 Call modify_event_symbol with different arguments.
11417 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
11418 for any button number. Call modify_event_symbol with different
11419 arguments.
11420 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
11421 Accept a string for NAME_ALIST_OR_STEM.
11422
11423 * lisp.h (larger_vector): Add prototype.
11424
11425 * fns.c (larger_vector): Make externally visible.
11426
11427 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
11428
11429 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
11430
11431 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
11432 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
11433 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
11434 we are between str1 and str2.
11435 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
11436 (PATFETCH): Use `TRANSLATE'.
11437 (PATFETCH_RAW): Fetch multibyte char if applicable.
11438 (PATUNFETCH): Remove.
11439 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
11440 When writing a char, write it directly into the pattern buffer rather
11441 than going needlessly through a temp char-array.
11442 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
11443 multibyte magic and remove the useless `#ifdef emacs'.
11444 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
11445 buffer.
11446
11447 * regex.h (struct re_pattern_buffer): Make field `multibyte'
11448 conditional on `emacs'.
11449
11450 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
11451
11452 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11453
11454 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
11455 non-union-type versions of XMARK and friends here, because XMARK
11456 and friends won't work on an integer field if NO_UNION_TYPE is not
11457 defined.
11458 (make_number): Define as a function if it's not defined as a macro.
11459
11460 * composite.c (run_composite_function): Use NILP when checking for nil.
11461 (syms_of_composite): Delete local var NARGS, pass an int as first
11462 argument to Fmake_hash_table.
11463
11464 * editfns.c (text_property_stickiness): Use NILP to test
11465 Lisp_Object boolean value.
11466 (Fmessage_or_box): Don't use NILP to test int variable.
11467 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
11468 problems reading from and changing the same lisp value in an
11469 XSETSTRING call.
11470
11471 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11472
11473 * term.c (TN_no_color_video): New variable.
11474 (term_init): Intitialize TN_no_color_video.
11475 (enum no_color_bit): New enumeration.
11476 (MAY_USE_WITH_COLORS_P): New macro.
11477 (turn_on_face): Use it to determine if attributes may be used
11478 combined with colors.
11479
11480 2000-04-01 Ken Raeburn <raeburn@gnu.org>
11481
11482 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
11483 with int lvalues via casts; instead, just yield lisp object lvalues.
11484 (enlarge_window): Variable sizep now points to Lisp_Object. Use
11485 proper accessor macros.
11486 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
11487 (grow_mini_window): Fix typo getting int value of root->height.
11488
11489 * xdisp.c (compute_string_pos): Fix order of arguments to
11490 string_pos_nchars_ahead.
11491 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
11492 count arg to variable-arg routines like Frun_hook_with_args and
11493 Fformat.
11494 (back_to_previous_visible_line_start)
11495 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
11496 fixed-arg routines like Fget_char_property and Fmake_string.
11497 (reconsider_clip_changes): Use XINT when comparing integer lisp
11498 objects, or passing them as int arguments.
11499 (mark_window_display_accurate, insert_left_trunc_glyphs)
11500 (append_space, extend_face_to_end_of_line): Use make_number when
11501 storing or passing integer values as lisp objects.
11502 (set_cursor_from_row, highlight_trailing_whitespace): Use
11503 INTEGERP, not implicit test against zero, for glyph object.
11504 (try_window_id): Don't use make_number when we want an int value.
11505
11506 * xfaces.c (xlfd_symbolic_value): Make last argument a
11507 Lisp_Object, to be consistent with callers.
11508 (Fbitmap_spec_p): Use XINT to get numeric value of height.
11509 (lface_hash): Apply XFASTINT to lisp values before folding in.
11510
11511 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
11512 fill in window width and height. Pass an int, not a lisp object,
11513 as first arg to Finsert.
11514
11515 2000-04-01 Gerd Moellmann <gerd@gnu.org>
11516
11517 * xfaces.c (realize_basic_faces): Block input while realizing
11518 the faces.
11519
11520 * keyboard.c (lispy_mouse_names): Add additional mouse names.
11521
11522 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
11523
11524 2000-03-31 Gerd Moellmann <gerd@gnu.org>
11525
11526 * xterm.c (x_produce_glyphs): When displaying unibyte text
11527 or ASCII, handle case that per-char metric is null.
11528
11529 2000-03-30 Ken Raeburn <raeburn@gnu.org>
11530
11531 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
11532
11533 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
11534 (XSUBR, XBUFFER): Verify correct object type before returning
11535 pointer, using eassert.
11536 * frame.h (XFRAME): Likewise.
11537
11538 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
11539 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
11540 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
11541 * data.c (set_internal): Likewise.
11542 * dispextern.h (WINDOW_WANTS_MODELINE_P)
11543 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
11544 * fileio.c (auto_save_1): Likewise.
11545 * insdel.c (check_markers): Likewise.
11546 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
11547 * undo.c (record_insert): Likewise.
11548 * vmsproc.c (child_sig): Likewise.
11549 * window.c (unshow_buffer, window_loop): Likewise.
11550 * xterm.c (x_erase_phys_cursor): Likewise.
11551
11552 2000-03-30 Gerd Moellmann <gerd@gnu.org>
11553
11554 * xfns.c (free_image_cache): Free the cache structure itself
11555 last, after all its members have been freed.
11556
11557 * lisp.h (xstrdup): Add prototype.
11558
11559 * alloc.c (xstrdup): Moved here from xfaces.c.
11560 (allocating_for_lisp): Variable removed.
11561 (lisp_malloc): Block input around the calls to malloc and mem_insert.
11562
11563 * xfaces.c (realize_tty_face): Use find_symbol_value instead
11564 of Fsymbol_value.
11565 (xstrdup): Moved to alloc.c.
11566
11567 2000-03-29 Ken Raeburn <raeburn@gnu.org>
11568
11569 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
11570
11571 * emacs.c (main): Fix sense of no-loadup test.
11572
11573 * config.in (ENABLE_CHECKING): Undef.
11574
11575 * lisp.h (struct interval): Replace "parent" field with a union of
11576 interval pointer and Lisp_Object; add new bitfield to use as
11577 discriminant. Change other flag fields to bitfields.
11578 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
11579 is defined and the supplied test fails, print a message and abort.
11580 (eassert): New macro. Use CHECK to provide an assert-like facility.
11581
11582 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
11583 pointers; abort if the value looks like a lisp object.
11584 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
11585 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
11586 Modify for new interval parent definition.
11587
11588 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
11589 (UNMARK_BALANCE_INTERVALS): Update references that need an
11590 addressable lisp object in the interval structure.
11591 (die): New function.
11592 (suppress_checking): New variable.
11593
11594 * intervals.c (interval_start_pos): Just return 0 if there's no
11595 parent object.
11596
11597 2000-03-29 Gerd Moellmann <gerd@gnu.org>
11598
11599 * lread.c (read1): Accept `.' (period) as symbol start like in CL
11600 and earlier Emacs versions.
11601
11602 * keyboard.c (Ftop_level): Cancel busy-cursor.
11603
11604 * eval.c (call_debugger): Cancel busy-cursor.
11605
11606 2000-03-29 Kenichi Handa <handa@etl.go.jp>
11607
11608 * search.c (Freplace_match): Adjust multibyteness of the current
11609 buffer and NEWTEXT. Free allocated memory before signaling an error.
11610
11611 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
11612
11613 * regex.c (analyse_first): New function obtained by ripping out most
11614 of re_compile_fastmap and generalizing it a little bit so that it
11615 can also just return whether a given (sub)pattern can match the empty
11616 string or not.
11617 (regex_compile): Use `analyse_first' to decide whether the loop-check
11618 needs to be done or not for *, +, *? and +? (the loop check is costly
11619 for non-greedy repetition).
11620 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
11621
11622 2000-03-28 Dave Love <fx@gnu.org>
11623
11624 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
11625
11626 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
11627
11628 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
11629
11630 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
11631 an expression.
11632 (enum re_opcode_t): Update description of succeed_n.
11633 (PATFETCH): Always define.
11634 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
11635 operators, char classes, shy-groups and intervals).
11636 Optimize special cases of intervals so as to only use succeed_n and
11637 jump_n when really needed.
11638 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
11639 that we don't have to handle the special cases any more.
11640 Simplify on_failure_jump handling as well.
11641
11642 2000-03-28 Jason Rumney <jasonr@gnu.org>
11643
11644 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
11645
11646 2000-03-27 Gerd Moellmann <gerd@gnu.org>
11647
11648 * s/freebsd.h (GC_SETJMP_WORKS): Define.
11649
11650 * s/msdos.h (GC_SETJMP_WORKS): Define.
11651
11652 * alloc.c (mark_maybe_object): New function.
11653 (mark_memory): Use it.
11654 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
11655 (setjmp_tested_p, longjmp_done): New variables.
11656 (test_setjmp): New function.
11657 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
11658 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
11659
11660 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
11661 to DEC_TEXT_POS and INC_TEXT_POS.
11662
11663 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
11664 with parameter MULTIBYTE_P.
11665
11666 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
11667
11668 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
11669 buffers because it looks for multibyte character byte sequences
11670 which don't exist in unibyte text.
11671
11672 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
11673
11674 * xfaces.c (register_color, unregister_color, unregister_colors)
11675 [DEBUG_X_COLORS]: New functions.
11676 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
11677
11678 * xfns.c (x_set_cursor_color): Get color reference counts right.
11679
11680 * xterm.c (x_copy_color): New function.
11681 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
11682
11683 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
11684 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
11685 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
11686 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
11687 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
11688 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
11689 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
11690 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
11691 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
11692 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
11693
11694 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
11695 names for handling per-buffer variables.
11696
11697 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
11698 instead of MAX_BUFFER_LOCAL_VARS.
11699 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
11700
11701 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
11702
11703 * xfns.c (x_specified_cursor_type): New function.
11704 (x_set_cursor_type): Use it.
11705
11706 * buffer.h (struct buffer): Add cursor_type.
11707
11708 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
11709
11710 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
11711 (print_partial_compiled_pattern, re_compile_fastmap):
11712 Handle new opcode.
11713 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
11714 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
11715 executing it as well as when popping it off the stack to find infinite
11716 loops in non-greedy repetition operators.
11717
11718 2000-03-26 Gerd Moellmann <gerd@gnu.org>
11719
11720 * doc.c (Qfunction_documentation): New variable.
11721 (syms_of_doc): Initialize Qfunction_documentation.
11722 (Fdocumentation): If FUNCTION is a symbol with non-nil
11723 `function-documentation' property, return a documentation derived
11724 from that.
11725
11726 * buffer.c (syms_of_buffer): Add default-cursor-type.
11727 (init_buffer_once): Don't let cursor_type have a local value
11728 in every buffer.
11729
11730 * xterm.c (x_display_and_set_cursor): Choose cursor depending
11731 on buffer-local value of cursor_type.
11732 (x_draw_bar_cursor): Add parameter WIDTH.
11733
11734 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
11735 (init_buffer_once): Set default cursor_type value to t.
11736 Mark cursor_type as local everywhere.
11737 (syms_of_buffer): New per-buffer variable cursor-type.
11738
11739 * buffer.h (struct buffer): Remove member local_var_flags,
11740 add local_flags.
11741 (MAX_BUFFER_LOCAL_VARS): New macro.
11742 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
11743 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
11744 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
11745 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
11746
11747 * print.c (print_object): Use new macros for per-buffer variables.
11748
11749 * category.c (Fset_category_table): Use new macros for per-buffer
11750 variables.
11751
11752 * buffer.c (buffer_permanent_local_flags): Make a char array.
11753 (max_buffer_local_idx): New variable.
11754 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
11755 for new handling of per-buffer variables.
11756 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
11757 (init_buffer_once): Initialize per-buffer vars differently.
11758 Set max_buffer_local_idx.
11759
11760 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
11761 variables.
11762
11763 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
11764
11765 * data.c (do_symval_forwarding, store_symval_forwarding)
11766 (find_symbol_value, set_internal, default_value, Fset_default)
11767 (Fkill_local_variable, Flocal_variable_p): Use new macros for
11768 per-buffer variables.
11769
11770 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
11771
11772 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11773
11774 * xterm.c (x_term_init): Unblock input around call1 of
11775 Qvendor_specific_keysyms.
11776
11777 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
11778 (find_defun_start): Consider an open parenthesis in column 0
11779 a defun start only if open_paren_in_column_0_is_defun_start is set.
11780 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
11781
11782 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
11783
11784 * eval.c (Fautoload): Add entry in load-history (if after dump).
11785 * lread.c (load-history): Update docstring.
11786
11787 2000-03-24 Gerd Moellmann <gerd@gnu.org>
11788
11789 * indent.c (Fvertical_motion): Always use the current buffer.
11790 Temporarily change the window's buffer, if necessary.
11791
11792 2000-03-23 Gerd Moellmann <gerd@gnu.org>
11793
11794 * xterm.c (fast_find_position): Make sure not to consider rows
11795 not visible in the window.
11796
11797 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
11798
11799 * regex.c (enum syntaxcode): Provide default for non-Emacs.
11800 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
11801
11802 2000-03-22 Jason Rumney <jasonr@gnu.org>
11803
11804 * w32menu.c (single_submenu): Set help string to NULL if none.
11805 (w32_menu_show): Set help string correctly.
11806 (add-menu-item): Set help string in MIIM_DATA for menu item.
11807 Load SetMenuItemInfoA explicitly.
11808 (w32_menu_display_help): New function.
11809
11810 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
11811 (QCdata): Moved to xdisp.c.
11812
11813 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
11814 (Vw32_charset_to_codepage_alist): Removed.
11815 (Vw32_charset_info_alist): New variable.
11816 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
11817 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11818 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11819 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11820 with TODO comment.
11821 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11822 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11823 Define Vw32_charset_info_alist and w32_charset symbols.
11824
11825 2000-03-22 Jason Rumney <jasonr@gnu.org>
11826
11827 * makefile.nt (w32bdf.obj): Update dependencies.
11828
11829 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11830
11831 * w32fns.c: Include fontset.h after dispextern.h.
11832 (Fx_create_frame): Do not create fontset.
11833 (w32_load_system_font): Doc fix.
11834 (Fx_close_connection): Free full_name if it is not shared.
11835
11836 * w32term.c: Include fontset.h after dispextern.h.
11837 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11838 Callers updated.
11839 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11840 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11841 (w32_font_is_double_byte): New function, needs body.
11842 (x_append_glyph): Set glyph->glyph_not_available_p.
11843 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11844 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11845 character, convert it to a unibyte character.
11846 (struct glyph_string): Delete member `charset'.
11847 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11848 calculating it is found.
11849 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11850 the case that per char metric is not available correctly.
11851 (x_fill_glyph_string): Handle the case that the specific glyph is
11852 not available correctly.
11853 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11854 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11855 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11856 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11857 fontset. Don't call FS_LOAD_FONT.
11858
11859 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11860
11861 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11862 (INT_LISPLIKE): New macro.
11863 (NULL_INTERVAL_P): Use it.
11864 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11865 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11866 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11867
11868 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11869 explicit references to "parent" field of struct interval and
11870 associated unclean type conversions.
11871 * intervals.c (create_root_interval, root_interval, rotate_right)
11872 (rotate_left, balance_possible_root_interval, split_interval_right)
11873 (split_interval_left, interval_start_pos, find_interval)
11874 (next_interval, previous_interval, update_interval)
11875 (adjust_intervals_for_insertion, delete_node, delete_interval)
11876 (adjust_intervals_for_deletion, merge_interval_right)
11877 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11878 (copy_intervals_to_string): Likewise.
11879 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11880 Likewise.
11881 * syntax.c (update_syntax_table): Likewise.
11882
11883 * intervals.c (reproduce_tree_obj): New function, like
11884 reproduce_tree but takes a Lisp_Object for the parent. Declare
11885 with prototype.
11886 (graft_intervals_into_buffer): Use it when appropriate.
11887 (reproduce_tree): Declare with prototype.
11888 (balance_possible_root_interval): Check that the parent is a lisp
11889 object before trying to examine its type.
11890
11891 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11892
11893 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11894 as strings only if both are known to be strings.
11895
11896 * s/openbsd.h (LIBS_TERMCAP): Undef.
11897
11898 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11899
11900 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11901 definitions for non-Emacs compilation.
11902 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11903 outside of `#ifdef emacs'.
11904 (print_partial_compiled_pattern): Update.
11905 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11906 (re_compile_fastmap): Merge handling of charset and charset_not (for
11907 emacs and non-emacs compilation as well).
11908 Similarly for (not)categoryspec and (not)syntaxspec.
11909 Don't use the fastmap when reaching `anychar' since the added
11910 complexity is not justified.
11911 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11912 and (not)syntaxspec. Merge (not)categoryspec.
11913
11914 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11915
11916 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11917 (FACE_FOR_CHAR): Define them differently for the configuration of
11918 --without-x.
11919
11920 2000-03-21 Dave Love <fx@gnu.org>
11921
11922 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11923 doc string.
11924
11925 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11926
11927 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11928 (lface_fully_specified_p): Don't check contents of
11929 LFACE_FONT_INDEX because that attribute is optional.
11930 (realize_x_face): Remove now unwarranted xassert.
11931
11932 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11933
11934 The following changes are to make font selection based on
11935 characters, not charset. In addition, they recover fontset
11936 facilities while utilizing the new font selection mechanism.
11937
11938 * Makefile.in (fontset.o): Depend on dispextern.h.
11939
11940 * alloc.c (mark_face_cache): Don't mark face->registry.
11941
11942 * dispextern.h (struct glyph): New member glyph_not_available_p.
11943 Use 22 bits for face_id.
11944 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11945 (struct face): Delete member registry, new member ascii_face.
11946 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11947 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11948 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11949 (struct it): Delete member charset, new member glyph_not_available_p.
11950
11951 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11952 (struct fontset_info, struct fontset_data): Structs removed.
11953 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11954 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11955 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11956 (fs_free_face_fontset, fontset_font_pattern)
11957 (face_suitable_for_char_p, face_for_char)
11958 (make_fontset_for_ascii_face): Extern them.
11959 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11960 (FS_LOAD_FACE_FONT): New macro.
11961
11962 * fontset.c: All codes rewritten or adjusted for the change of
11963 fontset implementation. Now fontset is represented by char table.
11964 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11965 Variables removed.
11966 (my_strcasecmp): Function removed.
11967 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11968 (AREF, ASIZE): New macros.
11969 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11970 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11971 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11972 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11973 (fontset_id_valid_p, font_family_registry, fontset_name)
11974 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11975 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11976 New functions.
11977 (fs_load_font): New arg FACE. Caller changed.
11978 (fs_query_fontset): Argument changed. Caller changed.
11979 (Fquery_fontset): call fs_query_fontset.
11980 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11981 Functions removed.
11982 (clear_fontset_elements, check_registry_encoding)
11983 (check_fontset_name): New functions.
11984 (syms_of_fontset): Set char-table-extra-slots property of fontset
11985 to 3. Staticpro and initialize Vfontset_table and
11986 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11987
11988 * frame.h (struct frame): Member `fontset_data' removed.
11989 (FRAME_FONTSET_DATA): Macro removed.
11990
11991 * frame.c (make_frame): Don't allocate f->fontset_data.
11992 (Fdelete_frame): Don't free f->fontset_data.
11993
11994 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11995
11996 * xdisp.c (charset_at_position): Function removed.
11997 (init_iterator): Don't set member charset of struct `it'.
11998 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11999 (next_element_from_display_vector, insert_left_trunc_glyphs):
12000 Likewise.
12001 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
12002 FACE_FOR_CHARSET.
12003 (get_next_display_element, append_space)
12004 (extend_face_to_end_of_line): Likewise.
12005
12006 * xfaces.c (Qx_charset_registry, Vface_default_registry):
12007 Variables removed.
12008 (clear_font_table, frame_update_line_height, load_face_font):
12009 Adjusted for the change of fontset implementation.
12010 (load_face_fontset_font): Function removed.
12011 (pixel_point_size): New function.
12012 (font_list): Argument type changed. Caller changed.
12013 (LFACE_FONT): New macro.
12014 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
12015 (set_lface_from_font_name): Type of arg FONTNAME is changed to
12016 Lisp_Object. Determine the font name by actually loading a font
12017 by the specified pattern. Set LFACE_FONT (lface) to the specified
12018 pattern. Even if a font is not found, don't try alternatives.
12019 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
12020 (set_font_frame_param): If `font' is specified in lface, use it.
12021 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
12022 (lface_same_font_attributes_p): Likewise.
12023 (make_realized_face): Arguent changed. Caller changed. Set
12024 face->ascii_face to face itself.
12025 (free_realized_face): Free face->fontset if face is for ASCII.
12026 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
12027 (deduce_unibyte_registry, x_charset_registry): Functions removed.
12028 (free_realized_multibyte_face): New function.
12029 (lookup_face, lookup_named_face, lookup_derived_face): Argument
12030 changed. Caller changed.
12031 (try_font_list): Argument type changed.
12032 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
12033 (choose_face_font): Argument changed. Handle fontset properly.
12034 (choose_face_fontset_font): Function removed.
12035 (realize_default_face, realize_named_face): Don't remove the
12036 former face here.
12037 (realize_face): Argument changed. Caller changed. Remove face
12038 with the arg former_face_id in advance. Load font for the new face.
12039 (realize_x_face): Argument changed. Caller changed. For a
12040 multibyte character, share fontset with base_face. For a single
12041 byte character, make a new realized fontset. Don't load a font here.
12042 (realize_tty_face): Argument changed. Caller changed.
12043 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
12044 (face_at_buffer_position): Don't check multibyte_p for returning
12045 DEFAULT_FACE_ID.
12046 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
12047 FACE_SUITABLE_FOR_CHARSET_P.
12048 (syms_of_xfaces): Remove code for Qx_charset_registry and
12049 Vface_default_registry.
12050
12051 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
12052 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
12053 (x_per_char_metric): Don't try FONT->default_char. Even if
12054 pcm->width is zero, glyph bits may exist.
12055 (x_encode_char): Always initialize char2b->byte1.
12056 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
12057 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
12058 (x_append_glyph): Set glyph->glyph_not_available_p.
12059 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
12060 it->charset. Handle the case that per char metric is not
12061 available. If it->multibyte_p is zero and it->c is a multibyte
12062 character, convert it to a unibyte character.
12063 (struct glyph_string): Delete member `charset'.
12064 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
12065 the case that per char metric is not available correctly.
12066 (x_fill_glyph_string): Handle the case that the specific glyph is
12067 not available correctly.
12068 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
12069 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
12070 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
12071 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
12072 fontset. Don't call FS_LOAD_FONT.
12073
12074 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
12075 (x_create_tip_frame): Likewise.
12076 (Fx_close_connection): Free full_name of font_info.
12077
12078 * fns.c (optimize_sub_char_table): New function.
12079 (Foptimize_char_table): New function.
12080 (syms_of_fns): Defsubr Soptimize_char_table.
12081
12082 2000-03-20 Gerd Moellmann <gerd@gnu.org>
12083
12084 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
12085 only if buffer is displayed in some window.
12086
12087 * xdisp.c (handle_single_display_prop): Initialize local `value'.
12088 (try_window_reusing_current_matrix): Don't call scroll run
12089 function if run's current and desired position are the same;
12090 this prevents cursor flickering.
12091
12092 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
12093
12094 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
12095
12096 * regex.c (RE_STRING_CHAR): New macro.
12097 (GET_CHAR_AFER_2): Remove.
12098 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
12099 (enum re_opcode_t): Remove on_failure_jump_exclusive.
12100 (print_partial_compiled_pattern, re_compile_fastmap)
12101 (re_match_2_internal): Remove on_failure_jump_exclusive.
12102 (regex_compile): Turn optimizable P+ loops into PP*, so that the
12103 optimization only need to work for * (ie. can use of_keep_string_jump).
12104 Remove the special case for .*\n since it is now covered by the general
12105 optimization.
12106 (re_search_2): Don't bother with `room'.
12107 (skip_one_char): New function.
12108 (skip_noops): Simplify since `memory' is not needed any more.
12109 (mutually_exclusive_p): Restructure slightly to use `switch' and
12110 add handling for "all" remaining cases.
12111 (re_match_2_internal): Change on_failure_jump_smart to use
12112 on_failure_keep_string_jump (and redirect the end-of-loop jump)
12113 rather than on_failure_jump_exclusive.
12114
12115 2000-03-19 Gerd Moellmann <gerd@gnu.org>
12116
12117 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
12118 number of bits per RGB because it's everywhere used as the depth
12119 of the visual.
12120
12121 * term.c (calculate_costs): Remove code dealing with X frames.
12122
12123 2000-03-19 Richard M. Stallman <rms@gnu.org>
12124
12125 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
12126
12127 2000-03-18 Gerd Moellmann <gerd@gnu.org>
12128
12129 * lread.c (read_integer): Unread the last char not consumed.
12130
12131 2000-03-17 Gerd Moellmann <gerd@gnu.org>
12132
12133 * xterm.c (x_update_window_cursor): Don't update in frames
12134 which are in the process of being deleted.
12135
12136 2000-03-16 Gerd Moellmann <gerd@gnu.org>
12137
12138 * Makefile.in (mostlyclean): Add `*.core'.
12139 (clean): Add `bootstrap-emacs'.
12140
12141 * lread.c (read_integer): New function.
12142 (read1): Support read syntax #o, #x, #b, #r.
12143
12144 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
12145
12146 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
12147 make sure POINTER_TO_OFFSET gives the same value before and after
12148 PREFETCH. Use `dfail' to guarantee "atomic" matching.
12149 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
12150 (debug): Now only active if > 0 rather than if != 0.
12151 (DEBUG_*): Update for the new meaning of `debug'.
12152 (print_partial_compiled_pattern): Add missing `succeed' case. Use
12153 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
12154 in `succeed_n', `jump_n' and `set_number_at'.
12155 (store_op1, store_op2, insert_op1, insert_op2)
12156 (at_begline_loc_p, at_endline_loc_p): Add prototype.
12157 (group_in_compile_stack): Move to after its arg's types are
12158 declared and add a prototype.
12159 (PATFETCH): Define in terms of PATFETCH_RAW.
12160 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
12161 (QUIT): Redefine as a nop except for NTemacs.
12162 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
12163 indentation of the greedy-op and shy-group code.
12164 (at_(beg|end)line_loc_p): Fix argument's types.
12165 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
12166 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
12167 (MATCHING_IN_FIRST_STRING): Remove.
12168 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
12169 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
12170 QUIT unconditionally.
12171
12172 2000-03-15 Gerd Moellmann <gerd@gnu.org>
12173
12174 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
12175 a sole completion.
12176
12177 * process.c (send_process): Add a hint that the function
12178 can call Lisp code to its comment.
12179
12180 * lread.c (load_dangerous_libraries): New variable.
12181 (Vbytecomp_version_regexp): New variable.
12182 (safe_to_load_p): New function.
12183 (Fload): Handle files not compiled with Emacs specially.
12184 (syms_of_lread): New Lisp variable load-dangerous-libraries.
12185
12186 2000-03-14 Gerd Moellmann <gerd@gnu.org>
12187
12188 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
12189
12190 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
12191 support functions only if HAVE_X11R6_XIM is defined.
12192 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
12193
12194 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
12195
12196 * xfns.c (X_I18N_INHIBITED): Don't define.
12197 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
12198 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
12199
12200 * config.in (HAVE_X_I18N): Moved here from xterm.h.
12201 (HAVE_X11R6_XIM): Define.
12202
12203 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
12204
12205 * xterm.c (x_term_init): Add support for X resource `synchronous'.
12206 If set, call XSynchronize.
12207
12208 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
12209
12210 * regex.c: Declare a new type `re_char' used throughout the code
12211 for the string char type. It's `const unsigned char' to match the
12212 rest of Emacs. Consistently make sure all pointers to strings use
12213 it and make sure all pointers into the pattern use `unsigned char'.
12214 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
12215 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
12216 code duplication.
12217
12218 * charset.h (GET_CHAR_AFTER_2): Remove.
12219 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
12220
12221 2000-03-12 Ken Raeburn <raeburn@gnu.org>
12222
12223 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
12224 variable before the invocation of YMF_PASS_LDFLAGS, in case both
12225 of them try to use backquotes.
12226
12227 2000-03-12 Dave Love <fx@gnu.org>
12228
12229 * unexelf.c: Restore changes of 1999-10-19.
12230 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
12231 fix its type and alignment; copy it from current process.
12232
12233 2000-03-12 Gerd Moellmann <gerd@gnu.org>
12234
12235 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
12236 has been found. Fix bug not computing timer's predecessor.
12237
12238 * fileio.c (Fread_file_name): Handle case that DIR contains a
12239 file name.
12240
12241 * window.c (Fsave_window_excursion): Doc fix.
12242
12243 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
12244
12245 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
12246
12247 * msdos.c (vga_installed): New function, code moved from
12248 dos_set_window_size.
12249 (Qbar, Qcursor_type, outside_cursor): New variables.
12250 (syms_of_msdos): Intern and staticpro them.
12251 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
12252 shape used outside Emacs when called for the first time.
12253 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
12254 cursor shape used outside Emacs.
12255 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
12256 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
12257 type has changed.
12258 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
12259 parameters specify the cursor. Make qreverse a global
12260 variable (renamed to Qreverse).
12261
12262 2000-03-09 Gerd Moellmann <gerd@gnu.org>
12263
12264 * fns.c (Fy_or_n_p): Cancel busy-cursor.
12265
12266 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
12267
12268 This is a big redesign of failure-stack and register handling, prompted
12269 by bugs revealed when trying to add shy-groups. Overall, what happened
12270 is that loops are now structured a little differently, groups can be
12271 shy and the code is a little simpler.
12272
12273 * regex.h: Update the copyright.
12274 (RE_SHY_GROUPS): New value.
12275 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
12276 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
12277
12278 * regex.c (enum re_opcode_t): Remove jump_past_alt,
12279 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
12280 on_failure_jump_(exclusive, loop and smart). Also fix the comment
12281 for (start|stop)_memory since they now only take one argument (the
12282 second has becomes unnecessary).
12283 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
12284 (print_compiled_pattern): Use %ld to printf long ints and flush to
12285 make debugging a little easier.
12286 (union fail_stack_elt): Make the integer unsigned.
12287 (struct fail_stack_type): Add a `frame' element.
12288 (INIT_FAIL_STACK): Init `frame' as well.
12289 (POP_PATTERN_OP): New macro for re_compile_fastmap.
12290 (DEBUG_PUSH, DEBUG_POP): Remove.
12291 (NUM_REG_ITEMS): Remove.
12292 (NUM_NONREG_ITEMS): Adjust.
12293 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
12294 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
12295 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
12296 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
12297 New macros.
12298 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
12299 address pushed is not the destination of the jump but the source
12300 of it instead.
12301 (NUM_FAILURE_ITEMS): Remove.
12302 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
12303 registers before the actual failure point). Don't hardcode any
12304 meaning for str==NULL anymore.
12305 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
12306 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
12307 Remove.
12308 (REG_UNSET_VALUE): Use NULL (why not?).
12309 (compile_range): Remove declaration since it doesn't exist.
12310 (struct compile_stack_elt_t): Remove inner_group_offset.
12311 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
12312 (regex_grow_registers): Remove dead code.
12313 (FIXUP_ALT_JUMP): New macro.
12314 (regex_compile): Add shy-groups Change loops to use
12315 on_failure_jump_smart&jump instead of
12316 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
12317 initial (dummy_failure_)jump. Remove c1_base (looks like unused
12318 variable to me). Use `jump' instead of `jump_past_alt' and don't
12319 bother with push_dummy_failure in alternatives since it is now
12320 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
12321 emacs' for (re)allocating the stack.
12322 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
12323 from loop when bufp->can_be_null rather than jumping to `done'.
12324 Avoid jumping backwards so as to ensure termination. Use
12325 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
12326 backreferences. Remove dead code in handling of `anychar'.
12327 (skip_noops, mutually_exclusive_p): New functions taken from the
12328 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
12329 improve mutually_exclusive_p to handle ".+\n".
12330 (lowest_active_reg, highest_active_reg)
12331 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
12332 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
12333 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
12334 variables. Push register (in `start_memory') on the stack rather
12335 than storing it in old_reg(start|end). Remove the cycle detection
12336 from `stop_memory', replaced by the use of on_failure_jump_loop
12337 for greedy loops. Add code for the new on_failure_jump_<foo>.
12338 Remove ad-hoc code in `on_failure_jump' to push more registers in
12339 the case of a loop. Take out code from `maybe_pop_jump' into
12340 separate functions and adapt it to the semantics of
12341 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
12342 and push_dummy_failure. Remove dummy_failure handling and
12343 handling of `failures to jump to on_failure_jump' (this last one
12344 was already dead code, it seems).
12345 (group_match_null_string_p, alt_match_null_string_p)
12346 (common_op_match_null_string_p): Remove.
12347
12348 2000-03-08 Dave Love <fx@gnu.org>
12349
12350 * config.in: Don't depend on __STDC__ for volatile.
12351 Add POINTER_TYPE, PTR, PROTOTYPES.
12352
12353 * hftctl.c, strftime.c: Use PROTOTYPES.
12354 * eval.c (find_handler_clause): Likewise.
12355
12356 * mem-limits.h: Use POINTER_TYPE.
12357
12358 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
12359 (memory_warnings): Declare using POINTER_TYPE.
12360
12361 2000-03-08 Gerd Moellmann <gerd@gnu.org>
12362
12363 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
12364
12365 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
12366
12367 * xfns.c: Remove obsolete code in #if 0.
12368 (Fx_focus_frame): New function.
12369
12370 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12371
12372 * coding.c (coding_category_name): Add coding-category-utf-8,
12373 coding-category-utf-16-be, coding-category-utf-16-le.
12374 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
12375 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
12376 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
12377 (detect_coding_utf_8): New function.
12378 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
12379 UTF_16_LOW_SURROGATE_P): New macros.
12380 (detect_coding_utf_16): New function
12381 (detect_coding_mask): When priorities are specified, skip any
12382 categories that have `nil' coding-system. Fix bug of returning
12383 wrong mask when PRIORITIES is specified and detect_coding_XXX()
12384 returns a mask not set in PRIORITIES.
12385 (detect_eol_type_in_2_octet_form): New function.
12386 (detect_eol): selects detect_eol_type_XXX to call according to
12387 cooding->category_idx.
12388 (detect_coding_system): Remove `nil' coding-system in the result.
12389 (Fupdate_coding_systems_internal): Update all coding-categories.
12390
12391 * coding.h (CODING_CATEGORY_IDX_UTF_8)
12392 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
12393 New macros.
12394 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
12395 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
12396 (CODING_CATEGORY_IDX_UTF_16_LE)
12397 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
12398 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
12399 (CODING_CATEGORY_MASK_ANY): Include the above macros.
12400 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
12401
12402 2000-03-07 Gerd Moellmann <gerd@gnu.org>
12403
12404 * doc.c (Fdocumentation_property): If value is not a string,
12405 and doesn't refer to etc/DOC, evaluate it to obtain a string.
12406
12407 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
12408 close the display with XtCloseDisplay. This caused a bus error
12409 on OpenWindows.
12410
12411 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
12412 complete but not unique.
12413
12414 2000-03-06 Gerd Moellmann <gerd@gnu.org>
12415
12416 * process.c (send_process): Remove local variable `procname' that
12417 might become invalid when a GC happens. Instead, access the
12418 process name slot directly.
12419
12420 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
12421 orig_height if set.
12422
12423 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
12424 orig_height if set.
12425
12426 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
12427
12428 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
12429 glyph matrices have been freed.
12430
12431 2000-03-05 Gerd Moellmann <gerd@gnu.org>
12432
12433 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
12434 (bootstrap-temacs): Set LC_ALL to C like for temacs.
12435
12436 * xfns.c (QCdata): Moved to xdisp.c.
12437
12438 * xdisp.c (QCdata): Moved here from xfns.c.
12439 (syms_of_xdisp): Initialize QCdata.
12440
12441 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
12442
12443 * window.c (coordinates_in_window): Use
12444 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
12445 FRAME_INTERNAL_BORDER_WIDTH.
12446
12447 * xdisp.c (try_window_id): Recompute unchanged information if
12448 it is obviously invalid.
12449
12450 * xterm.c (x_term_init): Create a colormap if not using the
12451 default visual.
12452
12453 * xterm.h (select_visual): Change prototype.
12454
12455 * xfns.c (select_visual): Rewritten. Recognize user-specified
12456 visual classes.
12457 (visual_classes): New variable.
12458
12459 2000-03-04 Gerd Moellmann <gerd@gnu.org>
12460
12461 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
12462 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
12463 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
12464 (x_decode_color): Don't handle allocation of white and black specially.
12465 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
12466 XtNcolormap resources.
12467 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
12468 (Fx_create_frame): Initialize color members of x_output structure.
12469 (xpm_load): Pass colormap to XPM lib.
12470
12471 * xfaces.c (x_free_colors): Access colormap of frame using
12472 FRAME_X_COLORMAP. Be paranoid about freeing black and white
12473 when default colormap is used.
12474
12475 * xterm.c (x_term_init): Set Colormap member of x_display_info
12476 structure. Copy colormap if resource `privateColormap' is
12477 specified (PseudoColor only).
12478 (x_setup_relief_color): Access colormap of frame using
12479 FRAME_X_COLORMAP.
12480
12481 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
12482 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
12483
12484 2000-03-04 Jason Rumney <jasonr@gnu.org>
12485
12486 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
12487 other non-platform-specific equivalents.
12488 [WINDOWSNT]: Include w32term.h, fontset.h and define X
12489 specific functions and macros as their w32 equivalents where
12490 non-platform-specifics are not available.
12491 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
12492 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
12493 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
12494 (frame_update_line_height): Use macros to access f->output_data.
12495 (defined_color): Remove FIXME comments; fixed.
12496 (x_face_list_fonts, prepare_face_for_display): Put X specifics
12497 into #ifdef blocks. Add WINDOWSNT blocks.
12498 (Fx_list_fonts): Use macros for accessing font data.
12499 (set_lface_from_font_name): Different default fonts for X and
12500 WINDOWSNT.
12501 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
12502 scalable for backward compatibility.
12503 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
12504 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
12505
12506 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
12507 syms_of_w32faces.
12508
12509 * makefile.nt (w32faces.obj): Remove.
12510 (xfaces.obj): Add.
12511
12512 2000-03-03 Jason Rumney <jasonr@gnu.org>
12513
12514 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
12515 correct parameters.
12516
12517 2000-03-03 Ken Raeburn <raeburn@gnu.org>
12518
12519 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
12520 standard ELF definitions here if the system header does not.
12521
12522 2000-03-03 Gerd Moellmann <gerd@gnu.org>
12523
12524 * xterm.c (PER_CHAR_METRIC): Removed.
12525 (x_per_char_metric_1, x_default_char): New functions.
12526 (x_per_char_metric): If font's default char is invalid, return
12527 metrics of a suitably chosen usable default char.
12528 (x_draw_glyph_string_foreground): If font has an invalid default
12529 char, replace occurrences of unprintable chars with a suitably
12530 chosen usable default char.
12531
12532 2000-03-02 Gerd Moellmann <gerd@gnu.org>
12533
12534 * xterm.c (note_mouse_highlight): Return quickly if frame's
12535 glyph matrices have been freed.
12536
12537 * dispnew.c (free_glyphs): Block input while freeing matrices.
12538
12539 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
12540
12541 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
12542 Use x_free_colors.
12543
12544 * dispextern.h (x_free_colors): Add prototype.
12545
12546 * xfaces.c (x_free_colors): New function.
12547 (unload_color, free_face_colors): Use it.
12548
12549 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
12550
12551 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
12552
12553 * window.c [MSDOS]: Include msdos.h.
12554
12555 2000-03-02 Dave Love <fx@gnu.org>
12556
12557 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
12558
12559 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
12560 set C_OPTIMIZE_SWITCH for gcc.
12561
12562 2000-03-02 Kenichi Handa <handa@etl.go.jp>
12563
12564 * coding.c (coding_save_composition): Be sure to allocate
12565 composition data area in coding even if there's no composition in
12566 the current run.
12567
12568 2000-03-01 Jason Rumney <jasonr@gnu.org>
12569
12570 * w32term.c: Equivalent changes to those made to xterm.c on
12571 2000-02-25 and 2000-02-24.
12572
12573 * w32fns.c: Equivalent changes to those made to xfns.c on
12574 2000-02-25 and 2000-02-21.
12575
12576 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
12577 correct line-end convention is followed.
12578
12579 * w32menu.c [HAVE_BOXES]: Remove #undef.
12580 (single_keymap_panes): Remove code for simulating checkmarks.
12581 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
12582 Remove code for drawing simulated checkmarks.
12583 (w32_menu_show): make unibyte help string correctly.
12584 (add_menu_item): draw standard Windows checkmarks. Draw radio
12585 buttons as radio buttons if possible.
12586
12587 2000-03-01 Gerd Moellmann <gerd@gnu.org>
12588
12589 * sysdep.c (start_of_text): Don't define this function for NetBSD
12590 with ELF.
12591
12592 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
12593 Don't define.
12594 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
12595 (LINKER): Don't undef if __NetBSD__ is defined.
12596
12597 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
12598
12599 * fileio.c [__NetBSD__]: Define `unix'.
12600
12601 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
12602
12603 2000-02-29 Gerd Moellmann <gerd@gnu.org>
12604
12605 * atimer.c (start_atimer): Don't abort when timers are stopped.
12606 (append_atimer_lists): New function.
12607 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
12608 arbitrary lists of stopped and running atimers.
12609
12610 * atimer.c (cancel_atimer): Handle canceling an atimer when
12611 some timers are stopped.
12612
12613 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
12614 after canceling it.
12615
12616 * fns.c (maybe_resize_hash_table): Handle case of new size
12617 coming out as being the same as old size.
12618
12619 2000-02-27 Jason Rumney <jasonr@gnu.org>
12620
12621 * makefile.nt: Add atimer.h to dependencies.
12622 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
12623 * w32console.c: Only disable window system features for dispextern.h
12624 (initialize_w32_display): Build a display info for the console.
12625 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
12626 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
12627 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
12628 as 2 button mice.
12629 * w32gui.h (struct W32FontStruct): Revert last change after change
12630 to xdisp.c.
12631 * w32menu.c (single_submenu): Set up help string.
12632 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
12633 (w32_dialog_show): Set up help string.
12634 * w32term.c (w32_display_info_for_display): Remove unused function.
12635 (w32_draw_bitmap): Use pre-built bitmaps.
12636 (w32_initialize_display_info): New function to initialize parts of
12637 display info that are common to both GUI and console frames.
12638 (w32_term_init): Use w32_initialize_display_info. Do not set
12639 Vw32_num_mouse_buttons here, as it is not called for console
12640 frames. Build bitmaps for indicating truncated lines etc.
12641 (x_delete_display): Destroy pre-built bitmaps.
12642 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
12643 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
12644
12645 2000-02-27 Dave Love <fx@gnu.org>
12646
12647 * lisp.h: Add a bunch of prototypes.
12648
12649 2000-02-26 Kenichi Handa <handa@etl.go.jp>
12650
12651 * keyboard.c (read_char): Set `usec' correctly.
12652
12653 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
12654
12655 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
12656 `lambda', set reg[RRR] to the map index.
12657 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
12658 reg[RRR] to 0. Otherwise, set it to -1.
12659
12660 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12661
12662 * emacs.c (main): Remove code snippet commented out with `//'.
12663
12664 2000-02-25 Richard M. Stallman <rms@gnu.org>
12665
12666 * fileio.c (Ffile_symlink_p): If result starts with a `/'
12667 and contains a `:', prepend `/:'.
12668
12669 * window.c (select_window_1): If selected_window is nil,
12670 don't "swap out" the buffer's point.
12671 (Fset_window_configuration): Set selected_window to nil
12672 before calling Fselect_window.
12673 (unshow_buffer): Don't set point in buffer from window's point
12674 if another more recently selected window also shows the buffer.
12675
12676 2000-02-25 Gerd Moellmann <gerd@gnu.org>
12677
12678 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
12679
12680 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
12681 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
12682 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
12683 New variables.
12684 (DEFAULT_BUSY_CURSOR_DELAY): New define.
12685 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
12686 (hide_busy_cursor): New functions.
12687 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
12688
12689 * minibuf.c (read_minibuf): Cancel busy-cursor.
12690
12691 * keyboard.c (command_loop_1): Call start_busy_cursor before
12692 Fcommand_execute and cancel_busy_cursor after it.
12693 (timer_check): Remove busy-cursor code.
12694 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
12695 cursor timer.
12696
12697 * process.c (wait_reading_process_input): Remove busy-cursor code.
12698
12699 * eval.c (Fsignal): Call cancel_busy_cursor instead of
12700 Fx_hide_busy_cursor.
12701
12702 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
12703 Remove prototyoes.
12704 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
12705
12706 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
12707
12708 * xterm.c (XTread_socket): Remove busy-cursor code.
12709
12710 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
12711 (build_frame_matrix_from_leaf_window): Put code handling
12712 glyph row's not being a slice of a frame row in #if 0.
12713 (sync_window_with_frame_matrix_rows): New function.
12714 (frame_row_to_window): New function.
12715 (mirror_line_dance): Handle copies between windows.
12716
12717 * lread.c (Fload): Use `xfree' instead of `free'.
12718 (init_obarray): Use `xmalloc' instead of `malloc'.
12719
12720 * window.c (Fset_window_buffer): Set WINDOW to the window
12721 after decoding.
12722 (coordinates_in_window): Take frame's internal border width
12723 into account.
12724
12725 2000-02-24 Gerd Moellmann <gerd@gnu.org>
12726
12727 * xterm.c (x_display_and_set_cursor): Display cursor of
12728 non-selected windows depending on the setting of
12729 cursor_in_non_selected_windows.
12730
12731 * xdisp.c (cursor_in_non_selected_windows): New variable.
12732 (syms_of_xdisp): DEFVAR_BOOL it.
12733
12734 2000-02-23 Gerd Moellmann <gerd@gnu.org>
12735
12736 * data.c (Fstring_to_number): If number is greater than what
12737 fits into an integer, return a float.
12738
12739 * eval.c (specbind): Remove references to
12740 keyword_symbols_constant_flag.
12741
12742 * data.c (keyword_symbols_constant_flag): Removed.
12743 (Fmakunbound, set_internal, syms_of_data): Remove references to
12744 keyword_symbols_constant_flag.
12745
12746 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
12747
12748 2000-02-23 Kenichi Handa <handa@etl.go.jp>
12749
12750 * syntax.c (multibyte_syntax_as_symbol): New variable.
12751 (syms_of_syntax): Declare it as a Lisp variable.
12752 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
12753 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
12754 nonzero, treat all multibyte characters as symbol.
12755 (init_syntax_once): Give syntax `word' to all multibyte characters.
12756
12757 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
12758
12759 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
12760 a deleted frame.
12761
12762 2000-02-21 Gerd Moellmann <gerd@gnu.org>
12763
12764 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
12765
12766 * xfns.c (x_window_to_frame, x_any_window_to_frame)
12767 (x_non_menubar_window_to_frame): Check the busy-cursor window.
12768
12769 2000-02-21 Dave Love <fx@gnu.org>
12770
12771 * frame.c (Vmouse_position_function): New variable.
12772 (Fmouse_position): Use it.
12773 (syms_of_frame): Install it.
12774
12775 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
12776
12777 2000-02-20 Gerd Moellmann <gerd@gnu.org>
12778
12779 * fileio.c (Finsert_file_contents): Unbind the binding of
12780 standard-output done by temp_output_buffer_setup.
12781
12782 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
12783 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
12784 (specbind, unbind_to): Handle most common case of non-constant
12785 symbol with trivial value specially.
12786
12787 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
12788
12789 2000-02-20 Richard M. Stallman <rms@gnu.org>
12790
12791 * data.c (Fmake_variable_buffer_local): Doc fix.
12792 Init found_for_buffer to 0.
12793 (Fmake_variable_frame_local): If the variable has already
12794 been buffer-local, set the check_frame field.
12795
12796 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
12797
12798 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
12799 produced for CODING_MODE_LAST_BLOCK requires.
12800
12801 2000-02-18 Dave Love <fx@gnu.org>
12802
12803 * keyboard.c (echo_keystrokes): Remove declaration.
12804 (Vecho_keystrokes) New variable.
12805 (read_char, record_menu_key, read_key_sequence): Use it to allow
12806 use of float value.
12807 (syms_of_keyboard): Change Vecho_keystrokes declaration.
12808
12809 * lread.c: Undef feature selection macros before defining.
12810
12811 2000-02-18 Gerd Moellmann <gerd@gnu.org>
12812
12813 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
12814 for symbols other than the symbol in question.
12815
12816 2000-02-17 Dave Love <fx@gnu.org>
12817
12818 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12819
12820 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12821
12822 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12823
12824 * alloc.c (enum mem_type): Compile unconditionally.
12825
12826 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12827
12828 * xfaces.c (tty_defined_color): Don't return faulire indication
12829 for unspecified-fg and unspecified-bg pseudo-colors.
12830
12831 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12832
12833 * alloc.c (mark_object): Don't mark symbol names in pure space.
12834 (gc_sweep): Don't unmark symbol names in pure space.
12835
12836 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12837 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12838 [GC_MARK_STACK]: New defines.
12839 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12840 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12841
12842 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12843
12844 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12845 allocate_buffer instead of xmalloc.
12846
12847 * alloc.c (toplevel): Include setjmp.h.
12848 (PURE_POINTER_P): New define.
12849 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12850 (Vdead) [GC_MARK_STACK]: New variable.
12851 (lisp_malloc): Add parameter TYPE, call mem_insert if
12852 GC_MARK_STACK is defined.
12853 (allocate_buffer): New function.
12854 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12855 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12856 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12857 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12858 (MEM_NIL) [GC_MARK_STACK]: New define.
12859 (struct mem_node) [GC_MARK_STACK]: New structure.
12860 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12861 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12862 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12863 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12864 (mark_stack) [GC_MARK_STACK]: New functions.
12865 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12866 (clear_marks): Removed.
12867 (gc_sweep): Set free conses' car, free floats' type, free
12868 symbols' function to Vdead. Use lisp_free to free buffers.
12869 (init_alloc_once): Initialize Vdead.
12870 (survives_gc_p): Return non-zero for pure objects.
12871
12872 * alloc.c: Add comments throughout the file.
12873
12874 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12875 that unblocks alarms.
12876
12877 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12878 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12879 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12880
12881 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12882
12883 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12884
12885 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12886 avoid infinite error signaling. Allocate sufficient memory for
12887 eol_str in the case that eoltype is Lisp_Int.
12888
12889 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12890
12891 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12892 depends on the previous behavior.
12893
12894 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12895
12896 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12897
12898 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12899
12900 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12901
12902 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12903 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12904 write(2).
12905
12906 2000-02-15 Richard M. Stallman <rms@gnu.org>
12907
12908 * data.c (set_internal): Don't make variable buffer-local
12909 if within a let-binding for the same buffer.
12910 (let_shadows_buffer_binding_p): New function.
12911
12912 * eval.c (specbind): For buffer-local value,
12913 record the current buffer also.
12914 (unbind_to): Cope with that change.
12915
12916 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12917
12918 * window.c (Fsave_window_excursion): Doc fix.
12919
12920 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12921
12922 * syntax.c (back_comment): Make sure we only consider comment-starters
12923 of the relevant style and return -1 in case of a failure to find the
12924 beginning of the comment.
12925 (Fforward_comment): If back_comment fails, go back to the position just
12926 after the comment-end.
12927 (scan_lists): Add comment describing a very minor bug.
12928
12929 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12930
12931 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12932 `completion-regexp-list' in the docstring.
12933
12934 2000-02-14 Dave Love <fx@gnu.org>
12935
12936 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12937
12938 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12939
12940 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12941 to Emacs' syntax. Also fix the comment about set/not-set meanings
12942 since Emacs syntax is not the value 0 any more.
12943 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12944 since it's now part of RE_SYNTAX_EMACS.
12945
12946 2000-02-12 Dave Love <fx@gnu.org>
12947
12948 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12949
12950 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12951
12952 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12953
12954 2000-02-12 Dave Love <fx@gnu.org>
12955
12956 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12957
12958 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12959 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12960 * s/hpux.h: Don't define HAVE_VFORK.
12961
12962 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12963
12964 * s/nextstep.h: Don't define HAVE_ALLOCA.
12965
12966 * config.in: Add vfork bits.
12967
12968 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12969
12970 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12971 unwind function to undo the effect of stopping atimers.
12972
12973 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12974
12975 * atimer.c (stopped_atimers): New variable.
12976 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12977 New functions.
12978
12979 * atimer.h (stop_other_atimers, run_all_atimers)
12980 (unwind_stop_other_atimers): Add function prototypes.
12981
12982 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12983
12984 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12985
12986 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12987 library may depend on jpeg.
12988 (atimer.o): Depends on atimer.c.
12989
12990 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12991
12992 * insdel.c (del_range_1): Call update_compositions.
12993 (del_range_both): Call update_compositions just once..
12994
12995 2000-02-10 Dave Love <fx@gnu.org>
12996
12997 * xfns.c (create_frame_xic): Fix initialization of automatic
12998 aggregates for pcc.
12999
13000 2000-02-09 Kenichi Handa <handa@etl.go.jp>
13001
13002 * ccl.c (CCL_MAKE_CHAR): New macro.
13003 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
13004 registers by CCL_MAKE_CHAR before calling translate_char.
13005 <CCL_TranslateCharacterConstTbl> Likewise.
13006
13007 2000-02-08 Dave Love <fx@gnu.org>
13008
13009 * lread.c (__EXTENSIONS__): Define.
13010
13011 2000-02-08 Gerd Moellmann <gerd@gnu.org>
13012
13013 * puresize.h (BASE_PURESIZE): Increase to 650000.
13014
13015 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13016
13017 * msdos.c (XMenuActivate): Turn off the cursor after displaying
13018 the help message.
13019
13020 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
13021
13022 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
13023 md, mh, mb, mr, and me to the fake termcap entry.
13024
13025 2000-02-06 Ken Raeburn <raeburn@gnu.org>
13026
13027 * sound.c (sound_cleanup): Don't call device close routine if the
13028 function pointer is null.
13029
13030 2000-02-06 Andrew Innes <andrewi@gnu.org>
13031
13032 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
13033 around image definitions and prototypes.
13034 (gamma_correct) [WINDOWSNT]: New prototype.
13035
13036 * w32term.c (x_make_frame_visible): Replace call to
13037 input_poll_signal with poll_for_input.
13038
13039 * window.c [WINDOWSNT]: Include w32term.h.
13040
13041 * xdisp.c [WINDOWSNT]: Include w32term.h.
13042
13043 * makefile.nt: Add dependencies on w32gui.h.
13044 (OBJ1): Include atimer.obj.
13045 ($(BLD)\atimer.obj): New dependency rule.
13046
13047 * w32.c (sigmask): New function (does nothing).
13048 (sigunblock): Ditto.
13049
13050 * frame.c [WINDOWSNT]: Include w32term.h.
13051
13052 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
13053
13054 * lread.c (syms_of_lread): Fix literal newlines.
13055
13056 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
13057 the string constant limit (2048 bytes) in MSVC.
13058 (main): Ditto.
13059
13060 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
13061
13062 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
13063 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
13064 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
13065 dispatch the event.
13066
13067 2000-02-04 Dave Love <fx@gnu.org>
13068
13069 * fileio.c: Remove some unused vars.
13070 (_GNU_SOURCE): Define (for euidaccess).
13071
13072 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
13073
13074 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
13075 gcpro1, gcpro2.
13076 (read_minibuf): Deal with allow_props correctly.
13077
13078 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
13079
13080 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
13081
13082 2000-02-03 Ken Raeburn <raeburn@gnu.org>
13083
13084 * search.c (compile_pattern): If a cache entry has a nil regexp,
13085 fill in that entry instead of clobbering a previously cached
13086 string regexp.
13087
13088 2000-02-02 Ken Raeburn <raeburn@gnu.org>
13089
13090 * puresize.h (BASE_PURESIZE): Increase to 610000.
13091
13092 2000-02-02 Gerd Moellmann <gerd@gnu.org>
13093
13094 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
13095 can GC.
13096
13097 2000-02-02 Kenichi Handa <handa@etl.go.jp>
13098
13099 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
13100 instead of incrementing ic directly.
13101 <CCL_WriteExprConst> Likewise.
13102 <ccl_set_expr>: Set ic to jump_address.
13103
13104 * fileio.c (e_write): Fix the handling of
13105 CODING_FINISH_INSUFFICIENT_SRC.
13106
13107 2000-02-01 Dave Love <fx@gnu.org>
13108
13109 * editfns.c (Fpropertize): Doc fix.
13110
13111 * process.c (Fstart_process): Doc fix.
13112
13113 * eval.c: Fix various doc strings not to duplicate information
13114 from help-manyarg-func-alist.
13115
13116 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
13117
13118 * doc.c (Vhelp_manyarg_func_alist): New variable.
13119 (Fdocumentation): Use it.
13120 (syms_of_doc): Define it.
13121
13122 2000-01-31 Gerd Moellmann <gerd@gnu.org>
13123
13124 * xterm.c (xim_open_dpy): Remove unused local variable.
13125
13126 * emacs.c (USAGE): Use term `display options' instead of `X options'.
13127
13128 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
13129 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
13130
13131 * fns.c (sweep_weak_table): New function.
13132 (sweep_weak_hash_tables): Use it. Keep on marking until there
13133 is no more change.
13134
13135 2000-01-30 Gerd Moellmann <gerd@gnu.org>
13136
13137 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
13138 that XTread_socket does not crash by trying to call XNoOp on a
13139 closed display.
13140
13141 2000-01-30 Jason Rumney <jasonr@gnu.org>
13142
13143 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13144 Change selected_frame to SELECTED_FRAME ().
13145 (w32_console_mouse_position): Remove #ifndef MULE from around
13146 `insist' parameter.
13147
13148 * makefile.nt: Remove dosfns.obj.
13149
13150 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
13151
13152 * w32fns.c (w32_defined_color): Check for valid frame before
13153 applying gamma correction. Eliminate dependency on frame elsewhere.
13154 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
13155 (w32_to_x_font): Use resx and resy not height_in and width_in.
13156 (x_to_w32_font): Doc fix.
13157 (xlfd_strip_height): New function to strip and return font height.
13158 (w32_font_match): Compare height separately from rest of xlfd
13159 spec, using xlfd_strip_height.
13160
13161 * w32term.c (w32_term_init): Swap resx and height_in, resy and
13162 width_in. Use w32_defined_color in place of defined_color.
13163
13164 * w32faces.c: Merge more of DOS and X specifics in preparation for
13165 merge with xfaces.c.
13166 (defined_color): Remove FIXME comment.
13167 (tty_color_name): Provide w32-specific function.
13168 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
13169
13170 * w32console.c (turn_on_face, turn_off_face): Removed.
13171 (w32_face_attributes): New function.
13172 (Global_variables): Reduce scope where possible.
13173 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
13174 fill attribute.
13175 (hl_mode): Don't modify text attributes.
13176 (write_glyphs): Don't do anything if len <= 0. Use
13177 w32_face_attributes to get attributes for drawing. Write
13178 terminating codes using char_attr_normal.
13179 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
13180 (update_begin, update_end): Likewise.
13181 (vga_stdcolor_name): New function.
13182 (initialize_w32_display): Remove char_attr_reverse and char_attr.
13183 (Fset_screen_color): Remove char_attr_reverse.
13184
13185 2000-01-29 Gerd Moellmann <gerd@gnu.org>
13186
13187 * xfns.c (xic_set_preeditarea): Take window parameter and
13188 window-relative pixel-positions.
13189
13190 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
13191 is its frame's selected window.
13192 (xim_instantiate_callback): Likewise.
13193
13194 * xfns.c (x_create_im): Removed.
13195 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
13196 (supported_xim_styles): Renamed from supported_styles.
13197 (best_xim_style): Renamed from best_style.
13198 (create_frame_xic): Renamed from xic_create_frame.
13199 (free_frame_xic): Renamed from xic_destroy_frame.
13200
13201 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
13202
13203 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
13204 our frames, call XFilterEvent with 2nd parameter `None'.
13205 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
13206 returning XBufferOverflow.
13207 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
13208 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
13209 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
13210 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
13211 (xim_initialize, xim_close)
13212 [HAVE_X_I18N && HAVE_X11R6]: New functions.
13213 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
13214 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
13215 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
13216
13217 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
13218 and `xim_styles'.
13219 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
13220 `xic_style' and `xic_xfs'.
13221 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
13222 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
13223 (FRAME_XIM): Removed.
13224
13225 * xfns.c (supported_styles): New variable.
13226 (DEFAULT_STYLE, DEFAULT_FONT): New macros
13227 (xic_create_xfontset, best_style, xic_create_frame)
13228 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
13229 (xic_set_xfontset): New functions.
13230
13231 2000-01-28 Dave Love <fx@gnu.org>
13232
13233 * s/irix6-5.h: Revert last change after change to irix5-0.h.
13234
13235 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
13236
13237 2000-01-28 Gerd Moellmann <gerd@gnu.org>
13238
13239 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
13240 for *scratch* if it already existed.
13241
13242 * emacs.c (USAGE): New macro.
13243 (main): Use it to display usage information.
13244
13245 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13246
13247 Support for the menu-help feature:
13248
13249 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
13250
13251 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
13252 part of the line to the termscript file.
13253 (IT_clear_to_end): Clear the entire line, not just its beginning.
13254 (menu_help_message, prev_menu_help_message): New variables.
13255 (IT_menu_make_room): Make room for the help_text member.
13256 (IT_menu_display): New argument disp_help; all callers changed.
13257 If disp_help is non-zero, store the help text of the active menu
13258 item in menu_help_message.
13259 (XMenuAddPane): Initialize the help_text member to NULL.
13260 (XMenuAddSelection): New argument help_text. Store it in the
13261 XMenu structure.
13262 (XMenuActivate): New argument help_callback. If the value of
13263 menu_help_message has changed since the last time, display the
13264 menu help message text while waiting for the mouse to move. Clear
13265 the echo area before exiting.
13266 (XMenuDestroy): Free the help_text member.
13267
13268 2000-01-27 Gerd Moellmann <gerd@gnu.org>
13269
13270 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
13271 XMenuAddSelection. Pass help callback to XMenuActivate.
13272 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
13273
13274 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
13275
13276 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
13277 and EMACS_SET_USECS.
13278
13279 2000-01-26 Dave Love <fx@gnu.org>
13280
13281 * editfns.c (Fchar_after, Fchar_before): Doc fix.
13282
13283 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
13284 an error may be signalled.
13285
13286 2000-01-26 Gerd Moellmann <gerd@gnu.org>
13287
13288 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
13289 LD_SWITCH_SYSTEM inherited from irix5-0.h.
13290
13291 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
13292
13293 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13294
13295 * charset.c (Fstring): If there is a multibyte char among
13296 the args, always return a multibyte string.
13297
13298 2000-01-25 Gerd Moellmann <gerd@gnu.org>
13299
13300 * sysdep.c (sys_select): Turn atimers off and on instead of
13301 recording and restoring old alarm handler
13302
13303 * process.c (toplevel): Include atimer.h.
13304 (create_process_1): Rewritten.
13305 (create_process): Use atimers instead of alarm.
13306 (wait_reading_process_input) [hpux]: Turn atimers off instead
13307 of turning off SIGALRM.
13308 (wait_reading_process_input): Turn off atimers instead off
13309 calling stop_polling.
13310
13311 * emacs.c (main): Call init_atimer.
13312
13313 * keyboard.c (toplevel): Include systime.h and atimer.h.
13314 (polling_for_input): Removed because unused.
13315 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
13316 (poll_timer): New variable.
13317 (poll_for_input, poll_for_input_1): New functions.
13318 (start_polling, stop_polling): Rewritten.
13319
13320 * keyboard.h (polling_for_input): Removed.
13321
13322 * atimer.h, atimer.c: New files.
13323
13324 * Makefile.in (obj): Add atimer.o.
13325 (atimer.o): New target.
13326
13327 * blockinput.h (pending_atimers): Add extern declaration.
13328 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
13329
13330 * lisp.h (popup_activated_flag): Add extern declaration.
13331
13332 * xmenu.c (popup_activated_flag): Make externally visible.
13333 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
13334 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
13335
13336 * xterm.c (toplevel): Include atimer.h.
13337 (toolkit_scroll_bar_interaction): New variable.
13338 (Fxt_process_timeouts): Removed.
13339 (x_process_timeouts): New function.
13340 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
13341 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
13342 (x_make_frame_visible): Call poll_for_input_1 instead of
13343 input_poll_signal. Don't call alarm.
13344 (x_initialize): Install timer calling x_process_timeouts.
13345
13346 2000-01-24 Dave Love <fx@gnu.org>
13347
13348 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
13349 Don't use -cckr -- apparently not now necessary.
13350
13351 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
13352
13353 * msdos.c (IT_menu_display): Truncate long menu lines at the right
13354 screen boundary.
13355
13356 2000-01-23 Jason Rumney <jasonr@gnu.org>
13357
13358 * w32fns.c (w32_defined_color): Apply gamma correction before
13359 trying to map to the palette.
13360 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
13361 to w32_clear_rect.
13362
13363 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
13364 here. Callers changed to always pass real device context.
13365 (w32_draw_bitmap): Likewise.
13366 (w32_get_glyph_overhangs): Likewise.
13367 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
13368 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
13369 pfnSetScrollInfo and SetScrollRange.
13370 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
13371 back into MULE characters after decoding them.
13372 (x_get_glyph_face_and_encoding): Likewise.
13373 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
13374 GetCharABCWidthsW fails, since this is defined on Windows 9x.
13375 (x_produce_glyphs): Calculate per char metrics for a character
13376 that we know exists in default font when font_not_found_p is true.
13377
13378 2000-01-22 Jason Rumney <jasonr@gnu.org>
13379
13380 * makefile.nt (intervals.obj, composite.obj): New modules.
13381 (composite.h): Added as dependency where appropriate.
13382
13383 * w32gui.h (XGCValue): New struct for emulating X GCs.
13384
13385 * w32term.h (XCharStruct): New struct for emulating X.
13386
13387 * w32console.c (turn_on_face, turn_off_face): New functions.
13388 (change_line_highlight): New prototype for new redisplay.
13389 (write_glyphs): Support multibyte text. Support faces.
13390
13391 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
13392
13393 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
13394 throughout. struct frame * in place of FRAME_PTR.
13395 Skeleton support for images, toolbars, tooltips from xfns.c.
13396 (Fx_create_frame): Use system default for default scroll bar width.
13397 (w32_get_arg): Renamed from x_get_arg.
13398 (Fx_file_dialog): New function.
13399 (w32_list_fonts): Check cache before asking system.
13400 (Vw32_enable_synthesized_fonts): New variable.
13401 (Vw32_enable_italics): Obsolete, removed.
13402
13403 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
13404 Use SELECTED_FRAME macro.
13405
13406 * w32menu.c: Add skeleton support for help strings on menus.
13407 (add_menu_item): Native checkbox and radio support added, but not
13408 yet enabled due to bugs.
13409 (push_menu_item): Add parameters type, selection and help.
13410 Callers updated.
13411 Formatting changes to reduce unnecessary diffs with xmenu.c.
13412
13413 * w32select.c (Fw32_set_clipboard_data): Update call to
13414 find_charset_in_str.
13415
13416 * w32term.c: Complete rewrite for new redisplay based on new
13417 xterm.c with necessary sections merged back in from old w32term.c.
13418
13419 2000-01-21 Richard M. Stallman <rms@gnu.org>
13420
13421 * data.c (set_internal): Further fix in same criterion.
13422
13423 2000-01-20 Richard M. Stallman <rms@gnu.org>
13424
13425 * data.c (set_internal): Fix the criteria for whether
13426 to swap out the old cached binding.
13427
13428 2000-01-19 Dave Love <fx@gnu.org>
13429
13430 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
13431
13432 2000-01-18 Kenichi Handa <handa@etl.go.jp>
13433
13434 * regex.c (re_compile_fastmap): While checking a range table for
13435 `charset', skip flag bits for a character class correctly.
13436
13437 2000-01-17 Gerd Moellmann <gerd@gnu.org>
13438
13439 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
13440
13441 * xfns.c (x_window): Call lw_create_widget with new parameter list.
13442
13443 * widget.c (EmacsFrameSetCharSize): Change size of children first
13444 because of problems with main window geometry management under Lesstif.
13445
13446 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
13447 MENU_ITEMS_ITEM_.*.
13448 (MENU_ITEMS_ITEM_HELP): New enumerator.
13449 (push_menu_item): Add parameter HELP. Record help in menu_items.
13450 (single_menu_item, single_submenu, list_of_items): Call
13451 push_menu_item with new parameter.
13452 (single_submenu): Set help string in widget value.
13453 (menu_highlight_callback): New function.
13454 (set_frame_menubar): Call lw_create_widget with new
13455 parameter list.
13456 (xmenu_show, xdialog_show): Ditto.
13457
13458 2000-01-13 Gerd Moellmann <gerd@gnu.org>
13459
13460 * sound.c (Fplay_sound): Improve doc string.
13461
13462 2000-01-11 Richard M. Stallman <rms@gnu.org>
13463
13464 * lisp.h (set_internal): Enter the new arg.
13465
13466 * eval.c (specbind): Record buffer-local variables specially,
13467 indicating which buffer's binding was saved.
13468 (unbind_to): Restore buffer-local variables specially
13469 in the proper buffer.
13470
13471 * data.c (set_internal): New arg BUF.
13472
13473 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
13474 * data.c (Fset): Pass new arg to set_internal.
13475 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
13476
13477 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13478
13479 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
13480
13481 2000-01-11 Richard M. Stallman <rms@gnu.org>
13482
13483 * minibuf.c (Ftry_completion): Doc fix.
13484
13485 2000-01-11 Gerd Moellmann <gerd@gnu.org>
13486
13487 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
13488 vector, too.
13489
13490 2000-01-11 Andreas Schwab <schwab@suse.de>
13491
13492 * coding.c (code_convert_region): Initialize total_skip.
13493
13494 2000-01-08 Dave Love <fx@gnu.org>
13495
13496 * eval.c (Fuser_variable_p): Check customizability too.
13497
13498 2000-01-07 Gerd Moellmann <gerd@gnu.org>
13499
13500 * minibuf.c (Fcompleting_read): Doc fix.
13501
13502 2000-01-05 Gerd Moellmann <gerd@gnu.org>
13503
13504 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
13505 -L /usr/local/lib.
13506
13507 * xfns.c (x_create_im): New function to set IM and IC of a frame.
13508 Check that input style is supported before trying to create an
13509 IC for it.
13510 (x_window): Call x_create_im.
13511
13512 2000-01-04 Gerd Moellmann <gerd@gnu.org>
13513
13514 * xfns.c (current_gif_memory_src): New variable.
13515 (gif_load): Record the address of the current memory source
13516 in current_gif_memory_src.
13517 (gif_read_from_memory): Use current_gif_memory_src.
13518
13519 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
13520 macros statement form.
13521
13522 * sound.c (struct sound): Renamed from struct sound_file.
13523 (struct sound): Add members `data' and `header_size'.
13524 (enum sound_attr): Add SOUND_DATA.
13525 (current_sound, current_sound_device): Variables renamed from
13526 sound_file and sound_device.
13527 (parse_sound): Parse :data.
13528 (parse_sound): Handle sound data in strings.
13529 (find_sound_type): Function renamed from find_sound_file_type.
13530 (wav_init, au_init): Fail if sound's header_size is smaller than
13531 needed header size.
13532 (wav_play, au_play): Play sounds from string data.
13533
13534 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
13535
13536 * lisp.h: Add prototype for allocate_string_data.
13537
13538 * alloc.c (Fgarbage_collect): Return number of live and free strings.
13539
13540 * alloc.c (mark_buffer): Remove code in #if 0.
13541 (gc_sweep): Ditto.
13542 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
13543 (strings_consed): New variable.
13544 (allocate_string): Set it.
13545 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
13546 (Fmemory_use_counts): Return strings_consed. Use Flist.
13547
13548 * alloc.c: General cleanup in comments etc. Remove conditional
13549 compilation for `standalone'.
13550
13551 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
13552
13553 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
13554 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
13555 (DONT_COPY_FLAG): Removed.
13556 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
13557 (struct sdata, struct sblock): New
13558 (struct string_block): Rewritten.
13559 (STRINGS_IN_STRING_BLOCK): New macro.
13560 (oldest_sblock, current_sblock, total_strings, total_free_strings)
13561 (large_sblocks, string_blocks, string_free_list): New variables.
13562 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
13563 (init_strings): Rewritten.
13564 (allocate_string, allocate_string_data, compact_small_strings)
13565 (free_large_strings, sweep_strings): New functions.
13566 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
13567 (struct string_block_head, current_string_block)
13568 (first_string_block, large_string_blocks, STRING_FULLSIZE)
13569 (STRING_PAD): Removed.
13570 (make_uninit_multibyte_string, make_pure_string): Rewritten.
13571 (Fgarbage_collect): Don't set mark bit in large strings.
13572 (mark_object): Mark strings differently. Mark symbol names
13573 differently.
13574 (survives_gc_p): Test marked strings differently.
13575 (gc_sweep): Sweep strings differently, unmark strings in
13576 symbol names.
13577 (compact_strings): Removed.
13578
13579 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
13580
13581 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
13582 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
13583
13584 2000-01-04 Kenichi Handa <handa@etl.go.jp>
13585
13586 * fileio.c (Finsert_file_contents): Signal error if visiting file
13587 in a non-empty buffer.
13588
13589 * term.c (encode_terminal_code): Fix the previous change.
13590
13591 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13592
13593 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
13594 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
13595
13596 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
13597
13598 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13599
13600 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
13601 need to test for MSDOS frames.
13602
13603 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13604
13605 * dosfns.c (unspecified_colors): Remove.
13606 (msdos_stdcolor_idx): Use global variables unspecified_fg and
13607 unspecified_bg.
13608 (msdos_stdcolor_name): Return strings for unspecified fore- and
13609 back-ground colors.
13610
13611 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
13612 (syms_of_xfaces): Remove their staticpro's.
13613 (tty_color_name): Return Lisp strings for unspecified fore- and
13614 back-ground colors.
13615 (Finternal_set_lisp_face_attribute): Remove the special treatment
13616 for Qunspecified_{f,b}g.
13617 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
13618
13619 2000-01-03 Gerd Moellmann <gerd@gnu.org>
13620
13621 * xdisp.c (reseat_at_next_visible_line_start): Position before
13622 newline only if ending up on a newline.
13623 (next_element_from_ellipsis): Return success. Handle case of
13624 displaying no ellipsis. Fix case of ellipsis defined in display table.
13625 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
13626 returns 0.
13627
13628 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
13629
13630 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
13631 (Fcolor_supported_p): Renamed from face-color-supported-p.
13632
13633 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13634
13635 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
13636 list of colors renamed to tty-defined-color-alist.
13637 (tty_color_name): Pass the frame to tty-color-by-index.
13638 (realize_tty_face): tty-color-alist is now a function which
13639 accepts the frame as argument.
13640
13641 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
13642
13643 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13644
13645 * term.c (insert_glyphs): Pass glyph, not &glyph, to
13646 encode_terminal_code.
13647
13648 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
13649
13650 * dispnew.c (mode_line_string): Support termcap frames as well.
13651
13652 2000-01-01 Gerd Moellmann <gerd@gnu.org>
13653
13654 * syntax.c (Fforward_word): Undo previous change.
13655
13656 * editfns.c (Fconstrain_to_field): Don't constrain if
13657 inhibit-field-text-motion is non-nil.
13658 (Fline_beginning_position): Undo previous change.
13659 (Fline_end_position): Ditto.
13660
13661 * syntax.c (Fforward_word): Notice field boundaries only if
13662 inhibit-field-text-motion is nil.
13663
13664 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
13665
13666 * editfns.c (Vinhibit_field_text_motion): New variable.
13667 (inhibit-field-text-motion): New DEFVAR_LISP.
13668 (Fline_beginning_position, Fline_end_position): Notice field
13669 boundaries only if inhibit-field-text-motion is nil.
13670
13671 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
13672 All calls adjusted.
13673 (x_build_heuristic_mask): Likewise.
13674 (xbm_load_image_from_file): Change error output.
13675 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
13676 (gif_load, gs_load, x_kill_gs_process): Ditto.
13677
13678 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
13679 color indices when accessing raster pixels.
13680 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
13681 one of :file or :data.
13682 (enum pbm_keyword_index): Add PBM_DATA.
13683 (pbm_format): Add :data.
13684 (pbm_image_p): Allow either :file or :data.
13685 (pbm_read_file): New function.
13686 (pbm_scan_number): Rewritten to read from string.
13687 (pbm_load): Support :data.
13688
13689 See ChangeLog.8 for earlier changes.
13690
13691 ;; Local Variables:
13692 ;; coding: iso-2022-7bit
13693 ;; End:
13694
13695 Copyright (C) 2001 Free Software Foundation, Inc.
13696 Copying and distribution of this file, with or without modification,
13697 are permitted provided the copyright notice and this notice are preserved.