]> code.delx.au - gnu-emacs/blob - src/ChangeLog
(make_string): Fix previous change. Be sure to make
[gnu-emacs] / src / ChangeLog
1 2000-11-20 Kenichi Handa <handa@etl.go.jp>
2
3 * alloc.c (make_string): Fix previous change. Be sure to make
4 unibyte string correctly.
5
6 2000-11-19 Gerd Moellmann <gerd@gnu.org>
7
8 * window.c (Fwindow_list): Change parameter list to be XEmacs
9 compatible.
10 (window_list_1): New function.
11 (window_loop): Use it instead of Fwindow_list.
12
13 * sysdep.c (emacs_ospeed): New variable.
14 (toplevel): Don't declare ospeed extern.
15 (init_baud_rate): Use emacs_ospeed instead of ospeed.
16
17 * termcap.c (ospeed): Remove.
18 (tputs) [!emacs]: Remove unused code.
19 (tgetent): Avoid a compiler warning.
20
21 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
22 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
23 SCROLL_BAR_X_WIDGET with additional argument DPY.
24
25 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
26 removed.
27 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
28 Take the X display as additional argument.
29 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
30 `Widget' is a pointer type that's not easily stored in Lisp_Object
31 form in a portable way.
32
33 * dispnew.c (update_text_area): Fix last change.
34
35 2000-11-18 Gerd Moellmann <gerd@gnu.org>
36
37 * xdisp.c: Use BINDING_STACK_SIZE throughout.
38
39 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
40 clear current matrices.
41
42 * buffer.c (mmap_enlarge): Don't print a message on stderr
43 if mapping new memory at the end of the existing region fails.
44
45 * dispnew.c (update_text_area): Don't skip over equal glyphs
46 when the last current glyph overlaps the glyph to its right.
47
48 2000-11-18 Miles Bader <miles@gnu.org>
49
50 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
51 lines that *end* with "..." too (that's the most common case!).
52
53 2000-11-18 Gerd Moellmann <gerd@gnu.org>
54
55 * xdisp.c (resize_mini_window): Temporarily change to the
56 mini-window's buffer if necessary.
57
58 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
59 the tooltip obscures less text under it.
60
61 2000-11-17 Gerd Moellmann <gerd@gnu.org>
62
63 * puresize.h (BASE_PURESIZE): Increase to 700000.
64
65 2000-11-18 Jason Rumney <jasonr@gnu.org>
66
67 * w32term.c (w32_draw_bitmap): Use face to set colors.
68
69 2000-11-17 Dave Love <fx@gnu.org>
70
71 * lread.c (Fload): Fix #ifdef for pcc.
72
73 2000-11-17 Gerd Moellmann <gerd@gnu.org>
74
75 * xdisp.c (pos_visible_p): Compute the default character height
76 differently.
77
78 2000-11-16 Gerd Moellmann <gerd@gnu.org>
79
80 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
81 knowing the line's height; use the default font's height in that
82 case.
83
84 * xfaces.c (weight_table): Add `demi' with the same meaning as
85 `demibold'.
86
87 2000-11-16 Kenichi Handa <handa@etl.go.jp>
88
89 * dispnew.c (null_row): New global static variable.
90 (clear_glyph_row): Delete local static variable null_row.
91
92 2000-11-15 Jason Rumney <jasonr@gnu.org>
93
94 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
95 (w32_alloc_lighter_color): Use new brightness calculations from
96 xterm.c. Scale delta to be in the range expected by W32.
97 (w32_draw_relief_rect): Use frame relief colors.
98
99 2000-11-15 Gerd Moellmann <gerd@gnu.org>
100
101 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
102 (Qinhibit_default_face_x_resources): New variable.
103 (syms_of_frame): Initialize it.
104 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
105
106 * xdisp.c (pos_visible_p): Improve function comment.
107
108 * lisp.h (BINDING_STACK_SIZE): New macro.
109
110 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
111 reading the directory if readdir returns null and errno is EAGAIN
112 or EINTR.
113
114 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
115
116 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
117 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
118 Set amount_to_scroll to max of dx and scroll_step so that
119 scroll-conservatively doesn't defeat scroll-step>1.
120 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
121 scroll-conservatively for line-at-a-time scrolling.
122
123 2000-11-14 Gerd Moellmann <gerd@gnu.org>
124
125 * window.c (Fpos_visible_in_window_p): Call pos_visible with
126 extra argument.
127
128 * xdisp.c (current_mode_line_height, current_header_line_height):
129 New variables.
130 (init_xdisp): Initialize them.
131 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
132 and use exact mode line heights if it is set.
133
134 * lisp.h (pos_visible_p): Change prototype.
135
136 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
137 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
138 and current_header_line_height first.
139 (current_mode_line_height, current_header_line_height): Declare
140 extern.
141
142 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
143
144 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
145 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
146 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
147
148 2000-11-14 Miles Bader <miles@gnu.org>
149
150 * xterm.c (x_alloc_lighter_color): Include an additive component
151 too for dark colors, because FACTOR isn't enough.
152 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
153 New macros.
154
155 2000-11-13 Gerd Moellmann <gerd@gnu.org>
156
157 * keyboard.c (show_help_echo): Call message3_nolog with number of
158 bytes in the help string as 2nd parameter, instead of the number
159 of characters.
160
161 2000-11-13 Miles Bader <miles@gnu.org>
162
163 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
164 (Fload): Use new openp return protocol.
165 Don't try to use Vload_source_file_function to load .elc files.
166 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
167 openp return protocol.
168 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
169
170 2000-11-11 Kenichi Handa <handa@etl.go.jp>
171
172 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
173
174 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
175 Defined these macros.
176 (NLIST_STRUCT): Avoid re-defining it.
177
178 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
179 -I/usr/contrib/X11R6/include.
180 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
181
182 2000-11-10 Jason Rumney <jasonr@gnu.org>
183
184 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
185
186 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
187 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
188
189 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
190 (Qw32_charset_vietnamese): New symbol.
191 (xlfd_charset_of_font): New function.
192 (w32_load_system_font): Use it.
193 (x_to_w32_charset): Use Fassoc to find charset info. Special case
194 when Vw32_charset_info_alist is nil to ensure default face always
195 has font. Use Fcar and Fcdr for safety.
196 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
197 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
198 pseudo-codepages for special cases.
199 (w32_to_x_font): New parameter to allow charset portion to be
200 specified where there is many to one mapping. Callers changed.
201 (w32_list_fonts): Avoid listing fonts that won't display.
202
203 2000-11-10 Gerd Moellmann <gerd@gnu.org>
204
205 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
206 (font_list_1): Renamed from font_list.
207 (font_list): New function, trying alternative registries from
208 Vface_alternative_font_registry_alist.
209 (Finternal_set_alternative_font_registry_alist): New function.
210 (syms_of_xfaces): Initialize and Staticpro
211 Vface_alternative_font_registry_alist. Defsubr
212 Finternal_set_alternative_font_registry_alist.
213
214 2000-11-09 Ken Raeburn <raeburn@gnu.org>
215
216 * lisp.h (Flooking_at): Declare.
217
218 2000-11-09 Gerd Moellmann <gerd@gnu.org>
219
220 * dired.c (directory_files_internal): Fix a braino.
221
222 * dired.c (directory_files_internal): Add missing GCPRO's.
223 Some cleanup.
224
225 2000-11-08 Gerd Moellmann <gerd@gnu.org>
226
227 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
228 (resize_mini_window): Return quickly if Vresize_mini_window is
229 nil. Don't return if Vmax_mini_window_height is nil.
230
231 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
232 (syms_of_xdisp): Initialize them.
233 (resize_mini_window): Act according to the setting of
234 Vresize_mini_window.
235 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
236
237 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
238 scroll bar widget after configuring it, so that it will appear at
239 the right position from the start.
240 (XTredeem_scroll_bar): Cleaned up.
241
242 2000-11-08 Kenichi Handa <handa@etl.go.jp>
243
244 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
245 font is taller than the frame line, we don't have to bias the
246 division by two.
247
248 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
249
250 2000-11-07 Dave Love <fx@gnu.org>
251
252 * config.in (HAVE_MKSTEMP): Add.
253
254 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
255
256 2000-11-07 Gerd Moellmann <gerd@gnu.org>
257
258 * window.c (Fset_window_configuration): Don't try to preserve
259 point in the current buffer, if that buffer is displayed in more
260 than one window.
261
262 * xfaces.c (lookup_named_face): If default face isn't realized,
263 try to realize it. Return -1 if not successful.
264 (Fx_list_fonts): Handle case that face cannot be determined.
265 (Fface_font): Likewise.
266
267 2000-11-06 Gerd Moellmann <gerd@gnu.org>
268
269 * window.c (displayed_window_lines): Detect partially
270 visible lines at the bottom correctly.
271
272 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
273
274 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
275 when ensuring we don't do visit in indirect buffer.
276
277 2000-11-06 Kenichi Handa <handa@etl.go.jp>
278
279 * composite.h (compose_chars_in_text): Add prototype.
280
281 * composite.c (Vcomposition_function_table): New variable.
282 (Qcomposition_function_table): New variable.
283 (run_composition_function): Call
284 Vcompose_chars_after_function with three arguments.
285 (compose_chars_in_text): New function.
286 (syms_of_composite): Modified the doc-string of
287 Vcompose_chars_after_function. Declare composition-function-table
288 as a lisp variable, and initialize it.
289
290 * xfns.c (x_encode_text): Suppress producing escape sequences for
291 composition.
292
293 * xselect.c: Include composite.h.
294 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
295
296 2000-11-05 Andrew Innes <andrewi@gnu.org>
297
298 * w32term.c (x_produce_glyphs): Fix typo in enum name.
299
300 * sysdep.c (read_input_waiting): Remove extraneous argument to
301 read_socket_hook.
302
303 * w32fns.c (Fx_server_version): Include w32_build_number in the
304 return list.
305
306 * w32heap.c (w32_build_number): New variable.
307 (cache_system_info): Set it.
308
309 * w32heap.h (w32_build_number): Add extern.
310
311 * emacs.c (syms_of_emacs): Update docstring for
312 system-configuration, to reflect the actual usage on MS-Windows.
313
314 2000-10-31 Gerd Moellmann <gerd@gnu.org>
315
316 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
317 process idle timers while waiting for another event.
318
319 * dispnew.c (update_frame_line): Handle case where spaces in
320 the default face are colored.
321
322 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
323 window height hasn't changed.
324
325 2000-10-31 Jason Rumney <jasonr@gnu.org>
326
327 * w32term.c (x_produce_glyphs): Handle composite characters.
328 (x_draw_glyph_string_foreground)
329 (x_draw_composite_glyph_string_foreground): Restore old font.
330
331 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
332
333 * minibuf.c (read_minibuf): Reset the undo history just before
334 starting the recursive-edit.
335
336 2000-10-30 Gerd Moellmann <gerd@gnu.org>
337
338 * xfaces.c (menu_face_change_count): New variable.
339 (Finternal_set_lisp_face_attribute): Increment it for changes
340 of the `menu' face.
341 (realize_basic_faces): Reflect changes in the `menu' faces
342 in menu bars.
343
344 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
345 dy obtained from the iterator's y-position after moving from
346 scroll_margin_pos to PT; see comment there.
347
348 * xdisp.c (safe_eval_handler): Call add_to_log.
349
350 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
351 is not a symbol or string.
352
353 * xdisp.c (echo_area_display): Don't perform a display update from
354 inside redisplay. The update will happen anyway at the end of
355 redisplay, and it can confuse redisplay (GC messages while
356 redisplaying, for instance.)
357
358 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
359
360 * xrdb.c (x_load_resources): Use the class name in the defaults.
361
362 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
363 (regex_compile): Catch bogus \(\1\).
364
365 2000-10-30 Gerd Moellmann <gerd@gnu.org>
366
367 * xterm.c (x_alloc_nearest_color): Fix last change to compare
368 RGB values.
369
370 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
371 we have a color cache, check that the cached color equals the
372 allocated color. If not, clear the color cache.
373
374 * window.c (displayed_window_lines): Change buffers if necessary.
375 Fix computation of displayed lines.
376
377 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
378 update_menu_bindings to DEFVAR_BOOL.
379
380 2000-10-30 Kenichi Handa <handa@etl.go.jp>
381
382 * search.c (Fset_match_data): Be sure to make search_regs always sane.
383
384 * puresize.h (BASE_PURESIZE): Increase to 680000.
385
386 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
387
388 2000-10-29 Jason Rumney <jasonr@gnu.org>
389
390 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
391
392 * w32term.c (w32_bdf_per_char_metric): Negate descent.
393 (w32_cache_char_metrics): Handle possibility that 'x' does not
394 exist in a BDF font.
395 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
396
397 * w32bdf.h (bdffont): Add nchars.
398
399 * w32bdf.c (set_bdf_font_info): Set it.
400 (w32_BDF_TextOut): Swap byte order of double byte characters.
401 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
402
403 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
404
405 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
406 don't override the colors in frame's param_alist, unless they are
407 unspecified.
408
409 * term.c (reassert_line_highlight): If inverse_video is non-zero,
410 reverse the effect of the highlight flag.
411
412 2000-10-27 Ken Raeburn <raeburn@gnu.org>
413
414 * window.h (Fwindow_live_p): Declare.
415
416 * undo.c (record_delete): Check that last_undo_buffer is really a
417 buffer before applying XBUFFER to it.
418
419 * keymap.c (where_is_internal): Pass lisp object, not integer, to
420 Faref.
421
422 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
423
424 * lisp.h (KEYMAPP): New macro.
425 (get_keymap): Remove.
426 (get_keymap_1): Rename get_keymap.
427
428 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
429
430 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
431
432 * xmenu.c (single_submenu): Use KEYMAPP.
433 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
434 Use KEYMAPP rather than Fkeymapp.
435
436 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
437
438 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
439 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
440 Use KEYMAPP rather than Fkeymapp.
441 (single_submenu): Use KEYMAPP.
442 (w32_menu_show, w32_dialog_show): Use TRUE.
443
444 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
445
446 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
447 (Fkeymapp): Use KEYMAPP.
448 (get_keymap): Rename from get_keymap_1. Remove old def.
449 Return t when autoload=0 and error=0 and the keymap needs autoloading.
450 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
451 (Fminor_mode_key_binding): Don't raise an error if the binding
452 is not a keymap.
453 (Fuse_global_map, Fuse_local_map): Allow autoloading.
454 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
455
456 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
457 Allow Vspecial_event_map to be autoloaded.
458 (menu_bar_items): Fetch the keymap rather than using keymapp.
459 (menu_bar_one_keymap): No need to follow func-indirect any more.
460 (parse_menu_item): get_keymap_1 -> get_keymap.
461 (tool_bar_items): Fetch the keymap rather than using keymapp.
462 (read_key_sequence): Use KEYMAPP.
463
464 * intervals.c (get_local_map): Use get_keymap rather than following
465 function-indirections explicitly.
466
467 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
468
469 2000-10-27 Jason Rumney <jasonr@gnu.org>
470
471 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
472 point, as Windows has oversized fonts.
473
474 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
475
476 2000-10-27 Gerd Moellmann <gerd@gnu.org>
477
478 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
479 (freehook, reallochook): Handle null pointer arguments.
480 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
481
482 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
483
484 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
485 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
486 Giving in to popular pressure to shut up the compiler with casts.
487
488 2000-10-27 Gerd Moellmann <gerd@gnu.org>
489
490 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
491 signed value, and use a default value computed from the font's
492 maximum descent.
493
494 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
495
496 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
497 that specify a negative underline position can still use underlines.
498
499 * window.c (Fpos_visible_in_window_p): Make POS default to
500 WINDOW's point, not the current buffer's point.
501
502 2000-10-26 Dave Love <fx@gnu.org>
503
504 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
505 when it's necessary.
506
507 2000-10-26 Gerd Moellmann <gerd@gnu.org>
508
509 * window.c (size_window): Compute size difference from sum of old
510 child window sizes instead of from parent's size.
511
512 * xdisp.c (pos_visible_p): Change current buffer if necessary.
513 Handle obscured lines at the top of the window.
514
515 * frame.c (Fdelete_frame): Doc fix. Move running the hook
516 down after the last error condition check.
517
518 * frame.c (Fdelete_frame): Run delete-frame-hook.
519
520 2000-10-26 Kenichi Handa <handa@etl.go.jp>
521
522 * coding.c (decode_coding): Fix previous change (check also
523 CODING_MODE_LAST_BLOCK).
524
525 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
526
527 * regex.c: More `unsigned char' -> `re_char' changes.
528 Also change several `int' into `re_wchar_t'.
529 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
530 (PUSH_FAILURE_POINTER): Don't cast any more.
531 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
532 We want GCC to complain, since this piece of code makes
533 re_match non-reentrant, which *should* be fixed.
534 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
535 (EXTEND_BUFFER): Use RETALLOC.
536 (SET_LIST_BIT): Don't cast.
537 (re_wchar_t): New type.
538 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
539 that those two functions will always properly return.
540 (IMMEDIATE_QUIT_CHECK): Cast to void.
541 (analyse_first): Use recursion rather than an explicit stack.
542 (re_compile_fastmap): Can't fail anymore.
543 (re_search_2): Don't check re_compile_fastmap for failure.
544 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
545 Now also sets the new value (passed in a new argument).
546 (re_match_2_internal): Use it.
547 Also, use a new var `reg' of type size_t when looping through regs
548 rather than reuse the inappropriate `mcnt'.
549
550 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
551 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
552 (where_is_internal): Renamed from Fwhere_is_internal.
553 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
554 (Fwhere_is_internal): New function wrapping where_is_internal.
555 (where_is_internal_1): Handle the case where we're filling the cache.
556 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
557
558 2000-10-25 Miles Bader <miles@gnu.org>
559
560 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
561
562 2000-10-25 Gerd Moellmann <gerd@gnu.org>
563
564 * window.c (pos_fully_visible_p): Removed.
565 (Fpos_visible_in_window_p): Use pos_visible_p to determine
566 if position is visible and/or fully visible.
567
568 * lisp.h (pos_visible_p): Add prototype.
569
570 * xdisp.c (pos_visible_p): New function.
571
572 2000-10-25 Kenichi Handa <handa@etl.go.jp>
573
574 * process.c (send_process): If OBJECT is t, it means that the data
575 is from C string, but we should encode it. Before calling
576 setup_raw_text_coding_system, be sure to flush out data by the
577 previous coding system.
578
579 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
580
581 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
582 assignment of startpos to prev when startpos == pos.
583
584 * editfns.c (find_field): Set the field stickiness correctly from
585 overlay fields. Use renamed `text_property_stickiness'.
586 (text_property_stickiness): Renamed from `char_property_stickiness'.
587 Only check text properties, not overlays.
588 * textprop.c (get_char_property_and_overlay): New function.
589 (Fget_char_property): Use it.
590 * intervals.h (get_char_property_and_overlay): Add declaration.
591
592 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
593
594 * keymap.c: Use AREF, ASET and ASIZE macros.
595 (Fmake_sparse_keymap): Docstring fix.
596 (synkey): Remove.
597 (shadow_lookup): Move up.
598 Handle the case where lookup-key returns an integer.
599 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
600 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
601 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
602 Simplify/rewrite the keymap-finding code.
603 Add check for command shadowing, using shadow_lookup.
604
605 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
606
607 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
608 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
609 a symbol.
610
611 2000-10-24 Andrew Innes <andrewi@gnu.org>
612
613 * dired.c (directory_files_internal_unwind): New function.
614 (directory_files_internal): Use it to ensure closedir is called
615 even if expand-file-name or file-attributes throw, eg. because of
616 a user interrupt. Also enable immediate_quit while calling
617 re_search, so that matching can be interrupted as well.
618
619 2000-10-24 Andrew Innes <andrewi@gnu.org>
620
621 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
622 NT-Emacs only.
623 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
624 so that re_search functions only quit when callers expect them to.
625
626 2000-10-24 Kenichi Handa <handa@etl.go.jp>
627
628 * regex.c (regex_compile): Change the way of handling a range from
629 a char less than 256 to a char not less than 256.
630
631 2000-10-24 Gerd Moellmann <gerd@gnu.org>
632
633 * window.c (size_window): Prevent setting window's width or
634 height to a negative value (esp. with XSETFASTINT).
635
636 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
637 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
638 (protect_malloc_state) [GC_MALLOC_CHECK &&
639 GC_PROTECT_MALLOC_STATE]: New function.
640 (PROTECT_MALLOC_STATE): New macro.
641 (__malloc_initialize, morecore, _malloc_internal)
642 (_free_internal) _realloc_internal): Use it to make _heapinfo
643 read-only outside of gmalloc.
644
645 * keymap.c: Update copyright.
646
647 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
648 a symbol.
649
650 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
651
652 * filelock.c (unlock_all_files): Use unlock_file to expand each
653 buffer's file_truename before trying remove its lock file.
654
655 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
656
657 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
658 or CRLF, decode EOLs.
659
660 2000-10-24 Kenichi Handa <handa@etl.go.jp>
661
662 * window.c (Fdisplay_buffer): Fix doc.
663
664 2000-10-23 Jason Rumney <jasonr@gnu.org>
665
666 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
667 ASCII font of default fontset on Windows.
668
669 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
670 xterm.c comment below).
671
672 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
673
674 2000-10-23 Gerd Moellmann <gerd@gnu.org>
675
676 * xterm.c (x_connection_closed): Reset handling_signal.
677
678 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
679 null.
680
681 2000-10-23 Miles Bader <miles@gnu.org>
682
683 * window.c (window_scroll_pixel_based, window_scroll_line_based):
684 Pass nil for FULLY argument to Fpos_visible_in_window_p to
685 maintain old behavior.
686 * minibuf.c (Fminibuffer_complete): Likewise.
687
688 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
689
690 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
691 that when a font can't be exactly centered, it errs up rather than
692 down.
693
694 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
695
696 * fns.c (Fbase64_decode_string): The decoded result should be
697 unibyte.
698
699 2000-10-23 Andrew Choi <akochoi@i-cable.com>
700
701 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
702
703 * dispnew.c [macintosh]: Include macterm.h.
704 (init_display) [macintosh]: Initialization for window system.
705
706 * emacs.c (main) [macintosh]: Call syms_of_textprop,
707 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
708 syms_of_search, x_term_init, and init_keyboard before calling
709 init_window_once. Also, call syms_of_xmenu.
710
711 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
712 default fontset to Monaco.
713
714 * frame.c [macintosh]: Include macterm.h. Remove declarations of
715 NewMacWindow and DisposeMacWindow.
716 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
717 instead of calling NewMacWindow and setting fields of
718 f->output_data.mac directly. Call init_frame_faces.
719 (Fdelete_frame) [macintosh]: Remove unused code.
720 (Fmodify_frame_parameters) [macintosh]: Call
721 x_set_frame_parameters instead of mac_set_frame_parameters.
722
723 * frame.h [macintosh]: Define menu_bar_lines field in struct
724 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
725
726 * keyboard.c [macintosh]: Include macterm.h.
727 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
728 and menu_bar_activate_event type events as for X and NT.
729 (make_lispy_event) [macintosh]: Construct lisp events of type
730 MENU_BAR_EVENT as for X and NT.
731
732 * sysdep.c [macintosh]: Remove declaration for sys_signal.
733 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
734 (sys_subshell) [macintosh]: Remove definition entirely.
735 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
736 Vwindow_system_version here. Remove initialization of
737 Vx_bitmap_file_path.
738 (read_input_waiting): Correct the number of parameters passed to
739 read_socket_hook.
740 Move all Macintosh functions to mac/mac.c.
741
742 * term.c [macintosh]: Include macterm.h.
743
744 * window.c [macintosh]: Include macterm.h.
745
746 * xdisp.c [macintosh]: Include macterm.h. Declare
747 set_frame_menubar and pending_menu_activation.
748 (echo_area_display) [macintosh]: Do not return if terminal frame
749 is the selected frame.
750 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
751 Allow only the selected frame to set menu bar.
752 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
753 calling FRAME_EXTERNAL_MENU_BAR (f).
754 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
755
756 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
757 and check_x. Declare XCreateGC. Define x_create_gc and
758 x_free_gc. Initialize font_sort_order.
759 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
760 but call x_list_fonts instead of w32_list_fonts.
761 (Finternal_face_x_get_resource) [macintosh]: Do not call
762 display_x_get_resource.
763 (prepare_face_for_display) [macintosh]: Set xgcv.font.
764 (realize_x_face) [macintosh]: Load the font if it is specified in
765 ATTRS.
766 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
767 to Qt.
768
769 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
770
771 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
772 is nil: since we go to the end of submap anyway, we'd end up
773 setting nil to nil.
774 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
775 doesn't obey autoload.
776
777 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
778
779 * msdos.c (dos_set_window_size): Update screen dimension variables.
780
781 2000-10-21 Jason Rumney <jasonr@gnu.org>
782
783 * w32term.c (w32_cache_char_metrics): Double check that font is
784 really fixed pitch before trusting tmPitchAndFamily.
785
786 2000-10-21 Andrew Innes <andrewi@gnu.org>
787
788 * w32gui.h (w32_char_font_type): Move enum from w32term.c
789
790 * w32term.h: Extern decl for w32_cache_char_metrics.
791
792 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
793
794 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
795 (w32_unload_font): Free per_char array if present.
796
797 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
798 cached information in emulated XFontStruct to handle common cases
799 quickly. Do not allocate XCharStruct for return.
800 (w32_native_per_char_metric): New function.
801 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
802 allocating one.
803 (x_produce_glyphs): Don't get an HDC. Change calls to
804 w32_per_char_metric to match arg change above. Remove calls to
805 free results.
806 (w32_get_glyph_overhangs): Ditto.
807 (w32_cache_char_metrics): New function.
808
809 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
810 ($(BLD)/casefiddle.$(O)): Remove compile command.
811 ($(BLD)/gmalloc.$(O)): Remove compile command.
812 ($(BLD)/dispnew.obj):
813 ($(BLD)/keyboard.obj):
814 ($(BLD)/w32inevt.obj):
815 ($(BLD)/w32bdf.obj):
816 ($(BLD)/alloc.obj):
817 ($(BLD)/buffer.obj):
818 ($(BLD)/editfns.obj):
819 ($(BLD)/emacs.obj):
820 ($(BLD)/fileio.obj):
821 ($(BLD)/fns.obj):
822 ($(BLD)/indent.obj):
823 ($(BLD)/insdel.obj):
824 ($(BLD)/intervals.obj):
825 ($(BLD)/minibuf.obj):
826 ($(BLD)/print.obj):
827 ($(BLD)/scroll.obj):
828 ($(BLD)/sysdep.obj):
829 ($(BLD)/textprop.obj):
830 ($(BLD)/widget.obj):
831 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
832 ($(BLD)/term.obj): Add dependency on dispextern.h.
833
834 * makefile.nt ($(BLD)\dispnew.obj):
835 ($(BLD)\keyboard.obj):
836 ($(BLD)\w32inevt.obj):
837 ($(BLD)\w32bdf.obj):
838 ($(BLD)\alloc.obj):
839 ($(BLD)\buffer.obj):
840 ($(BLD)\editfns.obj):
841 ($(BLD)\emacs.obj):
842 ($(BLD)\fileio.obj):
843 ($(BLD)\fns.obj):
844 ($(BLD)\indent.obj):
845 ($(BLD)\insdel.obj):
846 ($(BLD)\intervals.obj):
847 ($(BLD)\minibuf.obj):
848 ($(BLD)\print.obj):
849 ($(BLD)\scroll.obj):
850 ($(BLD)\sysdep.obj):
851 ($(BLD)\textprop.obj):
852 ($(BLD)\widget.obj):
853 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
854 ($(BLD)\term.obj): Add dependency on dispextern.h
855
856 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
857
858 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
859 with an additional argument of Qt.
860
861 2000-10-21 Miles Bader <miles@gnu.org>
862
863 * window.c (pos_fully_visible_in_window_p): New function.
864 (Fpos_visible_in_window_p): Add FULLY argument.
865 Use pos_fully_visible_in_window_p.
866 (window_scroll_pixel_based, window_scroll_line_based): Update
867 calls to Fpos_visible_in_window_p.
868 * lisp.h (Fpos_visible_in_window_p): Update prototype
869
870 2000-10-20 Gerd Moellmann <gerd@gnu.org>
871
872 * alloc.c (toplevel): Conditionalize compilation of mem_*
873 functions differently.
874
875 2000-10-20 Jason Rumney <jasonr@gnu.org>
876
877 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
878 mem_init where it used to be. mem_z etc not defined otherwise.
879
880 2000-10-20 Gerd Moellmann <gerd@gnu.org>
881
882 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
883 GC_MALLOC_CHECK.
884 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
885 structure definition and related variabled to the top of the file.
886 Include this code when GC_MALLOC_CHECK is defined.
887 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
888 register/unregister allocated region.
889 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
890 which isn't allocated.
891 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
892 something which is already in use.
893 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
894 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
895 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
896 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
897
898 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
899 _malloc_internal instead of malloc.
900 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
901 of free.
902
903 2000-10-20 Andrew Innes <andrewi@gnu.org>
904
905 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
906 Windows.
907 (my_strftime) <macro>: Don't use macro arg list when redefining as
908 _strftime_copytm.
909 (my_strftime) <function>: Supply 0 as ut argument.
910
911 2000-10-19 Jason Rumney <jasonr@altavista.net>
912
913 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
914 including dispextern.h, as it stops faces from working.
915
916 * w32fns.c (Fx_create_frame): Don't bother calling
917 face-set-after-frame-default since the caller does it for us
918 anyway. Clean up calls to x_get_arg to be consistent with X.
919
920 * w32term.c (x_produce_glyphs): Handle
921 unibyte_display_via_language_environment correctly.
922 (w32_draw_box_rect): Fix the calculation of width and height.
923
924 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
925 as it has stopped working.
926 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
927 menu-bar.
928
929 2000-10-19 Gerd Moellmann <gerd@gnu.org>
930
931 * eval.c (skip_debugger): Prevent a compiler warning.
932 (Fcondition_case): Likewise.
933 (Fbacktrace_frame): Use a null interactive spec.
934
935 2000-10-19 Kenichi Handa <handa@etl.go.jp>
936
937 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
938
939 2000-10-18 Gerd Moellmann <gerd@gnu.org>
940
941 * strftime.c: Sync with glibc, file version 1.78.
942 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
943 should no longer be used according to ISO 8601.
944
945 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
946 no map for meta_prefix_char, don't try to use it as a keymap.
947 Instead, if T_OK is non-zero, look up a default binding, if any,
948 otherwise, if T_OK is zero, return nil.
949
950 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
951 (x_to_xcolors, png_load): Use x_query_color.
952
953 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
954 functions.
955 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
956 which can be slow.
957 (x_copy_color, x_alloc_lighter_color): Likewise.
958
959 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
960 (x_query_color, x_query_colors): Add prototype.
961
962 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
963 check_string_bytes only if not noninteractive, increase count to 50.
964
965 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
966
967 * insdel.c (adjust_markers_for_delete): Handle before-insertion
968 markers correctly.
969
970 2000-10-17 Gerd Moellmann <gerd@gnu.org>
971
972 * alloc.c (pure_bytes_used): Renamed from pureptr.
973 (ALIGN): New macro.
974 (pure_alloc): New function.
975 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
976 Use it.
977 (Fpurecopy): Use PURE_POINTER_P.
978
979 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
980 PT has moved backward.
981
982 * xdisp.c (cursor_row_p): Take continued lines into account.
983
984 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
985 string's size_byte.
986 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
987 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
988 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
989 string allocated.
990
991 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
992 of selective display off while searching for the next line start.
993
994 2000-10-17 Kenichi Handa <handa@etl.go.jp>
995
996 * Makefile.in (term.o): Depend on dispextern.h.
997
998 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
999
1000 * keymap.c (keymap_memberp): Ensure that nil is not a member.
1001
1002 2000-10-16 Gerd Moellmann <gerd@gnu.org>
1003
1004 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
1005 the iterator at the beginning, so that they can be set later on,
1006 for instance in reseat_at_next_visible_line_start, without being
1007 overwritten.
1008
1009 * xfns.c (pbm_format): Add :foreground and :background keywords.
1010 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
1011 (xbm_load): Recognize foreground and background color
1012 specifications.
1013
1014 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
1015
1016 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
1017
1018 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
1019 declaration.
1020
1021 * msdos.c (IT_set_face): Compare highlighted face with the default
1022 face, and invert colors if these faces' colors are identical.
1023 (Fmsdos_remember_default_colors): Don't swap foreground and
1024 background colors in initial_colors[].
1025 (IT_set_frame_parameters): Don't swap frame's foreground and
1026 background pixels. If ALIST includes "(reverse . t)", swap
1027 foreground-color and background-color properties in frame's
1028 param_alist. If the original frame's param_alist doesn't specify
1029 the colors, store unspecified-fg and unspecified-bg, reversed if
1030 required.
1031
1032 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
1033 the colors are unspecified and reversed, reverse fore- and back-
1034 ground in the returned value.
1035 (Fframe_parameter): Ditto.
1036
1037 2000-10-16 Gerd Moellmann <gerd@gnu.org>
1038
1039 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
1040 get_last_unchanged_at_beg_row.
1041 (find_first_unchanged_at_end_row): Renamed from
1042 get_first_unchanged_at_end_row.
1043 (find_first_unchanged_at_end_row): Convert assertions to
1044 unconditional tests which abort. When looking for a row in
1045 unchanged text, don't go further back than first_text_row.
1046
1047 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
1048 Don't add in the last line's height when deciding if the new
1049 position is below the scroll margin.
1050
1051 2000-10-16 Miles Bader <miles@gnu.org>
1052
1053 * editfns.c (Fconstrain_to_field): Check carefully for field
1054 boundaries if either OLD_POS or NEW_POS has a non-nil field
1055 property, even if they're the same.
1056
1057 2000-10-16 Kenichi Handa <handa@etl.go.jp>
1058
1059 * xterm.c (x_draw_box_rect): Fix the calculation of width and
1060 height for XFillRectangle.
1061
1062 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
1063
1064 * syntax.c (Fstring_to_syntax): New function extracted from
1065 Fmodify_syntax_entry.
1066 (Fmodify_syntax_entry): Use it and document the ! and | fences.
1067 (skip_chars, Fforward_comment): Remove unused variables.
1068 (syms_of_syntax): Add defsubr for string-to-syntax.
1069 (describe_syntax): Add code for comment and string fences.
1070
1071 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
1072
1073 * keymap.c (access_keymap): Add AUTOLOAD parameter.
1074 Do the meta->esc mapping. Call get_keyelt before returning.
1075 Start scanning from the second element (the first is always `keymap')
1076 to make it easier to detect when we reach a parent map.
1077 Handle the case of inheriting from a symbol whose function is a map.
1078 (Fkeymap_parent): Also handle the `inherit from symbol' case.
1079 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
1080 (get_keyelt, Flookup_key): Update call to access_keymap.
1081 Remove the meta->esc mappings.
1082 (define_as_prefix): Delete old disabled code.
1083 (menu_item_p): New function.
1084 (where_is_internal_1): Skip over the few remaining menu items.
1085 * lisp.h (access_keymap): Update prototype.
1086 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
1087 Update call to access_keymap.
1088 (follow_key, read_key_sequence): Update calls to access_keymap.
1089 Remove the meta->esc mappings.
1090
1091 2000-10-13 Gerd Moellmann <gerd@gnu.org>
1092
1093 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
1094 with additional argument.
1095
1096 * xdisp.c (cursor_row_p): New function.
1097 (try_cursor_movement, display_line): Use it.
1098
1099 * xdisp.c (append_space): Also save/restore iterator's current
1100 character and its length.
1101
1102 * xdisp.c (init_from_display_pos): Add an assertion.
1103 (handle_stop): Don't set iterator's add_overlay_start.
1104 (handle_invisible_prop): Likewise.
1105 (load_overlay_strings): If text under an overlay is invisible,
1106 take both before- and after-strings into account when the iterator
1107 is positioned either at the start or at the end of the overlay.
1108 (forward_to_next_line_start): Rewritten.
1109 (reseat_at_next_visible_line_start): Rewritten.
1110 (set_iterator_to_next): Add parameter RESEAT_P.
1111
1112 * dispextern.h (struct it): Remove member add_overlay_start.
1113 (set_iterator_to_next): Change prototype.
1114
1115 2000-10-13 Kenichi Handa <handa@etl.go.jp>
1116
1117 * coding.c (code_convert_region): Be sure to initialize
1118 coding->category_idx.
1119 (decode_coding_string): Set coding->src_multibyte and
1120 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
1121 (encode_coding_string): Set coding->src_multibyte and
1122 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
1123
1124 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
1125
1126 * xfns.c (Fx_create_frame): Don't bother calling
1127 face-set-after-frame-default since the caller does it for us anyway.
1128
1129 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
1130
1131 * window.c (coordinates_in_window): Fix detection of vertical line
1132 on character terminals.
1133
1134 2000-10-12 Gerd Moellmann <gerd@gnu.org>
1135
1136 * editfns.c (save_excursion_save): Additionally record the
1137 selected window.
1138 (save_excursion_restore): If buffer was visible in a window, and a
1139 different window was selected, and the old selected window is
1140 still live, restore point in that window.
1141
1142 2000-10-12 Kenichi Handa <handa@etl.go.jp>
1143
1144 * xterm.c (x_produce_glyphs): Handle
1145 unibyte_display_via_language_environment correctly.
1146
1147 * regex.c (regex_compile): Change the way of handling a range from
1148 unibyte char to multibyte char.
1149
1150 * syntax.c (skip_chars): Change the way of handling a range from
1151 unibyte char to multibyte char.
1152
1153 * process.c (read_process_output): Cancel previous change.
1154
1155 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
1156
1157 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
1158
1159 * charset.c (Ffind_charset_string): Doc fix.
1160 (Ffind_charset_region): Doc fix.
1161
1162 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
1163
1164 * process.c (read_process_output): Fix previous change. Adjust
1165 multibyteness of text to insert in a buffer by
1166 string_make_unibyte/multibyte instead of
1167 Fstring_as_unibyte/multibyte.
1168
1169 2000-10-10 Andreas Schwab <schwab@suse.de>
1170
1171 * alloc.c (mark_object): Remove all workarounds installed on
1172 1993-08-08.
1173
1174 2000-10-10 Kenichi Handa <handa@etl.go.jp>
1175
1176 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
1177 returning.
1178 (base64_encode_1): Make it work for a text of multibyte form.
1179 (Fbase64_decode_region): Allocate sufficient memory for multibyte
1180 case. Don't call str_to_multibyte because base64_decode_1
1181 produces correct multibyte form for eight-bit codes.
1182 (Fbase64_decode_string): Adjusted for the change of
1183 base64_decode_1.
1184 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
1185 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
1186 codes.
1187
1188 * charset.h (CHAR_STRING): Optimized for single byte characters.
1189
1190 2000-10-09 Andreas Schwab <schwab@suse.de>
1191
1192 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
1193 -1 after socket is closed, to fall through to error processing.
1194
1195 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
1196
1197 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
1198 variables. If ALIST includes foreground-color or
1199 background-color, change also the colors of the default face for
1200 this frame.
1201
1202 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
1203
1204 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
1205 them extern (they are defined on xfaces.c).
1206 (syms_of_msdos): Don't intern and don't staticpro
1207 Qbackground_color and Qforeground_color.
1208
1209 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
1210
1211 * frame.c (Fframe_parameter): For non-windowed frames, if
1212 f->param_alist says foreground or background color is unspecified,
1213 call tty_color_name to return the color name computed from the
1214 frame's current colors.
1215
1216 2000-10-06 Dave Love <fx@gnu.org>
1217
1218 * terminfo.c (ospeed): Don't declare.
1219
1220 * sysdep.c: Don't include string.h.
1221 (h_errno): Declare conditional also on TRY_AGAIN.
1222
1223 * charset.c (Ffind_charset_string): Doc fix.
1224
1225 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
1226 (Fbase64_decode_region, Fbase64_decode_string): More explicit
1227 error messages.
1228
1229 2000-10-05 Dave Love <fx@gnu.org>
1230
1231 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
1232 position like menu-bar.
1233
1234 2000-10-05 Gerd Moellmann <gerd@gnu.org>
1235
1236 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
1237
1238 * xdisp.c (handle_single_display_prop): Use safe_call1.
1239 (safe_call): Renamed from call_function.
1240 (safe_call1): New function.
1241 (handle_fontified_prop): Use safe_call1 instead of call1.
1242 (safe_eval): Renamed from eval_form.
1243 (safe_eval_handler): Renamed from eval_handler.
1244 (handle_single_display_prop, display_mode_element): Use safe_eval
1245 instead of eval_form.
1246
1247 * xfaces.c (merge_face_heights): Use safe_call instead of
1248 call_function.
1249
1250 * keyboard.c (show_help_echo): Use safe_call instead of
1251 call_function; use safe_eval instead of eval_form.
1252
1253 * lisp.h (safe_call): Renamed from call_function.
1254 (safe_eval): Renamed from eval_form.
1255 (safe_call1): Add prototype.
1256
1257 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
1258
1259 * xfns.c (image_ascent): Rearrange ascent calculation for the
1260 has-a-font case.
1261
1262 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
1263
1264 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
1265 (where_is_internal_1): Don't bother ignoring menu-items any more.
1266
1267 2000-10-04 Gerd Moellmann <gerd@gnu.org>
1268
1269 * keyboard.c (update_menu_bindings): New variable.
1270 (parse_menu_item): Use AREF. If update_menu_bindings
1271 is 0, don't update menu bindings.
1272 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
1273
1274 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
1275
1276 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
1277 to `mark_object'.
1278
1279 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
1280
1281 * syntax.c (forw_comment): Match nestedness of ender/starter.
1282 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
1283 (prev_char_comstart_first): Remove.
1284 (back_comment): Check two-char comment markers more carefully
1285 to better handle overlapping cases like *//* or /* */* */ ...
1286 Match nestedness of ender/starter.
1287
1288 2000-10-02 Dave Love <fx@gnu.org>
1289
1290 * config.in (HAVE_GAI_STRERROR): Add undef.
1291
1292 * process.c (Fopen_network_stream): Use it.
1293
1294 * m/alpha.h (NO_REMAP): Don't define.
1295
1296 2000-10-02 Gerd Moellmann <gerd@gnu.org>
1297
1298 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
1299 return with a string converted to an integer or vice versa when
1300 Vmocklisp_arguments is t.
1301 (Fsignal): Likewise. The function can return for `quit'.
1302 (struct gcpro): Declare member `var' to point to a volatile
1303 Lisp_Object.
1304
1305 * eval.c (error): Prevent compiler warning.
1306
1307 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
1308
1309 * keymap.c (keymap_memberp): New function.
1310 (Fset_keymap_parent): Use it.
1311 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
1312 Use keymap_memberp to avoid creating cycles.
1313 (access_keymap): Use KEYMAPP.
1314
1315 2000-09-30 Gerd Moellmann <gerd@gnu.org>
1316
1317 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
1318 gai_strerror. Make sure xerrno is set if connect fails. Improve
1319 error recovery.
1320
1321 2000-09-29 Jason Rumney <jasonr@gnu.org>
1322
1323 * w32term.c (w32_char_font_type, w32_encode_char)
1324 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
1325 (w32_bdf_per_char_metric): New function.
1326 (w32_per_char_metric): Use it.
1327 (x_draw_glyph_string_background): Always draw background for BDF
1328 glyphs.
1329
1330 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
1331 GDI object which is a scarce resource.
1332
1333 * w32bdf.c (search_file_line): Fix skipping of whitespace.
1334 (get_quoted_string): Fix limit on memchr search.
1335 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
1336 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
1337 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
1338 (get_cached_font_char, cache_char_offset): Use macro
1339 BDF_CODEPOINT_RANGE_COVER_P.
1340 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
1341 (clear_cached_bitmap_slots): New function.
1342 (GET_HEX_VALUE): G-Z, g-z are not hex.
1343 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
1344 (get_bitmap_with_cache): Use new cache implementation.
1345 (create_offscreen_bitmap): New function.
1346 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
1347
1348 * w32term.c (x_produce_glyphs): If the distance from the current
1349 position to the next tab stop is less than a canonical character
1350 width, use the tab stop after that.
1351 (x_draw_glyphs): Handle case START and END are out of bounds more
1352 carefully.
1353 (x_clear_mouse_face): Block/unblock input.
1354 (x_display_and_set_cursor): Don't show a hollow box cursor for
1355 buffers whose cursor_type is nil.
1356
1357 2000-09-29 Gerd Moellmann <gerd@gnu.org>
1358
1359 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
1360 disappears.
1361
1362 * dispextern.h (updating_frame): Declare extern.
1363
1364 2000-09-29 Andreas Schwab <schwab@suse.de>
1365
1366 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
1367
1368 2000-09-29 Gerd Moellmann <gerd@gnu.org>
1369
1370 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
1371 use its function definition.
1372 (tool_bar_items): Likewise.
1373
1374 * lisp.h (fatal): Declare NO_RETURN.
1375
1376 2000-09-29 Kenichi Handa <handa@etl.go.jp>
1377
1378 * keymap.c: Remove the line "#undef NULL".
1379
1380 2000-09-28 Gerd Moellmann <gerd@gnu.org>
1381
1382 * xterm.c (x_make_frame_visible): Try harder to make the frame
1383 visible.
1384
1385 2000-09-28 Dave Love <fx@gnu.org>
1386
1387 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
1388
1389 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
1390
1391 * .gdbinit (xreload): Note its need on GNU/Linux.
1392
1393 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
1394 r_alloc, r_alloc_free.
1395
1396 2000-09-28 Kenichi Handa <handa@etl.go.jp>
1397
1398 * syntax.c (skip_chars): Handle negation correctly.
1399
1400 2000-09-27 Gerd Moellmann <gerd@gnu.org>
1401
1402 * xfaces.c (realize_default_face): Call set_lface_from_font_name
1403 with non-zero FORCE_P argument.
1404
1405 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
1406 Add assertions.
1407
1408 * xdisp.c (window_box_height): Add an assertion.
1409
1410 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
1411 tool-bar than is available.
1412 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
1413
1414 2000-09-27 Dave Love <fx@gnu.org>
1415
1416 * s/irix6-5.h: Now works 64-bit. Tidied.
1417
1418 2000-09-26 Gerd Moellmann <gerd@gnu.org>
1419
1420 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
1421 instead of BITS_PER_INT.
1422 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
1423 EMACS_UINT, respectively.
1424 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
1425
1426 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
1427
1428 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
1429
1430 * window.c (freeze_window_starts): Construct last argument for
1431 foreach_window differently.
1432
1433 * xfns.c (x_decode_color): Don't return a Lisp_Object.
1434
1435 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
1436 EMACS_UINT instead of `int' and `unsigned int'.
1437 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
1438
1439 * frame.h (struct frame): Make the `nothing' member of union
1440 output_data an EMACS_INT.
1441
1442 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
1443 hunting.
1444 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
1445 size in the sdata structure.
1446 (SDATA_NBYTES, SDATA_DATA): New macros.
1447 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
1448 differently for the different layout of the sdata structure.
1449 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
1450 in sdata.
1451 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
1452 Check that size recorded in the string size and size recorded in
1453 the sdata structure agree.
1454
1455 2000-09-25 Dave Love <fx@gnu.org>
1456
1457 * buffer.c: Include stdio.h.
1458
1459 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
1460
1461 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
1462
1463 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
1464 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
1465 size_t.
1466 (__malloc_extra_blocks): Declare as __malloc_size_t.
1467
1468 2000-09-25 Gerd Moellmann <gerd@gnu.org>
1469
1470 * alloc.c (mark_image): Use GC_NILP instead of NILP.
1471
1472 * keyboard.c (show_help_echo): Set help_echo_showing_p.
1473 (read_char): If help-echo is showing, preserve the echo area
1474 when redisplaying.
1475
1476 * xdisp.c (help_echo_showing_p): New variable.
1477 (set_message): Reset it to 0.
1478 (init_xdisp): Initialize help_echo_showing_p.
1479
1480 * dispextern.h (help_echo_showing_p): Declare extern.
1481
1482 * config.in: Fix typo in __GNUC_MINOR__.
1483
1484 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
1485
1486 * s/freebsd.h (POSIX_SIGNALS): Define.
1487
1488 * xterm.c (x_clear_mouse_face): Block/unblock input.
1489
1490 2000-09-24 Dave Love <fx@gnu.org>
1491
1492 * fns.c (base64_encode_1): Fix last change.
1493
1494 2000-09-22 Gerd Moellmann <gerd@gnu.org>
1495
1496 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
1497
1498 * xdisp.c (try_window_reusing_current_matrix): More fixes
1499 for the case window has a header-line.
1500
1501 2000-09-22 Dave Love <fx@gnu.org>
1502
1503 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
1504 a doc string.
1505
1506 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
1507
1508 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
1509
1510 2000-09-21 Gerd Moellmann <gerd@gnu.org>
1511
1512 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
1513 for GCC >= 2.5.
1514
1515 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
1516 NO_RETURN.
1517
1518 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
1519 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
1520 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
1521 warnings.
1522
1523 * marker.c (byte_char_debug_check): Return void.
1524
1525 * xfns.c (Fx_create_frame): Set default frame parameter value
1526 for tool-bar-lines to 1.
1527
1528 * dispnew.c (scrolling_window): Compare y-positions of rows
1529 equal at the start. Some simplification.
1530
1531 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
1532 reused rows' y-position in the case window has a header-line, and
1533 new window start is greater than old window start.
1534
1535 * process.c (process_sent_to): New variable.
1536 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
1537 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
1538 Declare more parameters volatile.
1539
1540 * lread.c (Vrecursive_load_depth_limit): New variable.
1541 (Fload): Check recursive loads whose recursion depth exceeds
1542 Vrecursive_load_depth_limit.
1543 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
1544
1545 2000-09-20 Gerd Moellmann <gerd@gnu.org>
1546
1547 * fileio.c (Fread_file_name): Doc fix.
1548
1549 * editfns.c (Fmessage_or_box): Doc fix.
1550
1551 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
1552
1553 * xfns.c (xbm_scan): Allow C-style comments.
1554
1555 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
1556 symbols are specified, add color translations to the cache.
1557 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
1558 functions.
1559 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
1560 xpm_cache_color.
1561 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
1562 structures to xpm_init_color_cache.
1563
1564 2000-09-19 Gerd Moellmann <gerd@gnu.org>
1565
1566 * dispnew.c (update_window_line): Make sure to always draw
1567 mode-lines.
1568
1569 2000-09-19 Andrew Innes <andrewi@gnu.org>
1570
1571 * makefile.nt (bootstrap-emacs): Don't change directory.
1572
1573 2000-09-19 Kenichi Handa <handa@etl.go.jp>
1574
1575 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
1576
1577 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
1578 If output buffer is too small, signal an appropriated error.
1579
1580 2000-09-18 Dave Love <fx@gnu.org>
1581
1582 * keyboard.c (menu_bar_items, tool_bar_items)
1583 (current_active_maps): Remove redundant get_local_map call.
1584
1585 2000-09-18 Gerd Moellmann <gerd@gnu.org>
1586
1587 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
1588 cursor for buffers whose cursor_type is nil.
1589
1590 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
1591 a feature to implement that is already implemented.
1592 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
1593 warnings.
1594
1595 * xfns.c (x_clear_image_1): New function.
1596 (x_clear_image): Use it.
1597 (x_from_xcolors): Use x_clear_image_1; don't free the image's
1598 mask.
1599
1600 * dispnew.c (update_window): Move test for invisible lines
1601 at the top to update_window_line.
1602 (update_window_line): Handle invisible lines here.
1603
1604 * xfns.c (clear_image_cache): Clear current matrices of all
1605 frames sharing an image cache. Block input while freeing
1606 images. Fix timestamp comparison.
1607 (x_clear_image): Also free the mask.
1608
1609 * xfns.c (lookup_image): Block input while loading the image so
1610 that we won't get interrupted in a state where the image isn't yet
1611 set up completely.
1612 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
1613 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
1614 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
1615 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
1616 input.
1617
1618 2000-09-16 Gerd Moellmann <gerd@gnu.org>
1619
1620 * dispnew.c (update_window): Make sure to make desired rows
1621 current even if they are completely invisible at the top
1622 of a window.
1623
1624 2000-09-15 Gerd Moellmann <gerd@gnu.org>
1625
1626 * xfns.c (lookup_image): Build mask before applying an algorithm.
1627 Recognize algorithm `disabled'.
1628 (cross_disabled_images): New variable.
1629 (COLOR_INTENSITY): New macro.
1630 (x_detect_edges): Use COLOR_INTENSITY.
1631 (x_disable_image): New function.
1632 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
1633
1634 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
1635 disabled state, don't apply an image transformation algorithm if
1636 the user specified an image for the disabled state. Use
1637 `:algorithm disabled' for creating a disabled item's image if the
1638 user hasn't specified an image.
1639
1640 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
1641 allocation functions with the XPM lib.
1642 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
1643 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
1644 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
1645 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
1646 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
1647 functions.
1648 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
1649 functions, if possible, because these handle color allocation
1650 failure more gracefully.
1651 (Fimage_mask_p): New function.
1652
1653 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
1654 (Qedge_detection, Qheuristic): New symbols.
1655 (syms_of_xfns): Initialize new symbols.
1656 (lookup_image): Handle `:mask X', `:algorithm emboss', and
1657 `algorithm (edge-detection ...)'.
1658 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
1659 (tiff_format, gif_format, gs_format): Add `:mask'.
1660 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
1661 (GIF_MASK, GS_MASK): New enumerators.
1662 (x_laplace_read_row, x_laplace_write_row): Functions removed.
1663 (emboss_matrix, laplace_matrix): New variables.
1664 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
1665 (x_edge_detection): New functions.
1666 (x_laplace): Rewritten in terms of x_detect_edges.
1667 (x_build_heuristic_mask): If image has a mask, free it.
1668
1669 2000-09-14 Andrew Innes <andrewi@gnu.org>
1670
1671 * makefile.w32-in: Revert to Unix line endings.
1672
1673 2000-09-14 Andrew Innes <andrewi@gnu.org>
1674
1675 * makefile.w32-in: Standardize indentation somewhat.
1676 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
1677 cater for differences between shells.
1678
1679 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
1680
1681 2000-09-14 Gerd Moellmann <gerd@gnu.org>
1682
1683 * xterm.c (x_produce_glyphs): If the distance from the current
1684 position to the next tab stop is less than a canonical character
1685 width, use the tab stop after that.
1686
1687 2000-09-14 Dave Love <fx@gnu.org>
1688
1689 * buffer.c (alloc_buffer_text): Fix xmalloc call.
1690
1691 2000-09-14 Gerd Moellmann <gerd@gnu.org>
1692
1693 * xdisp.c (handle_fontified_prop): While running fontification
1694 functions, bind `fontification-functions' and
1695 `after-change-functions' to nil.
1696
1697 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
1698 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
1699
1700 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
1701
1702 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
1703 USE_MMAP_FOR_BUFFERS.
1704
1705 * insdel.c (make_gap): Use enlarge_buffer_text.
1706
1707 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
1708 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
1709 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
1710 from former r_alloc_* functions in ralloc.c.
1711 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
1712 variables.
1713 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
1714 (mmap_init) [REL_ALLOC_MMAP]: New function.
1715 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
1716 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
1717 BUFFER_FREE.
1718
1719 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
1720 (enlarge_buffer_text): Add prototype.
1721
1722 * ralloc.c: Remove everything having to do with the use of mmap.
1723
1724 2000-09-13 Gerd Moellmann <gerd@gnu.org>
1725
1726 * sound.c (Fplay_sound): Doc fix.
1727
1728 * keyboard.c: Avoid some more compiler warnings.
1729 (parse_tool_bar_item): Ignore cached key bindings.
1730
1731 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
1732 and allocation of Lisp data.
1733
1734 2000-09-12 Gerd Moellmann <gerd@gnu.org>
1735
1736 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
1737 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
1738 defaults first.
1739
1740 * lread.c (Fload): Put code checking for recursive loads in #if 0.
1741
1742 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
1743
1744 * ccl.c: Comment fixed.
1745 (MAX_MAP_SET_LEVEL): Increased to 30.
1746 (PUSH_MAPPING_STACK): Enclose with do-while block.
1747 (POP_MAPPING_STACK): Likewise.
1748 (stack_idx_of_map_multiple): New variable.
1749 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
1750 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
1751 call the corresponding CCL program by
1752 CCL_CALL_FOR_MAP_INSTRUCTION.
1753 (ccl_driver) <CCL_MapSingle>: Likewise.
1754 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
1755 with the case where looking up process reaches to the end of
1756 map-set, and call CCL programs as the above change.
1757
1758 2000-09-11 Gerd Moellmann <gerd@gnu.org>
1759
1760 * xfns.c (png_load, jpeg_load): Declare some variables volatile
1761 that might be clobbered by longjmp.
1762 (check_x_display_info, x_decode_color, create_frame_xic)
1763 (Fx_display_backing_store, Fx_display_visual_class)
1764 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
1765 warnings.
1766
1767 * lread.c (init_lread): Set Vloads_in_progress to nil.
1768 (Fload): Show list of recursively loaded files, when signaling an
1769 error.
1770
1771 * lread.c (Vloads_in_progress): New variable.
1772 (record_load_unwind): New function.
1773 (Fload): Check for recursive loads.
1774 (syms_of_lread): Initialize Vloads_in_progress.
1775 (read_integer, read1): Avoid some compiler warnings.
1776
1777 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
1778 compiler warnings.
1779
1780 2000-09-11 Miles Bader <miles@gnu.org>
1781
1782 * editfns.c (Fbuffer_string): Doc fix.
1783
1784 2000-09-10 Gerd Moellmann <gerd@gnu.org>
1785
1786 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
1787
1788 2000-09-09 Ken Raeburn <raeburn@gnu.org>
1789
1790 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
1791 whether to include other header files.
1792
1793 2000-09-09 Gerd Moellmann <gerd@gnu.org>
1794
1795 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
1796 by Fmemq as a boolean.
1797
1798 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
1799
1800 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
1801
1802 2000-09-08 Gerd Moellmann <gerd@gnu.org>
1803
1804 * ralloc.c (mmap_fd): Remove initializer which can make it
1805 read-only in a dumped Emacs.
1806 (mmap_fd_1): New variable.
1807 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
1808 restore it from there.
1809 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
1810 unconditionally so that mmap_fd can be initialized there.
1811 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
1812 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
1813 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
1814
1815 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
1816
1817 * xdisp.c (dump_glyph_row): Fix printf format string.
1818 (display_line, move_it_in_display_line_to): Avoid compiler
1819 warnings.
1820
1821 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
1822
1823 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
1824 inheritance.
1825
1826 * xdisp.c (try_window_id): When trying to locate cursor in
1827 unchanged rows at the top, handle the case that we can't find it.
1828
1829 * xterm.c (x_draw_glyphs): Handle case START and END are out
1830 of bounds more carefully.
1831
1832 2000-09-08 Dave Love <fx@gnu.org>
1833
1834 * s/sol2.h (REL_ALLOC_MMAP): Define.
1835 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
1836
1837 * ralloc.c: Don't include string.h (redundant).
1838 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
1839 [!MAP_ANON]: Include fcntl.h.
1840 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
1841 (r_alloc, r_re_alloc, r_alloc_free)
1842 (mmap_enlarge, mmap_set_vars): Use it.
1843 (r_alloc_init_fd): New function.
1844 (__morecore) [SYSTEM_MALLOC]: Don't declare.
1845 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
1846 malloc type.
1847
1848 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
1849 Remove vm-limit.o.
1850
1851 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
1852 change to __NetBSD__.
1853
1854 2000-09-08 Kenichi Handa <handa@etl.go.jp>
1855
1856 * search.c (compile_pattern): Check the multibyteness of cached
1857 string and PATTERN.
1858
1859 2000-09-08 Miles Bader <miles@gnu.org>
1860
1861 * xfaces.c (default_face_vector): Function removed.
1862 (Finternal_merge_in_global_face): Restore old global/local
1863 attribute override order. Use inline loop instead of calling
1864 default_face_vector.
1865
1866 2000-09-07 Gerd Moellmann <gerd@gnu.org>
1867
1868 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
1869 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
1870 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
1871 where necessary, in case POINTER_TYPE is `void'.
1872
1873 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
1874
1875 * frame.c (make_terminal_frame): Initialize frame foreground and
1876 background colors to unspecified, for the initial instance of an
1877 MSDOS frame.
1878
1879 2000-09-07 Gerd Moellmann <gerd@gnu.org>
1880
1881 * ralloc.c (mmap_find): Fix overlap computation.
1882 (mmap_enlarge): Compute nbytes before trying to find an
1883 overlapping region.
1884
1885 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
1886 instead of `!='.
1887
1888 * lread.c (syms_of_lread): Change value of regexp
1889 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
1890
1891 * xmenu.c (xdialog_show): When looking up the selection in
1892 menu_items, take `quote' boundaries into account; this corresponds
1893 to a nil ITEM in x-popup-dialog.
1894
1895 2000-09-07 Kenichi Handa <handa@etl.go.jp>
1896
1897 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
1898 not 0x81.
1899 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
1900
1901 * coding.c (encode_coding_sjis_big5): Use translation table for
1902 encoding, not decoding. Fix the handling of latin-jisx0201.
1903 Check for the charset katakana-jisx0201 too.
1904 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
1905 (detect_coding_sjis): Check the byte sequence more rigidly.
1906
1907 2000-09-07 Gerd Moellmann <gerd@gnu.org>
1908
1909 * xfaces.c (Vparam_value_alist): New variable.
1910 (syms_of_xfaces): Initialize it.
1911 (Finternal_set_lisp_face_attribute): Avoid more consing.
1912
1913 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
1914 specially.
1915 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
1916 (Qbackground_mode): New variable.
1917 (syms_of_frame_1): Initialize Qbackground_mode.
1918
1919 * lisp.h (Qdisplay): Declare extern.
1920
1921 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
1922 change face on all frames, and change the default for new frames.
1923
1924 2000-09-07 Dave Love <fx@gnu.org>
1925
1926 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
1927
1928 2000-09-07 Kenichi Handa <handa@etl.go.jp>
1929
1930 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
1931
1932 * charset.c: Include composite.h
1933 (lisp_string_width): New function.
1934 (Fstring_width): Call lisp_string_width instead of strwidth.
1935
1936 * Makefile.in (charset.o): Depends on composite.h.
1937
1938 * process.c (read_process_output): Before inserting the decoded
1939 text in the buffer, adjust the multibyteness.
1940
1941 2000-09-06 Gerd Moellmann <gerd@gnu.org>
1942
1943 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
1944 buffer's text buffer is null, map new memory.
1945
1946 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
1947 POINTER_TYPE and size_t.
1948 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
1949 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
1950 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
1951 [REL_ALLOC_MMAP]: New macros.
1952 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
1953 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
1954 [REL_ALLOC_MMAP]: New functions.
1955
1956 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
1957 before and after unexec.
1958
1959 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
1960 text buffers if necessary.
1961
1962 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
1963 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
1964 in prototypes.
1965
1966 * config.in (HAVE_MMAP): Add #undef.
1967
1968 2000-09-05 Gerd Moellmann <gerd@gnu.org>
1969
1970 * frame.c (Qdisplay_type): New variable.
1971 (syms_of_frame_1): Initialize it.
1972 (Fframe_parameter): New function that avoids consing.
1973 (syms_of_frame): Defsubr it.
1974
1975 * buffer.c (Fother_buffer): Consider buffers as invisible when
1976 they are displayed in a window on an invisible frame.
1977
1978 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
1979 get-largest-window always return nil.
1980
1981 2000-09-04 Gerd Moellmann <gerd@gnu.org>
1982
1983 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
1984 variable; recognize Emacs 19 elc files.
1985
1986 2000-09-04 Miles Bader <miles@gnu.org>
1987
1988 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
1989 before initially popping up the menu, so the menu doesn't flash
1990 when the face settings are significantly different from the
1991 defaults.
1992
1993 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
1994
1995 * regex.c (WIDE_CHAR_SUPPORT): New macro.
1996 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
1997 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
1998 (BIT_UNIBYTE): Remove.
1999 (re_match_2_internal): Delete corresponding code and streamline the
2000 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
2001 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
2002 (re_wctype_t): New type.
2003 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
2004 (regex_compile): Use them and fix handling of overly long char classes.
2005
2006 2000-09-03 Andrew Innes <andrewi@gnu.org>
2007
2008 * makefile.w32-in: Change to DOS line endings.
2009
2010 * s/ms-w32.h (ORDINARY_LINK): New define.
2011
2012 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
2013 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
2014
2015 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
2016 (distclean): Delete them here instead.
2017
2018 * w32proc.c (compare_env): Convert to uppercase for comparison,
2019 not lowercase, to match how the native Windows shell works.
2020
2021 2000-09-03 Jason Rumney <jasonr@gnu.org>
2022
2023 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
2024 CVS changes the line-ends when checking in/out on DOS/Windows.
2025
2026 * makefile.nt (emacs): Do not change directory to run temacs, as
2027 the load-path is set relative to current directory.
2028
2029 2000-09-03 Miles Bader <miles@gnu.org>
2030
2031 * xterm.c (x_alloc_lighter_color_for_widget): New function.
2032
2033 2000-09-02 Gerd Moellmann <gerd@gnu.org>
2034
2035 * xdisp.c (redisplay_mode_lines): New function.
2036 (display_mode_lines): Return number of mode lines displayed.
2037 (echo_area_display): Use redisplay_mode_lines to draw garbaged
2038 mode lines. Don't temporarily bind redisplay-dont-pause to t.
2039
2040 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
2041 string.h and strings.h.
2042 (index) [HAVE_INDEX]: Add prototype.
2043
2044 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
2045 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
2046
2047 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
2048 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
2049
2050 2000-09-01 Gerd Moellmann <gerd@gnu.org>
2051
2052 * lread.c (read1): Accept `?' as symbol constituent, for
2053 compatiblity with XEmacs.
2054
2055 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
2056
2057 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
2058 (struct re_pattern_buffer): Remove newline_anchor.
2059 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
2060 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
2061 (re_max_failures, fail_stack): Use size_t rather than unsigned.
2062 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
2063 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
2064 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
2065 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
2066 Get rid of references to newline_anchor.
2067 (regcomp): Allocate and precompute a fastmap.
2068
2069 2000-08-31 Gerd Moellmann <gerd@gnu.org>
2070
2071 * lread.c (openp): GCPRO local variable `filename'.
2072
2073 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
2074
2075 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
2076
2077 * regex.c: Merge some changes from GNU libc. Add prototypes.
2078 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
2079 Use memcmp and memcpy instead of bcopy and bcmp.
2080 (init_syntax_once): Use ISALNUM.
2081 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
2082 (REG_UNSET_VALUE): Remove. Use NULL instead.
2083 (REG_UNSET, re_match_2_internal): Use NULL.
2084 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
2085 New macros.
2086 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
2087 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
2088 (regex_compile): In handle_interval, return an error rather than try to
2089 unfetch the interval if we can't find the closing brace.
2090 Obey the RE_NO_GNU_OPS syntax bit.
2091 (TOLOWER): New macro.
2092 (regcomp): Use it.
2093 (regexec): Allocate regs.start and regs.end as one block.
2094
2095 2000-08-30 Gerd Moellmann <gerd@gnu.org>
2096
2097 * xdisp.c (echo_area_display): Check display_completed instead
2098 of calling detect_input_pending.
2099
2100 * dispnew.c (update_frame): Only set display_completed here; move
2101 the update_begin and update_end calls here from update_frame_1.
2102 (update_frame_1): Don't set display_completed here, don't call
2103 update_begin/update_end.
2104
2105 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
2106 instead of store_frame_param.
2107
2108 2000-08-29 Gerd Moellmann <gerd@gnu.org>
2109
2110 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
2111 desired window matrix hasn't been displayed, use the current row
2112 instead. Make sure that only those frame rows are updated for
2113 which there exists a corresponding enabled desired row.
2114
2115 2000-08-29 Miles Bader <miles@gnu.org>
2116
2117 * xfaces.c (default_face_vector): New function.
2118 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
2119
2120 2000-08-29 Gerd Moellmann <gerd@gnu.org>
2121
2122 * lread.c (openp): Prevent temporary string passed to
2123 Ffile_readable_p from being garbage collected.
2124
2125 2000-08-28 Dave Love <fx@gnu.org>
2126
2127 * keymap.c (store_in_keymap): Add `static' to declaration.
2128
2129 2000-08-28 Gerd Moellmann <gerd@gnu.org>
2130
2131 * emacs.c, callint.c, doc.c, editfns.c
2132 (toplevel) [HAVE_STRING_H]: Include string.h.
2133 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
2134 (index): Remove prototypes which might conflict with non-standard
2135 definitions of index/strchr.
2136
2137 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
2138 (rindex): Define only if !HAVE_RINDEX.
2139
2140 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
2141
2142 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
2143
2144 2000-08-28 Miles Bader <miles@gnu.org>
2145
2146 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
2147 made inconsistent by a font-related attribute in FROM.
2148 (merge_face_inheritance): Add function comment.
2149
2150 2000-08-28 Kenichi Handa <handa@etl.go.jp>
2151
2152 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
2153 the 4th arg (PREV_EVENT) Qt to suppress input method.
2154
2155 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
2156
2157 * regex.c: Indent cpp directives and remove parens after `defined'.
2158 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
2159 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
2160 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
2161 (re_compile_pattern): Use size_t for length.
2162 (init_syntax_once): Move to a better place.
2163 * regex.h: Merge changes from GNU libc. Indent cpp directives.
2164 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
2165
2166 * syntax.c (back_comment): Detect cases where a comment-starter is
2167 actually inside another comment as in: /* a // b */ c // d \n.
2168 Make it clear that `comstart_pos' is unused for nested comments.
2169
2170 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
2171 (KEYMAPP): New macro.
2172 (Fkeymap_parent, Fset_keymap_parent): Use it.
2173 (fix_submap_inheritance): Mark it static.
2174 (define_as_prefix, describe_buffer_bindings, describe_command)
2175 (describe_translation, describe_map): Complete prototypes.
2176
2177 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
2178
2179 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
2180 to better match the key-lookup behavior.
2181
2182 2000-08-27 Gerd Moellmann <gerd@gnu.org>
2183
2184 * xfaces.c (lface_fully_specified_p): Handle :inherit.
2185 (Finternal_set_lisp_face_attribute): Fix typo in error message.
2186
2187 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
2188
2189 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
2190 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
2191 (xterm.o): Depend on coding.h
2192
2193 2000-08-26 Kenichi Handa <handa@etl.go.jp>
2194
2195 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
2196 the corresponding '#endif'.
2197
2198 2000-08-26 Miles Bader <miles@gnu.org>
2199
2200 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
2201 * xfaces.c (QCinherit): New variable.
2202 (syms_of_xfaces): Initialize it.
2203 (LFACE_INHERIT): New macro.
2204 (Finternal_get_lisp_face_attribute)
2205 (merge_face_vector_with_property)
2206 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
2207 (check_lface_attrs): Allow new types of face height. Check
2208 inherit attribute.
2209 (CYCLE_CHECK): New macro.
2210 (merge_face_inheritance): New function.
2211 (merge_face_vectors): Merge inherited faces too. Add F and
2212 CYCLE_CHECK arguments.
2213 (merge_face_vector_with_property, Finternal_merge_in_global_face)
2214 (lookup_named_face, lookup_derived_face, realize_named_face)
2215 (face_at_string_position, face_at_buffer_position): Supply
2216 new F and CYCLE_CHECK arguments to merge_face_vectors.
2217 (merge_face_heights): New function.
2218 (merge_face_vectors, merge_face_vector_with_property)
2219 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
2220 handle relative face heights.
2221 (lface_same_font_attributes_p): Compare heights using EQ.
2222
2223 2000-08-26 Kenichi Handa <handa@etl.go.jp>
2224
2225 * charset.c (char_to_string): Check the character validity.
2226 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
2227 0.
2228
2229 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
2230
2231 * regex.c (PUSH_FAILURE_COUNT): New macro.
2232 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
2233 Handle popping of a register's or a counter's data.
2234 (POP_FAILURE_POINT): Use the new name.
2235 (re_match_2_internal): Push counter data on the stack for succeed_n,
2236 jump_n and set_number_at and remove misleading dead code in succeed_n.
2237
2238 2000-08-25 Gerd Moellmann <gerd@gnu.org>
2239
2240 * xdisp.c (redisplay_internal): If considering all windows on all
2241 frames, update the display for each frame as soon as possible,
2242 instead of first building all desired matrices for all frames, and
2243 then updating them all.
2244 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
2245
2246 2000-08-24 Gerd Moellmann <gerd@gnu.org>
2247
2248 * bytecode.c (mark_byte_stack): Add a comment.
2249
2250 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
2251 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
2252 a graphical frame.
2253
2254 2000-08-24 Kenichi Handa <handa@etl.go.jp>
2255
2256 * minibuf.c (do_completion): Always use compare-string, not
2257 string-equal because the latter doesn't pay attention to
2258 multibyteness of strings.
2259
2260 * process.c (create_process): Don't setup raw-text coding here.
2261 (Fopen_network_stream): Don't set coding->src_multibyte and
2262 coding->dst_multibyte here.
2263 (read_process_output): For process filter, return unibyte string
2264 if default-enable-multibyte-characters is nil.
2265 (send_process): If OBJECT is multibyte text, be sure to encoded it
2266 by the specified coding system for the process. Otherwise, setup
2267 raw-text coding.
2268 (init_process): Don't initialize default-process-coding-system
2269 here.
2270
2271 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
2272
2273 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
2274 <scroll-down-aggressively>: Likewise.
2275
2276 2000-08-23 Kenichi Handa <handa@etl.go.jp>
2277
2278 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
2279 zero. Set coding->produced_char correctly.
2280
2281 2000-08-22 Andrew Innes <andrewi@gnu.org>
2282
2283 * makefile.w32-in: New file.
2284
2285 * unexw32.c (unexec): Ignore old_name, and use the actual location
2286 of the current executable instead. Base new_name on this.
2287
2288 * w32proc.c (create_child): Remove reference to security
2289 descriptor, which isn't needed and doesn't compile with mingw32.
2290
2291 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2292 up dllimport attributes.
2293 (x_update_window_end): Update prototype.
2294
2295 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
2296 extern, which screws up dllimport attributes.
2297
2298 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2299 up dllimport attributes.
2300
2301 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
2302 screws up dllimport attributes.
2303
2304 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2305 up dllimport attributes.
2306 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
2307 screws up dllimport attributes.
2308
2309 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2310 up dllimport attributes.
2311
2312 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
2313 screws up dllimport attributes.
2314
2315 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
2316 screws up dllimport attributes.
2317
2318 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2319 up dllimport attributes.
2320
2321 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
2322 unnecessary extern, which screws up dllimport attributes.
2323 (main): Ditto.
2324
2325 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2326 up dllimport attributes.
2327
2328 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
2329 unnecessary extern, which screws up dllimport attributes.
2330
2331 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
2332 screws up dllimport attributes.
2333
2334 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
2335 up dllimport attributes.
2336
2337 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
2338
2339 * w32bdf.c (search_file_line):
2340 (set_bdf_font_info):
2341 (seek_char):
2342 (w32_get_bdf_glyph):
2343 (w32_BDF_to_x_font): Fix compile warnings.
2344
2345 * w32menu.c: Include keyboard.h before frame.h. Fix compile
2346 warnings.
2347
2348 * w32select.c: Include keyboard.h before frame.h.
2349
2350 * w32fns.c (max): Define macro.
2351 (JOHAB_CHARSET): Define if not known.
2352 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
2353 (Fx_show_tip): Synch with X version.
2354
2355 * w32xfns.c: Include keyboard.h before frame.h.
2356
2357 * w32fns.c: Include keyboard.h before frame.h.
2358
2359 * w32term.c: Include keyboard.h before frame.h.
2360
2361 * fontset.c: Include keyboard.h before frame.h.
2362
2363 * w32inevt.c: Include keyboard.h before frame.h.
2364 (MOUSE_MOVED): Define if not known.
2365
2366 * minibuf.c: Include keyboard.h before frame.h.
2367
2368 * keyboard.c: Include keyboard.h before frame.h.
2369
2370 * indent.c: Include keyboard.h before frame.h.
2371
2372 * dispnew.c: Include keyboard.h before frame.h.
2373
2374 * buffer.c: Include keyboard.h before frame.h.
2375
2376 * alloc.c: Include keyboard.h before frame.h.
2377
2378 * print.c: Include keyboard.h before frame.h.
2379
2380 * process.c: Include keyboard.h before frame.h.
2381
2382 * scroll.c: Include keyboard.h before frame.h.
2383
2384 * sysdep.c: Include keyboard.h before frame.h.
2385
2386 * term.c: Include keyboard.h before frame.h.
2387
2388 * window.c: Include keyboard.h before frame.h.
2389
2390 * xdisp.c: Include keyboard.h before frame.h.
2391 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
2392
2393 * frame.c: Include keyboard.h before frame.h.
2394
2395 * w32heap.h: Undefine min, max.
2396
2397 * w32gui.h: Undefine min, max.
2398
2399 * unexw32.c: Change PUCHAR to PCHAR.
2400 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
2401 (relocate_offset):
2402 (get_section_info):
2403 (copy_executable_and_dump_data): Remove unnecessary static defs.
2404 (copy_executable_and_dump_data): Fix compile warnings.
2405
2406 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
2407
2408 * w32console.c (min): Define macro.
2409 (clear_frame, write_glyphs): Fix compile warning.
2410
2411 * w32proc.c (compare_env):
2412 (find_child_console): Fix compile warning.
2413
2414 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
2415 sys_errlist instead of _sys_errlist.
2416 (get_emacs_configuration_options): New function.
2417
2418 * s/ms-w32.h (sys_nerr): Provide default definition.
2419 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
2420 name with _ prepended.
2421 (NSIG): Define if not known.
2422 (get_emacs_configuration): Provide extern declaration.
2423 (get_emacs_configuration_options): Provide extern declaration.
2424 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
2425
2426 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
2427 (map_w32_filename):
2428 (read_unc_volume): Fix compile warning.
2429
2430 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
2431 definitions from being used.
2432
2433 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
2434
2435 * w32.c (unc_volume_file_attributes):
2436 (open_unc_volume): Make arg const.
2437
2438 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
2439 (read_input_waiting): Remove excess parameter.
2440
2441 * w32.c (init_environment): Call _access.
2442 (check_windows_init_file): Call _close.
2443 (init_user_info): Call _putenv.
2444 (init_environment): Call _putenv and _strdup.
2445 (init_ntproc): Reset volume info cache on startup.
2446
2447 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
2448 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
2449 cannot override the CRT malloc.
2450
2451 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
2452 (LINK_FLAGS): Append to original value of LINK_FLAGS.
2453
2454 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
2455 unless we are linking with a static CRT.
2456 (RVA_TO_PTR): Cast result to unsigned char*.
2457
2458 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
2459 (add_volume_info): Use xstrdup.
2460
2461 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
2462
2463 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
2464 (do_completion, Fminibuffer_complete_word): Use it.
2465 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
2466 var so it can take non-boolean values.
2467
2468 2000-08-21 Gerd Moellmann <gerd@gnu.org>
2469
2470 * editfns.c (find_field): Formatting changes.
2471 (toplevel): Some old-style function forward declarations
2472 changed to prototypes, some new protypes added, some functions
2473 made static.
2474
2475 * lisp.h (set_time_zone_rule): Add prototype.
2476 (use_dialog_box): External declaration.
2477
2478 * keyboard.c (gen_help_event): Add parameter SIZE.
2479 (kbd_buffer_events_waiting): Slightly rewritten.
2480 (clear_event): New function.
2481 (kbd_buffer_get_event): Use it, and clear the input_events of
2482 HELP_EVENTs.
2483 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
2484 don't fill the newly created array with nils.
2485 (toplevel): Convert some old-style function forward declarations
2486 to prototypes.
2487
2488 * keyboard.h (gen_help_event): Change prototype.
2489
2490 * xterm.c (XTread_socket): Change calls to gen_help_event.
2491
2492 * w32term.c (w32_read_socket): Change calls to gen_help_event.
2493
2494 * eval.c (Fmacroexpand): Doc fix.
2495
2496 2000-08-20 Jason Rumney <jasonr@gnu.org>
2497
2498 * w32term.h (x_display_info_for_display): Remove as this function
2499 does not exist on W32.
2500
2501 * w32term.c (help_echo_window): New variable.
2502 (syms_of_w32term): staticpro it.
2503 (note_mode_line_highlight): Set it.
2504 (XTextExtents16): Removed as there is no equivalent on W32.
2505 (x_compute_glyph_string_overhangs): Incomplete body removed, as
2506 the X way of doing this will not work for W32.
2507 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
2508 (x_draw_image_foreground): Avoid drawing outside of the clip area
2509 when image doesn't have a mask.
2510 (note_mouse_highlight): Process overlays in the right order of
2511 priority. Set help_echo_window.
2512 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
2513 because that's more visible for large images.
2514
2515 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
2516 name to single_keymap_panes.
2517 (w32_menu_show): Set wv->title when dealing with titles.
2518 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
2519
2520 2000-08-21 Miles Bader <miles@gnu.org>
2521
2522 * minibuf.c (do_completion): Try again if we rewrite the input
2523 string, but no completion was done, so that any completion message
2524 will be correct.
2525
2526 2000-08-20 Gerd Moellmann <gerd@gnu.org>
2527
2528 * xfaces.c (lface_equal_p): Compare strings differently.
2529 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
2530 (realize_tty_face): Use them.
2531 (syms_of_xfaces): Initialize new variables.
2532 (map_tty_color): New function, extracted from realize_tty_face.
2533 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
2534 foreground or background color, store the new color name in the
2535 realized face; previous code trying to do this had no effect.
2536 (realize_tty_face): Use map_tty_color.
2537 (Fclear_face_cache): Set face_change_count and ensure thorough
2538 redisplay.
2539
2540 2000-08-19 Gerd Moellmann <gerd@gnu.org>
2541
2542 * undo.c (record_first_change, record_marker_adjustment): Don't
2543 use XBUFFER on last_undo_buffer which might not be a buffer.
2544
2545 2000-08-18 Kenichi Handa <handa@etl.go.jp>
2546
2547 * coding.c (decode_coding_string): Set members consumed,
2548 consumed_char, produced, produced_char of *coding correctly. If
2549 decode_coding doesn't consume any byte, don't try anymore.
2550 (encode_coding_string): Likewise.
2551
2552 2000-08-18 Gerd Moellmann <gerd@gnu.org>
2553
2554 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
2555 conditional have void type, for Standard C compilers.
2556
2557 * xdisp.c (redisplay_internal): Compare windows for equality with
2558 EQ, instead of applying XWINDOW to something that might not
2559 be a window.
2560
2561 2000-08-18 Kenichi Handa <handa@etl.go.jp>
2562
2563 * fontset.c (Finternal_char_font): Search only the selected frame
2564 for a window of the current buffer.
2565
2566 2000-08-18 Gerd Moellmann <gerd@gnu.org>
2567
2568 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
2569 Lisp_Objects.
2570
2571 * keyboard.c (kbd_buffer_get_event): Handle the case that the
2572 second half of a HELP_EVENT is found at the start of kbd_buffer.
2573
2574 2000-08-18 Miles Bader <miles@gnu.org>
2575
2576 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
2577
2578 * editfns.c (save_restriction_save): Rewrite to use markers.
2579 (save_restriction_restore): Rewrite to understand new form of data
2580 saved by save_restriction_save.
2581 (Fsave_restriction): Remove cautionary note in doc-string.
2582
2583 2000-08-17 Gerd Moellmann <gerd@gnu.org>
2584
2585 * fileio.c (build_annotations): Add a comment explaining the
2586 return value of format-annotate-function. Replace a spurious call
2587 to Flength with a CONSP test. Call format-annotate-function with
2588 a fifth arg specifying how many times the function is been called
2589 in a row, to let it choose temporary buffers appropriately.
2590
2591 2000-08-17 Dave Love <fx@gnu.org>
2592
2593 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
2594 declare make_temp_name twice.
2595
2596 * lread.c: Prototype readevalloop, load_unwind,
2597 load_descriptor_unwind.
2598 (unreadpure): Give it an arg.
2599
2600 * unexalpha.c: Prototype fatal_unexec, mark_x,
2601 update_dynamic_symbols. Declare unexec as void.
2602
2603 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
2604 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
2605
2606 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
2607 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
2608 DOUG_LEA_MALLOC.
2609
2610 * alloca.c: Use #error.
2611 [POINTER_TYPE]: Use it.
2612
2613 * eval.c (Fdefvar): Doc fix.
2614
2615 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
2616 INITIALIZE_INTERVAL.
2617
2618 * buffer.h: Avoid DECLARE_INTERVALS.
2619
2620 * config.in: Add size_t.
2621
2622 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
2623
2624 * w16select.c (set_clipboard_data): If there's not enough memory
2625 to put text into clipboard, return 1, as Fw16_set_clipboard_data
2626 expects. In case of other failures, return 3.
2627 (system_error_msg): New error message.
2628 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
2629 system_error_msg.
2630
2631 2000-08-16 Gerd Moellmann <gerd@gnu.org>
2632
2633 * term.c (write_glyphs): Also turn off inverse video after turning
2634 off other appearances in case TS_exit_attribute_mode is not equal
2635 to TS_end_standout_mode.
2636 (insert_glyphs): Turn inverse video on/off for each run of glyphs
2637 with the same face.
2638 (turn_off_face): Reset standout_mode only if
2639 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
2640 is equal to TS_end_standout_mode.
2641
2642 2000-08-16 Kenichi Handa <handa@etl.go.jp>
2643
2644 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
2645 sequence at the end of the source block.
2646
2647 * ccl.c (Fccl_program_p): Docstring modified.
2648 (Fccl_execute): Likewise.
2649 (Fccl_execute_on_string): Likewise.
2650
2651 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
2652
2653 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
2654
2655 2000-08-16 Kenichi Handa <handa@etl.go.jp>
2656
2657 The following changes are mainly to fix bugs of
2658 encode/decode-coding-string failing if encoding/decoding return
2659 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
2660 variable conversion_buffer.
2661
2662 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
2663 decrement dst_end to avoid buffer overflow in the later call of
2664 string_as_multibyte
2665
2666 * coding.h (conversion_buffer_size, conversion_buffer)
2667 (get_conversion_buffer): Extern deleted.
2668
2669 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
2670 (conversion_buffer, conversion_buffer_size): Variables deleted.
2671 (get_conversion_buffer): Function deleted.
2672 (struct conversion_buffer): New structure.
2673 (MAX_ALLOCA): New macro.
2674 (allocate_conversion_buffer): New macro.
2675 (extend_conversion_buffer, free_conversion_buffer): New functions.
2676 (ccl_coding_driver): Set coding->result.
2677 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
2678 this is the last block of source.
2679 (encode_coding): Likewise. Handle the source block as the last
2680 one only when the whole source text is consumed.
2681 (decode_coding_string): Handle the case that the output buffer is
2682 too small to decode the whole source text. Use
2683 allocate_conversion_buffer, extend_conversion_buffer and
2684 free_conversion_buffer, not get_conversion_buffer.
2685 (encode_coding_string): Likewise.
2686 (init_coding): Function deleted.
2687 (init_coding_once): Delete code to initialize
2688 conversion_buffer_size.
2689
2690 * emacs.c (main): Don't call init_coding.
2691
2692 * msdos.c (IT_write_glyphs): Use a locally declared
2693 conversion_buffer.
2694
2695 * term.c (write_glyphs): Use a locally declared conversion_buffer.
2696 (insert_glyphs): Likewise.
2697
2698 * w32console.c (write_glyphs): Use a locally declared
2699 conversion_buffer.
2700
2701 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
2702
2703 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
2704 member of display_info is NULL.
2705
2706 2000-08-15 Gerd Moellmann <gerd@gnu.org>
2707
2708 * alloc.c (compact_small_strings): Use safe_bcopy, add an
2709 assertion.
2710
2711 * term.c (turn_off_face): Reset standout_mode when resetting
2712 appearances with capability `me'.
2713 (write_glyphs): Switch on inverse video before each face change.
2714
2715 2000-08-14 Dave Love <fx@gnu.org>
2716
2717 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
2718 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
2719 (lisp_free): Declare and make static.
2720
2721 * window.c: Fix embedded comment.
2722 (syms_of_window): Fix doc string.
2723
2724 2000-08-14 Gerd Moellmann <gerd@gnu.org>
2725
2726 * keymap.c (push_key_description): If C without modifiers is < 32,
2727 make sure to print `C-' before `M-', like in the manual.
2728
2729 2000-08-11 Gerd Moellmann <gerd@gnu.org>
2730
2731 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
2732 since they aren't relocated anymore.
2733 (sxhash_string): Make sure returned hash code fits in a Lisp
2734 integer.
2735
2736 * xdisp.c (try_cursor_movement): Fix handling of cursor in
2737 partially visible line which is smaller than the window's
2738 height.
2739
2740 2000-08-11 Kenichi Handa <handa@etl.go.jp>
2741
2742 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
2743 the multibyte form of eight-bit-control characters.
2744 (Fccl_execute_on_string): Initialize ccl->multibyte.
2745
2746 * ccl.h (struct ccl_program): New member multibyte.
2747
2748 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
2749
2750 2000-08-11 Kenichi Handa <handa@etl.go.jp>
2751
2752 * regex.c (regex_compile) <normal_char>: Pay attention to
2753 multibyteness.
2754 (analyse_first) <exactn>: Setup fastmap correctly for
2755 eight-bit-control characters.
2756
2757 2000-08-11 Kenichi Handa <handa@etl.go.jp>
2758
2759 * termhooks.h (enum event_kind): New member
2760 multibyte_char_keystroke.
2761
2762 * keyboard.c (make_lispy_event): Handle the new event type
2763 multibyte_char_keystroke.
2764
2765 * xterm.c: Include coding.h.
2766 (XTread_socket): Work around a bug of XmbLookupString. If the
2767 input is from XIM, decode it according to the current locale. In
2768 that case, generate multibyte_char_keystroke events.
2769
2770 2000-08-11 Kenichi Handa <handa@etl.go.jp>
2771
2772 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
2773 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
2774
2775 2000-08-10 Gerd Moellmann <gerd@gnu.org>
2776
2777 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
2778 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
2779 (move_it_in_display_line_to): Record iterator's ascent and descent
2780 before producing glyphs, and restore them when we know the glyph
2781 doesn't fit on the line.
2782 (move_it_to): Restructured so that it's easier to debug. If
2783 moving to a vpos, and not moving to an x or character position,
2784 stop as soon as the specified vpos is reached; don't move further
2785 into that line because that might change the computed line height.
2786 (try_cursor_movement): New function, extracted from the cursor
2787 movement branch of redisplay_window. If ending on a partially
2788 visible line, don't try to scroll if the cursor line is taller
2789 than the window.
2790 (redisplay_window): Use try_cursor_movement.
2791
2792 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
2793 because that function doesn't cope with variable-height lines.
2794
2795 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
2796 box cursor because that's better visible for large images.
2797
2798 2000-08-10 Miles Bader <miles@gnu.org>
2799
2800 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
2801
2802 2000-08-10 Gerd Moellmann <gerd@gnu.org>
2803
2804 * xdisp.c (Vmessages_buffer_name): New variable.
2805 (message_dolog): Use it.
2806 (syms_of_xdisp): Initialize it.
2807
2808 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
2809
2810 * msdos.c (IT_note_mouse_highlight): Update the calls to
2811 overlays_at.
2812 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
2813 redundant now that keyboard.h is included.
2814
2815 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
2816
2817 * keyboard.c (kbd_buffer_events_waiting): New function.
2818
2819 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
2820
2821 * msdos.c: Include keyboard.h.
2822 (XMenuActivate): Empty no_event events from the event buffer. If
2823 no events are left after that, call clear_input_pending.
2824 (mouse_clear_clicks): New function, code moved from mouse_init.
2825 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
2826 mouse driver to ``forget'' any past clicks.
2827
2828 * Makefile.in (msdos.o): Depend on keyboard.h.
2829
2830 2000-08-09 Gerd Moellmann <gerd@gnu.org>
2831
2832 * lisp.h (input_pending): External declaration.
2833
2834 * dispextern.h (Qredisplay_dont_pause): Declare extern.
2835
2836 * xdisp.c (echo_area_display): Display thoroughly if input is
2837 pending. Bind redisplay-dont-pause to t during the redisplay.
2838 in case input is pending.
2839
2840 * dispnew.c (Qredisplay_dont_pause): New variable.
2841 (syms_of_display): Initialize and staticpro it.
2842 (update_frame_1): Don't interrupt the display for pending input if
2843 redisplay_dont_pause is set.
2844
2845 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
2846
2847 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2848
2849 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
2850
2851 * callproc.c (Fcall_process): Terminate the unwind-protect around
2852 the post-read-conversion of coding system.
2853
2854 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
2855 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
2856 * buffer.h (overlays_at): Update prototype.
2857 * xdisp.c (next_overlay_change): Update call to overlays_at.
2858 * xfaces.c (face_at_buffer_position): Likewise.
2859 * textprop.c (Fget_char_property): Likewise.
2860 * xterm.c (note_mouse_highlight): Likewise.
2861
2862 * minibuf.c (do_completion): Don't consider a simple change of
2863 case as `completion'.
2864
2865 2000-08-08 Ken Raeburn <raeburn@gnu.org>
2866
2867 * keyboard.c (syms_of_keyboard): Initialize
2868 last_point_position_buffer.
2869 * undo.c (record_delete): Make sure last_point_position_buffer is
2870 a buffer before comparing pointers.
2871
2872 * coding.h (decode_coding_string): Declare.
2873
2874 * intervals.h (Fprevious_single_char_property_change): Declare.
2875
2876 * textprop.c (Fprevious_single_char_property_change): Don't do
2877 arithmetic directly on lisp objects.
2878
2879 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
2880 objects.
2881
2882 * keyboard.h (menu_item_eval_property): Declare.
2883
2884 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
2885 reuse as buffer name, instead of recreating (and discarding) every
2886 time a message is logged.
2887 (with_echo_area_buffer): Make callback arg A2 a lisp object.
2888 (current_message_1, truncate_message_1, set_message_1)
2889 (display_echo_area_1, resize_mini_window_1): Signatures changed.
2890 (current_message, truncate_echo_area, display_echo_area)
2891 (resize_echo_area_axactly): Changed calls.
2892
2893 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
2894 Lisp object.
2895 (Ffind_coding_systems_region_internal): First argument to Fappend
2896 must be an integer, not a Lisp object.
2897
2898 2000-08-08 Kenichi Handa <handa@etl.go.jp>
2899
2900 * charset.c (Fchar_width): Doc fix.
2901
2902 2000-08-08 Gerd Moellmann <gerd@gnu.org>
2903
2904 * charset.c (Fstring_width): Doc fix.
2905
2906 2000-08-07 Gerd Moellmann <gerd@gnu.org>
2907
2908 * xdisp.c (start_display): When starting display on a continuation
2909 line, clear ascent and descent members of the iterator structure;
2910 the height of the continued line does not affect the height of the
2911 continuation line.
2912 (make_cursor_line_fully_visible): Do nothing if cursor is on a
2913 line taller than the window.
2914 (redisplay_window) <forced window start>: Handle case that the
2915 middle of the window is not found in any row.
2916 (dump_glyph_row): Show more information.
2917 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
2918 first text line in a glyph matrix.
2919
2920 * xterm.c (x_draw_image_foreground): Avoid drawing outside
2921 of the clip area when image doesn't have a mask.
2922
2923 * fns.c (sweep_weak_table): Fix survival conditions for
2924 key-or-value and key-and-value weakness.
2925
2926 * .gdbinit (xhashtable): New command.
2927
2928 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
2929 tables out of the list of all weak hash tables.
2930
2931 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
2932 a new buffer is created, make sure echo_area_buffer[] references
2933 the new buffer.
2934
2935 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
2936
2937 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
2938 the doc string.
2939
2940 2000-08-07 Kenichi Handa <handa@etl.go.jp>
2941
2942 * syntax.c (skip_chars): Fix previous change. Make the handling
2943 of unibyte string consistent with that of regex search.
2944
2945 2000-08-05 Gerd Moellmann <gerd@gnu.org>
2946
2947 * xmenu.c (popup_get_selection): Use xfree instead of free.
2948
2949 * fileio.c (Finsert_file_contents): Use xfree instead of free.
2950
2951 * editfns.c (Ftranspose_regions): Use xfree instead of free.
2952
2953 * callproc.c (child_setup): Use xfree instead of free.
2954
2955 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
2956 instead of malloc.
2957 (run_mac_command, closedir): Use `xfree' instead of `free'.
2958
2959 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
2960
2961 * eval.c (error): Use xfree instead of free.
2962
2963 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
2964
2965 * fns.c: Replace `illegal' with `invalid'.
2966 (Fmake_hash_table, make_hash_table): Allow table size of 0.
2967
2968 2000-08-05 Kenichi Handa <handa@etl.go.jp>
2969
2970 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
2971 conversion.
2972
2973 2000-08-04 Noah Friedman <friedman@splode.com>
2974
2975 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
2976 docstring.
2977
2978 2000-08-04 Gerd Moellmann <gerd@gnu.org>
2979
2980 * syntax.c (skip_chars): Fix typo in error message.
2981
2982 2000-08-04 Andreas Schwab <schwab@suse.de>
2983
2984 * m/ia64.h: Moved from s/ia64.h.
2985
2986 2000-08-04 Kenichi Handa <handa@etl.go.jp>
2987
2988 * process.c (read_process_output): Big simplification. Handle
2989 composition and post-read-conversion of coding system correctly.
2990 (send_process): Handle composition correctly.
2991
2992 * callproc.c (Fcall_process): Handle post-read-conversion of
2993 coding system if any.
2994
2995 * coding.c (decode_coding_iso2022): More strict check for handling
2996 single shifting.
2997 (coding_restore_composition): Pay attention to the case that
2998 cmp_data is not set properly (because of invalid code in the
2999 source text).
3000 (run_pre_post_conversion_on_str): Include text properties in the
3001 resulting string.
3002 (decode_coding_string): Set members of coding correctly.
3003
3004 2000-08-03 Gerd Moellmann <gerd@gnu.org>
3005
3006 * s/ia64.h: New file.
3007
3008 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
3009 Use NULL instead of 0 at the end of variable argument list of
3010 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
3011 sizeof (int) < sizeof (void *).
3012
3013 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
3014 of variable argument lists of XtVaGetValues and XtVaSetValues.
3015
3016 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
3017 variable argument lists of XtVaGetValues and XtVaSetValues.
3018
3019 2000-08-02 Gerd Moellmann <gerd@gnu.org>
3020
3021 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
3022 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
3023
3024 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
3025 prototype.
3026
3027 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
3028 in call to Fsingle_key_description.
3029
3030 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
3031 Callers changed.
3032
3033 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
3034
3035 * window.c (display_buffer_reuse_frames): New variable.
3036 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
3037 frames displaying BUFFER.
3038 (syms_of_window): Define Lisp variable
3039 display-buffer-reuse-frames.
3040
3041 2000-08-01 Miles Bader <miles@gnu.org>
3042
3043 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
3044 when to constrain NEW_POS (they were pretty screwed up before).
3045
3046 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
3047
3048 * msdos.c (run_msdos_command): Save and restore the master
3049 environment, for the case that child_setup signals an error.
3050 When mirroring slashes in DOS shell commands, don't fail when
3051 argv[2] has embedded blanks.
3052 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
3053 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
3054 (dos_ttraw): Call mouse_setup_buttons.
3055
3056 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
3057 using alloca; free it after run_msdos_command returns.
3058
3059 2000-07-27 Dave Love <fx@gnu.org>
3060
3061 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
3062 define.
3063 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
3064 working.
3065
3066 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
3067
3068 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
3069
3070 * editfns.c (lisp_time_argument): Fix last change.
3071
3072 2000-07-27 Gerd Moellmann <gerd@gnu.org>
3073
3074 * fns.c (Fdelete): Make it work on vectors and strings in addition
3075 to lists.
3076
3077 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
3078 (syms_of_fns): Initialize new variables.
3079 (sweep_weak_table): Handle weakness `key-or-value' and
3080 `key-and-value'.
3081 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
3082 weakness, with t meaning the same as `key-and-value'.
3083
3084 2000-07-27 Kenichi Handa <handa@etl.go.jp>
3085
3086 * coding.h (struct coding_system): Member safe_charset deleted.
3087
3088 * coding.c (Qsafe_charsets): This variable deleted.
3089 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
3090 variables.
3091 (coding_safe_chars): New function.
3092 (CODING_SAFE_CHAR_P): New macro.
3093 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
3094 checking safe_charsets member of the coding system. Caller
3095 changed.
3096 (detect_coding_iso2022): New local variable safe_chars.
3097 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
3098 safe_charsets member of the coding system.
3099 (decode_coding_iso2022): New local variable safe_chars.
3100 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
3101 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
3102 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
3103 (ENCODE_UNSAFE_CHARACTER): New macro.
3104 (encode_coding_iso2022): New local variable safe_chars. Check
3105 unsafe chars.
3106 (setup_coding_system): Delete the code to initialize
3107 coding->safe_charses
3108 (intersection, find_safe_codings): New functions.
3109 (Ffind_coding_systems_region_internal): New function.
3110 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
3111 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
3112 variable and initialize it.
3113
3114 * fns.c (char_table_ref_and_index): New function.
3115
3116 * lisp.h (char_table_ref_and_index): Add prototype.
3117
3118 2000-07-26 Sam Steingold <sds@gnu.org>
3119
3120 * editfns.c (lisp_time_argument): Added third argument `usec'.
3121 (Ffloat_time): New built-in Lisp function.
3122
3123 2000-07-26 Gerd Moellmann <gerd@gnu.org>
3124
3125 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
3126 for the character code.
3127
3128 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
3129 GNU/Linux.
3130
3131 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
3132 if called for a popup menu.
3133 (xmenu_show): Store help string in widget values.
3134
3135 2000-07-26 Dave Love <fx@gnu.org>
3136
3137 * syswait.h: Move some definitions.
3138 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
3139 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
3140 perspicuous definitions.
3141 (WTERMSIG): Fix bit pattern used.
3142
3143 2000-07-26 Kenichi Handa <handa@etl.go.jp>
3144
3145 * print.c (print_object): If vector printing is truncated, print
3146 "..." to indicate it as well as the case of list printing.
3147
3148 2000-07-25 Gerd Moellmann <gerd@gnu.org>
3149
3150 * xdisp.c (next_element_from_display_vector): Improve comments.
3151
3152 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
3153 for the character code, and the rest for the face id as in 20.x.
3154 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
3155
3156 * window.c (window_display_table): Cleaned up.
3157
3158 * syntax.c (Fforward_word): Add last arg nil in call of
3159 Fconstrain_to_field.
3160
3161 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
3162
3163 * fileio.c (Frename_file) [DOS_NT]: If the file names are
3164 identical but for the letter-case, don't call
3165 barf_or_query_if_file_exists.
3166
3167 2000-07-25 Miles Bader <miles@gnu.org>
3168
3169 * editfns.c (find_field): Honor special `boundary' fields.
3170 (Qboundary): New variables.
3171 (syms_of_editfns): Initialize Qboundary.
3172 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
3173 Use scan_buffer instead of find_before_next_newline, because it
3174 allows us to detect the boundary case where there's a newline at
3175 the search limit.
3176 * lisp.h (Fconstrain_to_field): Update external declaration.
3177
3178 2000-07-24 Gerd Moellmann <gerd@gnu.org>
3179
3180 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
3181 if that is nil.
3182
3183 2000-07-24 Dave Love <fx@gnu.org>
3184
3185 * s/sunos4-0.h, s/sol2.h:
3186 (LIBS_TERMCAP): Move from m/sparc.h.
3187
3188 * m/sparc.h (TERMINFO): Moved to system files (probably only
3189 relevant for sunos4 judging by its vintage).
3190 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
3191 __arch64__.
3192
3193 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
3194
3195 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
3196 name to single_keymap_panes.
3197
3198 2000-07-24 Andreas Schwab <schwab@suse.de>
3199
3200 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
3201
3202 2000-07-24 Gerd Moellmann <gerd@gnu.org>
3203
3204 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
3205 parameters instead of using int parameters. Expect FN to accept
3206 EMACS_INT parameters.
3207 (display_echo_area, resize_echo_area_axactly, current_message)
3208 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
3209 with new argument list.
3210 (resize_mini_window_1): New callback function.
3211 (current_message_1, truncate_message_1, set_message_1): Change
3212 parameter lists to the new format expected by
3213 with_echo_area_buffer.
3214
3215 2000-07-24 Kenichi Handa <handa@etl.go.jp>
3216
3217 * fontset.c (fontset_ref): Remove INLINE declaration.
3218 (fontset_ref_via_base): Likewise.
3219 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
3220 to downcase.
3221
3222 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
3223
3224 * msdos.c (IT_note_mouse_highlight): Process overlays in the
3225 correct order of priority. If help echo was found in an overlay,
3226 use that overlay as the object in which the help echo was found.
3227
3228 2000-07-22 Miles Bader <miles@gnu.org>
3229
3230 * textprop.c (Fprevious_single_char_property_change): The initial
3231 property value should be from the position preceding POSITION, not
3232 following it.
3233
3234 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
3235
3236 * coding.c (syms_of_coding): Doc fix for
3237 inhibit-iso-escape-detection.
3238
3239 2000-07-21 Gerd Moellmann <gerd@gnu.org>
3240
3241 * xterm.c (note_mouse_highlight): Process overlays in the right
3242 order of priority.
3243
3244 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
3245
3246 * xterm.c (note_mouse_highlight): If help-echo was found in an
3247 overlay, use that overlay as the object in which the help was
3248 found.
3249
3250 * window.c (foreach_window_1): Fix typo reversing an if-condition.
3251
3252 * window.c (foreach_window): Instead of a fake variable argument
3253 list, take one USER_DATA argument.
3254 (foreach_window_1): Likewise, and call callback functions with two
3255 args, the window and USER_DATA.
3256 (struct check_window_data): New struct.
3257 (check_window_containing): Use it.
3258 (window_from_coordinates): Set up a struct check_window_data for
3259 foreach_window.
3260 (add_window_to_list, freeze_window_start): Change parameters
3261 according to new calling convention.
3262
3263 * window.h (foreach_window): Change prototype.
3264
3265 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
3266
3267 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
3268
3269 * xmenu.c (menu_help_callback): Call show_help_echo with
3270 additional arguments OBJECT and POS.
3271
3272 2000-07-21 Kenichi Handa <handa@etl.go.jp>
3273
3274 * data.c (Faset): Allow storing any multibyte character in a
3275 string. Convert unibyte string to multibyte if necessary.
3276
3277 * xfns.c (x_encode_text): New function.
3278 (x_set_name): Use x_encode_text.
3279 (x_set_title): Likewise.
3280
3281 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
3282
3283 * xterm.h (x_encode_text): Add prototype.
3284
3285 2000-07-20 Dave Love <fx@gnu.org>
3286
3287 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
3288 xfree, not free.
3289
3290 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
3291
3292 * msdos.c (help_echo_window): New variable.
3293 (syms_of_msdos): Initialize and staticpro it.
3294 (IT_note_mode_line_highlight): Set help_echo_window.
3295 (IT_note_mouse_highlight): Ditto.
3296 (dos_rawgetc): Store help_echo_window in the second event produced
3297 for HELP_EVENTs.
3298
3299 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
3300 Record the object that generated the help echo and the position of
3301 that object in help_echo_object and help_echo_pos. Record that
3302 some glyphs in a row are displayed in mouse-face.
3303 (IT_update_begin): Don't clear mouse highlight unless one of the
3304 enabled glyph rows is marked as being displayed in mouse-face.
3305 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
3306 and position recorded in help_echo_object and help_echo_pos to the
3307 event queue.
3308 (IT_menu_display): Accept a new argument PN: the pane number of
3309 the current menu pane. Record the pane number and the item
3310 number of the item which has associated help string.
3311 (XMenuActivate): Update the prototype for help_callback in
3312 function declaration. Call IT_menu_display with the current menu
3313 pane number as an additional argument. Call help_callback with
3314 two additional arguments: the pane number and the item number of
3315 the menu item associated with the help text.
3316 (help_echo_object, help_echo_pos): New variables.
3317 (syms_of_msdos): Initialize them and staticpro help_echo_object.
3318
3319 * msdos.h (XMenuActivate): Update prototype.
3320
3321 2000-07-19 Gerd Moellmann <gerd@gnu.org>
3322
3323 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
3324 Add some more prototypes.
3325
3326 * xterm.c, xterm.h: Add some more prototypes.
3327
3328 * lisp.h (Fnext_single_char_property_change): Add prototype.
3329
3330 * dispnew.c (direct_output_for_insert): Remove confusing
3331 outer local variable mouse_face_overwritten_p.
3332 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
3333
3334 * alloc.c (allocate_string_data): Don't copy old string contents.
3335
3336 2000-07-19 Kenichi Handa <handa@etl.go.jp>
3337
3338 * coding.c (code_convert_region): Delete text properties before
3339 shrinking the conversion region.
3340
3341 2000-07-18 Gerd Moellmann <gerd@gnu.org>
3342
3343 * dispnew.c (update_text_area): Write the whole row if it
3344 has mouse-face in it.
3345
3346 * xfaces.c (face-alternative-font-family-alist): Remove
3347 DEFVAR_LISP; staticpro instead.
3348
3349 * xmenu.c (menu_help_callback): Call show_help_echo with
3350 new arguments.
3351
3352 * keyboard.c (show_help_echo): Add parameter WINDOW.
3353 (read_char): Call show_help_echo with window extracted from Lisp
3354 help event.
3355 (gen_help_event): Add parameter WINDOW.
3356
3357 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
3358
3359 * xterm.c (help_echo_window): New variable.
3360 (note_mouse_highlight, note_tool_bar_highlight): Set
3361 help_echo_window.
3362 (XTread_socket): Pass help_echo_window to gen_help_event.
3363 (syms_of_xterm): Initialize and staticpro help_echo_window.
3364
3365 2000-07-18 Dave Love <fx@gnu.org>
3366
3367 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
3368 systime.h.
3369
3370 2000-07-18 Gerd Moellmann <gerd@gnu.org>
3371
3372 * alloc.c (allocate_string_data): If string had already data
3373 assigned, copy old contents to new string data.
3374
3375 * coding.c (syms_of_coding): Fix typo in spelling of variable
3376 `inhibit-iso-escape-detection'.
3377
3378 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
3379
3380 * Makefile.in: Add dependencies on dispextern.h.
3381 (alloca.o): Don't define malloc and define EMACS_FREE instead of
3382 `free'; both can conflict with system header files.
3383
3384 2000-07-18 Kenichi Handa <handa@etl.go.jp>
3385
3386 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
3387 undefined.
3388
3389 2000-07-18 Dave Love <fx@gnu.org>
3390
3391 * window.c (Fwindow_list): Declare arg `window'.
3392
3393 2000-07-18 Kenichi Handa <handa@etl.go.jp>
3394
3395 * coding.c (setup_coding_system): Don't override the explicitly
3396 specified designations.
3397
3398 2000-07-15 Miles Bader <miles@gnu.org>
3399
3400 * editfns.c (char_property_eq, char_property_stickiness): Renamed
3401 from `text_property_eq' and `text_property_stickiness', respectively.
3402 (find_field, Fconstrain_to_field, char_property_eq)
3403 (char_property_stickiness): Changed to call char-property functions
3404 instead of text-property-only ones.
3405
3406 * textprop.c (Fnext_single_char_property_change): Made a subr (was
3407 `next_single_char_property_change'). Do more error checking, and
3408 cleanup limit behavior.
3409 (Fprevious_single_char_property_change): New function.
3410 (syms_of_textprop): Initialize new subrs.
3411
3412 * xdisp.c (display_prop_end, invisible_text_between_p):
3413 Call Fnext_single_char_property_change instead of
3414 next_single_char_property_change.
3415
3416 2000-07-15 Jason Rumney <jasonr@gnu.org>
3417
3418 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
3419 after menu is finished with.
3420 (add_menu_item): Only consider wv->title as a menu title.
3421 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
3422
3423 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
3424 null title.
3425 (FONT_REGEXP): Remove unused macro, and its sub-components.
3426 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
3427
3428 * w32term.c (help_echo_object, help_echo_pos): New variables.
3429 (note_mode_line_highlight): Store additional information about the
3430 help-echo in help_echo_object and help_echo_pos. Check both
3431 `local-map' and `keymap' properties for changing the cursor
3432 (note_mouse_highlight): Store additional information about the
3433 help-echo in help_echo_object and help_echo_pos.
3434 (note_tool_bar_highlight): Set help_echo_object to nil and
3435 help_echo_pos to -1.
3436 (w32_read_socket): Use gen_help_event instead of filling
3437 input_events manually.
3438 (syms_of_w32term): Staticpro help_echo_object.
3439 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
3440 set, arrange for a mouse-highlight redisplay in
3441 XTframe_up_to_date.
3442 (x_clear_mouse_face): New function.
3443 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
3444 (x_update_window_begin): No need to turn off the mouse
3445 highlight here.
3446 (show_mouse_face): Set the mouse_face_p flag of glyph rows
3447 depending on whether they contain glyphs highlighted in
3448 mouse-face.
3449 (x_fill_stretch_glyph_string): Consume runs of stretch
3450 glyphs instead of a single one.
3451 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
3452 with new argument list.
3453 (x_set_glyph_string_gc): Make sure the face's GC is valid.
3454 (x_append_glyph, x_append_composite_glyph)
3455 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
3456 changes in struct glyph starting 1999-12-27. See comments for
3457 xterm.c on 2000-07-05.
3458
3459 2000-07-14 Sam Steingold <sds@gnu.org>
3460
3461 * xfaces.c (realize_x_face): Fix the last patch:
3462 check `default_face' before dereferencing.
3463
3464 2000-07-14 Dave Love <fx@gnu.org>
3465
3466 * syntax.c (back_comment): Add null default in switch (for pcc).
3467
3468 2000-07-14 Kenichi Handa <handa@etl.go.jp>
3469
3470 * xfaces.c (realize_x_face): Make fontset using the base of the
3471 default_face's fontset, not using the default fontset.
3472
3473 * coding.c (inhibit_iso_escape_detection): New variable.
3474 (syms_of_coding): Make it a Lisp variable.
3475 (detect_coding_iso2022): If inhibit_iso_escape_detection is
3476 nonzero, ignore ISO2022's escape sequence.
3477
3478 2000-07-14 Gerd Moellmann <gerd@gnu.org>
3479
3480 * alloca.c (malloc) [emacs]: Define as xmalloc.
3481
3482 * xfns.c (Fx_show_tip): If frame parameters contain a position,
3483 use that instead of the mouse position. Add parameters DX and DY.
3484
3485 * dispextern.h (Fx_show_tip): Adjust number of parameters
3486 in prototype.
3487
3488 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
3489 if HELP is a function, call it with OBJECT and POS as parameters
3490 to get the help to display.
3491 (gen_help_event, kbd_buffer_store_help_event): New functions.
3492 (kbd_buffer_get_event): Construct the Lisp help-event differently.
3493 (read_char): Call show_help_echo with new parameters.
3494
3495 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
3496 Add prototypes.
3497
3498 * xterm.c (help_echo_object, help_echo_pos): New variables.
3499 (note_mode_line_highlight): Store additional information about the
3500 help-echo in help_echo_object and help_echo_pos. Check both
3501 `local-map' and `keymap' properties for changing the cursor
3502 (note_mouse_highlight): Store additional information about the
3503 help-echo in help_echo_object and help_echo_pos.
3504 (note_tool_bar_highlight): Set help_echo_object to nil and
3505 help_echo_pos to -1.
3506 (XTread_socket): Use gen_help_event instead of filling
3507 input_events manually.
3508 (syms_of_xterm): Staticpro help_echo_object.
3509
3510 * xmenu.c (menu_highlight_callback): Use
3511 kbd_buffer_store_help_event instead of setting up and input_event
3512 structure manually.
3513
3514 * xdisp.c (eval_form): GCPRO argument sexpr.
3515 (call_function): New function.
3516 (handle_single_display_prop): Use call_function and FUNCTIONP
3517 instead of checking whether if font_height is a symbol and
3518 using eval_form.
3519
3520 * eval.c (internal_condition_case_2): New function.
3521
3522 * lisp.h (FUNCTIONP): New macro.
3523 (internal_condition_case_2, call_function): Add prototypes.
3524
3525 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
3526 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
3527 Always set `arg' member of input_events.
3528 (construct_menu_click): Unused function removed.
3529
3530 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
3531
3532 * w32term.c (construct_mouse_click, construct_mouse_wheel)
3533 (construct_drag_n_drop, x_scroll_bar_handle_click)
3534 (w32_read_socket): Always set `arg' member of input_events.
3535
3536 * keyboard.c (show_help_echo): Use eval_form. Add comment.
3537
3538 * lisp.h (eval_form): Add prototype.
3539
3540 * xdisp.c (eval_form): Make it externally visible.
3541
3542 2000-07-13 Gerd Moellmann <gerd@gnu.org>
3543
3544 * xterm.c (x_handle_tool_bar_click): Store the frame in the
3545 frame_or_window slot of TOOL_BAR_EVENT input events instead of
3546 consing. For prefix events, store the frame in the `arg' slot of
3547 the event, otherwise store the key there.
3548 (XTread_socket): Instead of consing, use the frame_or_window slot
3549 of HELP_EVENTs for the frame, and the `arg' slot for the help
3550 string.
3551
3552 * xmenu.c (menu_highlight_callback): Store help string in the
3553 `arg' member of the input event; don't cons.
3554 (menubar_selection_callback): Use the `arg' slot of input events
3555 to queue additional information, instead of consing.
3556
3557 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
3558
3559 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
3560 TOOL_BAR_EVENTs.
3561 (w32_read_socket): Adapt to changes in HELP_EVENTs.
3562
3563 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
3564 input events to queue additional information, instead of consing.
3565
3566 * keyboard.c (kbd_buffer_gcpro): Renamed from
3567 kbd_buffer_frame_or_window. Now used for all Lisp objects
3568 referenced from the input queue.
3569 (kbd_buffer_store_event): Always use structure assignment for
3570 copying input events. Record all Lisp objects referenced from
3571 events in kbd_buffer_gcpro.
3572 (kbd_buffer_get_event): Construct Lisp `help-echo' events
3573 differently from input events. Test for prefix menu_bar_events
3574 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
3575 event in kbd_buffer_gcpro to nil.
3576 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
3577 frame_or_window is equal to its arg member as prefix events.
3578 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
3579 used by an input event to nil.
3580 (init_keyboard): Use two times the size of the input queue
3581 for kbd_buffer_gcpro.
3582 (syms_of_keyboard): Likewise.
3583
3584 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
3585 USER_SIGNAL_EVENT.
3586
3587 * termhooks.h (struct input_event): Add member `arg'.
3588 (MENU_BAR_EVENT): Renamed from menu_bar_event.
3589 (USER_SIGNAL_EVENT): Renamed from user_signal.
3590
3591 * xfaces.c (ASET): Remove definition.
3592
3593 * lisp.h (AREF, ASET, ASIZE): New macros.
3594
3595 * fontset.c (AREF, ASIZE): Remove definitions.
3596
3597 * fns.c (AREF): Remove definition.
3598
3599 * composite.c (AREF): Remove definition.
3600
3601 2000-07-12 Gerd Moellmann <gerd@gnu.org>
3602
3603 * dispnew.c (redraw_overlapped_rows): Add missing local.
3604 (scrolling_window): Remove debug code.
3605
3606 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
3607 Before scrolling, turn off a mouse-highlight in the window
3608 being scrolled.
3609
3610 * xterm.c (x_update_window_end): Add parameter
3611 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
3612 redisplay in XTframe_up_to_date.
3613 (x_clear_mouse_face): New function.
3614 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
3615
3616 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
3617 current glyph row.
3618 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
3619 it when any row is written to that contains glyphs highlighted in
3620 mouse-face.
3621 (update_window): Call the window update end hook with new
3622 parameter MOUSE_FACE_OVERWRITTEN_P.
3623 (direct_output_for_insert): Give up if row contains mouse-face.
3624
3625 * dispextern.h (struct redisplay_interface): Add parameter
3626 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
3627 (clear_mouse_face): New function pointer member.
3628
3629 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
3630
3631 * syntax.c (back_comment): Use one switch rather than a few `if's.
3632 Obey open_paren_in_column_0_is_defun_start.
3633 When reverting to the `slow' method, try to nicely handle the case
3634 of nested comments by checking that the comment-starter we found
3635 does indeed match the comment-ender.
3636 (scan_sexps_forward, scan_sexps_forward):
3637 Ignore excessive opening parenthesis rather than throwing an error.
3638
3639 2000-07-11 Gerd Moellmann <gerd@gnu.org>
3640
3641 * doc.c (Fsubstitute_command_keys): Handle case that a GC
3642 in Fwhere_is_internal or get_keymap_1 relocates string contents.
3643
3644 * dispnew.c (direct_output_forward_char): Give up if currently
3645 displaying a message instead of the minibuffer contents.
3646
3647 * xterm.c (x_update_window_begin): No need to turn off the mouse
3648 highlight here.
3649 (show_mouse_face): Set the mouse_face_p flag of glyph rows
3650 depending on whether they contain glyphs highlighted in
3651 mouse-face.
3652
3653 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
3654 compare the mouse_face_p flags of both rows.
3655
3656 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
3657
3658 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
3659
3660 * keyboard.c (show_help_echo): Accept additional parameter
3661 ok_to_overwrite_keystroke_echo.
3662 (read_char): Call show_help_echo with a zero
3663 ok_to_overwrite_keystroke_echo argument.
3664 * keyboard.h (show_help_echo): Update prototype of
3665 show_help_echo.
3666 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
3667 ok_to_overwrite_keystroke_echo argument.
3668 * w32menu.c (w32_menu_display_help): Call show_help_echo with
3669 non-zero ok_to_overwrite_keystroke_echo argument.
3670
3671 2000-07-10 Gerd Moellmann <gerd@gnu.org>
3672
3673 * xdisp.c (try_window_id): If changes are all below what is
3674 displayed in the window, and point is in the window, we still
3675 might have to find point on the display.
3676
3677 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
3678 glyphs instead of a single one.
3679 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
3680 with new argument list.
3681 (x_set_glyph_string_gc): Make sure the face's GC is valid.
3682
3683 * keymap.c (get_keymap_1): Add comment that this function can GC.
3684 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
3685 comment that functions can GC.
3686 (Fset_keymap_parent): GCPRO arg KEYMAP.
3687
3688 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
3689
3690 * msdos.c (XMenuActivate): After exiting the menu, restore the
3691 echo area message and erase it.
3692
3693 2000-07-10 Kenichi Handa <handa@etl.go.jp>
3694
3695 * fontset.c (Ffontset_info): Make the return value more compatible
3696 with that of Emacs 20.
3697
3698 2000-07-07 Gerd Moellmann <gerd@gnu.org>
3699
3700 * eval.c (Fsignal): Handle case that backtrace_list is null.
3701
3702 2000-07-07 Kenichi Handa <handa@etl.go.jp>
3703
3704 * ccl.c (Fccl_execute): Typo fixed.
3705
3706 2000-07-06 Gerd Moellmann <gerd@gnu.org>
3707
3708 * window.c (window_loop): Add missing gcpro1 local variable.
3709
3710 * window.c (Fwindow_list): Reverse list at the end.
3711 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
3712 means allow windows on OWINDOW's frame, only.
3713 (window_loop): Simplified; use Fwindow_list.
3714
3715 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
3716
3717 2000-07-05 Gerd Moellmann <gerd@gnu.org>
3718
3719 * xterm.c (XTread_socket): Increment handling_signal at the start,
3720 decrement it at the end.
3721
3722 * eval.c (handling_signal): New variable.
3723 (Fsignal): Abort if handling_signal is non-zero.
3724
3725 * lisp.h (handling_signal): External declaration.
3726
3727 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
3728
3729 2000-07-05 Ken Raeburn <raeburn@gnu.org>
3730
3731 Sound support for NetBSD through "Linux emulation" support:
3732 * config.in (HAVE_SOUNDCARD_H): Undef.
3733 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
3734 * Makefile.in (LIBSOUND): New variable.
3735 (LIBES): Include it.
3736 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
3737 <soundcard.h>.
3738 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
3739 elsewhere.
3740 (vox_open): Use DEFAULT_SOUND_DEVICE.
3741 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
3742
3743 2000-07-05 Gerd Moellmann <gerd@gnu.org>
3744
3745 * print.c (print_error_message): If Vsignaling_function is set,
3746 show it in *Messages*.
3747
3748 * lisp.h (Vsignaling_function): External declaration.
3749
3750 * eval.c (Vsignaling_function): New variable.
3751 (Fsignal): Compute it.
3752 (syms_of_eval): Staticpro it.
3753
3754 2000-07-05 Dave Love <fx@gnu.org>
3755
3756 * syswait.h: Use the autoconf recommended approach. Old code
3757 #if'd out in case we need to revert.
3758
3759 * config.in (HAVE_SYS_WAIT_H): Added.
3760
3761 2000-07-05 Andrew Innes <andrewi@gnu.org>
3762
3763 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
3764 when non-NULL instead of __morecore, to take account of buffer
3765 memory. This also solves a problem with spurious memory warnings
3766 on Windows.
3767
3768 * ralloc.c: Make real_morecore non-static.
3769
3770 * eval.c (internal_condition_case): Comment out abort if
3771 interrupt_input_blocked is not zero.
3772
3773 * makefile.nt: Add support for `bootstrap' and related targets.
3774 Include minimal debug info in emacs.exe in release build.
3775 Remove all dependencies on lisp.h, and fixup some others.
3776
3777 * w32.c (init_environment): Install code from 20.7 for providing
3778 default values for environment variables, based on the
3779 executable's own location.
3780 (map_w32_filename): Handle filenames that are longer than
3781 MAX_PATH.
3782 (sys_socket): Install socket inheritance bug fix from 20.7.
3783
3784 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
3785 here via blockinput.h).
3786
3787 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
3788
3789 * w32menu.c (w32_menu_display_help):
3790 * xmenu.c (menu_help_callback): Use show_help_echo.
3791
3792 * keyboard.h (show_help_echo): Declare.
3793
3794 * keyboard.c (show_help_echo): New function, extracted from read_char.
3795 Feval its `msg' argument if it's a cons cell.
3796 (read_char): Use it.
3797 (follow_key): Pass `autoload' to get_keyelt.
3798
3799 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
3800 (note_tool_bar_highlight, XTread_socket):
3801 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
3802 (dos_rawgetc):
3803 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
3804 (note_tool_bar_highlight, w32_read_socket):
3805 Do not gratuitously ignore non-string `help-echo' properties.
3806
3807 2000-07-05 Gerd Moellmann <gerd@gnu.org>
3808
3809 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
3810
3811 * window.c (delete_all_subwindows): Reset Vwindow_list.
3812
3813 * xterm.c (x_append_glyph, x_append_composite_glyph)
3814 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
3815 changes in struct glyph starting 1999-12-27. Some bit-fields of
3816 struct glyph were not set, which made glyphs unequal when compared
3817 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
3818 effects were the result. This also depended on the contents of
3819 memory returned by xmalloc. If flickering happens again, activate
3820 the code in clear_glyph_row that's in #if 0. If the flickering is
3821 gone with that, chances are that it is caused by something
3822 similar.
3823
3824 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
3825
3826 * dispextern.h: Add some comments.
3827
3828 * window.c (add_window_to_list): Add parameter LIST.
3829 (window_list): Order list so that, for each frame, windows are
3830 in canonical order, and so that frames appear in the list in
3831 the order given by Vframe_list.
3832 (next_window): Reverse the handling of NEXT_P.
3833
3834 2000-07-04 Gerd Moellmann <gerd@gnu.org>
3835
3836 * window.c (Vwindow_list): New variable.
3837 (make_window, delete_window): Set Vwindow_list to nil.
3838 (check_window_containing): New function.
3839 (window_from_coordinates): Rewritten.
3840 (add_window_to_list, window_list, candidate_window_p)
3841 (decode_next_window_args, next_window): New functions.
3842 (Fnext_window, Fprevious_window): Rewritten in terms of
3843 next_window.
3844 (Fwindow_list): New function.
3845 (Fother_window): Cleaned up.
3846 (foreach_window): Add a longer "variable argument list". Let
3847 callback function return 0 to indicate that cycling over windows
3848 should stop.
3849 (foreach_window_1): Likewise.
3850 (freeze_window_start): Return int.
3851 (init_window): New function.
3852 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
3853
3854 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
3855 input_event with bzero.
3856 (main): Call init_window.
3857
3858 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
3859 a menu filter.
3860
3861 2000-07-04 Kenichi Handa <handa@etl.go.jp>
3862
3863 * composite.h (make_composition_value_copy): Extern it.
3864
3865 * composite.c (make_composition_value_copy): New function.
3866
3867 * editfns.c (Fformat): While copying text properties, make each
3868 composition property value a copy.
3869
3870 * fns.c (concat): While copying text properties, make each
3871 composition property value a copy.
3872
3873 2000-07-03 Gerd Moellmann <gerd@gnu.org>
3874
3875 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
3876
3877 * fns.c (sweep_weak_table): Mark only objects that are not
3878 marked already.
3879
3880 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
3881 include those frames as candidates which have their focus
3882 redirected to the minibuffer frame.
3883
3884 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
3885
3886 * fns.c (Fputhash): Return `value' rather than nil.
3887
3888 2000-06-30 Gerd Moellmann <gerd@gnu.org>
3889
3890 * frame.c (next_frame): Don't check focus redirection in case
3891 MINIBUF is a window. Doing so excludes frames using MINIBUF
3892 unless their focus is redirected, which contradicts the
3893 specification of next-frame, and leads to infinite loops in
3894 certain situations when cycling through windows with next-window.
3895
3896 2000-06-30 Kenichi Handa <handa@etl.go.jp>
3897
3898 * coding.c (code_convert_region): Even if the length of text is
3899 zero, try to convert it if coding->type is coding_type_ccl.
3900 (decode_coding_string, encode_coding_string): Likewise.
3901
3902 2000-06-28 Gerd Moellmann <gerd@gnu.org>
3903
3904 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
3905 the display if windows_or_buffers_changed.
3906
3907 * dispnew.c (struct row_entry): New structure.
3908 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
3909 (row_table_size, old_lines, new_lines, old_lines_size)
3910 (new_lines_size, run_pool, runs_size, runs): New variables.
3911 (add_row_entry): New function.
3912 (scrolling_window): Use data structures allocated with xmalloc and
3913 held in global variables, instead of allocating them with alloca and
3914 holding them in local variables. Use a larger hash table whose
3915 size depends on glyph matrix sizes. Don't use bzero to clear the
3916 hash table; instead, clear used slots only.
3917
3918 * fns.c (next_almost_prime): Make it externally visible.
3919
3920 * lisp.h (next_almost_prime): Add prototype.
3921
3922 * s/isc4-0.h (sigunblock): Define.
3923
3924 * s/sco5.h (sigunblock): Define.
3925
3926 2000-06-27 Dave Love <fx@gnu.org>
3927
3928 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
3929 (moved to osf5-0.h).
3930 [!NOT_C_CODE]: Protect string.h stuff.
3931
3932 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
3933 (sys_siglist, NSIG): Definitions moved here from osf1.h.
3934
3935 2000-06-27 Gerd Moellmann <gerd@gnu.org>
3936
3937 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3938 below the last line from the needed window height.
3939
3940 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
3941
3942 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
3943 (Fwidget_get): Use it.
3944 (syms_of_fns): Defsubr it.
3945
3946 2000-06-26 Gerd Moellmann <gerd@gnu.org>
3947
3948 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
3949 display info for XIM.
3950 (xim_open_dpy): Likewise.
3951 (xim_close_dpy): Don't free the display info's XIM.
3952
3953 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
3954
3955 * config.in (USE_XIM): New define.
3956
3957 * keymap.c (get_keyelt): For menu-items containing a `:filter
3958 FILTER', apply FILTER to the menu-item's definition to get the
3959 real definition to use.
3960
3961 * lisp.h (QCfilter): External declaration.
3962
3963 * xfns.c (Fimage_size): New function.
3964 (syms_of_xfns): Defsubr it.
3965
3966 2000-06-26 Andreas Schwab <schwab@suse.de>
3967
3968 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
3969 Fstring_as_unibyte.
3970
3971 2000-06-25 Dave Love <fx@gnu.org>
3972
3973 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
3974 tgetnum.
3975
3976 * Makefile.in (blockinput.h): Depend on atimer.h.
3977 (atimer.h): Depend on systime.h.
3978
3979 * blockinput.h: Protect against multiple inclusion. Include
3980 atimer.h.
3981
3982 * atimer.h: Protect against multiple inclusion. Include
3983 systime.h.
3984
3985 * lisp.h (swap_in_global_binding): Declare.
3986
3987 2000-06-24 Ken Raeburn <raeburn@gnu.org>
3988
3989 * process.c (Fopen_network_stream): Turn off atimers for duration
3990 of call to connect. (Patch from Gerd.)
3991
3992 2000-06-23 Dave Love <fx@gnu.org>
3993
3994 * ralloc.c: Maybe include unistd.h
3995
3996 * emacs.c (setgrp): Undefine before defining.
3997 (malloc_warning, set_time_zone_rule, index): Prototype.
3998
3999 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
4000 HAVE_STRUCT_TIMEZONE.
4001
4002 * s/osf1.h: Move string.h hack here from alpha.h and make it
4003 conditional.
4004 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
4005 _XOPEN_SOURCE.
4006 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
4007 (SOCKLEN_TYPE): Don't define.
4008
4009 * m/alpha.h: Remove string.h hack.
4010
4011 * s/osf5-0.h: New file.
4012
4013 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
4014 include time.h, done by systime.h.
4015 [__FreeBSD__]: Remove redundant includes.
4016
4017 * callproc.c (setpgrp): Undefine before defining.
4018 (delete_temp_file): Return Qnil to avoid warning.
4019
4020 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
4021
4022 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
4023 HAVE_X_WINDOWS.
4024
4025 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
4026
4027 * composite.h (compose_text): Declare.
4028
4029 * xterm.c: Don't include sys/types.h unconditionally. Don't
4030 protect its inclusion with !USG (following xmenu.c).
4031
4032 2000-06-23 Gerd Moellmann <gerd@gnu.org>
4033
4034 * xfns.c (x_create_tip_frame): Initialize frame's colors like
4035 in x_create_frame.
4036
4037 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
4038
4039 * coding.c (decode_eol_post_ccl): Special handling for undecided
4040 and inconsistent EOL types.
4041
4042 2000-06-22 Gerd Moellmann <gerd@gnu.org>
4043
4044 * xrdb.c (x_load_resources): Add default resource for scroll bar's
4045 trough color and main window's background color.
4046
4047 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
4048 differently.
4049
4050 * xterm.h (Xt_app_con): External declaration.
4051
4052 * widget.c (EmacsFrameRealize): Fix typo.
4053
4054 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
4055
4056 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
4057 (handle_invisible_prop): Record the start of invisible text in
4058 it->add_overlay_start.
4059 (struct overlay_entry): Add member `overlay'.
4060 (handle_overlay_change): Simplify.
4061 (next_overlay_string): After having processed overlay strings at the
4062 end of the buffer, record that fact in
4063 it->overlay_strings_at_end_processed_p.
4064 (compare_overlay_entries): If before- and after-strings come
4065 from the same overlay, let before-strings come first.
4066 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
4067 (load_overlay_strings): Take it->add_overlay_start into account
4068 when adding overlay strings.
4069
4070 * dispextern.h (struct it): Add member add_overlay_start.
4071
4072 2000-06-22 Dave Love <fx@gnu.org>
4073
4074 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
4075
4076 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
4077
4078 2000-06-22 Kenichi Handa <handa@etl.go.jp>
4079
4080 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
4081 is greater than 0.
4082
4083 2000-06-21 Dave Love <fx@gnu.org>
4084
4085 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
4086
4087 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
4088
4089 * syntax.c (back_comment): Simplify string-parity counting (with
4090 the added benefit of handling multiple string-styles as long as
4091 they are not intertwined).
4092 Jump to the slow code as soon as a comment starter is found in
4093 a "string_lossage" position. Fixes the case: " /* " /* " */.
4094
4095 2000-06-21 Dave Love <fx@gnu.org>
4096
4097 * Makefile.in: Use GETLOADAVG_LIBS.
4098
4099 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
4100 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
4101
4102 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
4103
4104 * syntax.c (describe_syntax): Recognize the `n'estable bit.
4105 (Fforward_comment, scan_lists):
4106 Check the comstyle of single-char comment-starters.
4107 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
4108 we're just at the beginning of the comment (f.ex with (*) ... (*)).
4109 Check the comstyle of single-char comment-starters.
4110 Clarify control-flow around the Scomment case.
4111
4112 2000-06-20 Dave Love <fx@gnu.org>
4113
4114 * fns.c (make_hash_table, maybe_resize_hash_table):
4115 Cast arg of next_almost_prime.
4116
4117 * tparam.c [emacs]: Include lisp.h.
4118
4119 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
4120 and unistd.h.
4121
4122 2000-06-20 Gerd Moellmann <gerd@gnu.org>
4123
4124 * keyboard.c (adjust_point_for_property): Check if display
4125 property should be treated as intangible by looking at its
4126 value.
4127
4128 * xdisp.c (single_display_prop_intangible_p)
4129 (display_prop_intangible_p): New functions.
4130
4131 * dispextern.h (display_prop_intangible_p): Add prototype.
4132
4133 * xdisp.c (dump_glyph_row): Show type of glyph->object.
4134
4135 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
4136 argument to sigprocmask.
4137
4138 * s/sco5.h (sigblock): Redefined to pass a pointer as second
4139 argument to sigprocmask.
4140
4141 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
4142 sigprocmask_set, and pass a pointer to it to sigprocmask.
4143
4144 * sysdep.c (sigprocmask_set): New variable.
4145
4146 * fileio.c (make_temp_name): Don't use `%s' in string passed to
4147 report_file_error.
4148
4149 2000-06-20 Sam Steingold <sds@gnu.org>
4150
4151 * xrdb.c: Don't declare xmalloc, xrealloc.
4152
4153 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
4154
4155 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
4156 (re_comp): Cast gettext return value to avoid complaints when
4157 !HAVE_LIBINTL.
4158
4159 2000-06-20 Dave Love <fx@gnu.org>
4160
4161 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
4162 HAVE_GETTIMEOFDAY.
4163
4164 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
4165
4166 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
4167
4168 * m/alpha.h: Don't declare xmalloc, xrealloc.
4169
4170 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
4171
4172 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
4173
4174 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
4175
4176 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
4177 HAVE_GETWD.
4178
4179 * keyboard.h (poll_for_input_1): Declare.
4180
4181 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
4182
4183 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
4184
4185 * doprnt.c: Don't declare xmalloc, xrealloc.
4186
4187 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
4188 (getenv, ctime, getwd): Removed.
4189 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
4190
4191 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
4192 x_set_tool_bar_lines.
4193
4194 * config.in: Add HAVE_GETWD. Move some definitions above
4195 machine/system includes.
4196
4197 2000-06-20 Kenichi Handa <handa@etl.go.jp>
4198
4199 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
4200
4201 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
4202 contain information about ENCODING.
4203
4204 * fontset.c (FONTSET_ASCII): Use the first element of char table
4205 for an ASCII font, not defalt slot.
4206 (fontset_ref_via_base): If FONTSET doesn't contain information for
4207 C, try the default fontset.
4208 (make_fontset): Don't copy the default fontset.
4209 (fontset_font_pattern): Likewise.
4210 (accumulate_font_info): If ELT is nil, use the corresponding
4211 element in the default fontset.
4212
4213 2000-06-19 Dave Love <fx@gnu.org>
4214
4215 * syntax.c (Fparse_partial_sexp): Doc fix.
4216
4217 * regex.h: Test PROTOTYPES as well as __STDC__.
4218
4219 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
4220 errno, strerror. Put text after #endif in comment.
4221
4222 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
4223 pcc).
4224
4225 * xterm.c (x_frame_of_widget): Likewise.
4226
4227 2000-06-19 Gerd Moellmann <gerd@gnu.org>
4228
4229 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
4230 to Vfundamental_mode_abbrev_table.
4231
4232 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
4233 bogus objects are marked. This slows down GC by ~80 percent, but
4234 it might be worth trying when debugging GC-related problems.
4235 This feature requires conservative stack marking to be enabled.
4236
4237 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
4238 returns XLookupChars, reset `modifiers' to zero.
4239
4240 2000-06-19 Dave Love <fx@gnu.org>
4241
4242 * mktime.c: Unprotoized.
4243
4244 2000-06-19 Richard Stallman <rms@gnu.org>
4245
4246 * data.c (set_internal): If variable is frame-local,
4247 store the new value immediately into the frame parameter alist.
4248
4249 2000-06-19 Ken Raeburn <raeburn@gnu.org>
4250
4251 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
4252 in the custom handler pointer.
4253
4254 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
4255 value, or checks for CHAR_META can fail when Lisp_Object is a
4256 union type.
4257 * keymap.c (get_keyelt): Likewise.
4258
4259 2000-06-19 Kenichi Handa <handa@etl.go.jp>
4260
4261 * ccl.h (struct ccl_program): New member eol_type.
4262 (struct ccl_spec): New member cr_carryover.
4263
4264 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
4265 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
4266
4267 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
4268 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
4269 (decode_eol_post_ccl): New function.
4270 (decode_coding): Don't detect EOL format here for CCL based coding
4271 systems.
4272 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
4273 decode_eol_post_ccl after running the CCL program.
4274 (code_convert_region): Don't detect EOL format here for CCL based
4275 coding systems.
4276 (decode_coding_string): Likewise.
4277
4278 2000-06-18 Ken Raeburn <raeburn@gnu.org>
4279
4280 * charset.c (update_charset_table): Use XINT on "iso_final_char"
4281 when treating it as an integer.
4282
4283 * coding.h (encode_coding_string): Declare.
4284
4285 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
4286 it as an integer.
4287
4288 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
4289 "xkeymap" to avoid shadowing the "enum map_type" value that needs
4290 to be passed to get_local_map.
4291
4292 * sound.c (Fplay_sound): Don't call make_number on
4293 Frun_hook_with_args count argument.
4294
4295 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
4296 for lisp objects in X event structure data field, when lisp
4297 objects are represented with unions.
4298 (x_scroll_bar_to_input_event): Ditto.
4299
4300 2000-06-16 Ken Raeburn <raeburn@gnu.org>
4301
4302 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
4303 termination of string. Fix sense of test whether
4304 Vline_number_display_limit is an integer.
4305
4306 2000-06-16 Gerd Moellmann <gerd@gnu.org>
4307
4308 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
4309 only if HAVE_X_WINDOWS.
4310
4311 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
4312 of titles.
4313
4314 * dispnew.c (update_frame_1): Handle case that cursor vpos is
4315 out of bounds.
4316
4317 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
4318
4319 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
4320 of its headers.
4321
4322 2000-06-15 Kenichi Handa <handa@etl.go.jp>
4323
4324 * coding.c (decode_coding_emacs_mule): Always set src_base at the
4325 start of the while loop.
4326
4327 2000-06-15 Gerd Moellmann <gerd@gnu.org>
4328
4329 * atimer.c (alarm_signal_handler): Add forward declaration.
4330
4331 * data.c (set_internal): Remove debug code.
4332
4333 2000-06-14 Gerd Moellmann <gerd@gnu.org>
4334
4335 * Makefile.in (bootstrap-temacs): Add `-I../src'.
4336
4337 * unexec.c (toplevel) [COFF]: Include coff.h.
4338
4339 * s/lynxos.h: New file.
4340
4341 * keymap.c (Fsingle_key_description): Enclose function key and
4342 event symbol names in angle brackets.
4343
4344 * xdisp.c (setup_echo_area_for_printing): Call
4345 message_log_maybe_newline if message_buf_print is not set.
4346
4347 * print.c (printchar, strout): Don't check message_buf_print
4348 before calling setup_echo_area_for_printing because that
4349 function does something useful even when message_buf_print is
4350 already set.
4351
4352 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
4353 variables.
4354 (ensure_echo_area_buffers): Initialize echo buffer's
4355 truncate lines setting to nil.
4356 (with_echo_area_buffer): Don't set the echo buffer's truncate
4357 lines setting here.
4358 (set_message_1): Set it here instead, based on the value
4359 of message_truncate_lines.
4360 (resize_mini_window): Handle case that lines are truncated.
4361 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
4362 message-truncate-lines.
4363
4364 * keyboard.c (read_char): Bind message-truncate-lines to t
4365 while displaying a help-echo.
4366
4367 * lisp.h (Qmessage_truncate_lines): External declaration.
4368
4369 2000-06-13 Gerd Moellmann <gerd@gnu.org>
4370
4371 * xdisp.c (Vline_number_display_limit): Renamed from
4372 line_number_display_limit.
4373 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
4374 Extend documentation string. Initialize
4375 Vline_number_display_limit to nil meaning no limit.
4376 (decode_mode_spec): Use Vline_number_display_limit with its new
4377 meaning.
4378
4379 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
4380
4381 2000-06-13 Richard Stallman <rms@gnu.org>
4382
4383 * frame.c (Fmodify_frame_parameters): Doc fix.
4384
4385 * xfns.c (x_set_frame_parameters): Comment fix.
4386
4387 * frame.c (store_frame_param): Call swap_in_global_binding if the
4388 variable's current binding was chosen based on this frame.
4389
4390 * data.c (swap_in_global_binding): New function.
4391
4392 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
4393
4394 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
4395 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
4396
4397 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
4398
4399 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
4400
4401 2000-06-12 Jason Rumney <jasonr@gnu.org>
4402
4403 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
4404
4405 * w32.h (EMACS_W32_H): Renamed from _NT_H_
4406
4407 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
4408
4409 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
4410
4411 2000-06-12 Gerd Moellmann <gerd@gnu.org>
4412
4413 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
4414 (syms_of_xfaces): Defsubr Sdump_colors.
4415 (x_free_colors): Don't treat b&w specially on default visual.
4416 (x_free_dpy_colors): New function.
4417 (free_face_colors): Don't check visual class; it's done
4418 in x_free_colors.
4419
4420 * xterm.c (x_frame_of_widget): New function.
4421 (x_alloc_nearest_color_for_widget): Use it.
4422 (x_copy_dpy_color): New function.
4423 (x_destroy_window): Free various colors.
4424
4425 2000-06-12 Kenichi Handa <handa@etl.go.jp>
4426
4427 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
4428
4429 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
4430
4431 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
4432
4433 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
4434
4435 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
4436
4437 2000-06-11 Dave Love <fx@gnu.org>
4438
4439 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
4440
4441 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
4442
4443 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
4444
4445 2000-06-11 Gerd Moellmann <gerd@gnu.org>
4446
4447 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
4448 to `XEvent *'.
4449
4450 2000-06-10 Kenichi Handa <handa@etl.go.jp>
4451
4452 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
4453 (regex_compile): Fix the code for handling the case of single byte
4454 char and multibyte char being mixed in a range within [...].
4455
4456 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
4457 and dst_multibyte members of coding.
4458
4459 * charset.c (update_charset_table): Update the table
4460 bytes_by_char_head.
4461 (init_charset_once): Initialize elements of bytes_by_char_head to
4462 1 except for leading codes for private charases.
4463
4464 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
4465 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
4466 sequence.
4467
4468 2000-06-09 Ken Raeburn <raeburn@gnu.org>
4469
4470 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
4471 access the data it doesn't point to.
4472
4473 2000-06-08 Gerd Moellmann <gerd@gnu.org>
4474
4475 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
4476 will be translated to a switch-frame event when reading the
4477 event queue. This is necessary because Emacs otherwise won't
4478 perform a switch-frame to a new frame until some other event, for
4479 example a keystroke event, forces it to do so. This has various
4480 effects, one visible being that the cursor of a frame created with
4481 C-x 5 2 or switched to with a window manager key binding like
4482 A-TAB stays hollow because selected_window isn't on the newly
4483 focused frame until the switch-frame is performed.
4484
4485 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
4486 generating a switch-frame event if necessary.
4487
4488 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
4489
4490 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
4491 it's an integer.
4492
4493 2000-06-08 Kenichi Handa <handa@etl.go.jp>
4494
4495 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
4496 charset.
4497
4498 2000-06-07 Gerd Moellmann <gerd@gnu.org>
4499
4500 * window.c (displayed_window_lines): Take empty lines at
4501 the bottom of a window into account.
4502
4503 * window.c (displayed_window_lines): New function.
4504 (Fmove_to_window_line): Use displayed_window_lines to determine
4505 the number of lines to move, instead of using the window's height.
4506
4507 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
4508 to stop reading, even if the form read sets point to a different
4509 value when evaluated.
4510
4511 * xdisp.c (display_line): Fix code deciding in which line to
4512 put the cursor.
4513
4514 2000-06-07 Kenichi Handa <handa@etl.go.jp>
4515
4516 * fileio.c (e_write): Free composition data if stored in
4517 coding->cmp_data.
4518
4519 2000-06-06 Gerd Moellmann <gerd@gnu.org>
4520
4521 * xdisp.c (display_line): Set row's and iterator's
4522 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
4523 Set cursor even if row ends in the middle of a character.
4524 (dump_glyph_row): Print values of new flags.
4525 (redisplay_window) <cursor movement in unchanged window>: When
4526 point has been moved forward, and PT is at the end of the cursor
4527 row, don't place the cursor in the next row if the cursor row ends
4528 in the middle of a character or at ZV.
4529
4530 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
4531 (struct glyph_row): Add starts_in_middle_of_char_p and
4532 ends_in_middle_of_char_p.
4533 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
4534 ends_in_middle_of_char_p flag.
4535 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
4536
4537 * term.c (append_glyph): Revert change of 2000-06-06.
4538
4539 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
4540 padding glyph not fitting on line as whole character not
4541 fitting on line.
4542
4543 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
4544 this isn't true for images with `:ascent 100'.
4545
4546 2000-06-06 Kenichi Handa <handa@etl.go.jp>
4547
4548 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
4549 as modified if it is originally unmodified.
4550
4551 * term.c (encode_terminal_code): Change the way to check if
4552 terminal coding does any conversion.
4553 (append_glyph): Set glyph->pixel_width correctly.
4554
4555 * xdisp.c (display_line): While checking line continuation, pay
4556 attention to a padding glyph.
4557
4558 2000-06-05 Gerd Moellmann <gerd@gnu.org>
4559
4560 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
4561
4562 2000-06-05 Dave Love <fx@gnu.org>
4563
4564 * xdisp.c: Include fontset.h.
4565
4566 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
4567
4568 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
4569
4570 * dispnew.c: Conditionally include term.h.
4571
4572 * coding.h: Declare code_convert_string_norecord.
4573
4574 * frame.h (struct frame): Use volatile unconditionally.
4575
4576 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
4577
4578 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
4579
4580 * systime.h: Protect against multiple inclusion.
4581 (timezone) [USG5_4]: Define as time_t.
4582
4583 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
4584 (Foptimize_char_table, make_temp_name): Declare.
4585
4586 * Makefile.in (xdisp.o): Depend on fontset.h.
4587
4588 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
4589
4590 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
4591 (Foptimize_char_table, make_temp_name): Declare.
4592
4593 * s/irix4-0.h:
4594 * s/irix5-0.h:
4595 * s/netbsd.h: Don't define autoconfiscated MATHERR.
4596
4597 2000-06-02 Dave Love <fx@gnu.org>
4598
4599 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
4600
4601 2000-06-02 Gerd Moellmann <gerd@gnu.org>
4602
4603 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
4604 result face, set flags in that face indicating that colors may not
4605 be freed.
4606
4607 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
4608 glyph, use the ASCII NUL character to determine the face.
4609
4610 2000-06-02 Dave Love <fx@gnu.org>
4611
4612 * sysdep.c: Conditionally include stdlib.h, unistd.h.
4613 (VFORK_RETURN_TYPE): Remove.
4614
4615 * config.in: Add NO_MATHERR.
4616
4617 2000-06-01 Dave Love <fx@gnu.org>
4618
4619 * cmds.c (internal_self_insert): Don't check
4620 Vbefore_change_function, Vafter_change_function.
4621
4622 * insdel.c (signal_before_change, signal_after_change): Likewise.
4623
4624 * buffer.c (Vbefore_change_function, Vafter_change_function):
4625 Variables and their initializations deleted.
4626
4627 * callint.c (Fcall_interactively): Doc fix.
4628
4629 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
4630
4631 2000-05-31 Dave Love <fx@gnu.org>
4632
4633 * textprop.c: Revert last change -- duplicated.
4634
4635 2000-05-31 Gerd Moellmann <gerd@gnu.org>
4636
4637 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
4638 in #if 0.
4639
4640 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
4641
4642 2000-05-31 Jason Rumney <jasonr@gnu.org>
4643
4644 * search.c (Fre_search_forward, Fre_search_backward)
4645 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
4646
4647 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
4648
4649 2000-05-30 Jason Rumney <jasonr@gnu.org>
4650
4651 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
4652 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
4653
4654 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
4655 member.
4656
4657 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
4658 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
4659 expand a nil default_filename.
4660
4661 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
4662 pointer to glyph_to_pixel_coords, not a frame.
4663
4664 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
4665 coding.h to dependencies.
4666
4667 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
4668
4669 * w32console.c (glyph_to_pixel_coords): Change first parameter to
4670 window pointer to be consistent with w32term.c and xterm.c.
4671
4672 * w32fns.c: Format and doc changes to bring closer to xfns.c.
4673 (VIETNAMESE_CHARSET): Define if not defined in system headers.
4674 (Qline_spacing, Qcenter): New variables.
4675 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
4676 (x_set_line_spacing): New function.
4677 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
4678 macros.
4679 (x_specified_cursor_type): New function.
4680 (x_set_cursor_type): Use it.
4681 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
4682 and icon strings.
4683 (validate_x_resource_name, x_get_resource_string): Measure lengths
4684 of external strings in bytes.
4685 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
4686 GetTextExtentPoint32 with NULL title.
4687 (Fx_create_frame): Initialize Qline_spacing.
4688 (w32_load_system_font): Initialize font->double_byte_p.
4689 (x_to_w32_charset): Use Vw32_charset_info_alist.
4690 (Image, busy cursor, tooltip functions): Merged changes from
4691 xfns.c. Not yet functional on Windows.
4692
4693 * w32gui.h (W32FontStruct): Add double_byte_p member.
4694
4695 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
4696 (emacs_button_translation): Use it.
4697 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
4698 in `mask' to be set.
4699
4700 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
4701 menu strings.
4702
4703 * w32term.c: Format and doc changes to bring closer to xterm.c.
4704 (w32_char_font_type): New enum.
4705 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
4706 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
4707 (w32_encode_char): New function.
4708 (x_encode_char): Removed.
4709 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
4710 x_encode_char and w32_font_is_double_byte.
4711 (x_produce_image_glyph): Use image_ascent.
4712 (x_produce_glyphs): Use new version of w32_per_char_metric and
4713 handle NULL return value. Allow extra line spacing.
4714 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
4715 (w32_get_glyph_overhangs): Remove unicode_p param. Use
4716 w32_font_type member of glyph instead.
4717 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
4718 (fast_find_position): Make sure not to consider rows not visible
4719 in the window.
4720 (w32_read_socket) [WM_MENUSELECT]: Cannot call
4721 w32_menu_display_help with input blocked, as it can abort.
4722 (x_display_and_set_cursor): Choose cursor depending
4723 on buffer-local value of cursor_type.
4724 (x_draw_bar_cursor): Add parameter WIDTH.
4725
4726 * w32term.h (CP_DEFAULT): Define.
4727 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
4728
4729 2000-05-30 Gerd Moellmann <gerd@gnu.org>
4730
4731 * search.c (Fre_search_forward, Fre_search_backward)
4732 (Fposix_search_backward, Fposix_search_forward): Doc fix.
4733
4734 2000-05-30 Kenichi Handa <handa@etl.go.jp>
4735
4736 * coding.c (detect_coding_iso2022): Fix code for checking
4737 CODING_CATEGORY_MASK_ISO_8_2.
4738
4739 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
4740
4741 * regex.c (PREFETCH_NOLIMIT): New function.
4742 (re_match_2_internal): Use it and adjust the end_match_2 logic.
4743
4744 2000-05-29 Gerd Moellmann <gerd@gnu.org>
4745
4746 * syntax.c (find_defun_start): Move test for
4747 open_paren_in_column_0_is_defun_start outside of the loop.
4748
4749 * xdisp.c (redisplay_window): Really switch buffers when
4750 displaying mode lines, and temporarily set selected_frame to the
4751 frame of the window that's redisplayed.
4752
4753 * xfaces.c (free_realized_faces): Block/unblock input.
4754 (free_realized_multibyte_face): Ditto.
4755
4756 2000-05-29 Dave Love <fx@gnu.org>
4757
4758 * textprop.c (Qkeymap): New variable.
4759 (syms_of_textprop): Intern it.
4760
4761 * keymap.c: Include intervals.h.
4762 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
4763
4764 * Makefile.in (keymap.o): Depend on intervals.h.
4765
4766 * keyboard.c (menu_bar_items, tool_bar_items)
4767 (Fexecute_extended_command): Deal with `keymap' property.
4768 (read_key_sequence): Track map from `keymap' property as well as
4769 `local_map'.
4770
4771 * intervals.c (get_local_map): Extra arg to allow looking for
4772 `keymap' too.
4773
4774 * intervals.h (map_property): New enum.
4775 (get_local_map): Extra arg using it.
4776 (Qkeymap): Declare.
4777
4778 * lisp.h (get_local_map): Don't declare here.
4779
4780 2000-05-29 Kenichi Handa <handa@etl.go.jp>
4781
4782 * Makefile.in (callproc.o): Depend on composite.h.
4783
4784 * callproc.c: Include composite.h.
4785 (Fcall_process): Handle composition correctly.
4786
4787 * coding.h (coding_allocate_composition_data): Extern it.
4788 (coding_restore_composition): Likewise.
4789
4790 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
4791 yet allocated, finish decoding with result
4792 CODING_FINISH_INSUFFICIENT_CMP.
4793 (coding_allocate_composition_data): Make it non-static.
4794 (coding_restore_composition): Likewise.
4795
4796 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
4797
4798 * charset.c (syms_of_charset): Revert last change.
4799
4800 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
4801
4802 * term.c (produce_glyphs): Treat characters from the eight-bit-*
4803 charsets as unibyte, with 1-column screen width. Sent by Kenichi
4804 Handa.
4805
4806 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
4807
4808 * charset.c (syms_of_charset): Set width of character sets
4809 eight-bit-control and eight-bit-graphic to 1 column.
4810
4811 2000-05-26 Gerd Moellmann <gerd@gnu.org>
4812
4813 * config.in (HAVE_SPEED_T): New define.
4814
4815 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
4816 `extern speed_t'.
4817
4818 2000-05-26 Dave Love <fx@gnu.org>
4819
4820 * coding.c (shrink_decoding_region): Initialize eol_conversion.
4821
4822 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
4823 (Fsubr_arity): New function.
4824 (syms_of_data): Install them.
4825
4826 2000-05-26 Kenichi Handa <handa@etl.go.jp>
4827
4828 * charset.c (init_charset_once): Set the table bytes_by_char_head
4829 correctly.
4830
4831 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
4832 the default fontset to what Emacs uses by default.
4833 (check_registry_encoding): This function deleted.
4834 (Fset_fontset_font): Remove the adhoc condition for the default
4835 fontset. Allow cons in FONTNAME.
4836
4837 * fns.c (map_char_table): Ignore char-table entries for
4838 charsets eight-bit-control and eight-bit-graphic.
4839
4840 2000-05-25 Ken Raeburn <raeburn@gnu.org>
4841
4842 * emacs.c (main): Initialize keyboard syms before initializing
4843 window code, so face names are available.
4844
4845 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
4846
4847 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
4848 of an anchor at the beginning of a shy-group.
4849
4850 2000-05-25 Gerd Moellmann <gerd@gnu.org>
4851
4852 * xdisp.c (handle_invisible_prop): Don't try to skip over
4853 invisible text if end of text is already reached.
4854
4855 2000-05-25 Dave Love <fx@gnu.org>
4856
4857 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
4858
4859 * coding.c (encode_eol): Add null statement after label.
4860
4861 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
4862
4863 * w16select.c (Fw16_set_clipboard_data): Fix the change from
4864 2000-05-20.
4865
4866 2000-05-25 Kenichi Handa <handa@etl.go.jp>
4867
4868 * ccl.c (ccl_driver): Fix previous change.
4869
4870 2000-05-25 Kenichi Handa <handa@etl.go.jp>
4871
4872 * coding.c (run_pre_post_conversion_on_str): Set point to the
4873 beginning of buffer before calling coding->post_read_conversion.
4874 (decode_coding_string): Give correct args to
4875 run_pre_post_conversion_on_str.
4876 (encode_coding_string): Likewise.
4877
4878 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
4879 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
4880 eight-bit-graphic correctly.
4881
4882 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
4883
4884 * fileio.c (Finsert_file_contents): Even if a file is not found,
4885 execute codes for setting up coding system. Call
4886 after-insert-file-functions unconditionally.
4887
4888 2000-05-24 Gerd Moellmann <gerd@gnu.org>
4889
4890 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
4891 BSD_PGRPS are not defined.
4892
4893 2000-05-24 Kenichi Handa <handa@etl.go.jp>
4894
4895 * charset.c (update_charset_table): Accept nil in LONG_NAME and
4896 DESCRIPTION.
4897 (syms_of_charset): Avoid building same strings.
4898
4899 2000-05-23 Gerd Moellmann <gerd@gnu.org>
4900
4901 * lread.c (Fload): Add a comment about the meaning of
4902 Vuser_init_file being t.
4903
4904 * puresize.h (BASE_PURESIZE): Increase to 675000.
4905
4906 * s/gnu-linux.h (setpgrp): Don't define it here because this
4907 prevents compilation on GNU/Linux systems with glib 2.2.
4908
4909 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
4910 as setpgid.
4911
4912 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
4913
4914 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
4915 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
4916 version.
4917 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
4918
4919 2000-05-23 Kenichi Handa <handa@etl.go.jp>
4920
4921 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
4922 unconditionally.
4923
4924 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
4925
4926 * term.c (encode_terminal_code): Set coding->src_multibyte
4927 properly.
4928
4929 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
4930
4931 2000-05-22 Kenichi Handa <handa@etl.go.jp>
4932
4933 * keyboard.c (read_char): Allow character codes 128..255 to be
4934 handled by input-method-function.
4935
4936 * insdel.c (adjust_markers_for_replace): Fix previous change.
4937 (adjust_after_replace): If PREV_TEXT is nil, call
4938 adjust_markers_for_insert, not adjust_markers_for_replace.
4939
4940 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
4941
4942 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
4943 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
4944 [HAVE_GRANDPT]: Define.
4945 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
4946
4947 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
4948 like SYSV_PTYS.
4949
4950 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
4951
4952 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
4953
4954 2000-05-20 Kenichi Handa <handa@etl.go.jp>
4955
4956 The following changes are to handle 8-bit characters in a
4957 multibyte buffer/string without facing with byte combining
4958 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
4959 eight-bit-graphic (for 0xA0..0xFF) are introduced.
4960
4961 * Makefile.in (fns.o): Depend on charset.h.
4962
4963 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
4964 convert it to unibyte.
4965 (make_string): Use parse_str_as_multibyte, not chars_in_text.
4966
4967 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
4968 apparent char boundary.
4969 (Fset_buffer_multibyte): Convert 8-bit characters in the range
4970 0x80..0x9F to/from multibyte form.
4971
4972 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
4973 to unibyte.
4974
4975 * callproc.c (Fcall_process): Always encode an argument string if
4976 it is multibyte. Setup src_multibyte and dst_multibyte members of
4977 process_coding properly.
4978
4979 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
4980 SPLIT_NON_ASCII_CHAR.
4981
4982 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
4983 as is.
4984 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
4985
4986 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
4987 variables.
4988 (SPLIT_CHARACTER_SEQ): This macro deleted.
4989 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
4990 valid.
4991 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
4992 and eight-bit-graphic.
4993 (char_to_string): Likewise. Signal an error for too large
4994 character code.
4995 (char_printable_p): Return 0 for 8-bit characters.
4996 (update_charset_table): Update iso_charset_table only when a final
4997 character is non-negative.
4998 (find_charset_in_text): Renamed from find_charset_in_str.
4999 Arguments and return value changed. Callers changed.
5000 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
5001 be -1 if CHARSET is used only internally.
5002 (Fmake_char_internal): Handle new charsets; eight-bit-control and
5003 eight-bit-graphic.
5004 (Fcharset_after): Simplified.
5005 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
5006 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
5007 (multibyte_chars_in_text): Simplified by assuming there's no
5008 invalid multibyte sequence.
5009 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
5010 str_as_unibyte): New functions.
5011 (Fstring): Simpified by assuming that byte combining never
5012 happens.
5013 (init_charset_once): Initialization for
5014 LEADING_CODE_8_BIT_CONTROL.
5015 (syms_of_charset): Intern and staticpro Qeight_bit_control and
5016 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
5017 eight-bit-control and eight-bit-graphic.
5018
5019 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
5020 CHARSET_8_BIT_GRAPHIC): New macros.
5021 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
5022 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
5023 (CHARSET_REVERSE_CHARSET): Likewise.
5024 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
5025 eight-bit-graphic.
5026 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
5027 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
5028 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
5029 encounter an invalid multibyte sequence.
5030 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
5031 sequence is always valid.
5032 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
5033 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
5034 macros.
5035 (CHAR_STRING): For 8-bit characters, call char_to_string.
5036 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
5037 multibyte sequence is always valid.
5038 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
5039 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
5040 str_as_unibyte): Extern them.
5041 (BCOPY_SHORT): Fix a bug.
5042 (CHAR_LEN): This macro deleted. Callers changed to use
5043 CHAR_BYTES.
5044 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
5045 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
5046 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
5047
5048 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
5049 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
5050 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
5051 EMIT_BYTES): New macros.
5052 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
5053 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
5054 macros deleted.
5055 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
5056 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
5057 check the validity of multibyte sequence.
5058 (decode_coding_emacs_mule): New function.
5059 (encode_coding_emacs_mule): New macro.
5060 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
5061 the source.
5062 (DECODE_ISO_CHARACTER): Just return a character code.
5063 (DECODE_COMPOSITION_START): Set coding->result instead of result.
5064 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
5065 EMIT_CHAR to produced decoded characters. Exit the loop only by
5066 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
5067 block here.
5068 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
5069 only position codes for an invalid character.
5070 (encode_designation_at_bol): Return new destination pointer. 5th
5071 arg DSTP is changed to DST.
5072 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
5073 from the source by ONE_MORE_CHAR. Don't handle the case of last
5074 block here.
5075 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
5076 macros deleted.
5077 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
5078 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
5079 TWO_MORE_BYTES to fetch a byte from the source.
5080 (encode_eol): Pay attention to coding->src_multibyte.
5081 (detect_coding, detect_eol): Preserve members src_multibyte and
5082 dst_multibyte.
5083 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
5084 (encoding_buffer_size): Set magnification to 3 for all coding
5085 systems that require encoding.
5086 (ccl_coding_driver): For decoding, be sure that the result is
5087 valid multibyte sequence.
5088 (decode_coding): Initialize coding->errors and coding->result.
5089 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
5090 and raw-text, always call decode_eol. Handle the case of last
5091 block here. If not coding->dst_multibyte, convert the resulting
5092 sequence to unibyte.
5093 (encode_coding): Initialize coding->errors and coding->result.
5094 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
5095 and raw-text, always call encode_eol. Handle the case of last
5096 block here.
5097 (shrink_decoding_region, shrink_encoding_region): Detect cases
5098 that we can't skip data more rigidly.
5099 (code_convert_region): Setup src_multibyte and dst_multibyte
5100 members of coding. For decoding, if the buffer is multibyte,
5101 convert the source sequence to unibyte in advance. For encoding,
5102 if the buffer is multibyte, convert the resulting sequence to
5103 multibyte afterward.
5104 (run_pre_post_conversion_on_str): New function.
5105 (code_convert_string): Deleted and divided into the following two.
5106 (decode_coding_string, encode_coding_string): New functions.
5107 (code_convert_string1, code_convert_string_norecord): Call one of
5108 above.
5109 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
5110 MAKE_NON_ASCII_CHAR.
5111 (Fset_terminal_coding_system_internal,
5112 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
5113 and dst_multibyte members.
5114 (init_coding_once): Initialize iso_code_class with new enum
5115 ISO_control_0 and ISO_control_1.
5116
5117 * coding.h (enum iso_code_class_type): Member ISO_control_code is
5118 devided into ISO_control_0 and ISO_control_1.
5119 (struct coding_system): New members src_multibyte, dst_multibyte,
5120 errors, and result. Delete member fake_multibyte.
5121 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
5122 nonzero.
5123 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
5124 nonzero.
5125
5126 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
5127 (Faset): Likewise.
5128
5129 * editfns.c (Fformat): Be sure to convert 8-bit characters to
5130 multibyte form.
5131 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
5132 combining occurs.
5133 (Ftranspose_region): Delete codes for handling byte combining.
5134
5135 * fileio.c (Finsert_file_contents): Setup src_multibyte and
5136 dst_multibyte members of coding. On handling REPLACE on unibyte
5137 buffer, convert the result of decode_coding to unibyte. On
5138 inserting into a mutibyte buffer, always call code_convert_region.
5139 (e_write): Setup coding->src_multibyte according to the
5140 multibyteness of the source (buffer or string).
5141
5142 * fns.c (concat): Handle 8-bit characters correctly.
5143 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
5144 unibyte in the result.
5145 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
5146 valid multibyte form in the result.
5147 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
5148 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
5149 return -1, signal an error.
5150 (base64_encode_1): New arg MULTIBYTE. Get each character by
5151 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
5152 character is found, return -1.
5153 (Fbase64_decode_region): Delete codes for handling byte-combining.
5154 Treat each decoded byte as a unibyte character.
5155 (Fbase64_decode_string): Return unibyte string.
5156 (Fcompare_strings, concat, string_byte_to_char): Use
5157 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
5158 FETCH_STRING_CHAR_ADVANCE.
5159 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
5160 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
5161
5162 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
5163 SPLIT_NON_ASCII_CHAR.
5164 (fontset_ref_via_base, fontset_set): Likewise
5165
5166 * insdel.c (adjust_markers_for_record_delete): Deleted.
5167 (adjust_markers_for_insert): Argument changed. Caller changed.
5168 (adjust_markers_for_replace): Likewise.
5169 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
5170 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
5171 (copy_text): Delete unused local varialbe c_save. For converting
5172 to multibyte, be sure to make all 8-bit characters in valid
5173 multibyte form.
5174 (count_size_as_multibyte): Handle 8-bit characters correctly.
5175 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
5176 adjust_after_replace, replace_range, del_range_2)
5177 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
5178 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
5179 adjust_after_replace, replace_range, del_range_2) Delete codes for
5180 handling byte combining.
5181 (adjust_before_replace): Deleted.
5182
5183 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
5184 SPLIT_NON_ASCII_CHAR.
5185 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
5186 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
5187 unconditionally.
5188 (Fkey_description): Likewise.
5189
5190 * lread.c (read1): On reading multibyte string, be sure to make
5191 all 8-bit chararacters in valid multibyte form.
5192 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
5193
5194 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
5195 unconditionally.
5196
5197 * process.c (Fstart_process): GCPRO current_dir before calling
5198 Ffind_operation_coding_system. Encode arguments here.
5199 (create_process): Don't encode arguments here. Setup
5200 src_multibyte and dst_multibyte members of struct coding.
5201 (read_process_output): Setup src_multibyte and dst_multibyte
5202 members of struct coding. If the output is to multibyte buffer,
5203 always decode the output of the process. Adjust the
5204 representation of 8-bit characters to the multibyteness of the
5205 output.
5206 (send_process): Setup coding->src_multibyte according to the
5207 multibyteness of the source.
5208
5209 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
5210 unconditionally.
5211 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
5212 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
5213
5214 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
5215 CHAR_LEN.
5216
5217 * w16select.c (Fw16_set_clipboard_data): Setup members
5218 src_multibyte and dst_multibyte of coding. Adjusted for the
5219 change for find_charset_in_str.
5220 (Fw16_get_clipboard_data): Likewise.
5221
5222 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
5223 dst_multibyte of coding.
5224 (x_to_w32_font): Likewise.
5225
5226 * w32select.c (Fw32_set_clipboard_data): Setup members
5227 src_multibyte and dst_multibyte of coding. Adjusted for the
5228 change for find_charset_in_str.
5229 (Fw32_get_clipboard_data): Likewise.
5230
5231 * xdisp.c (get_next_display_element): Handle 8-bit characters
5232 correctly.
5233 (next_element_from_display_vector): Use CHAR_BYTES instead of
5234 CHAR_LEN.
5235 (disp_char_vector): Use SPLIT_CHAR instead of
5236 SPLIT_NON_ASCII_CHAR.
5237
5238 * xselect.c (selection_data_to_lisp_data): Setup members
5239 src_multibyte and dst_multibyte of coding. Adjusted for the
5240 change for find_charset_in_str.
5241 (lisp_data_to_selection_data): Likewise.
5242
5243 2000-05-19 Gerd Moellmann <gerd@gnu.org>
5244
5245 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
5246 buffer.
5247
5248 * dispextern.h (Vimage_types): Add extern declaration.
5249
5250 * xdisp.c (Vimage_types): Moved here from xfns.c.
5251 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
5252
5253 * xfns.c (Vimages_types): Moved to xdisp.c.
5254 (syms_of_xfns): Move `image-types' to xdisp.c.
5255
5256 * w32fns.c (Vimage_types): Removed.
5257 (syms_of_w32fns): Remove `image-types'.
5258
5259 2000-05-18 Kenichi Handa <handa@etl.go.jp>
5260
5261 * fns.c (map_char_table): Pay attention to character number of
5262 charset. Check the validity of charset at the first level. For
5263 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
5264 the default value.
5265
5266 * fontset.c: Include "buffer.h".
5267 (fs_load_font): If the face has fontset, record the face ID in
5268 that fontset.
5269 (Finternal_char_font): New function.
5270 (accumulate_font_info): New function.
5271 (Ffontset_info): Rewritten for the new fontset implementation.
5272 (syms_of_fontset): Register Vdefault_fontset in the first element
5273 of Vfontset_table. Include Vdefault_fontset in
5274 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
5275 function.
5276
5277 2000-05-16 Dave Love <fx@gnu.org>
5278
5279 * m/iris5d.h: Deleted -- unused.
5280
5281 2000-05-16 Gerd Moellmann <gerd@gnu.org>
5282
5283 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
5284 `invalid' instead of `illegal'.
5285
5286 * indent.c (Fmove_to_column): When ending within a tab, insert
5287 spaces first so that markers at the end of the tab get adjusted.
5288
5289 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
5290 buffer list that wasn't selected in that frame.
5291
5292 * filelock.c (get_boot_time): To obtain an 8 char file name, which
5293 is needed on mescaline, use a 2 char prefix, and call
5294 make_temp_name with second arg non-zero.
5295
5296 * fileio.c (make_temp_name): New function, extracted from
5297 Fmake_temp_name.
5298 (Fmake_temp_name): Use it.
5299
5300 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
5301
5302 * window.c (coordinates_in_window): Subtract 1 when computing
5303 right_x.
5304
5305 2000-05-15 Gerd Moellmann <gerd@gnu.org>
5306
5307 * Makefile.in (lisp): Add env.elc.
5308
5309 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
5310
5311 2000-05-12 Gerd Moellmann <gerd@gnu.org>
5312
5313 * search.c (Freplace_match): Handle case of `\N' in the
5314 replacement when there's no group N.
5315
5316 2000-05-11 Gerd Moellmann <gerd@gnu.org>
5317
5318 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
5319 of the message to message_dolog.
5320
5321 * keyboard.c (read_char): Don't clear current message for help
5322 events; let the code handling help events handle this. Change
5323 code detecting help events that should be ignored.
5324
5325 * xdisp.c (handle_single_display_prop): Don't try to set PT if
5326 we're interating over a string.
5327
5328 2000-05-09 Dave Love <fx@gnu.org>
5329
5330 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
5331 that offset before writing. Move gcpro region past call of
5332 Ffile_regular_p.
5333
5334 2000-05-04 Dave Love <fx@gnu.org>
5335
5336 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
5337
5338 2000-05-04 Gerd Moellmann <gerd@gnu.org>
5339
5340 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
5341 of inserted characters when BUF equals the current buffer, and PT
5342 is in front of or equal to FROM.
5343
5344 2000-05-03 Gerd Moellmann <gerd@gnu.org>
5345
5346 * xdisp.c (handle_single_display_prop): If display property value
5347 is invalid, or something not supported on the frame, restore
5348 iterator's position to what it was initially. Make sure to return
5349 0 for invalid and unsupported property values.
5350
5351 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
5352 that x_per_char_metric returns null.
5353
5354 2000-05-02 Gerd Moellmann <gerd@gnu.org>
5355
5356 * xterm.h (struct face): Add forward declaration.
5357 (struct image): Ditto.
5358 (image_ascent): Add prototype.
5359
5360 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
5361 (x_draw_image_relief, x_draw_image_foreground_1): Call function
5362 image_ascent instead of using IMAGE_ASCENT.
5363
5364 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
5365 (IMAGE_ASCENT): Removed.
5366
5367 * xfns.c (Qcenter): New variable.
5368 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
5369 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
5370 (image_ascent): New function.
5371 (lookup_image): Recognize `:ascent center'.
5372 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
5373 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
5374 (xbm_load): Don't set image's ascent here.
5375 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
5376 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
5377 check ascent values here.
5378 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
5379 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
5380 (syms_of_xfns): Initialize Qcenter.
5381
5382 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
5383 to the limits, increase the limits.
5384
5385 2000-05-01 Kenichi Handa <handa@etl.go.jp>
5386
5387 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
5388 Check Vfont_encoding_alist against the full name of the opened
5389 font.
5390
5391 2000-04-28 Gerd Moellmann <gerd@gnu.org>
5392
5393 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
5394 taller than the window.
5395
5396 2000-04-28 Kenichi Handa <handa@etl.go.jp>
5397
5398 * xfaces.c (realize_x_face): Fix the argument of the second
5399 xassert. BASE_FACE may not be a face for ASCII.
5400
5401 2000-04-27 Gerd Moellmann <gerd@gnu.org>
5402
5403 * print.c (print_object): Treat print-length < 0 as nil.
5404
5405 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
5406
5407 * s/freebsd.h (TERMCAP_OBJ): Removed.
5408 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
5409
5410 * lread.c (read1): Don't treat period followed by certain
5411 characters as symbol start.
5412
5413 * xfns.c (slurp_file): New function.
5414 (xbm_image_p): Handle case of in-memory XBM files.
5415 (xbm_scan): Rewritten to work on memory buffers instead of files.
5416 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
5417 Work on memory buffers instead of files. If DATA is null test
5418 if buffer looks like an in-memory XBM file.
5419 (xbm_load_image): Renamed from xbm_load_image_file. Work on
5420 memory buffers instead of files.
5421 (xbm_file_p): New function.
5422 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
5423
5424 * lread.c (end_of_file_error): New function.
5425 (read1): Call it instead of signaling `end-of-file' directly.
5426
5427 * print.c (print_error_message): Print data of `end-of-file'
5428 with Fprinc instead of Fprin1.
5429
5430 2000-04-26 Ken Raeburn <raeburn@gnu.org>
5431
5432 * window.c (freeze_window_start): Check that minibuffer scroll
5433 window isn't nil before extracting the window structure pointer
5434 from it.
5435
5436 * undo.c (record_delete): If we hit the end of the undo list, stop
5437 picking elements apart.
5438
5439 2000-04-26 Gerd Moellmann <gerd@gnu.org>
5440
5441 * xdisp.c (display_line): If lines are continued, restore
5442 iterator's ascent/descent information to the values before the
5443 first glyph not fitting on the line.
5444
5445 2000-04-25 Gerd Moellmann <gerd@gnu.org>
5446
5447 * xdisp.c (try_window_id) <all changes above window start>: Adjust
5448 positions in glyph matrix. Don't compute new window end
5449 positions.
5450
5451 * dispnew.c (increment_matrix_positions): Renamed from
5452 increment_glyph_matrix_buffer_positions.
5453 (increment_row_positions): Renamed from
5454 increment_glyph_row_buffer_positions.
5455
5456 * dispextern.h: Change names of renamed functions from dispnew.c
5457 in prototypes.
5458
5459 2000-04-24 Gerd Moellmann <gerd@gnu.org>
5460
5461 * fileio.c (Fdo_auto_save): Create directories for auto-save
5462 list file if necessary.
5463
5464 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
5465 from buffer or frame.
5466 (automatic_hscrolling_p): New variable.
5467 (hscroll_windows): Scroll windows horizontally only if automatic
5468 hscrolling is allowed.
5469 (syms_of_xdisp): New variable `automatic-hscrolling'.
5470
5471 * frame.h (struct frame): Add member extra_line_spacing.
5472
5473 * xfns.c (x_set_line_spacing): New function.
5474 (Fx_create_frame): Set line spacing from resources.
5475 (Qline_spacing): New variable.
5476 (syms_of_xfns): Initialize Qline_spacing.
5477
5478 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
5479
5480 * buffer.c (init_buffer_once): Handle extra_line_spacing.
5481 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
5482 (reset_buffer): Don't initialize extra2 and extra3. Initialize
5483 extra_line_spacing from default value.
5484 (init_buffer_once): Initialize default value of extra_line_spacing.
5485
5486 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
5487 and extra3.
5488
5489 * xterm.c (x_produce_glyphs): Remove reference to struct it's
5490 prompt_width. Add extra line spacing.
5491
5492 * term.c (produce_glyphs): Remove reference to struct it's
5493 prompt_width.
5494
5495 * dispextern.h (struct it): Remove member prompt_width, add
5496 extra_line_spacing.
5497
5498 2000-04-22 Gerd Moellmann <gerd@gnu.org>
5499
5500 * dispnew.c (update_frame_line): When writing a whole line, make
5501 sure cursor is in the right row afterwards, otherwise a use of
5502 capability `ch' in cmgoto might leave the cursor in the row below.
5503
5504 2000-04-21 Gerd Moellmann <gerd@gnu.org>
5505
5506 * lisp.h (struct Lisp_Buffer_Cons): Remove.
5507
5508 * keyboard.c (timer_check): Fix typo in comment.
5509
5510 2000-04-21 Kenichi Handa <handa@etl.go.jp>
5511
5512 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
5513 name change: ch -> character.
5514
5515 2000-04-20 Gerd Moellmann <gerd@gnu.org>
5516
5517 * keyboard.c (echo_message_buffer): New variable.
5518 (echo_now): Set echo_message_buffer to the echo area buffer used
5519 to display the echo.
5520 (cancel_echoing): Reset echo_message_buffer to nil.
5521 (read_char): Code rewritten that handles canceling an echo or
5522 echoing a dash, respectively.
5523
5524 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
5525 directory doesn't exist.
5526
5527 2000-04-19 Dave Love <fx@gnu.org>
5528
5529 * fns.c (syms_of_fns): Defsubr mapc.
5530 (concat): Don't allow numeric args.
5531 (Fconcat): Doc change.
5532
5533 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
5534
5535 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
5536 instead define end_match(1|2) more carefully.
5537 Use GET_CHAR_BEFORE_2 for `begline'.
5538
5539 2000-04-19 Gerd Moellmann <gerd@gnu.org>
5540
5541 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
5542 on 64-bit systems where NULL is defined as `0'.
5543
5544 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
5545 the `variable argument list' to make it work on Alpha.
5546
5547 * m/alpha.h (_LP64) [!_LP64]: Define.
5548 (ORDINARY_LINK): Define for NetBSD.
5549
5550 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
5551
5552 2000-04-19 Dave Love <fx@gnu.org>
5553
5554 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
5555 change.
5556
5557 * Makefile.in (LIBS): Don't use.
5558 (GETLOADAVG_OBJ): Define again.
5559 (otherobj): Add GETLOADAVG_OBJ.
5560
5561 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
5562
5563 2000-04-18 Gerd Moellmann <gerd@gnu.org>
5564
5565 * lread.c (read_filtered_event): Cancel and start busy cursor.
5566
5567 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
5568 that the per-character metrics may be null.
5569
5570 2000-04-17 Gerd Moellmann <gerd@gnu.org>
5571
5572 * buffer.c (clone_per_buffer_values): New function.
5573 (Fmake_indirect_buffer): Add optional argument CLONE. Call
5574 clone_per_buffer_values if CLONE is not nil.
5575
5576 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
5577
5578 2000-04-16 Dave Love <fx@gnu.org>
5579
5580 * Makefile.in: Remove obsolete localcpp stuff.
5581 (GETLOADAVG_OBJ): Don't define.
5582 (obj): Move LIBOBJS...
5583 (otherobj): ... to here.
5584 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
5585 whitespace-only lines after the continuation (Irix).
5586
5587 2000-04-14 Gerd Moellmann <gerd@gnu.org>
5588
5589 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
5590
5591 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
5592
5593 2000-04-14 Dave Love <fx@gnu.org>
5594
5595 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
5596 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
5597 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
5598 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
5599 NLIST_STRUCT.
5600
5601 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
5602 autoconfiscated HAVE_GETLOADAVG.
5603
5604 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
5605 BROKEN_MKTIME.
5606
5607 2000-04-14 Gerd Moellmann <gerd@gnu.org>
5608
5609 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
5610 (fill_in_lock_file_name): Avoid existing files that aren't
5611 links.
5612
5613 2000-04-14 Dave Love <fx@gnu.org>
5614
5615 * Makefile.in (LIBS, LIBOBJS): New variable.
5616 (INTERVAL_SRC): Convert to make variable.
5617 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
5618 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
5619 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
5620 add LIBOBJS.
5621 (SOME_MACHINE_OBJECTS): Remove interval stuff.
5622 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
5623 (shortlisp): Add facemenu, float-sup, frame.
5624 (SOME_MACHINE_LISP): Remove them from here.
5625 (LIBES): Change unused LDLIBS to autoconf LIBS.
5626
5627 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
5628
5629 2000-04-14 Kenichi Handa <handa@etl.go.jp>
5630
5631 * composite.c (update_compositions): If FROM and TO are not in a
5632 valid range, do nothing.
5633
5634 2000-04-13 Gerd Moellmann <gerd@gnu.org>
5635
5636 * tparam.c (tparam1): Abort when encountering an unknown
5637 `%'-specifier.
5638
5639 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
5640 terminfo.o.
5641
5642 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
5643 as TERMCAP_OBJ.
5644
5645 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
5646
5647 * fileio.c (a_write): Remove redundant semi-colons.
5648 (e_write): Return -1 if failed to write all the data.
5649 This fixes the changes made at 1999-12-15.
5650
5651 2000-04-12 Dave Love <fx@gnu.org>
5652
5653 * fns.c (mapcar1): Test for null vals to support mapc.
5654 (Fmapc): New function.
5655
5656 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
5657
5658 * msdos.c (NUM_MOUSE_BUTTONS): Define.
5659 (IT_frame_up_to_date): Support the buffer local value of
5660 cursor-type, if defined.
5661
5662 2000-04-10 Dave Love <fx@gnu.org>
5663
5664 * editfns.c (preceding-char, following-char): Doc fix.
5665
5666 2000-04-10 Ken Raeburn <raeburn@gnu.org>
5667
5668 * Makefile.in (temacs): Revert 2000-03-12 change.
5669
5670 2000-04-10 Jason Rumney <jasonr@gnu.org>
5671
5672 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
5673
5674 2000-04-10 Gerd Moellmann <gerd@gnu.org>
5675
5676 * xdisp.c (setup_echo_area_for_printing): Choose an echo
5677 area buffer, if it's not set up yet.
5678
5679 * indent.c (compute_motion): Set immediate_quit.
5680
5681 2000-04-09 Gerd Moellmann <gerd@gnu.org>
5682
5683 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
5684 variable.
5685 (realize_tty_face): Suppress boldness if colors are the inverse of
5686 the default colors, and tty_suppress_bold_inverse_default_colors_p
5687 is set.
5688 (Ftty_suppress_bold_inverse_default_colors): New function.
5689 (syms_of_xfaces): Defsubr it.
5690
5691 * buffer.c (Frestore_buffer_modified_p): New function.
5692 (syms_of_buffer): Defsubr it.
5693
5694 2000-04-08 Ken Raeburn <raeburn@gnu.org>
5695
5696 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
5697 charset id (int) argument, not a charset (Lisp_Object).
5698
5699 * coding.h (code_convert_string): Declare.
5700 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
5701 object, as the fourth argument to code_convert_string.
5702
5703 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
5704 value.
5705 (Fset_fontset_font): Use EQ to compare lisp objects.
5706
5707 2000-04-05 Ken Raeburn <raeburn@gnu.org>
5708
5709 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
5710 a pointer that looks like a lisp object.
5711 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
5712 zero, instead see whether it's an integer object, since they can't
5713 have intervals.
5714 (GET_INTERVAL_OBJECT): Simply assign to the destination.
5715
5716 * dispnew.c (allocate_matrices_for_frame_redisplay,
5717 direct_output_forward_char): Use X(U)INT and make_number as needed
5718 to convert between (unsigned) int values and lisp integers.
5719 * keyboard.c (read_key_sequence): Likewise.
5720 * lread.c (substitute_object_recurse): Likewise.
5721 * fns.c (concat, hash_lookup, hash_remove): Likewise.
5722 * minibuf.c (do_completion, Fminibuffer_complete_word,
5723 Fminibuffer_completion_help): Likewise.
5724 * term.c (produce_special_glyphs): Likewise.
5725
5726 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
5727 * print.c (print_preprocess, print_object): Likewise.
5728
5729 * search.c (compile_pattern): Use NILP when checking for nil.
5730
5731 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
5732 __OPTIMIZE__]: Provide a GNU C macro version that handles
5733 lisp-object unions.
5734 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
5735 field, to better cope with ENABLE_CHECKING and calls that modify a
5736 Lisp_Object using its old value.
5737
5738 2000-04-04 Gerd Moellmann <gerd@gnu.org>
5739
5740 * window.c (compare_window_configurations): Signal an error
5741 if parameters C1 or C2 aren't window configurations.
5742
5743 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
5744 AFTER_POTENTIAL_GC calls around calls to functions that can
5745 signal an error and thus invoke the debugger.
5746
5747 2000-04-03 Gerd Moellmann <gerd@gnu.org>
5748
5749 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
5750 an error if decoding fails.
5751
5752 * keyboard.c (lispy_mouse_names): Variable removed.
5753 (Vlispy_mouse_stem): New variable.
5754 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
5755 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
5756 for any mouse button number. Increase size of mouse_syms and
5757 button_down_location as needed. Call modify_event_symbol with
5758 different arguments.
5759 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
5760 Call modify_event_symbol with different arguments.
5761 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
5762 for any button number. Call modify_event_symbol with different
5763 arguments.
5764 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
5765 Accept a string for NAME_ALIST_OR_STEM.
5766
5767 * lisp.h (larger_vector): Add prototype.
5768
5769 * fns.c (larger_vector): Make externally visible.
5770
5771 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
5772
5773 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
5774
5775 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
5776 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
5777 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
5778 we are between str1 and str2.
5779 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
5780 (PATFETCH): Use `TRANSLATE'.
5781 (PATFETCH_RAW): Fetch multibyte char if applicable.
5782 (PATUNFETCH): Remove.
5783 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
5784 When writing a char, write it directly into the pattern buffer rather
5785 than going needlessly through a temp char-array.
5786 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
5787 multibyte magic and remove the useless `#ifdef emacs'.
5788 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
5789 buffer.
5790
5791 * regex.h (struct re_pattern_buffer): Make field `multibyte'
5792 conditional on `emacs'.
5793
5794 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
5795
5796 2000-04-01 Ken Raeburn <raeburn@gnu.org>
5797
5798 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
5799 non-union-type versions of XMARK and friends here, because XMARK
5800 and friends won't work on an integer field if NO_UNION_TYPE is not
5801 defined.
5802 (make_number): Define as a function if it's not defined as a
5803 macro.
5804
5805 * composite.c (run_composite_function): Use NILP when checking for
5806 nil.
5807 (syms_of_composite): Delete local var NARGS, pass an int as first
5808 argument to Fmake_hash_table.
5809
5810 * editfns.c (text_property_stickiness): Use NILP to test
5811 Lisp_Object boolean value.
5812 (Fmessage_or_box): Don't use NILP to test int variable.
5813 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
5814 problems reading from and changing the same lisp value in an
5815 XSETSTRING call.
5816
5817 2000-04-01 Gerd Moellmann <gerd@gnu.org>
5818
5819 * term.c (TN_no_color_video): New variable.
5820 (term_init): Intitialize TN_no_color_video.
5821 (enum no_color_bit): New enumeration.
5822 (MAY_USE_WITH_COLORS_P): New macro.
5823 (turn_on_face): Use it to determine if attributes may be used
5824 combined with colors.
5825
5826 2000-04-01 Ken Raeburn <raeburn@gnu.org>
5827
5828 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
5829 with int lvalues via casts; instead, just yield lisp object
5830 lvalues.
5831 (enlarge_window): Variable sizep now points to Lisp_Object. Use
5832 proper accessor macros.
5833 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
5834 (grow_mini_window): Fix typo getting int value of root->height.
5835
5836 * xdisp.c (compute_string_pos): Fix order of arguments to
5837 string_pos_nchars_ahead.
5838 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
5839 count arg to variable-arg routines like Frun_hook_with_args and
5840 Fformat.
5841 (back_to_previous_visible_line_start)
5842 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
5843 fixed-arg routines like Fget_char_property and Fmake_string.
5844 (reconsider_clip_changes): Use XINT when comparing integer lisp
5845 objects, or passing them as int arguments.
5846 (mark_window_display_accurate, insert_left_trunc_glyphs)
5847 (append_space, extend_face_to_end_of_line): Use make_number when
5848 storing or passing integer values as lisp objects.
5849 (set_cursor_from_row, highlight_trailing_whitespace): Use
5850 INTEGERP, not implicit test against zero, for glyph object.
5851 (try_window_id): Don't use make_number when we want an int value.
5852
5853 * xfaces.c (xlfd_symbolic_value): Make last argument a
5854 Lisp_Object, to be consistent with callers.
5855 (Fbitmap_spec_p): Use XINT to get numeric value of height.
5856 (lface_hash): Apply XFASTINT to lisp values before folding in.
5857
5858 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
5859 fill in window width and height. Pass an int, not a lisp object,
5860 as first arg to Finsert.
5861
5862 2000-04-01 Gerd Moellmann <gerd@gnu.org>
5863
5864 * xfaces.c (realize_basic_faces): Block input while realizing
5865 the faces.
5866
5867 * keyboard.c (lispy_mouse_names): Add additional mouse names.
5868
5869 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
5870
5871 2000-03-31 Gerd Moellmann <gerd@gnu.org>
5872
5873 * xterm.c (x_produce_glyphs): When displaying unibyte text
5874 or ASCII, handle case that per-char metric is null.
5875
5876 2000-03-30 Ken Raeburn <raeburn@gnu.org>
5877
5878 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
5879
5880 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
5881 XSUBR, XBUFFER): Verify correct object type before returning
5882 pointer, using eassert.
5883 * frame.h (XFRAME): Likewise.
5884
5885 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
5886 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
5887 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
5888 type.
5889 * data.c (set_internal): Likewise.
5890 * dispextern.h (WINDOW_WANTS_MODELINE_P,
5891 WINDOW_WANTS_HEADER_LINE_P): Likewise.
5892 * fileio.c (auto_save_1): Likewise.
5893 * insdel.c (check_markers): Likewise.
5894 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
5895 * undo.c (record_insert): Likewise.
5896 * vmsproc.c (child_sig): Likewise.
5897 * window.c (unshow_buffer, window_loop): Likewise.
5898 * xterm.c (x_erase_phys_cursor): Likewise.
5899
5900 2000-03-30 Gerd Moellmann <gerd@gnu.org>
5901
5902 * xfns.c (free_image_cache): Free the cache structure itself
5903 last, after all its members have been freed.
5904
5905 * lisp.h (xstrdup): Add prototype.
5906
5907 * alloc.c (xstrdup): Moved here from xfaces.c.
5908 (allocating_for_lisp): Variable removed.
5909 (lisp_malloc): Block input around the calls to malloc and
5910 mem_insert.
5911
5912 * xfaces.c (realize_tty_face): Use find_symbol_value instead
5913 of Fsymbol_value.
5914 (xstrdup): Moved to alloc.c.
5915
5916 2000-03-29 Ken Raeburn <raeburn@gnu.org>
5917
5918 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
5919
5920 * emacs.c (main): Fix sense of no-loadup test.
5921
5922 * config.in (ENABLE_CHECKING): Undef.
5923
5924 * lisp.h (struct interval): Replace "parent" field with a union of
5925 interval pointer and Lisp_Object; add new bitfield to use as
5926 discriminant. Change other flag fields to bitfields.
5927 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
5928 is defined and the supplied test fails, print a message and
5929 abort.
5930 (eassert): New macro. Use CHECK to provide an assert-like
5931 facility.
5932
5933 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
5934 pointers; abort if the value looks like a lisp object.
5935 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
5936 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
5937 Modify for new interval parent definition.
5938
5939 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
5940 UNMARK_BALANCE_INTERVALS): Update references that need an
5941 addressable lisp object in the interval structure.
5942 (die): New function.
5943 (suppress_checking): New variable.
5944
5945 * intervals.c (interval_start_pos): Just return 0 if there's no
5946 parent object.
5947
5948 2000-03-29 Gerd Moellmann <gerd@gnu.org>
5949
5950 * lread.c (read1): Accept `.' (period) as symbol start like in CL
5951 and earlier Emacs versions.
5952
5953 * keyboard.c (Ftop_level): Cancel busy-cursor.
5954
5955 * eval.c (call_debugger): Cancel busy-cursor.
5956
5957 2000-03-29 Kenichi Handa <handa@etl.go.jp>
5958
5959 * search.c (Freplace_match): Adjust multibyteness of the current
5960 buffer and NEWTEXT. Free allocated memory before signaling an
5961 error.
5962
5963 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
5964
5965 * regex.c (analyse_first): New function obtained by ripping out most
5966 of re_compile_fastmap and generalizing it a little bit so that it
5967 can also just return whether a given (sub)pattern can match the empty
5968 string or not.
5969 (regex_compile): Use `analyse_first' to decide whether the loop-check
5970 needs to be done or not for *, +, *? and +? (the loop check is costly
5971 for non-greedy repetition).
5972 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
5973
5974 2000-03-28 Dave Love <fx@gnu.org>
5975
5976 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
5977 alpha.
5978
5979 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
5980
5981 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
5982
5983 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
5984 an expression.
5985 (enum re_opcode_t): Update description of succeed_n.
5986 (PATFETCH): Always define.
5987 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
5988 operators, char classes, shy-groups and intervals).
5989 Optimize special cases of intervals so as to only use succeed_n and
5990 jump_n when really needed.
5991 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
5992 that we don't have to handle the special cases any more.
5993 Simplify on_failure_jump handling as well.
5994
5995 2000-03-28 Jason Rumney <jasonr@gnu.org>
5996
5997 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
5998
5999 2000-03-27 Gerd Moellmann <gerd@gnu.org>
6000
6001 * s/freebsd.h (GC_SETJMP_WORKS): Define.
6002
6003 * s/msdos.h (GC_SETJMP_WORKS): Define.
6004
6005 * alloc.c (mark_maybe_object): New function.
6006 (mark_memory): Use it.
6007 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
6008 (setjmp_tested_p, longjmp_done): New variables.
6009 (test_setjmp): New function.
6010 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
6011 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
6012
6013 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
6014 to DEC_TEXT_POS and INC_TEXT_POS.
6015
6016 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
6017 with parameter MULTIBYTE_P.
6018
6019 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
6020 MULTIBYTE_P.
6021
6022 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
6023 buffers because it looks for multibyte character byte sequences
6024 which don't exist in unibyte text.
6025
6026 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
6027
6028 * xfaces.c (register_color, unregister_color, unregister_colors)
6029 [DEBUG_X_COLORS]: New functions.
6030 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
6031
6032 * xfns.c (x_set_cursor_color): Get color reference counts right.
6033
6034 * xterm.c (x_copy_color): New function.
6035 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
6036
6037 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
6038 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
6039 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
6040 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
6041 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
6042 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
6043 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
6044 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
6045 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
6046 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
6047
6048 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
6049 names for handling per-buffer variables.
6050
6051 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
6052 instead of MAX_BUFFER_LOCAL_VARS.
6053 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
6054
6055 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
6056
6057 * xfns.c (x_specified_cursor_type): New function.
6058 (x_set_cursor_type): Use it.
6059
6060 * buffer.h (struct buffer): Add cursor_type.
6061
6062 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
6063
6064 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
6065 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
6066 opcode.
6067 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
6068 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
6069 executing it as well as when popping it off the stack to find infinite
6070 loops in non-greedy repetition operators.
6071
6072 2000-03-26 Gerd Moellmann <gerd@gnu.org>
6073
6074 * doc.c (Qfunction_documentation): New variable.
6075 (syms_of_doc): Initialize Qfunction_documentation.
6076 (Fdocumentation): If FUNCTION is a symbol with non-nil
6077 `function-documentation' property, return a documentation derived
6078 from that.
6079
6080 * buffer.c (syms_of_buffer): Add default-cursor-type.
6081 (init_buffer_once): Don't let cursor_type have a local value
6082 in every buffer.
6083
6084 * xterm.c (x_display_and_set_cursor): Choose cursor depending
6085 on buffer-local value of cursor_type.
6086 (x_draw_bar_cursor): Add parameter WIDTH.
6087
6088 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
6089 (init_buffer_once): Set default cursor_type value to t.
6090 Mark cursor_type as local everywhere.
6091 (syms_of_buffer): New per-buffer variable cursor-type.
6092
6093 * buffer.h (struct buffer): Remove member local_var_flags,
6094 add local_flags.
6095 (MAX_BUFFER_LOCAL_VARS): New macro.
6096 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
6097 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
6098 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
6099 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
6100
6101 * print.c (print_object): Use new macros for per-buffer
6102 variables.
6103
6104 * category.c (Fset_category_table): Use new macros for per-buffer
6105 variables.
6106
6107 * buffer.c (buffer_permanent_local_flags): Make a char array.
6108 (max_buffer_local_idx): New variable.
6109 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
6110 for new handling of per-buffer variables.
6111 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
6112 (init_buffer_once): Initialize per-buffer vars differently.
6113 Set max_buffer_local_idx.
6114
6115 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
6116 variables.
6117
6118 * lread.c (defvar_per_buffer): Use new macros for per-buffer
6119 variables.
6120
6121 * data.c (do_symval_forwarding, store_symval_forwarding)
6122 (find_symbol_value, set_internal, default_value, Fset_default)
6123 (Fkill_local_variable, Flocal_variable_p): Use new macros for
6124 per-buffer variables.
6125
6126 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
6127
6128 2000-03-24 Gerd Moellmann <gerd@gnu.org>
6129
6130 * xterm.c (x_term_init): Unblock input around call1 of
6131 Qvendor_specific_keysyms.
6132
6133 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
6134 (find_defun_start): Consider an open parenthesis in column 0
6135 a defun start only if open_paren_in_column_0_is_defun_start is set.
6136 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
6137
6138 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
6139
6140 * eval.c (Fautoload): Add entry in load-history (if after dump).
6141 * lread.c (load-history): Update docstring.
6142
6143 2000-03-24 Gerd Moellmann <gerd@gnu.org>
6144
6145 * indent.c (Fvertical_motion): Always use the current buffer.
6146 Temporarily change the window's buffer, if necessary.
6147
6148 2000-03-23 Gerd Moellmann <gerd@gnu.org>
6149
6150 * xterm.c (fast_find_position): Make sure not to consider rows
6151 not visible in the window.
6152
6153 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
6154
6155 * regex.c (enum syntaxcode): Provide default for non-Emacs.
6156 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
6157
6158 2000-03-22 Jason Rumney <jasonr@gnu.org>
6159
6160 * w32menu.c (single_submenu): Set help string to NULL if none.
6161 (w32_menu_show): Set help string correctly.
6162 (add-menu-item): Set help string in MIIM_DATA for menu item.
6163 Load SetMenuItemInfoA explicitly.
6164 (w32_menu_display_help): New function.
6165
6166 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
6167 (QCdata): Moved to xdisp.c.
6168
6169 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
6170 (Vw32_charset_to_codepage_alist): Removed.
6171 (Vw32_charset_info_alist): New variable.
6172 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
6173 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
6174 greek, hebrew, thai, johab, mac, unicode]): New symbols.
6175 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
6176 with TODO comment.
6177 (w32_codepage_for_font): Use Vw32_charset_info_alist.
6178 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
6179 Define Vw32_charset_info_alist and w32_charset symbols.
6180
6181 2000-03-22 Jason Rumney <jasonr@gnu.org>
6182
6183 * makefile.nt (w32bdf.obj): Update dependencies.
6184
6185 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
6186
6187 * w32fns.c: Include fontset.h after dispextern.h.
6188 (Fx_create_frame): Do not create fontset.
6189 (w32_load_system_font): Doc fix.
6190 (Fx_close_connection): Free full_name if it is not shared.
6191
6192 * w32term.c: Include fontset.h after dispextern.h.
6193 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
6194 updated.
6195 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
6196 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
6197 (w32_font_is_double_byte): New function, needs body.
6198 (x_append_glyph): Set glyph->glyph_not_available_p.
6199 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
6200 it->charset. If it->multibyte_p is zero and it->c is a multibyte
6201 character, convert it to a unibyte character.
6202 (struct glyph_string): Delete member `charset'.
6203 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
6204 calculating it is found.
6205 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
6206 the case that per char metric is not available correctly.
6207 (x_fill_glyph_string): Handle the case that the specific glyph is
6208 not available correctly.
6209 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
6210 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
6211 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
6212 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
6213 fontset. Don't call FS_LOAD_FONT.
6214
6215 2000-03-22 Ken Raeburn <raeburn@gnu.org>
6216
6217 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
6218 (INT_LISPLIKE): New macro.
6219 (NULL_INTERVAL_P): Use it.
6220 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
6221 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
6222 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
6223
6224 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
6225 explicit references to "parent" field of struct interval and
6226 associated unclean type conversions.
6227 * intervals.c (create_root_interval, root_interval, rotate_right,
6228 rotate_left, balance_possible_root_interval, split_interval_right,
6229 split_interval_left, interval_start_pos, find_interval,
6230 next_interval, previous_interval, update_interval,
6231 adjust_intervals_for_insertion, delete_node, delete_interval,
6232 adjust_intervals_for_deletion, merge_interval_right,
6233 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
6234 copy_intervals_to_string): Likewise.
6235 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
6236 Likewise.
6237 * syntax.c (update_syntax_table): Likewise.
6238
6239 * intervals.c (reproduce_tree_obj): New function, like
6240 reproduce_tree but takes a Lisp_Object for the parent. Declare
6241 with prototype.
6242 (graft_intervals_into_buffer): Use it when appropriate.
6243 (reproduce_tree): Declare with prototype.
6244 (balance_possible_root_interval): Check that the parent is a lisp
6245 object before trying to examine its type.
6246
6247 2000-03-22 Gerd Moellmann <gerd@gnu.org>
6248
6249 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
6250 as strings only if both are known to be strings.
6251
6252 * s/openbsd.h (LIBS_TERMCAP): Undef.
6253
6254 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
6255
6256 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
6257 definitions for non-Emacs compilation.
6258 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
6259 outside of `#ifdef emacs'.
6260 (print_partial_compiled_pattern): Update.
6261 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
6262 (re_compile_fastmap): Merge handling of charset and charset_not (for
6263 emacs and non-emacs compilation as well).
6264 Similarly for (not)categoryspec and (not)syntaxspec.
6265 Don't use the fastmap when reaching `anychar' since the added
6266 complexity is not justified.
6267 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
6268 and (not)syntaxspec. Merge (not)categoryspec.
6269
6270 2000-03-22 Kenichi Handa <handa@etl.go.jp>
6271
6272 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
6273 FACE_FOR_CHAR): Define them differently for the configuration of
6274 --without-x.
6275
6276 2000-03-21 Dave Love <fx@gnu.org>
6277
6278 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
6279 doc string.
6280
6281 2000-03-21 Gerd Moellmann <gerd@gnu.org>
6282
6283 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
6284 (lface_fully_specified_p): Don't check contents of
6285 LFACE_FONT_INDEX because that attribute is optional.
6286 (realize_x_face): Remove now unwarranted xassert.
6287
6288 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
6289
6290 The following changes are to make font selection based on
6291 characters, not charset. In addition, they recover fontset
6292 facilities while utilizing the new font selection mechanism.
6293
6294 * Makefile.in (fontset.o): Depend on dispextern.h.
6295
6296 * alloc.c (mark_face_cache): Don't mark face->registry.
6297
6298 * dispextern.h (struct glyph): New member glyph_not_available_p.
6299 Use 22 bits for face_id.
6300 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
6301 (struct face): Delete member registry, new member ascii_face.
6302 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
6303 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
6304 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
6305 (struct it): Delete member charset, new member
6306 glyph_not_available_p.
6307
6308 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
6309 (struct fontset_info, struct fontset_data): Structs removed.
6310 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
6311 Vglobale_fontset_alist, font_idx_temp): Externs removed.
6312 (fs_load_font, fs_query_fontset): Adjusted for new argument.
6313 (fs_free_face_fontset, fontset_font_pattern,
6314 face_suitable_for_char_p, face_for_char,
6315 make_fontset_for_ascii_face): Extern them.
6316 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
6317 (FS_LOAD_FACE_FONT): New macro.
6318
6319 * fontset.c: All codes rewritten or adjusted for the change of
6320 fontset implementation. Now fontset is represented by char table.
6321 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
6322 removed.
6323 (my_strcasecmp): Function removed.
6324 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
6325 variables.
6326 (AREF, ASIZE): New macros.
6327 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
6328 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
6329 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
6330 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
6331 fontset_id_valid_p, font_family_registry, fontset_name,
6332 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
6333 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
6334 New functions.
6335 (fs_load_font): New arg FACE. Caller changed.
6336 (fs_query_fontset): Argument changed. Caller changed.
6337 (Fquery_fontset): call fs_query_fontset.
6338 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
6339 Functions removed.
6340 (clear_fontset_elements, check_registry_encoding,
6341 check_fontset_name): New functions.
6342 (syms_of_fontset): Set char-table-extra-slots property of fontset
6343 to 3. Staticpro and initialize Vfontset_table and
6344 Vdefault_fontset. Defsubr fontset_font and fontset_list.
6345
6346 * frame.h (struct frame): Member `fontset_data' removed.
6347 (FRAME_FONTSET_DATA): Macro removed.
6348
6349 * frame.c (make_frame): Don't allocate f->fontset_data.
6350 (Fdelete_frame): Don't free f->fontset_data.
6351
6352 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
6353
6354 * xdisp.c (charset_at_position): Function removed.
6355 (init_iterator): Don't set member charset of struct `it'.
6356 (handle_face_prop, reseat_to_string, set_iterator_to_next,
6357 next_element_from_display_vector, insert_left_trunc_glyphs):
6358 Likewise.
6359 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
6360 FACE_FOR_CHARSET.
6361 (get_next_display_element, append_space,
6362 extend_face_to_end_of_line): Likewise.
6363
6364 * xfaces.c (Qx_charset_registry, Vface_default_registry):
6365 Variables removed.
6366 (clear_font_table, frame_update_line_height, load_face_font):
6367 Adjusted for the change of fontset implementation.
6368 (load_face_fontset_font): Function removed.
6369 (pixel_point_size): New function.
6370 (font_list): Argument type changed. Caller changed.
6371 (LFACE_FONT): New macro.
6372 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
6373 (set_lface_from_font_name): Type of arg FONTNAME is changed to
6374 Lisp_Object. Determine the font name by actually loading a font
6375 by the specified pattern. Set LFACE_FONT (lface) to the specified
6376 pattern. Even if a font is not found, don't try alternatives.
6377 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
6378 (set_font_frame_param): If `font' is specified in lface, use it.
6379 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
6380 (lface_same_font_attributes_p): Likewise.
6381 (make_realized_face): Arguent changed. Caller changed. Set
6382 face->ascii_face to face itself.
6383 (free_realized_face): Free face->fontset if face is for ASCII.
6384 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
6385 deduce_unibyte_registry, x_charset_registry): Functions removed.
6386 (free_realized_multibyte_face): New function.
6387 (lookup_face, lookup_named_face, lookup_derived_face): Argument
6388 changed. Caller changed.
6389 (try_font_list): Argument type changed.
6390 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
6391 (choose_face_font): Argument changed. Handle fontset properly.
6392 (choose_face_fontset_font): Function removed.
6393 (realize_default_face, realize_named_face): Don't remove the
6394 former face here.
6395 (realize_face): Argument changed. Caller changed. Remove face
6396 with the arg former_face_id in advance. Load font for the new
6397 face.
6398 (realize_x_face): Argument changed. Caller changed. For a
6399 multibyte character, share fontset with base_face. For a single
6400 byte character, make a new realized fontset. Don't load a font
6401 here.
6402 (realize_tty_face): Argument changed. Caller changed.
6403 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
6404 (face_at_buffer_position): Don't check multibyte_p for returning
6405 DEFAULT_FACE_ID.
6406 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
6407 FACE_SUITABLE_FOR_CHARSET_P.
6408 (syms_of_xfaces): Remove code for Qx_charset_registry and
6409 Vface_default_registry.
6410
6411 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
6412 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
6413 (x_per_char_metric): Don't try FONT->default_char. Even if
6414 pcm->width is zero, glyph bits may exist.
6415 (x_encode_char): Always initialize char2b->byte1.
6416 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
6417 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
6418 changed.
6419 (x_append_glyph): Set glyph->glyph_not_available_p.
6420 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
6421 it->charset. Handle the case that per char metric is not
6422 available. If it->multibyte_p is zero and it->c is a multibyte
6423 character, convert it to a unibyte character.
6424 (struct glyph_string): Delete member `charset'.
6425 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
6426 the case that per char metric is not available correctly.
6427 (x_fill_glyph_string): Handle the case that the specific glyph is
6428 not available correctly.
6429 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
6430 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
6431 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
6432 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
6433 fontset. Don't call FS_LOAD_FONT.
6434
6435 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
6436 (x_create_tip_frame): Likewise.
6437 (Fx_close_connection): Free full_name of font_info.
6438
6439 * fns.c (optimize_sub_char_table): New function.
6440 (Foptimize_char_table): New function.
6441 (syms_of_fns): Defsubr Soptimize_char_table.
6442
6443 2000-03-20 Gerd Moellmann <gerd@gnu.org>
6444
6445 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
6446 only if buffer is displayed in some window.
6447
6448 * xdisp.c (handle_single_display_prop): Initialize local `value'.
6449 (try_window_reusing_current_matrix): Don't call scroll run
6450 function if run's current and desired position are the same;
6451 this prevents cursor flickering.
6452
6453 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
6454
6455 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
6456
6457 * regex.c (RE_STRING_CHAR): New macro.
6458 (GET_CHAR_AFER_2): Remove.
6459 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
6460 (enum re_opcode_t): Remove on_failure_jump_exclusive.
6461 (print_partial_compiled_pattern, re_compile_fastmap)
6462 (re_match_2_internal): Remove on_failure_jump_exclusive.
6463 (regex_compile): Turn optimizable P+ loops into PP*, so that the
6464 optimization only need to work for * (ie. can use of_keep_string_jump).
6465 Remove the special case for .*\n since it is now covered by the general
6466 optimization.
6467 (re_search_2): Don't bother with `room'.
6468 (skip_one_char): New function.
6469 (skip_noops): Simplify since `memory' is not needed any more.
6470 (mutually_exclusive_p): Restructure slightly to use `switch' and
6471 add handling for "all" remaining cases.
6472 (re_match_2_internal): Change on_failure_jump_smart to use
6473 on_failure_keep_string_jump (and redirect the end-of-loop jump)
6474 rather than on_failure_jump_exclusive.
6475
6476 2000-03-19 Gerd Moellmann <gerd@gnu.org>
6477
6478 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
6479 number of bits per RGB because it's everywhere used as the depth
6480 of the visual.
6481
6482 * term.c (calculate_costs): Remove code dealing with X frames.
6483
6484 2000-03-19 Richard M. Stallman <rms@gnu.org>
6485
6486 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
6487
6488 2000-03-18 Gerd Moellmann <gerd@gnu.org>
6489
6490 * lread.c (read_integer): Unread the last char not consumed.
6491
6492 2000-03-17 Gerd Moellmann <gerd@gnu.org>
6493
6494 * xterm.c (x_update_window_cursor): Don't update in frames
6495 which are in the process of being deleted.
6496
6497 2000-03-16 Gerd Moellmann <gerd@gnu.org>
6498
6499 * Makefile.in (mostlyclean): Add `*.core'.
6500 (clean): Add `bootstrap-emacs'.
6501
6502 * lread.c (read_integer): New function.
6503 (read1): Support read syntax #o, #x, #b, #r.
6504
6505 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
6506
6507 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
6508 make sure POINTER_TO_OFFSET gives the same value before and after
6509 PREFETCH. Use `dfail' to guarantee "atomic" matching.
6510 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
6511 (debug): Now only active if > 0 rather than if != 0.
6512 (DEBUG_*): Update for the new meaning of `debug'.
6513 (print_partial_compiled_pattern): Add missing `succeed' case. Use
6514 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
6515 in `succeed_n', `jump_n' and `set_number_at'.
6516 (store_op1, store_op2, insert_op1, insert_op2)
6517 (at_begline_loc_p, at_endline_loc_p): Add prototype.
6518 (group_in_compile_stack): Move to after its arg's types are
6519 declared and add a prototype.
6520 (PATFETCH): Define in terms of PATFETCH_RAW.
6521 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
6522 wrapper.
6523 (QUIT): Redefine as a nop except for NTemacs.
6524 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
6525 indentation of the greedy-op and shy-group code.
6526 (at_(beg|end)line_loc_p): Fix argument's types.
6527 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
6528 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
6529 (MATCHING_IN_FIRST_STRING): Remove.
6530 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
6531 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
6532 QUIT unconditionally.
6533
6534 2000-03-15 Gerd Moellmann <gerd@gnu.org>
6535
6536 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
6537 a sole completion.
6538
6539 * process.c (send_process): Add a hint that the function
6540 can call Lisp code to its comment.
6541
6542 * lread.c (load_dangerous_libraries): New variable.
6543 (Vbytecomp_version_regexp): New variable.
6544 (safe_to_load_p): New function.
6545 (Fload): Handle files not compiled with Emacs specially.
6546 (syms_of_lread): New Lisp variable load-dangerous-libraries.
6547
6548 2000-03-14 Gerd Moellmann <gerd@gnu.org>
6549
6550 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
6551
6552 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
6553 support functions only if HAVE_X11R6_XIM is defined.
6554 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
6555
6556 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
6557
6558 * xfns.c (X_I18N_INHIBITED): Don't define.
6559 (create_frame_xic): Remove conditional compilation on
6560 X_I18N_INHIBITED.
6561 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
6562
6563 * config.in (HAVE_X_I18N): Moved here from xterm.h.
6564 (HAVE_X11R6_XIM): Define.
6565
6566 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
6567
6568 * xterm.c (x_term_init): Add support for X resource `synchronous'.
6569 If set, call XSynchronize.
6570
6571 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
6572
6573 * regex.c: Declare a new type `re_char' used throughout the code
6574 for the string char type. It's `const unsigned char' to match the
6575 rest of Emacs. Consistently make sure all pointers to strings use
6576 it and make sure all pointers into the pattern use `unsigned
6577 char'.
6578 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
6579 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
6580 code duplication.
6581
6582 * charset.h (GET_CHAR_AFTER_2): Remove.
6583 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
6584
6585 2000-03-12 Ken Raeburn <raeburn@gnu.org>
6586
6587 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
6588 variable before the invocation of YMF_PASS_LDFLAGS, in case both
6589 of them try to use backquotes.
6590
6591 2000-03-12 Dave Love <fx@gnu.org>
6592
6593 * unexelf.c: Restore changes of 1999-10-19.
6594 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
6595 fix its type and alignment; copy it from current process.
6596
6597 2000-03-12 Gerd Moellmann <gerd@gnu.org>
6598
6599 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
6600 has been found. Fix bug not computing timer's predecessor.
6601
6602 * fileio.c (Fread_file_name): Handle case that DIR contains a
6603 file name.
6604
6605 * window.c (Fsave_window_excursion): Doc fix.
6606
6607 * xfns.c (x_defined_color): Rewritten to use
6608 x_allocate_nearest_color.
6609
6610 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
6611
6612 * msdos.c (vga_installed): New function, code moved from
6613 dos_set_window_size.
6614 (Qbar, Qcursor_type, outside_cursor): New variables.
6615 (syms_of_msdos): Intern and staticpro them.
6616 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
6617 shape used outside Emacs when called for the first time.
6618 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
6619 cursor shape used outside Emacs.
6620 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
6621 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
6622 type has changed.
6623 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
6624 parameters specify the cursor. Make qreverse a global
6625 variable (renamed to Qreverse).
6626
6627 2000-03-09 Gerd Moellmann <gerd@gnu.org>
6628
6629 * fns.c (Fy_or_n_p): Cancel busy-cursor.
6630
6631 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
6632
6633 This is a big redesign of failure-stack and register handling, prompted
6634 by bugs revealed when trying to add shy-groups. Overall, what happened
6635 is that loops are now structured a little differently, groups can be
6636 shy and the code is a little simpler.
6637
6638 * regex.h: Update the copyright.
6639 (RE_SHY_GROUPS): New value.
6640 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
6641 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
6642
6643 * regex.c (enum re_opcode_t): Remove jump_past_alt,
6644 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
6645 on_failure_jump_(exclusive, loop and smart). Also fix the comment
6646 for (start|stop)_memory since they now only take one argument (the
6647 second has becomes unnecessary).
6648 (print_partial_compiled_pattern): Adjust for changes in
6649 re_opcode_t.
6650 (print_compiled_pattern): Use %ld to printf long ints and flush to
6651 make debugging a little easier.
6652 (union fail_stack_elt): Make the integer unsigned.
6653 (struct fail_stack_type): Add a `frame' element.
6654 (INIT_FAIL_STACK): Init `frame' as well.
6655 (POP_PATTERN_OP): New macro for re_compile_fastmap.
6656 (DEBUG_PUSH, DEBUG_POP): Remove.
6657 (NUM_REG_ITEMS): Remove.
6658 (NUM_NONREG_ITEMS): Adjust.
6659 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
6660 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
6661 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
6662 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
6663 macros.
6664 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
6665 address pushed is not the destination of the jump but the source
6666 of it instead.
6667 (NUM_FAILURE_ITEMS): Remove.
6668 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
6669 registers before the actual failure point). Don't hardcode any
6670 meaning for str==NULL anymore.
6671 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
6672 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
6673 Remove.
6674 (REG_UNSET_VALUE): Use NULL (why not?).
6675 (compile_range): Remove declaration since it doesn't exist.
6676 (struct compile_stack_elt_t): Remove inner_group_offset.
6677 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
6678 (regex_grow_registers): Remove dead code.
6679 (FIXUP_ALT_JUMP): New macro.
6680 (regex_compile): Add shy-groups Change loops to use
6681 on_failure_jump_smart&jump instead of
6682 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
6683 initial (dummy_failure_)jump. Remove c1_base (looks like unused
6684 variable to me). Use `jump' instead of `jump_past_alt' and don't
6685 bother with push_dummy_failure in alternatives since it is now
6686 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
6687 emacs' for (re)allocating the stack.
6688 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
6689 from loop when bufp->can_be_null rather than jumping to `done'.
6690 Avoid jumping backwards so as to ensure termination. Use
6691 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
6692 backreferences. Remove dead code in handling of `anychar'.
6693 (skip_noops, mutually_exclusive_p): New functions taken from the
6694 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
6695 improve mutually_exclusive_p to handle ".+\n".
6696 (lowest_active_reg, highest_active_reg,
6697 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
6698 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
6699 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
6700 variables. Push register (in `start_memory') on the stack rather
6701 than storing it in old_reg(start|end). Remove the cycle detection
6702 from `stop_memory', replaced by the use of on_failure_jump_loop
6703 for greedy loops. Add code for the new on_failure_jump_<foo>.
6704 Remove ad-hoc code in `on_failure_jump' to push more registers in
6705 the case of a loop. Take out code from `maybe_pop_jump' into
6706 separate functions and adapt it to the semantics of
6707 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
6708 and push_dummy_failure. Remove dummy_failure handling and
6709 handling of `failures to jump to on_failure_jump' (this last one
6710 was already dead code, it seems).
6711 (group_match_null_string_p, alt_match_null_string_p)
6712 (common_op_match_null_string_p): Remove.
6713
6714 2000-03-08 Dave Love <fx@gnu.org>
6715
6716 * config.in: Don't depend on __STDC__ for volatile.
6717 Add POINTER_TYPE, PTR, PROTOTYPES.
6718
6719 * hftctl.c, strftime.c: Use PROTOTYPES.
6720 * eval.c (find_handler_clause): Likewise.
6721
6722 * mem-limits.h: Use POINTER_TYPE.
6723
6724 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
6725 (memory_warnings): Declare using POINTER_TYPE.
6726
6727 2000-03-08 Gerd Moellmann <gerd@gnu.org>
6728
6729 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
6730
6731 * xdisp.c (display_echo_area): Temporarily inhibit garbage
6732 collection.
6733
6734 * xfns.c: Remove obsolete code in #if 0.
6735 (Fx_focus_frame): New function.
6736
6737 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
6738
6739 * coding.c (coding_category_name): Add coding-category-utf-8,
6740 coding-category-utf-16-be, coding-category-utf-16-le.
6741 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
6742 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
6743 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
6744 (detect_coding_utf_8): New function.
6745 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
6746 UTF_16_LOW_SURROGATE_P): New macros.
6747 (detect_coding_utf_16): New function
6748 (detect_coding_mask): When priorities are specified, skip any
6749 categories that have `nil' coding-system. Fix bug of returning
6750 wrong mask when PRIORITIES is specified and detect_coding_XXX()
6751 returns a mask not set in PRIORITIES.
6752 (detect_eol_type_in_2_octet_form): New function.
6753 (detect_eol): selects detect_eol_type_XXX to call according to
6754 cooding->category_idx.
6755 (detect_coding_system): Remove `nil' coding-system in the result.
6756 (Fupdate_coding_systems_internal): Update all coding-categories.
6757
6758 * coding.h (CODING_CATEGORY_IDX_UTF_8,
6759 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
6760 macros.
6761 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
6762 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
6763 CODING_CATEGORY_IDX_UTF_16_LE.
6764 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
6765 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
6766 (CODING_CATEGORY_MASK_ANY): Include the above macros.
6767 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
6768
6769 2000-03-07 Gerd Moellmann <gerd@gnu.org>
6770
6771 * doc.c (Fdocumentation_property): If value is not a string,
6772 and doesn't refer to etc/DOC, evaluate it to obtain a string.
6773
6774 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
6775 close the display with XtCloseDisplay. This caused a bus error
6776 on OpenWindows.
6777
6778 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
6779 complete but not unique.
6780
6781 2000-03-06 Gerd Moellmann <gerd@gnu.org>
6782
6783 * process.c (send_process): Remove local variable `procname' that
6784 might become invalid when a GC happens. Instead, access the
6785 process name slot directly.
6786
6787 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
6788 orig_height if set.
6789
6790 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
6791 orig_height if set.
6792
6793 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
6794
6795 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
6796 glyph matrices have been freed.
6797
6798 2000-03-05 Gerd Moellmann <gerd@gnu.org>
6799
6800 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6801 (bootstrap-temacs): Set LC_ALL to C like for temacs.
6802
6803 * xfns.c (QCdata): Moved to xdisp.c.
6804
6805 * xdisp.c (QCdata): Moved here from xfns.c.
6806 (syms_of_xdisp): Initialize QCdata.
6807
6808 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
6809
6810 * window.c (coordinates_in_window): Use
6811 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
6812 FRAME_INTERNAL_BORDER_WIDTH.
6813
6814 * xdisp.c (try_window_id): Recompute unchanged information if
6815 it is obviously invalid.
6816
6817 * xterm.c (x_term_init): Create a colormap if not using the
6818 default visual.
6819
6820 * xterm.h (select_visual): Change prototype.
6821
6822 * xfns.c (select_visual): Rewritten. Recognize user-specified
6823 visual classes.
6824 (visual_classes): New variable.
6825
6826 2000-03-04 Gerd Moellmann <gerd@gnu.org>
6827
6828 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
6829 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
6830 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
6831 (x_decode_color): Don't handle allocation of white and black
6832 specially.
6833 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
6834 XtNcolormap resources.
6835 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
6836 (Fx_create_frame): Initialize color members of x_output structure.
6837 (xpm_load): Pass colormap to XPM lib.
6838
6839 * xfaces.c (x_free_colors): Access colormap of frame using
6840 FRAME_X_COLORMAP. Be paranoid about freeing black and white
6841 when default colormap is used.
6842
6843 * xterm.c (x_term_init): Set Colormap member of x_display_info
6844 structure. Copy colormap if resource `privateColormap' is
6845 specified (PseudoColor only).
6846 (x_setup_relief_color): Access colormap of frame using
6847 FRAME_X_COLORMAP.
6848
6849 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
6850 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
6851
6852 2000-03-04 Jason Rumney <jasonr@gnu.org>
6853
6854 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
6855 other non-platform-specific equivalents.
6856 [WINDOWSNT]: Include w32term.h, fontset.h and define X
6857 specific functions and macros as their w32 equivalents where
6858 non-platform-specifics are not available.
6859 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
6860 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
6861 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
6862 (frame_update_line_height): Use macros to access f->output_data.
6863 (defined_color): Remove FIXME comments; fixed.
6864 (x_face_list_fonts, prepare_face_for_display): Put X specifics
6865 into #ifdef blocks. Add WINDOWSNT blocks.
6866 (Fx_list_fonts): Use macros for accessing font data.
6867 (set_lface_from_font_name): Different default fonts for X and
6868 WINDOWSNT.
6869 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
6870 scalable for backward compatibility.
6871 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
6872 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
6873
6874 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
6875 syms_of_w32faces.
6876
6877 * makefile.nt (w32faces.obj): Remove.
6878 (xfaces.obj): Add.
6879
6880 2000-03-03 Jason Rumney <jasonr@gnu.org>
6881
6882 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
6883 correct parameters.
6884
6885 2000-03-03 Ken Raeburn <raeburn@gnu.org>
6886
6887 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
6888 standard ELF definitions here if the system header does not.
6889
6890 2000-03-03 Gerd Moellmann <gerd@gnu.org>
6891
6892 * xterm.c (PER_CHAR_METRIC): Removed.
6893 (x_per_char_metric_1, x_default_char): New functions.
6894 (x_per_char_metric): If font's default char is invalid, return
6895 metrics of a suitably chosen usable default char.
6896 (x_draw_glyph_string_foreground): If font has an invalid default
6897 char, replace occurrences of unprintable chars with a suitably
6898 chosen usable default char.
6899
6900 2000-03-02 Gerd Moellmann <gerd@gnu.org>
6901
6902 * xterm.c (note_mouse_highlight): Return quickly if frame's
6903 glyph matrices have been freed.
6904
6905 * dispnew.c (free_glyphs): Block input while freeing matrices.
6906
6907 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
6908
6909 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
6910 x_free_colors.
6911
6912 * dispextern.h (x_free_colors): Add prototype.
6913
6914 * xfaces.c (x_free_colors): New function.
6915 (unload_color, free_face_colors): Use it.
6916
6917 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
6918
6919 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
6920
6921 * window.c [MSDOS]: Include msdos.h.
6922
6923 2000-03-02 Dave Love <fx@gnu.org>
6924
6925 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
6926
6927 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
6928 set C_OPTIMIZE_SWITCH for gcc.
6929
6930 2000-03-02 Kenichi Handa <handa@etl.go.jp>
6931
6932 * coding.c (coding_save_composition): Be sure to allocate
6933 composition data area in coding even if there's no composition in
6934 the current run.
6935
6936 2000-03-01 Jason Rumney <jasonr@gnu.org>
6937
6938 * w32term.c: Equivalent changes to those made to xterm.c on
6939 2000-02-25 and 2000-02-24.
6940
6941 * w32fns.c: Equivalent changes to those made to xfns.c on
6942 2000-02-25 and 2000-02-21.
6943
6944 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
6945 correct line-end convention is followed.
6946
6947 * w32menu.c [HAVE_BOXES]: Remove #undef.
6948 (single_keymap_panes): Remove code for simulating checkmarks.
6949 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
6950 Remove code for drawing simulated checkmarks.
6951 (w32_menu_show): make unibyte help string correctly.
6952 (add_menu_item): draw standard Windows checkmarks. Draw radio
6953 buttons as radio buttons if possible.
6954
6955 2000-03-01 Gerd Moellmann <gerd@gnu.org>
6956
6957 * sysdep.c (start_of_text): Don't define this function for NetBSD
6958 with ELF.
6959
6960 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
6961 Don't define.
6962 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
6963 (LINKER): Don't undef if __NetBSD__ is defined.
6964
6965 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
6966
6967 * fileio.c [__NetBSD__]: Define `unix'.
6968
6969 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
6970
6971 2000-02-29 Gerd Moellmann <gerd@gnu.org>
6972
6973 * atimer.c (start_atimer): Don't abort when timers are stopped.
6974 (append_atimer_lists): New function.
6975 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
6976 arbitrary lists of stopped and running atimers.
6977
6978 * atimer.c (cancel_atimer): Handle canceling an atimer when
6979 some timers are stopped.
6980
6981 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
6982 after canceling it.
6983
6984 * fns.c (maybe_resize_hash_table): Handle case of new size
6985 coming out as being the same as old size.
6986
6987 2000-02-27 Jason Rumney <jasonr@gnu.org>
6988
6989 * makefile.nt: Add atimer.h to dependencies.
6990 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
6991 * w32console.c: Only disable window system features for dispextern.h
6992 (initialize_w32_display): Build a display info for the console.
6993 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
6994 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
6995 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
6996 as 2 button mice.
6997 * w32gui.h (struct W32FontStruct): Revert last change after change
6998 to xdisp.c.
6999 * w32menu.c (single_submenu): Set up help string.
7000 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
7001 (w32_dialog_show): Set up help string.
7002 * w32term.c (w32_display_info_for_display): Remove unused function.
7003 (w32_draw_bitmap): Use pre-built bitmaps.
7004 (w32_initialize_display_info): New function to initialize parts of
7005 display info that are common to both GUI and console frames.
7006 (w32_term_init): Use w32_initialize_display_info. Do not set
7007 Vw32_num_mouse_buttons here, as it is not called for console
7008 frames. Build bitmaps for indicating truncated lines etc.
7009 (x_delete_display): Destroy pre-built bitmaps.
7010 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
7011 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
7012
7013 2000-02-27 Dave Love <fx@gnu.org>
7014
7015 * lisp.h: Add a bunch of prototypes.
7016
7017 2000-02-26 Kenichi Handa <handa@etl.go.jp>
7018
7019 * keyboard.c (read_char): Set `usec' correctly.
7020
7021 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
7022
7023 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
7024 `lambda', set reg[RRR] to the map index.
7025 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
7026 reg[RRR] to 0. Otherwise, set it to -1.
7027
7028 2000-02-25 Gerd Moellmann <gerd@gnu.org>
7029
7030 * emacs.c (main): Remove code snippet commented out with `//'.
7031
7032 2000-02-25 Richard M. Stallman <rms@gnu.org>
7033
7034 * fileio.c (Ffile_symlink_p): If result starts with a `/'
7035 and contains a `:', prepend `/:'.
7036
7037 * window.c (select_window_1): If selected_window is nil,
7038 don't "swap out" the buffer's point.
7039 (Fset_window_configuration): Set selected_window to nil
7040 before calling Fselect_window.
7041 (unshow_buffer): Don't set point in buffer from window's point
7042 if another more recently selected window also shows the buffer.
7043
7044 2000-02-25 Gerd Moellmann <gerd@gnu.org>
7045
7046 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
7047
7048 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
7049 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
7050 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
7051 variables.
7052 (DEFAULT_BUSY_CURSOR_DELAY): New define.
7053 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
7054 (hide_busy_cursor): New functions.
7055 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
7056
7057 * minibuf.c (read_minibuf): Cancel busy-cursor.
7058
7059 * keyboard.c (command_loop_1): Call start_busy_cursor before
7060 Fcommand_execute and cancel_busy_cursor after it.
7061 (timer_check): Remove busy-cursor code.
7062 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
7063 cursor timer.
7064
7065 * process.c (wait_reading_process_input): Remove busy-cursor code.
7066
7067 * eval.c (Fsignal): Call cancel_busy_cursor instead of
7068 Fx_hide_busy_cursor.
7069
7070 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
7071 Remove prototyoes.
7072 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
7073
7074 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
7075
7076 * xterm.c (XTread_socket): Remove busy-cursor code.
7077
7078 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
7079 (build_frame_matrix_from_leaf_window): Put code handling
7080 glyph row's not being a slice of a frame row in #if 0.
7081 (sync_window_with_frame_matrix_rows): New function.
7082 (frame_row_to_window): New function.
7083 (mirror_line_dance): Handle copies between windows.
7084
7085 * lread.c (Fload): Use `xfree' instead of `free'.
7086 (init_obarray): Use `xmalloc' instead of `malloc'.
7087
7088 * window.c (Fset_window_buffer): Set WINDOW to the window
7089 after decoding.
7090 (coordinates_in_window): Take frame's internal border width
7091 into account.
7092
7093 2000-02-24 Gerd Moellmann <gerd@gnu.org>
7094
7095 * xterm.c (x_display_and_set_cursor): Display cursor of
7096 non-selected windows depending on the setting of
7097 cursor_in_non_selected_windows.
7098
7099 * xdisp.c (cursor_in_non_selected_windows): New variable.
7100 (syms_of_xdisp): DEFVAR_BOOL it.
7101
7102 2000-02-23 Gerd Moellmann <gerd@gnu.org>
7103
7104 * data.c (Fstring_to_number): If number is greater than what
7105 fits into an integer, return a float.
7106
7107 * eval.c (specbind): Remove references to
7108 keyword_symbols_constant_flag.
7109
7110 * data.c (keyword_symbols_constant_flag): Removed.
7111 (Fmakunbound, set_internal, syms_of_data): Remove references to
7112 keyword_symbols_constant_flag.
7113
7114 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
7115
7116 2000-02-23 Kenichi Handa <handa@etl.go.jp>
7117
7118 * syntax.c (multibyte_syntax_as_symbol): New variable.
7119 (syms_of_syntax): Declare it as a Lisp variable.
7120 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
7121 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
7122 nonzero, treat all multibyte characters as symbol.
7123 (init_syntax_once): Give syntax `word' to all multibyte
7124 characters.
7125
7126 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
7127
7128 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
7129 a deleted frame.
7130
7131 2000-02-21 Gerd Moellmann <gerd@gnu.org>
7132
7133 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
7134
7135 * xfns.c (x_window_to_frame, x_any_window_to_frame)
7136 (x_non_menubar_window_to_frame): Check the busy-cursor window.
7137
7138 2000-02-21 Dave Love <fx@gnu.org>
7139
7140 * frame.c (Vmouse_position_function): New variable.
7141 (Fmouse_position): Use it.
7142 (syms_of_frame): Install it.
7143
7144 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
7145
7146 2000-02-20 Gerd Moellmann <gerd@gnu.org>
7147
7148 * fileio.c (Finsert_file_contents): Unbind the binding of
7149 standard-output done by temp_output_buffer_setup.
7150
7151 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
7152 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
7153 (specbind, unbind_to): Handle most common case of non-constant
7154 symbol with trivial value specially.
7155
7156 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
7157
7158 2000-02-20 Richard M. Stallman <rms@gnu.org>
7159
7160 * data.c (Fmake_variable_buffer_local): Doc fix.
7161 Init found_for_buffer to 0.
7162 (Fmake_variable_frame_local): If the variable has already
7163 been buffer-local, set the check_frame field.
7164
7165 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
7166
7167 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
7168 produced for CODING_MODE_LAST_BLOCK requires.
7169
7170 2000-02-18 Dave Love <fx@gnu.org>
7171
7172 * keyboard.c (echo_keystrokes): Remove declaration.
7173 (Vecho_keystrokes) New variable.
7174 (read_char, record_menu_key, read_key_sequence): Use it to allow
7175 use of float value.
7176 (syms_of_keyboard): Change Vecho_keystrokes declaration.
7177
7178 * lread.c: Undef feature selection macros before defining.
7179
7180 2000-02-18 Gerd Moellmann <gerd@gnu.org>
7181
7182 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
7183 for symbols other than the symbol in question.
7184
7185 2000-02-17 Dave Love <fx@gnu.org>
7186
7187 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
7188
7189 2000-02-17 Gerd Moellmann <gerd@gnu.org>
7190
7191 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
7192
7193 * alloc.c (enum mem_type): Compile unconditionally.
7194
7195 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
7196
7197 * xfaces.c (tty_defined_color): Don't return faulire indication
7198 for unspecified-fg and unspecified-bg pseudo-colors.
7199
7200 2000-02-17 Gerd Moellmann <gerd@gnu.org>
7201
7202 * alloc.c (mark_object): Don't mark symbol names in pure space.
7203 (gc_sweep): Don't unmark symbol names in pure space.
7204
7205 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
7206 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
7207 [GC_MARK_STACK]: New defines.
7208 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
7209 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
7210
7211 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
7212
7213 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
7214 allocate_buffer instead of xmalloc.
7215
7216 * alloc.c (toplevel): Include setjmp.h.
7217 (PURE_POINTER_P): New define.
7218 (enum mem_type) [GC_MARK_STACK]: New enumeration.
7219 (Vdead) [GC_MARK_STACK]: New variable.
7220 (lisp_malloc): Add parameter TYPE, call mem_insert if
7221 GC_MARK_STACK is defined.
7222 (allocate_buffer): New function.
7223 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
7224 (free_float) [GC_MARK_STACK]: Set type to Vdead.
7225 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
7226 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
7227 (MEM_NIL) [GC_MARK_STACK]: New define.
7228 (struct mem_node) [GC_MARK_STACK]: New structure.
7229 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
7230 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
7231 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
7232 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
7233 (mark_stack) [GC_MARK_STACK]: New functions.
7234 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
7235 (clear_marks): Removed.
7236 (gc_sweep): Set free conses' car, free floats' type, free
7237 symbols' function to Vdead. Use lisp_free to free buffers.
7238 (init_alloc_once): Initialize Vdead.
7239 (survives_gc_p): Return non-zero for pure objects.
7240
7241 * alloc.c: Add comments throughout the file.
7242
7243 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
7244 that unblocks alarms.
7245
7246 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
7247 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
7248 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
7249
7250 * frame.c (make_frame): Set frame initiallly to `garbaged'.
7251
7252 2000-02-17 Kenichi Handa <handa@etl.go.jp>
7253
7254 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
7255 avoid infinite error signaling. Allocate sufficient memory for
7256 eol_str in the case that eoltype is Lisp_Int.
7257
7258 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
7259
7260 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
7261 depends on the previous behavior.
7262
7263 2000-02-16 Gerd Moellmann <gerd@gnu.org>
7264
7265 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
7266
7267 2000-02-15 Gerd Moellmann <gerd@gnu.org>
7268
7269 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
7270
7271 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
7272 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
7273 write(2).
7274
7275 2000-02-15 Richard M. Stallman <rms@gnu.org>
7276
7277 * data.c (set_internal): Don't make variable buffer-local
7278 if within a let-binding for the same buffer.
7279 (let_shadows_buffer_binding_p): New function.
7280
7281 * eval.c (specbind): For buffer-local value,
7282 record the current buffer also.
7283 (unbind_to): Cope with that change.
7284
7285 2000-02-15 Gerd Moellmann <gerd@gnu.org>
7286
7287 * window.c (Fsave_window_excursion): Doc fix.
7288
7289 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
7290
7291 * syntax.c (back_comment): Make sure we only consider comment-starters
7292 of the relevant style and return -1 in case of a failure to find the
7293 beginning of the comment.
7294 (Fforward_comment): If back_comment fails, go back to the position just
7295 after the comment-end.
7296 (scan_lists): Add comment describing a very minor bug.
7297
7298 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
7299
7300 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
7301 `completion-regexp-list' in the docstring.
7302
7303 2000-02-14 Dave Love <fx@gnu.org>
7304
7305 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
7306
7307 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
7308
7309 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
7310 to Emacs' syntax. Also fix the comment about set/not-set meanings
7311 since Emacs syntax is not the value 0 any more.
7312 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
7313 since it's now part of RE_SYNTAX_EMACS.
7314
7315 2000-02-12 Dave Love <fx@gnu.org>
7316
7317 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
7318 Alpha.
7319
7320 2000-02-12 Gerd Moellmann <gerd@gnu.org>
7321
7322 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
7323
7324 2000-02-12 Dave Love <fx@gnu.org>
7325
7326 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
7327
7328 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
7329 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
7330 * s/hpux.h: Don't define HAVE_VFORK.
7331
7332 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
7333
7334 * s/nextstep.h: Don't define HAVE_ALLOCA.
7335
7336 * config.in: Add vfork bits.
7337
7338 2000-02-12 Gerd Moellmann <gerd@gnu.org>
7339
7340 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
7341 unwind function to undo the effect of stopping atimers.
7342
7343 * keyboard.c (bind_polling_period): Stop all timers except
7344 poll_timer.
7345
7346 * atimer.c (stopped_atimers): New variable.
7347 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
7348 New functions.
7349
7350 * atimer.h (stop_other_atimers, run_all_atimers)
7351 (unwind_stop_other_atimers): Add function prototypes.
7352
7353 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
7354
7355 2000-02-11 Ken Raeburn <raeburn@gnu.org>
7356
7357 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
7358 library may depend on jpeg.
7359 (atimer.o): Depends on atimer.c.
7360
7361 2000-02-11 Kenichi Handa <handa@etl.go.jp>
7362
7363 * insdel.c (del_range_1): Call update_compositions.
7364 (del_range_both): Call update_compositions just once..
7365
7366 2000-02-10 Dave Love <fx@gnu.org>
7367
7368 * xfns.c (create_frame_xic): Fix initialization of automatic
7369 aggregates for pcc.
7370
7371 2000-02-09 Kenichi Handa <handa@etl.go.jp>
7372
7373 * ccl.c (CCL_MAKE_CHAR): New macro.
7374 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
7375 registers by CCL_MAKE_CHAR before calling translate_char.
7376 <CCL_TranslateCharacterConstTbl> Likewise.
7377
7378 2000-02-08 Dave Love <fx@gnu.org>
7379
7380 * lread.c (__EXTENSIONS__): Define.
7381
7382 2000-02-08 Gerd Moellmann <gerd@gnu.org>
7383
7384 * puresize.h (BASE_PURESIZE): Increase to 650000.
7385
7386 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
7387
7388 * msdos.c (XMenuActivate): Turn off the cursor after displaying
7389 the help message.
7390
7391 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
7392
7393 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
7394 md, mh, mb, mr, and me to the fake termcap entry.
7395
7396 2000-02-06 Ken Raeburn <raeburn@gnu.org>
7397
7398 * sound.c (sound_cleanup): Don't call device close routine if the
7399 function pointer is null.
7400
7401 2000-02-06 Andrew Innes <andrewi@gnu.org>
7402
7403 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
7404 around image definitions and prototypes.
7405 (gamma_correct) [WINDOWSNT]: New prototype.
7406
7407 * w32term.c (x_make_frame_visible): Replace call to
7408 input_poll_signal with poll_for_input.
7409
7410 * window.c [WINDOWSNT]: Include w32term.h.
7411
7412 * xdisp.c [WINDOWSNT]: Include w32term.h.
7413
7414 * makefile.nt: Add dependencies on w32gui.h.
7415 (OBJ1): Include atimer.obj.
7416 ($(BLD)\atimer.obj): New dependency rule.
7417
7418 * w32.c (sigmask): New function (does nothing).
7419 (sigunblock): Ditto.
7420
7421 * frame.c [WINDOWSNT]: Include w32term.h.
7422
7423 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
7424
7425 * lread.c (syms_of_lread): Fix literal newlines.
7426
7427 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
7428 the string constant limit (2048 bytes) in MSVC.
7429 (main): Ditto.
7430
7431 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
7432
7433 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
7434 area.
7435 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
7436 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
7437 dispatch the event.
7438
7439 2000-02-04 Dave Love <fx@gnu.org>
7440
7441 * fileio.c: Remove some unused vars.
7442 (_GNU_SOURCE): Define (for euidaccess).
7443
7444 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
7445
7446 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
7447 gcpro1, gcpro2.
7448 (read_minibuf): Deal with allow_props correctly.
7449
7450 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
7451
7452 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
7453
7454 2000-02-03 Ken Raeburn <raeburn@gnu.org>
7455
7456 * search.c (compile_pattern): If a cache entry has a nil regexp,
7457 fill in that entry instead of clobbering a previously cached
7458 string regexp.
7459
7460 2000-02-02 Ken Raeburn <raeburn@gnu.org>
7461
7462 * puresize.h (BASE_PURESIZE): Increase to 610000.
7463
7464 2000-02-02 Gerd Moellmann <gerd@gnu.org>
7465
7466 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
7467 can GC.
7468
7469 2000-02-02 Kenichi Handa <handa@etl.go.jp>
7470
7471 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
7472 instead of incrementing ic directly.
7473 <CCL_WriteExprConst> Likewise.
7474 <ccl_set_expr>: Set ic to jump_address.
7475
7476 * fileio.c (e_write): Fix the handling of
7477 CODING_FINISH_INSUFFICIENT_SRC.
7478
7479 2000-02-01 Dave Love <fx@gnu.org>
7480
7481 * editfns.c (Fpropertize): Doc fix.
7482
7483 * process.c (Fstart_process): Doc fix.
7484
7485 * eval.c: Fix various doc strings not to duplicate information
7486 from help-manyarg-func-alist.
7487
7488 * window.c (Fset_window_margins): Don't make interactive. Doc
7489 fix.
7490
7491 * doc.c (Vhelp_manyarg_func_alist): New variable.
7492 (Fdocumentation): Use it.
7493 (syms_of_doc): Define it.
7494
7495 2000-01-31 Gerd Moellmann <gerd@gnu.org>
7496
7497 * xterm.c (xim_open_dpy): Remove unused local variable.
7498
7499 * emacs.c (USAGE): Use term `display options' instead of `X
7500 options'.
7501
7502 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
7503 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
7504
7505 * fns.c (sweep_weak_table): New function.
7506 (sweep_weak_hash_tables): Use it. Keep on marking until there
7507 is no more change.
7508
7509 2000-01-30 Gerd Moellmann <gerd@gnu.org>
7510
7511 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
7512 that XTread_socket does not crash by trying to call XNoOp on a
7513 closed display.
7514
7515 2000-01-30 Jason Rumney <jasonr@gnu.org>
7516
7517 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
7518 Change selected_frame to SELECTED_FRAME ().
7519 (w32_console_mouse_position): Remove #ifndef MULE from around
7520 `insist' parameter.
7521
7522 * makefile.nt: Remove dosfns.obj.
7523
7524 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
7525
7526 * w32fns.c (w32_defined_color): Check for valid frame before
7527 applying gamma correction. Eliminate dependency on frame elsewhere.
7528 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
7529 (w32_to_x_font): Use resx and resy not height_in and width_in.
7530 (x_to_w32_font): Doc fix.
7531 (xlfd_strip_height): New function to strip and return font height.
7532 (w32_font_match): Compare height separately from rest of xlfd
7533 spec, using xlfd_strip_height.
7534
7535 * w32term.c (w32_term_init): Swap resx and height_in, resy and
7536 width_in. Use w32_defined_color in place of defined_color.
7537
7538 * w32faces.c: Merge more of DOS and X specifics in preparation for
7539 merge with xfaces.c.
7540 (defined_color): Remove FIXME comment.
7541 (tty_color_name): Provide w32-specific function.
7542 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
7543
7544 * w32console.c (turn_on_face, turn_off_face): Removed.
7545 (w32_face_attributes): New function.
7546 (Global_variables): Reduce scope where possible.
7547 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
7548 fill attribute.
7549 (hl_mode): Don't modify text attributes.
7550 (write_glyphs): Don't do anything if len <= 0. Use
7551 w32_face_attributes to get attributes for drawing. Write
7552 terminating codes using char_attr_normal.
7553 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
7554 (update_begin, update_end): Likewise.
7555 (vga_stdcolor_name): New function.
7556 (initialize_w32_display): Remove char_attr_reverse and char_attr.
7557 (Fset_screen_color): Remove char_attr_reverse.
7558
7559 2000-01-29 Gerd Moellmann <gerd@gnu.org>
7560
7561 * xfns.c (xic_set_preeditarea): Take window parameter and
7562 window-relative pixel-positions.
7563
7564 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
7565 is its frame's selected window.
7566 (xim_instantiate_callback): Likewise.
7567
7568 * xfns.c (x_create_im): Removed.
7569 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
7570 (supported_xim_styles): Renamed from supported_styles.
7571 (best_xim_style): Renamed from best_style.
7572 (create_frame_xic): Renamed from xic_create_frame.
7573 (free_frame_xic): Renamed from xic_destroy_frame.
7574
7575 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
7576
7577 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
7578 our frames, call XFilterEvent with 2nd parameter `None'.
7579 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
7580 returning XBufferOverflow.
7581 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
7582 area.
7583 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
7584 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
7585 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
7586 (xim_initialize, xim_close)
7587 [HAVE_X_I18N && HAVE_X11R6]: New functions.
7588 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
7589 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
7590 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
7591
7592 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
7593 and `xim_styles'.
7594 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
7595 `xic_style' and `xic_xfs'.
7596 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
7597 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
7598 (FRAME_XIM): Removed.
7599
7600 * xfns.c (supported_styles): New variable.
7601 (DEFAULT_STYLE, DEFAULT_FONT): New macros
7602 (xic_create_xfontset, best_style, xic_create_frame)
7603 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
7604 (xic_set_xfontset): New functions.
7605
7606 2000-01-28 Dave Love <fx@gnu.org>
7607
7608 * s/irix6-5.h: Revert last change after change to irix5-0.h.
7609
7610 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
7611
7612 2000-01-28 Gerd Moellmann <gerd@gnu.org>
7613
7614 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
7615 for *scratch* if it already existed.
7616
7617 * emacs.c (USAGE): New macro.
7618 (main): Use it to display usage information.
7619
7620 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
7621
7622 Support for the menu-help feature:
7623
7624 * msdos.h: Change prototypes of XMenuAddSelection and
7625 XMenuActivate.
7626
7627 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
7628 part of the line to the termscript file.
7629 (IT_clear_to_end): Clear the entire line, not just its beginning.
7630 (menu_help_message, prev_menu_help_message): New variables.
7631 (IT_menu_make_room): Make room for the help_text member.
7632 (IT_menu_display): New argument disp_help; all callers changed.
7633 If disp_help is non-zero, store the help text of the active menu
7634 item in menu_help_message.
7635 (XMenuAddPane): Initialize the help_text member to NULL.
7636 (XMenuAddSelection): New argument help_text. Store it in the
7637 XMenu structure.
7638 (XMenuActivate): New argument help_callback. If the value of
7639 menu_help_message has changed since the last time, display the
7640 menu help message text while waiting for the mouse to move. Clear
7641 the echo area before exiting.
7642 (XMenuDestroy): Free the help_text member.
7643
7644 2000-01-27 Gerd Moellmann <gerd@gnu.org>
7645
7646 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
7647 XMenuAddSelection. Pass help callback to XMenuActivate.
7648 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
7649
7650 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
7651
7652 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
7653 and EMACS_SET_USECS.
7654
7655 2000-01-26 Dave Love <fx@gnu.org>
7656
7657 * editfns.c (Fchar_after, Fchar_before): Doc fix.
7658
7659 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
7660 an error may be signalled.
7661
7662 2000-01-26 Gerd Moellmann <gerd@gnu.org>
7663
7664 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
7665 LD_SWITCH_SYSTEM inherited from irix5-0.h.
7666
7667 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
7668
7669 2000-01-25 Gerd Moellmann <gerd@gnu.org>
7670
7671 * charset.c (Fstring): If there is a multibyte char among
7672 the args, always return a multibyte string.
7673
7674 2000-01-25 Gerd Moellmann <gerd@gnu.org>
7675
7676 * sysdep.c (sys_select): Turn atimers off and on instead of
7677 recording and restoring old alarm handler
7678
7679 * process.c (toplevel): Include atimer.h.
7680 (create_process_1): Rewritten.
7681 (create_process): Use atimers instead of alarm.
7682 (wait_reading_process_input) [hpux]: Turn atimers off instead
7683 of turning off SIGALRM.
7684 (wait_reading_process_input): Turn off atimers instead off
7685 calling stop_polling.
7686
7687 * emacs.c (main): Call init_atimer.
7688
7689 * keyboard.c (toplevel): Include systime.h and atimer.h.
7690 (polling_for_input): Removed because unused.
7691 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
7692 (poll_timer): New variable.
7693 (poll_for_input, poll_for_input_1): New functions.
7694 (start_polling, stop_polling): Rewritten.
7695
7696 * keyboard.h (polling_for_input): Removed.
7697
7698 * atimer.h, atimer.c: New files.
7699
7700 * Makefile.in (obj): Add atimer.o.
7701 (atimer.o): New target.
7702
7703 * blockinput.h (pending_atimers): Add extern declaration.
7704 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
7705
7706 * lisp.h (popup_activated_flag): Add extern declaration.
7707
7708 * xmenu.c (popup_activated_flag): Make externally visible.
7709 (popup_activate_callback) [USE_MOTIF]: Increment
7710 popup_activated_flag.
7711 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
7712
7713 * xterm.c (toplevel): Include atimer.h.
7714 (toolkit_scroll_bar_interaction): New variable.
7715 (Fxt_process_timeouts): Removed.
7716 (x_process_timeouts): New function.
7717 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
7718 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
7719 (x_make_frame_visible): Call poll_for_input_1 instead of
7720 input_poll_signal. Don't call alarm.
7721 (x_initialize): Install timer calling x_process_timeouts.
7722
7723 2000-01-24 Dave Love <fx@gnu.org>
7724
7725 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
7726 Don't use -cckr -- apparently not now necessary.
7727
7728 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
7729
7730 * msdos.c (IT_menu_display): Truncate long menu lines at the right
7731 screen boundary.
7732
7733 2000-01-23 Jason Rumney <jasonr@gnu.org>
7734
7735 * w32fns.c (w32_defined_color): Apply gamma correction before
7736 trying to map to the palette.
7737 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
7738 to w32_clear_rect.
7739
7740 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
7741 here. Callers changed to always pass real device context.
7742 (w32_draw_bitmap): Likewise.
7743 (w32_get_glyph_overhangs): Likewise.
7744 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
7745 one.
7746 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
7747 pfnSetScrollInfo and SetScrollRange.
7748 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
7749 back into MULE characters after decoding them.
7750 (x_get_glyph_face_and_encoding): Likewise.
7751 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
7752 GetCharABCWidthsW fails, since this is defined on Windows 9x.
7753 (x_produce_glyphs): Calculate per char metrics for a character
7754 that we know exists in default font when font_not_found_p is true.
7755
7756 2000-01-22 Jason Rumney <jasonr@gnu.org>
7757
7758 * makefile.nt (intervals.obj, composite.obj): New modules.
7759 (composite.h): Added as dependency where appropriate.
7760
7761 * w32gui.h (XGCValue): New struct for emulating X GCs.
7762
7763 * w32term.h (XCharStruct): New struct for emulating X.
7764
7765 * w32console.c (turn_on_face, turn_off_face): New functions.
7766 (change_line_highlight): New prototype for new redisplay.
7767 (write_glyphs): Support multibyte text. Support faces.
7768
7769 * w32faces.c: Complete rewrite for new redisplay based on new
7770 xfaces.c.
7771
7772 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
7773 throughout. struct frame * in place of FRAME_PTR.
7774 Skeleton support for images, toolbars, tooltips from xfns.c.
7775 (Fx_create_frame): Use system default for default scroll bar
7776 width.
7777 (w32_get_arg): Renamed from x_get_arg.
7778 (Fx_file_dialog): New function.
7779 (w32_list_fonts): Check cache before asking system.
7780 (Vw32_enable_synthesized_fonts): New variable.
7781 (Vw32_enable_italics): Obsolete, removed.
7782
7783 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
7784 Use SELECTED_FRAME macro.
7785
7786 * w32menu.c: Add skeleton support for help strings on menus.
7787 (add_menu_item): Native checkbox and radio support added, but not
7788 yet enabled due to bugs.
7789 (push_menu_item): Add parameters type, selection and help.
7790 Callers updated.
7791 Formatting changes to reduce unnecessary diffs with xmenu.c.
7792
7793 * w32select.c (Fw32_set_clipboard_data): Update call to
7794 find_charset_in_str.
7795
7796 * w32term.c: Complete rewrite for new redisplay based on new
7797 xterm.c with necessary sections merged back in from old w32term.c.
7798
7799 2000-01-21 Richard M. Stallman <rms@gnu.org>
7800
7801 * data.c (set_internal): Further fix in same criterion.
7802
7803 2000-01-20 Richard M. Stallman <rms@gnu.org>
7804
7805 * data.c (set_internal): Fix the criteria for whether
7806 to swap out the old cached binding.
7807
7808 2000-01-19 Dave Love <fx@gnu.org>
7809
7810 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
7811
7812 2000-01-18 Kenichi Handa <handa@etl.go.jp>
7813
7814 * regex.c (re_compile_fastmap): While checking a range table for
7815 `charset', skip flag bits for a character class correctly.
7816
7817 2000-01-17 Gerd Moellmann <gerd@gnu.org>
7818
7819 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
7820
7821 * xfns.c (x_window): Call lw_create_widget with new parameter
7822 list.
7823
7824 * widget.c (EmacsFrameSetCharSize): Change size of children first
7825 because of problems with main window geometry management under
7826 Lesstif.
7827
7828 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
7829 MENU_ITEMS_ITEM_.*.
7830 (MENU_ITEMS_ITEM_HELP): New enumerator.
7831 (push_menu_item): Add parameter HELP. Record help in menu_items.
7832 (single_menu_item, single_submenu, list_of_items): Call
7833 push_menu_item with new parameter.
7834 (single_submenu): Set help string in widget value.
7835 (menu_highlight_callback): New function.
7836 (set_frame_menubar): Call lw_create_widget with new
7837 parameter list.
7838 (xmenu_show, xdialog_show): Ditto.
7839
7840 2000-01-13 Gerd Moellmann <gerd@gnu.org>
7841
7842 * sound.c (Fplay_sound): Improve doc string.
7843
7844 2000-01-11 Richard M. Stallman <rms@gnu.org>
7845
7846 * lisp.h (set_internal): Enter the new arg.
7847
7848 * eval.c (specbind): Record buffer-local variables specially,
7849 indicating which buffer's binding was saved.
7850 (unbind_to): Restore buffer-local variables specially
7851 in the proper buffer.
7852
7853 * data.c (set_internal): New arg BUF.
7854
7855 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
7856 * data.c (Fset): Pass new arg to set_internal.
7857 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
7858
7859 2000-01-11 Gerd Moellmann <gerd@gnu.org>
7860
7861 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
7862 xprintsym.
7863
7864 2000-01-11 Richard M. Stallman <rms@gnu.org>
7865
7866 * minibuf.c (Ftry_completion): Doc fix.
7867
7868 2000-01-11 Gerd Moellmann <gerd@gnu.org>
7869
7870 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
7871 vector, too.
7872
7873 2000-01-11 Andreas Schwab <schwab@suse.de>
7874
7875 * coding.c (code_convert_region): Initialize total_skip.
7876
7877 2000-01-08 Dave Love <fx@gnu.org>
7878
7879 * eval.c (Fuser_variable_p): Check customizability too.
7880
7881 2000-01-07 Gerd Moellmann <gerd@gnu.org>
7882
7883 * minibuf.c (Fcompleting_read): Doc fix.
7884
7885 2000-01-05 Gerd Moellmann <gerd@gnu.org>
7886
7887 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
7888 -L /usr/local/lib.
7889
7890 * xfns.c (x_create_im): New function to set IM and IC of a frame.
7891 Check that input style is supported before trying to create an
7892 IC for it.
7893 (x_window): Call x_create_im.
7894
7895 2000-01-04 Gerd Moellmann <gerd@gnu.org>
7896
7897 * xfns.c (current_gif_memory_src): New variable.
7898 (gif_load): Record the address of the current memory source
7899 in current_gif_memory_src.
7900 (gif_read_from_memory): Use current_gif_memory_src.
7901
7902 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
7903 macros statement form.
7904
7905 * sound.c (struct sound): Renamed from struct sound_file.
7906 (struct sound): Add members `data' and `header_size'.
7907 (enum sound_attr): Add SOUND_DATA.
7908 (current_sound, current_sound_device): Variables renamed from
7909 sound_file and sound_device.
7910 (parse_sound): Parse :data.
7911 (parse_sound): Handle sound data in strings.
7912 (find_sound_type): Function renamed from find_sound_file_type.
7913 (wav_init, au_init): Fail if sound's header_size is smaller than
7914 needed header size.
7915 (wav_play, au_play): Play sounds from string data.
7916
7917 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
7918
7919 * lisp.h: Add prototype for allocate_string_data.
7920
7921 * alloc.c (Fgarbage_collect): Return number of live and free
7922 strings.
7923
7924 * alloc.c (mark_buffer): Remove code in #if 0.
7925 (gc_sweep): Ditto.
7926 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
7927 (strings_consed): New variable.
7928 (allocate_string): Set it.
7929 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
7930 (Fmemory_use_counts): Return strings_consed. Use Flist.
7931
7932 * alloc.c: General cleanup in comments etc. Remove conditional
7933 compilation for `standalone'.
7934
7935 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
7936
7937 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
7938 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
7939 (DONT_COPY_FLAG): Removed.
7940 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
7941 (struct sdata, struct sblock): New
7942 (struct string_block): Rewritten.
7943 (STRINGS_IN_STRING_BLOCK): New macro.
7944 (oldest_sblock, current_sblock, total_strings, total_free_strings)
7945 (large_sblocks, string_blocks, string_free_list): New variables.
7946 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
7947 (init_strings): Rewritten.
7948 (allocate_string, allocate_string_data, compact_small_strings)
7949 (free_large_strings, sweep_strings): New functions.
7950 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
7951 (struct string_block_head, current_string_block)
7952 (first_string_block, large_string_blocks, STRING_FULLSIZE)
7953 (STRING_PAD): Removed.
7954 (make_uninit_multibyte_string, make_pure_string): Rewritten.
7955 (Fgarbage_collect): Don't set mark bit in large strings.
7956 (mark_object): Mark strings differently. Mark symbol names
7957 differently.
7958 (survives_gc_p): Test marked strings differently.
7959 (gc_sweep): Sweep strings differently, unmark strings in
7960 symbol names.
7961 (compact_strings): Removed.
7962
7963 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
7964
7965 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
7966 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
7967
7968 2000-01-04 Kenichi Handa <handa@etl.go.jp>
7969
7970 * fileio.c (Finsert_file_contents): Signal error if visiting file
7971 in a non-empty buffer.
7972
7973 * term.c (encode_terminal_code): Fix the previous change.
7974
7975 2000-01-03 Gerd Moellmann <gerd@gnu.org>
7976
7977 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
7978 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
7979
7980 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
7981
7982 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7983
7984 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
7985 need to test for MSDOS frames.
7986
7987 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7988
7989 * dosfns.c (unspecified_colors): Remove.
7990 (msdos_stdcolor_idx): Use global variables unspecified_fg and
7991 unspecified_bg.
7992 (msdos_stdcolor_name): Return strings for unspecified fore- and
7993 back-ground colors.
7994
7995 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
7996 (syms_of_xfaces): Remove their staticpro's.
7997 (tty_color_name): Return Lisp strings for unspecified fore- and
7998 back-ground colors.
7999 (Finternal_set_lisp_face_attribute): Remove the special treatment
8000 for Qunspecified_{f,b}g.
8001 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
8002 string.
8003
8004 2000-01-03 Gerd Moellmann <gerd@gnu.org>
8005
8006 * xdisp.c (reseat_at_next_visible_line_start): Position before
8007 newline only if ending up on a newline.
8008 (next_element_from_ellipsis): Return success. Handle case of
8009 displaying no ellipsis. Fix case of ellipsis defined in display
8010 table.
8011 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
8012 returns 0.
8013
8014 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
8015
8016 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
8017 (Fcolor_supported_p): Renamed from face-color-supported-p.
8018
8019 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
8020
8021 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
8022 list of colors renamed to tty-defined-color-alist.
8023 (tty_color_name): Pass the frame to tty-color-by-index.
8024 (realize_tty_face): tty-color-alist is now a function which
8025 accepts the frame as argument.
8026
8027 * term.c (Ftty_display_color_p): Accept an optional argument
8028 FRAME.
8029
8030 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
8031
8032 * term.c (insert_glyphs): Pass glyph, not &glyph, to
8033 encode_terminal_code.
8034
8035 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
8036
8037 * dispnew.c (mode_line_string): Support termcap frames as well.
8038
8039 2000-01-01 Gerd Moellmann <gerd@gnu.org>
8040
8041 * syntax.c (Fforward_word): Undo previous change.
8042
8043 * editfns.c (Fconstrain_to_field): Don't constrain if
8044 inhibit-field-text-motion is non-nil.
8045 (Fline_beginning_position): Undo previous change.
8046 (Fline_end_position): Ditto.
8047
8048 * syntax.c (Fforward_word): Notice field boundaries only if
8049 inhibit-field-text-motion is nil.
8050
8051 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
8052
8053 * editfns.c (Vinhibit_field_text_motion): New variable.
8054 (inhibit-field-text-motion): New DEFVAR_LISP.
8055 (Fline_beginning_position, Fline_end_position): Notice field
8056 boundaries only if inhibit-field-text-motion is nil.
8057
8058 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
8059 All calls adjusted.
8060 (x_build_heuristic_mask): Likewise.
8061 (xbm_load_image_from_file): Change error output.
8062 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
8063 (gif_load, gs_load, x_kill_gs_process): Ditto.
8064
8065 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
8066 color indices when accessing raster pixels.
8067 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
8068 one of :file or :data.
8069 (enum pbm_keyword_index): Add PBM_DATA.
8070 (pbm_format): Add :data.
8071 (pbm_image_p): Allow either :file or :data.
8072 (pbm_read_file): New function.
8073 (pbm_scan_number): Rewritten to read from string.
8074 (pbm_load): Support :data.
8075
8076 See ChangeLog.8 for earlier changes.
8077
8078 ;; Local Variables:
8079 ;; coding: iso-2022-7bit
8080 ;; End: