float_error() is defined iff FLOAT_CATCH_SIGILL is defined.
[bpt/emacs.git] / src / ChangeLog
1 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
2
3 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
4 defined.
5
6 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
7
8 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
9 * w32proc.c (sys_spawnve):
10 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
11 * w32.c (check_windows_init_file):
12 * sound.c (Fplay_sound):
13 * process.c (Fstart_process): Update calls to openp.
14
15 * callproc.c (Vexec_suffixes): New var.
16 (Fcall_process): Update call to openp.
17 (decode_suffixes): New function.
18 (syms_of_callproc): Init exec-suffixes.
19
20 * lread.c (Vload_suffixes, default_suffixes): New vars.
21 (openp): Take a lisp list of suffixes.
22 Check for file-name-handlers even if the file was absolute already.
23 (syms_of_lread): Declare load-suffixes.
24 (Fload): Fix up call to openp.
25 Don't bother checking for file-name-handler at the very beginning.
26
27 * keymap.h (Fcopy_keymap): Don't export.
28
29 * lisp.h (empty_string): Declare.
30 (Vload_suffixes, Vexec_suffixes): Declare.
31 (openp): Update prototype.
32
33 * emacs.c (empty_string): New var.
34 (syms_of_emacs): Initialize it.
35
36 * search.c (wordify): Use it.
37
38 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
39 selected window if it's not displayed there. Handle the case
40 when the window is dedicated.
41 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
42
43 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
44
45 * syntax.h (struct gl_state_s): Change the meaning of b_property.
46 Remove left_ok and right_ok.
47 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
48 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
49 new meaning of b_property.
50
51 * syntax.c (update_syntax_table): Simplify.
52 (Fforward_comment): Don't skip quoted chars when going backward.
53
54 2001-10-11 Gerd Moellmann <gerd@gnu.org>
55
56 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
57 (Fuser_full_name): Fix bug treating a float as a fixnum.
58
59 * data.c (Fstring_to_number): Use make_fixnum_or_float.
60
61 * lisp.h (make_fixnum_or_float): New macro.
62
63 * lisp.h (circular_list_error): Add prototype.
64
65 * data.c (Qcircular_list): New variable.
66 (circular_list_error): New function.
67 (syms_of_data): Initialize it Qcircular_list.
68
69 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
70
71 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
72 casefiddle.c, buffer.c: Include keymap.h.
73
74 2001-10-10 Gerd Moellmann <gerd@gnu.org>
75
76 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
77 options. From Dave Love <d.love@dl.ac.uk>.
78
79 2001-10-09 Gerd Moellmann <gerd@gnu.org>
80
81 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
82 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
83
84 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
85 unsigned char.
86 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
87
88 2001-10-08 Andrew Innes <andrewi@gnu.org>
89
90 * lisp.h [max]: Undef min and max before redefining them.
91
92 * w32gui.h: Do not undef min and max.
93
94 * w32heap.h: Do not undef min and max.
95
96 * s/ms-w32.h: Do not undef min and max.
97
98 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
99
100 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
101
102 2001-10-08 Sam Steingold <sds@gnu.org>
103
104 * keymap.c (current-active-maps): Quote newlines (compilation error).
105
106 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
107
108 * Makefile.in (lisp, shortlisp): Replace bindings.el with
109 bindings.elc, since otherwise doc strings in bindings.el get wrong
110 offsets in etc/DOC.
111
112 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
113
114 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
115
116 * keyboard.h (map_prompt): Remove.
117
118 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
119 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
120
121 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
122
123 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
124
125 * keyboard.c (map_prompt): Remove.
126 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
127 Use Fkeymap_prompt.
128
129 * keymap.h: New file. Extracted from lisp.h.
130
131 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
132 (accessible_keymaps_1): New function.
133 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
134 (Fwhere_is_internal): Use Fcurrent_active_maps.
135 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
136 Insert in current buffer rather than standard-output.
137 Don't call `help-mode'. Export to elisp.
138 (describe_buffer_bindings): New wrapper.
139 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
140 and Sdescribe_buffer_bindings.
141
142 2001-10-08 Gerd Moellmann <gerd@gnu.org>
143
144 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
145 Remove code setting signal handler.
146
147 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
148 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
149
150 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
151
152 * keyboard.c: Don't define min/max.
153
154 2001-10-08 Gerd Moellmann <gerd@gnu.org>
155
156 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
157 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
158 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
159 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
160 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
161 Don't define min/max.
162
163 * lisp.h (min, max): New macros.
164
165 * puresize.h (BASE_PURESIZE): Increase to 725000.
166
167 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
168
169 * xfaces.c (free_frame_menubar): Add prototype.
170
171 * lisp.h (init_window): Add prototype.
172
173 * editfns.c: Include ctype.h.
174
175 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
176 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
177 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
178 variable `sb'.
179
180 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
181 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
182 `popup_activated_flag' and `title'.
183
184 * doc.c (Fdocumentation_property): Fix typo in a doc string.
185
186 * emacs.c (main): Remove extra `;'.
187
188 * atimer.h (struct atimer): Fix typos in a comment.
189
190 * atimer.c: Fix typo.
191
192 * Makefile.in: Fix typo.
193
194 * README: Remove obsolete part mentioning removed VMS file.
195
196 2001-10-07 Miles Bader <miles@gnu.org>
197
198 * Makefile.in (lisp, shortlisp): Add `button.elc'.
199
200 2001-10-07 Ken Raeburn <raeburn@gnu.org>
201
202 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
203 Lisp_Object.
204
205 * lisp.h (Ffield_end): Declare.
206
207 2001-10-07 Gerd Moellmann <gerd@gnu.org>
208
209 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
210
211 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
212
213 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
214
215 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
216
217 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
218 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
219
220 * alloc.c (inhibit_garbage_collection): Simplify.
221 (Fmemory_use_counts): Ditto.
222
223 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
224 (syms_of_data): DEFVAR_INT most-positive-fixnum and
225 most-negative-fixnum.
226
227 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
228 (FIXNUM_OVERFLOW_P): New macros.
229
230 2001-10-06 Miles Bader <miles@gnu.org>
231
232 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
233 scroll_bar_bottom_shadow_pixel fields.
234 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
235 for the shadows, and tell the toolkit about them if we succeed.
236 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
237 Free scroll-bar shadow colors.
238 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
239 Free scroll-bar shadow colors when the background color changes.
240 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
241 Initialize scroll-bar shadow-color fields.
242
243 2001-10-05 Gerd Moellmann <gerd@gnu.org>
244
245 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
246
247 2001-10-05 Miles Bader <miles@gnu.org>
248
249 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
250 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
251 New functions (were in simple.el).
252 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
253 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
254 (syms_of_minibuf): Initialize them.
255
256 2001-10-05 Gerd Moellmann <gerd@gnu.org>
257
258 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
259 (tiff_load): Install them as error and warning handler.
260
261 2001-10-04 Andrew Innes <andrewi@gnu.org>
262
263 * w32fns.c (x_to_w32_color): Fix argument to alloca.
264 (w32_load_system_font): Don't believe what GetLanguageFontInfo
265 says; query codepage info directly to determine if font is double byte.
266 (x_to_w32_charset): Handle private format for unknown charsets.
267 Handle wildcards in charset spec, by ignoring them.
268 (w32_codepage_for_font): Fix argument to alloca. Don't remove
269 "*-" prefix from charset.
270 (x_to_w32_font): Enlarge remainder array for safety. Specifically
271 handle the truncated font spec form constructed by font_list_1, so
272 that we correctly identify the charset fields. Don't remove "*-"
273 prefix from charset.
274 (w32_list_synthesized_fonts): Fix argument to alloca.
275
276 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
277
278 * window.h (MINI_WINDOW_P): Use NILP.
279
280 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
281
282 * termhooks.h (struct input_event): Use proper type for `kind'.
283
284 2001-10-04 Gerd Moellmann <gerd@gnu.org>
285
286 This handles unknown keysyms better than before. For example,
287 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
288 Emacs formerly completely ignored F5. With the change, it derives
289 a key symbol from the name of the X keysym, `ccaron' in this case.
290 Reported by Martin Buchholz.
291
292 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
293 unknown keysyms.
294
295 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
296 that EVENT->code isn't a function key, use the keysym's name.
297
298 2001-10-04 Gerd Moellmann <gerd@gnu.org>
299
300 FOREACH is a macro that should make it easier to loop over Lisp
301 lists with checks for cycles and proper lists.
302
303 * lisp.h (LIST_END_P, FOREACH): New macros.
304
305 2001-10-04 Gerd Moellmann <gerd@gnu.org>
306
307 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
308 called for a lost connection. Prevent dumping core in this case.
309 Instead print the X error, and exit. On user request.
310
311 * xterm.c (error_msg): New variable.
312 (x_fatal_error_signal): New function.
313 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
314 as fatal_error_signal_hook around the call to XtCloseDisplay.
315
316 * emacs.c (fatal_error_signal_hook): New variable.
317 (fatal_error_signal): Call that function.
318
319 2001-10-04 Gerd Moellmann <gerd@gnu.org>
320
321 With this, Emacs prints how much pure storage it will
322 approximately need in case pure storage overflows while dumping.
323
324 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
325 New variables.
326 (init_alloc_once): Initialize new variables.
327 (PURE_POINTER_P): Use new variables.
328 (pure_alloc): If pure storage overflows, allocate from the heap.
329 (check_pure_size): New function.
330 (Fgarbage_collect): Don't GC if pure storage has overflowed.
331
332 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
333 (check_pure_size): Add prototype.
334
335 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
336
337 2001-10-04 Gerd Moellmann <gerd@gnu.org>
338
339 This adds a post-gc-hook that's run with GC inhibited.
340 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
341
342 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
343 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
344 (Fgarbage_collect): Run post-gc-hook.
345
346 2001-10-04 Gerd Moellmann <gerd@gnu.org>
347
348 This adds `defvaralias' and `indirect-variable'. Changes not
349 directly related to this feature are there to gain the same
350 performance again as before variable aliases.
351
352 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
353 code to get and set symbol values, to take defvaralias into account.
354
355 (Note: the new `constant' bit-flag in symbols would make it
356 possible to define arbitrary read-only variables, e.g. with
357 `defconst'.)
358
359 Documentation is in lispref/variables.texi. Added to NEWS.
360
361 * lisp.h (enum symbol_interned): New enumeration.
362 (struct Lisp_Symbol): Remove member `obarray', add
363 `indirect_variable', `constant', and `interned'.
364 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
365 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
366 (indirect_variable): Add prototype.
367
368 * print.c (print_preprocess, print_object): Test internedness of
369 symbols differently.
370
371 * lread.c (Fintern, Funintern): Set symbol's interned and constant
372 bit-fields.
373 (init_obarray): Likewise for t and nil.
374
375 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
376 (Fdefvaralias): New function.
377 (specbind): Simplify the test if symbol is a constant.
378 (syms_of_eval): Defsubr Fdefvaralias.
379
380 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
381 (Qcyclic_variable_indirection): New variable.
382 (Fkeywordp): Check for internedness differently.
383 (Fmakunbound): Simplify the test if symbol is a constant.
384 (indirect_variable, Findirect_variable): New functions.
385 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
386 aliased symbol.
387 (let_shadows_buffer_binding_p): Check for variable aliases.
388 (set_internal): Simplify the test if SYMBOL is a constant.
389 If SYMBOL has a buffer-local value and is an alias, use the aliased
390 symbol instead.
391 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
392 Sindirect_variable.
393
394 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
395 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
396 set directly.
397
398 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
399
400 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
401 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
402 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
403
404 2001-10-04 Gerd Moellmann <gerd@gnu.org>
405
406 * Branch for 21.1.
407
408 2001-10-03 Miles Bader <miles@gnu.org>
409
410 * callproc.c (syms_of_callproc): Explicitly state in the
411 documentation for `process-environment' that earlier entries take
412 precedence over later ones.
413
414 2001-10-02 Miles Bader <miles@gnu.org>
415
416 * textprop.c (Fnext_char_property_change)
417 (Fprevious_char_property_change): Remove reference to non-existant
418 argument OBJECT from doc-string.
419
420 2001-10-01 Gerd Moellmann <gerd@gnu.org>
421
422 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
423 (try_window_id): Skip back over lines ending in a newline from a
424 string.
425
426 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
427 New bit flag
428
429 2001-10-01 Richard M. Stallman <rms@gnu.org>
430
431 * search.c (Freplace_match): Doc fix.
432
433 2001-09-28 Andrew Innes <andrewi@gnu.org>
434
435 * w32menu.c (set_frame_menubar): Take into account that
436 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
437 <raeburn@gnu.org>.
438
439 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
440
441 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
442
443 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
444
445 * s/gnu-linux.h: Fix a typo in comment.
446
447 2001-09-28 Andreas Schwab <schwab@suse.de>
448
449 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
450 nocombreloc, in case -z combreloc is the default.
451
452 2001-09-28 Gerd Moellmann <gerd@gnu.org>
453
454 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
455 really going on here.
456
457 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
458
459 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
460
461 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
462
463 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
464 utf-8, menu-bar, and latin-N.
465 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
466 unconditionally now.
467 (lisp): Add latin-N, since they are preloaded.
468
469 2001-09-27 Gerd Moellmann <gerd@gnu.org>
470
471 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
472 to the left. Some cleanup.
473
474 * xdisp.c (display_mode_element): One more case where a string's
475 multibyteness should be used for display.
476
477 2001-09-26 Gerd Moellmann <gerd@gnu.org>
478
479 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
480 reading at EOF.
481
482 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
483 of the only temporarily set echoing flag for deciding when
484 the cancel echoing.
485
486 * keyboard.c (echo_kboard): Make externally visible.
487
488 * lisp.h (echo_kboard): Declare extern.
489
490 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
491 fonts_changed_p if we need larger matrices due to vscrolling.
492 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
493 this round of redisplay if make_cursor_line_fully_visible fails.
494 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
495 (try_cursor_movement, try_scrolling): Use them instead of integers.
496
497 * dispextern.h (required_matrix_width, required_matrix_height):
498 Add prototypes.
499
500 * dispnew.c (required_matrix_width, required_matrix_height):
501 New functions.
502 (allocate_matrices_for_window_redisplay)
503 (allocate_matrices_for_frame_redisplay: Use them.
504 Remove parameters CH_DIM.
505
506 * xdisp.c (display_mode_lines): Temporarily set selected_frame
507 and selected_window to the frame of the window whose mode-lines
508 are displayed, and to the window itself.
509 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
510 here.
511
512 2001-09-25 Gerd Moellmann <gerd@gnu.org>
513
514 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
515 the image cache under us.
516
517 * xdisp.c (display_mode_element): If the mode element is a symbol
518 with a string value, use that string's multibyteness for displaying.
519
520 * keyboard.c (read_char): Don't clear a message for a switch-frame
521 event. From Stefan Monnier <monnier@cs.yale.edu>.
522
523 * xterm.c (fast_find_position) [0]: Add a presumably more correct
524 version for after 21.1.
525
526 * xdisp.c (row_containing_pos): Make externally visible.
527
528 * dispextern.h (row_containing_pos): Add prototype.
529
530 * process.c (send_process): Disable composition if from_byte < 0.
531 From Kenichi Handa <handa@etl.go.jp>.
532
533 2001-09-24 Gerd Moellmann <gerd@gnu.org>
534
535 * xterm.c (refreshicon): Function removed.
536
537 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
538
539 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
540
541 * xterm.c (toplevel): Remove includes in #if 0.
542
543 * process.c (sigchld_handler) [LINUX]: Don't return from
544 the signal handler at the end of the loop.
545
546 2001-09-21 Gerd Moellmann <gerd@gnu.org>
547
548 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
549 Terminate only if kill returns -1, and errno is ESRCH.
550
551 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
552
553 * Makefile.in (shortlisp): Add ../lisp/env.elc.
554
555 2001-09-20 Gerd Moellmann <gerd@gnu.org>
556
557 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
558 since this function can be called during GC.
559
560 * callproc.c (Fcall_process): Handle errors from pipe(2).
561 (child_setup): Delete code in #ifdef vipc.
562
563 2001-09-19 Gerd Moellmann <gerd@gnu.org>
564
565 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
566 (display_mode_element): Display the string from decode_mode_spec
567 depending on its multibyteness.
568
569 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
570
571 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
572
573 2001-09-18 Gerd Moellmann <gerd@gnu.org>
574
575 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
576 recursive_edit_unwind.
577 (recursive_edit_unwind): Set kboard state according to
578 SINGLE-KBOARD.
579
580 * buffer.c (modify_overlay): Don't do nothing if START == END;
581 This can still be a modification, for example when an overlay has
582 a before-string or after-string.
583 (Fdelete_overlay): Prevent redisplay optimizations when deleting
584 an overlay with before-string or after-string.
585
586 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
587 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
588
589 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
590 first_unchanged_at_end_row is in front of
591 last_unchanged_at_beg_row. This code should be removed after the
592 release of 21.1.
593
594 2001-09-17 Gerd Moellmann <gerd@gnu.org>
595
596 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
597 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
598
599 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
600 versions >= 2.95.
601
602 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
603
604 * dired.c (Ffile_attributes): Doc fix.
605
606 2001-09-14 Gerd Moellmann <gerd@gnu.org>
607
608 * fileio.c (Ffile_symlink_p): Fix last change.
609
610 * filelock.c (current_lock_owner): Fix last change.
611
612 2001-09-13 Gerd Moellmann <gerd@gnu.org>
613
614 * filelock.c (current_lock_owner): If readlink returns ERANGE,
615 take that to mean that the buffer is too small.
616
617 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
618 that to mean that the buffer is too small.
619
620 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
621 current buffer's multibyteness when discarding the iterator's
622 stack.
623
624 * xfns.c (Fx_window_property): Handle case that property gets
625 deleted between the two calls to XGetWindowProperty.
626
627 2001-09-11 Gerd Moellmann <gerd@gnu.org>
628
629 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
630
631 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
632 in addition to read-only.
633
634 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
635 to t in addition to read-only.
636
637 * lisp.h (Qinhibit_modification_hooks): Declare.
638
639 * insdel.c (Qinhibit_modification_hooks): New variable.
640 (syms_of_insdel): Initialize and staticpro it.
641
642 * textprop.c (verify_interval_modification): Don't run
643 modification-hooks if inhibit_modification_hooks.
644
645 * dispnew.c (set_window_cursor_after_update): Fix code
646 finding glyph row containing cursor when cursor_in_echo_area
647 is >= 0.
648
649 * xdisp.c (init_from_display_pos): Put some code in #if 0.
650 (add_to_log): Use bcopy instead of strcpy.
651 (init_from_display_pos): Use an explicit loop over bytes in
652 overlay strings instead of calling index.
653
654 2001-09-10 Gerd Moellmann <gerd@gnu.org>
655
656 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
657
658 * dispnew.c (direct_output_for_insert): Don't change IT's
659 stop_charpos to something in front of its current position.
660
661 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
662 `format'.
663
664 2001-09-10 Richard M. Stallman <rms@gnu.org>
665
666 * frame.c (Fmouse_position): Doc fix.
667
668 2001-09-07 Gerd Moellmann <gerd@gnu.org>
669
670 * xdisp.c (init_from_display_pos): Don't compare the result
671 of calling index with NULL.
672
673 2001-09-06 Gerd Moellmann <gerd@gnu.org>
674
675 * xfns.c (x_set_background_color): Don't change the colors
676 of the X window of scroll bar widgets.
677
678 2001-09-05 Andrew Innes <andrewi@gnu.org>
679
680 * w32fns.c (w32_createwindow): Undo last change.
681
682 2001-09-05 Gerd Moellmann <gerd@gnu.org>
683
684 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
685
686 * xdisp.c (string_buffer_position): Use *single_char_property*
687 functions instead of the *single_property* functions.
688
689 2001-09-04 Andrew Innes <andrewi@gnu.org>
690
691 * w32term.c (w32_read_socket): Add more information to debugging
692 output.
693
694 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
695 from Emacs frames, so that calls to GetClipBox in w32term.c
696 correctly report when part of a frame is visible (including
697 scrollbars, etc). This prevents repeated redrawing of frames when
698 only a scrollbar is visible.
699 (w32_wnd_proc): Add more frame information to debugging output.
700
701 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
702
703 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
704
705 2001-09-03 Gerd Moellmann <gerd@gnu.org>
706
707 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
708 help-echo for a string which doesn't have help-echo itself, use
709 get-char-property to obtain the help-echo from the string's buffer
710 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
711 have mouse-face, look ``under'' the string for mouse-face from an
712 overlay.
713 (fast_find_position): Add parameter STOP. In the final row, stop
714 before glyphs having STOP as object. Don't consider glyphs that
715 are not from a buffer.
716
717 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
718
719 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
720
721 * fns.c (Fmd5): Doc fix.
722
723 2001-08-31 Gerd Moellmann <gerd@gnu.org>
724
725 * composite.c (update_compositions): Do nothing if
726 inhibit-modification-hooks is set.
727
728 2001-08-30 Gerd Moellmann <gerd@gnu.org>
729
730 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
731 and check_message_stack if terminating abnormally. We want
732 glyph matrices etc. in a core dump.
733
734 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
735 (syms_of_xdisp): Initialize them.
736 (handle_single_display_prop): Don't change point, bind `object',
737 `position', and `buffer-position' instead to the object having the
738 `display' property, position in the object and position in the buffer.
739
740 * fileio.c (Finsert_file_contents): Don't change the multibyteness
741 of the buffer if REPLACE is non-nil.
742
743 2001-08-29 Gerd Moellmann <gerd@gnu.org>
744
745 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
746
747 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
748
749 * w32term.c (x_set_glyph_string_background_width)
750 (show_mouse_face): Track the last changes in xterm.c.
751
752 2001-08-28 Gerd Moellmann <gerd@gnu.org>
753
754 * xterm.c (x_set_glyph_string_background_width): Set the glyph
755 string's background width so that multi-line mouse-face is drawn
756 to the right edge of the window.
757 (show_mouse_face): Set the row's mouse_face_p flag after drawing
758 glyphs.
759
760 * dispnew.c (direct_output_for_insert): Set updated_area
761 before inserting/writing glyphs.
762
763 * xdisp.c (display_mode_element): Use string_byte_to_char to
764 determine character positions in strings, use chars_in_text
765 instead of strwidth.
766 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
767 a matrix as parameter; this is easier to use from GDB.
768
769 2001-08-28 Miles Bader <miles@gnu.org>
770
771 * textprop.c (Fprevious_single_char_property_change)
772 (Fnext_single_char_property_change): Doc fixes.
773
774 2001-08-27 Gerd Moellmann <gerd@gnu.org>
775
776 * fileio.c (Finsert_file_contents): Allocate, restore, and
777 free composition data in the case of REPLACE not being nil.
778
779 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
780 there exist overlay strings with newlines at POS.
781 (text_outside_line_unchanged_p): Return 0 if changes start at
782 START and overlays exist at START. Likewise for END.
783 (try_window_id): Give up if init_to_row_end returns 0.
784
785 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
786 unconditionally.
787
788 2001-08-24 Gerd Moellmann <gerd@gnu.org>
789
790 * keymap.c (access_keymap): Return the cdr of the binding of
791 a generic character instead of its definition (KEY . BINDING).
792
793 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
794 to 0 also in the REPLACE case.
795
796 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
797
798 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
799 open to determine whether file is readable (as for DOS_NT).
800
801 2001-08-23 Gerd Moellmann <gerd@gnu.org>
802
803 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
804 coding.type is coding_type_no_conversion or coding_type_raw_text,
805 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
806 non-nil instead of just setting enable_multibyte_characters in the
807 buffer to nil.
808
809 2001-08-22 Gerd Moellmann <gerd@gnu.org>
810
811 * dispextern.h (struct face_cache): Add member
812 menu_face_changed_p.
813
814 * xfaces.c (menu_face_changed_default): New variable.
815 (menu_face_changed_count): Variable removed.
816 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
817 the menu_face_changed_default flag, otherwise set the FRAME's
818 menu_face_changed_p flag if the `menu' face has been changed.
819 Prevent calling set_font_frame_param if FRAME is t.
820 (make_face_cache): Initialize cache's menu_face_changed_p
821 from menu_face_changed_default.
822 (realize_basic_faces): Look into the frame's face cache to
823 determine if the menu appearance needs updating.
824
825 * keymap.c (access_keymap): Fix last change to not consider
826 IDX when it has modifiers.
827
828 2001-08-21 Gerd Moellmann <gerd@gnu.org>
829
830 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
831 . BINDING) exists, where GENERIC-CHAR is the generic character of
832 the charset of IDX, return BINDING unless there exists a binding
833 for IDX itself.
834
835 2001-08-16 Gerd Moellmann <gerd@gnu.org>
836
837 * xrdb.c (SYSV): Don't define on Solaris 2.
838 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
839
840 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
841 of the screen line, not text line, containing IT's current position.
842
843 2001-08-15 Gerd Moellmann <gerd@gnu.org>
844
845 * window.c (window_scroll_pixel_based): Don't recenter if
846 PT is partially visible in the window.
847
848 * xterm.c (expose_window_tree, expose_window, expose_line):
849 Return 1 when overwriting mouse-face.
850 (expose_frame): If mouse-face was overwritten, redo it.
851
852 * xfaces.c (x_update_menu_appearance): Don't call
853 set_frame_menubar, let the next redisplay do it.
854
855 2001-08-14 Andrew Innes <andrewi@gnu.org>
856
857 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
858 drawing glyph string.
859
860 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
861
862 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
863 running HI-UX/MPP.
864
865 2001-08-14 Gerd Moellmann <gerd@gnu.org>
866
867 * xfaces.c (x_update_menu_appearance): Save and restore value of
868 interrupt_input_blocked.
869
870 2001-08-13 Gerd Moellmann <gerd@gnu.org>
871
872 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
873 a line start, move back to the line start.
874
875 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
876 exactly when a mini-buffer is active.
877
878 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
879 in units of 1/8 character on non window-system frames.
880 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
881
882 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
883
884 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
885 a doc string.
886
887 2001-08-09 Gerd Moellmann <gerd@gnu.org>
888
889 * keyboard.c (Vpre_help_message): New variable.
890 (syms_of_keyboard): Initialize and staticpro it.
891 (show_help_echo): Record current message before displaying a
892 help-echo, and restore that message when clearing the help.
893
894 * xfns.c (x_create_im): Remove prototype.
895
896 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
897
898 * dispnew.c (adjust_glyph_matrix): Undo last change.
899
900 2001-08-08 Gerd Moellmann <gerd@gnu.org>
901
902 * dispnew.c (adjust_glyph_matrix): In the optimization for
903 windows whose height has changed, disable partially visible lines.
904
905 2001-08-07 Gerd Moellmann <gerd@gnu.org>
906
907 * window.c (Frecenter): If ARG < 0, and on a window system
908 frame, count in some empty lines when we can't move -ARG lines down.
909
910 * xdisp.c (start_display): Don't try to determine the continuation
911 lines width if lines are truncated. It's superfluous and leads to
912 incorrect results if POS is not visible in the window after
913 reseating the iterator at the previous line start.
914
915 2001-08-06 Gerd Moellmann <gerd@gnu.org>
916
917 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
918
919 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
920
921 * alloc.c (init_stack): Remove declaration.
922
923 2001-08-03 Gerd Moellmann <gerd@gnu.org>
924
925 * keyboard.c (read_key_sequence): Check that key is an integer
926 before comparing it with quit_char.
927 (add_command_key): Use larger_vector.
928 (read_char_x_menu_prompt): Instead of converting symbol and
929 integer events into conses (EVENT . nil), use (EVENT . disabled)
930 which cannot be confused with valid events.
931 (read_char): When reading from Vunread_command_events, check for
932 events of the form (EVENT . disabled) instead of
933 (EVENT . nil).
934
935 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
936 a float, determine the max height from the frame's height.
937
938 2001-08-02 Gerd Moellmann <gerd@gnu.org>
939
940 * xdisp.c (redisplay_internal): Take message_cleared_p into
941 account only if minibuf_level == 0.
942
943 2001-08-01 Gerd Moellmann <gerd@gnu.org>
944
945 * xdisp.c (redisplay_internal): Add a check for the last
946 displayed message.
947
948 * xdisp.c (message_cleared_p): New variable.
949 (clear_message): Set message_cleared_p when clearing the current
950 message.
951 (redisplay_internal): Look at message_cleared_p to capture
952 the case that the echo area should be cleared.
953
954 * keyboard.c (command_loop_1): Fix spelling of
955 resize_echo_area_exactly.
956
957 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
958
959 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
960
961 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
962 current matrix when the window gets smaller.
963
964 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
965
966 * print.c (strout): Cast the character passed to insert_char to
967 unsigned char, to avoid sign extension when it is promoted to int.
968
969 2001-07-31 Gerd Moellmann <gerd@gnu.org>
970
971 * fileio.c (Finsert_file_contents): Don't treat a return value
972 of 0 from emacs_read as an IO error.
973
974 2001-07-30 Gerd Moellmann <gerd@gnu.org>
975
976 * keyboard.c (abs): New macro.
977 (double_click_fuzz): New variable.
978 (make_lispy_event): Use it to determine what makes a double-click.
979 (syms_of_keyboard): DEFVAR_INT it.
980
981 * xmenu.c (set_frame_menubar): Take into account that
982 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
983 <raeburn@gnu.org>.
984
985 2001-07-27 Gerd Moellmann <gerd@gnu.org>
986
987 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
988
989 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
990 of row's visible height.
991
992 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
993 deal with the first overlay string having an image `display' property.
994 (try_window_reusing_current_matrix, compute_line_metrics):
995 Fix computation of row's visible height for the case that part of the
996 row is invisible above and part of the row is at the same time
997 invisible below the window.
998
999 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1000
1001 * xfns.c (x-show-tip): Doc fix.
1002
1003 * xfns.c (Vx_max_tooltip_size): New variable.
1004 (syms_of_xfns): DEFVAR_LISP it.
1005 (Fx_show_tip): Set frame's window_width to the width of the
1006 window. Use a maximum tooltip size specified by
1007 Vx_max_tooltip_size, if that has valid contents.
1008 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1009
1010 2001-07-26 Andrew Innes <andrewi@gnu.org>
1011
1012 * w32term.c (x_display_list): New variable.
1013 (w32_term_init): Set it.
1014
1015 * w32term.h (x_display_list): New extern.
1016
1017 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1018
1019 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1020 is non-nil, instead of when redisplaying_p is non-zero.
1021 See comment there.
1022 (mark_window_display_accurate_1): Add an assertion.
1023
1024 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1025
1026 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1027
1028 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1029 events so that we get a chance of processing expose events.
1030
1031 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1032
1033 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1034
1035 * xfns.c (valid_image_p): Protect better against invalid image
1036 specifications. Previous code could signal an error.
1037
1038 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1039
1040 * indent.c (current_column): Fix column computation in the
1041 presence of display table entries.
1042 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1043
1044 * dispnew.c (adjust_glyph_matrix): In the optimization for
1045 windows whose height has changed, use the new window height
1046 to compute which rows to invalidate.
1047
1048 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1049 (MAX_10_EXP): New macro.
1050 (Fformat): Use it.
1051
1052 * coding.c (code_convert_region): Handle the multibyte case if
1053 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1054
1055 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1056
1057 * dispextern.h (struct face): Change type of `stipple' to
1058 int; it's an ID.
1059
1060 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1061
1062 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1063
1064 * dispnew.c (update_window): Don't set the cursor at the end
1065 of the update if display update has been paused.
1066
1067 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1068
1069 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1070
1071 * fns.c (Fset_char_table_default): Check that a charset is defined
1072 before checking its dimension.
1073
1074 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1075
1076 * coding.c (setup_coding_system): Don't do any designation based
1077 on reg_bits if charset is not yet defined.
1078
1079 * lisp.h (XVECTOR): Verify correct object type before returning a
1080 pointer, using eassert.
1081
1082 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1083
1084 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1085 Increase to 4096 because of paste problems reported on GNU/Linux.
1086
1087 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1088
1089 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1090
1091 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1092
1093 * fileio.c (unwind_read): Function removed.
1094 (read_non_regular, read_non_regular_quit): New functions.
1095 (Finsert_file_contents): When reading from non-regular files,
1096 arrange to catch a `quit' and terminate the loop. Rearrange
1097 code so that a `quit' when reading from a regular file doesn't
1098 insert text in the buffer.
1099
1100 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1101 Clear faces afterwards.
1102 (clear_font_table): Take a x_display_info parameter. Don't free
1103 fonts being the default font of any frame on the given display.
1104
1105 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1106
1107 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1108 instead of CHAR_STRING which can signal an error.
1109
1110 * charset.c (char_to_string_1): Extracted from char_to_string.
1111 Return -1 instead of signaling an error.
1112 (char_to_string): Use it.
1113
1114 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1115
1116 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1117
1118 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1119 is t, don't try to append anything to it.
1120
1121 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1122
1123 * dired.c (file_name_completion): Pass dp->d_name to
1124 Fstring_match, not elt, which is always nil here.
1125
1126 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1127
1128 * xselect.c (x_decline_selection_request): Handle errors
1129 caused by receivers that have vanished.
1130
1131 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1132 ignoring events on foreign windows in #if 0. Always dispatch
1133 the event after checking it with x_handle_property_notify.
1134
1135 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1136 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1137 TRACE macros to facilitate debugging. Add additional trace statements.
1138 (toplevel): Add prototypes for file-local functions.
1139 (x_atom_to_symbol): Remove DPYINFO parameter.
1140
1141 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1142
1143 * w32menu.c (menubar_selection_callback, w32_menu_show):
1144 Initialize `entry' to nil.
1145 (w32_dialog_show): Remove unused `save_wv' variable.
1146 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1147
1148 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1149
1150 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1151
1152 * fileio.c (unwind_read): Print a message when discarding inserted
1153 text or switching the buffer to unibyte. Change parameter.
1154 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1155
1156 * fileio.c (unwind_read): New function.
1157 (Finsert_file_contents): Record it as unwind-function for
1158 the case that reading is interrupted by C-g.
1159
1160 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1161
1162 * dispnew.c (update_window): Don't skip the header-line
1163 update when scrolling_window returns 0.
1164
1165 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1166
1167 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1168 for the case that x_decode_color signals an error.
1169
1170 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1171
1172 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1173
1174 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1175 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1176 around ioctls.
1177
1178 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1179
1180 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1181 doc string line for dos-timezone-offset.
1182
1183 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
1184 inline assembly, to avoid compiler warnings.
1185 (syms_of_msdos): Add \n\ at the end of a line in the doc string
1186 line for dos-unsupported-char-glyph.
1187
1188 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
1189
1190 2001-07-05 Gerd Moellmann <gerd@gnu.org>
1191
1192 * sound.c: Include Emacs' header files with #include "...".
1193
1194 * eval.c (specbind): Additionally record the buffer that was
1195 current when a buffer-local or frame-local variable was bound.
1196
1197 2001-07-04 Gerd Moellmann <gerd@gnu.org>
1198
1199 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
1200 to unibyte characters in unibyte buffers.
1201
1202 2001-07-03 Gerd Moellmann <gerd@gnu.org>
1203
1204 * eval.c (specbind): If SYMBOL has a frame-local binding, record
1205 the frame on the binding stack. Change format of entries for
1206 local bindings on the binding stack to '(SYMBOL . WHERE)'.
1207 (unbind_to): Handle unbinding a frame-local variable.
1208
1209 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
1210 glyphs and truncation glyphs at the end of a row from its pixel width.
1211 (dump_glyph_row): Print row's continuation_lines_width.
1212 (try_window_id): Take the shortcut if ZV is visible in the
1213 window, but there are actually no changes at ZV.
1214
1215 2001-07-02 Gerd Moellmann <gerd@gnu.org>
1216
1217 * xterm.h (x_free_dpy_colors): Add prototype.
1218
1219 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
1220 right number of arguments.
1221
1222 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
1223 ($(lwlibdir)TAGS): New target.
1224 (TAGS): Fix dependency list.
1225
1226 * xterm.c (x_list_fonts): Make sure XFreeFont is called
1227 with input blocked.
1228
1229 2001-06-30 Gerd Moellmann <gerd@gnu.org>
1230
1231 * emacs.c (main): Remove extern declaration for sys_nerr, which
1232 isn't used and causes a compilation error with GCC 3.0 on
1233 FreeBSD 4.3.
1234
1235 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1236
1237 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1238 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1239 (toplevel): Include <signal.h> and syssignal.h.
1240
1241 * sound.c (vox_configure, vox_close): Turn off atimers
1242 around ioctls.
1243
1244 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1245
1246 * keyboard.c (read_char) <non_reread>: Record the previous idle
1247 start time before calling timer_stop_idle.
1248 (read_char) <reread_first>: After processing a help-echo event,
1249 restore the previous idle start time.
1250
1251 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1252 the start of invisible text.
1253 (setup_for_ellipsis): New function.
1254 (next_overlay_string): After all overlay strings have been
1255 processed, display an ellipsis if necessary.
1256 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1257 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1258
1259 * dispextern.h (struct iterator_stack_entry): Add member
1260 display_ellipsis_p.
1261
1262 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1263
1264 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1265 on the value of the wait-for-wm frame parameter.
1266
1267 * xterm.h (struct x_output): Add member wait_for_wm.
1268
1269 * xfns.c (Qwait_for_wm): New variable.
1270 (x_frame_parms): Add entry for `wait-for-wm".
1271 (x_set_wait_for_wm): New function.
1272 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1273 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1274
1275 * xdisp.c (try_window_id) <all changes below window end>: Don't
1276 take this shortcut if ZV is visible in the window.
1277 (try_window_id): When checking for window start being in changed
1278 text, don't check that the buffer's size has changed.
1279
1280 2001-06-23 Richard M. Stallman <rms@gnu.org>
1281
1282 * minibuf.c (Fcompleting_read): Doc fix.
1283
1284 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1285
1286 * composite.c (Ffind_composition_internal): Accept ZV
1287 and a string's end position as POS.
1288
1289 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1290
1291 * composite.c (Ffind_composition_internal): Check POS
1292 for validity.
1293
1294 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1295
1296 * editfns.c (Fmessage_box): If the frame is not under a window
1297 system, output the message in the echo area.
1298
1299 2001-06-14 Richard M. Stallman <rms@gnu.org>
1300
1301 * xdisp.c (try_window_id): When EOB is visible, don't treat
1302 insertion at EOB as if it were "off the bottom of the screen."
1303
1304 2001-06-11 Andrew Innes <andrewi@gnu.org>
1305
1306 * w32proc.c (create_child): Add new parameter is_gui_app.
1307 (w32_executable_type): Add new parameter is_gui_app.
1308 (sys_spawnve): Use it.
1309 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1310 SIGQUIT. This matches better how the signals are interpreted by
1311 MSVC compiled programs.
1312 (syms_of_ntproc): Update docstring.
1313
1314 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1315
1316 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1317 well otherwise note_mouse_highlight might optimize away highlighting
1318 if we pass over that same overlay again.
1319
1320 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1321
1322 * lread.c (Fload): Document that the argument is run via
1323 substitute-in-file-name.
1324
1325 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1326
1327 * Makefile.in (bootstrap-doc): New target.
1328 (bootstrap-emacs): Depend on it.
1329
1330 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1331 auto-save-list-file-name when shutting down Emacs, because
1332 creating the directory might signal an error, and leaves
1333 Emacs in a strange state.
1334
1335 * term.c: (tty_cursor_hidden): New variable.
1336 (update_begin): Don't call tty_hide_cursor. Clean up.
1337 (update_end, set_terminal_window, set_scroll_region): Clean up.
1338 (ring_bell, reset_terminal_modes): Clean up.
1339 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1340 on tty_cursor_hidden.
1341 (write_glyphs): Call tty_hide_cursor.
1342
1343 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1344
1345 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1346
1347 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1348
1349 * xfns.c (enum image_value_type): New enumerator
1350 IMAGE_STRING_OR_NIL_VALUE.
1351 (parse_image_spec): Handle it.
1352 (xbm_format, pbm_format): Use it for :foreground and :background.
1353 (xbm_load, pbm_load): Check for nil color names.
1354
1355 * xterm.c (note_mouse_highlight): If an overlapping overlay
1356 exists, but we find that we highlight the same overlay as before,
1357 don't do the highlighting again.
1358
1359 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1360
1361 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1362 Protect unibyte strings created by replacing their multibyte
1363 equivalents in menu_items.
1364
1365 * keymap.c (Fsingle_key_description): NUL-terminate the string
1366 buffer before calling build_string.
1367
1368 * callproc.c (Fcall_process): Deal with decode_coding returning
1369 CODING_FINISH_INCONSISTENT_EOL.
1370
1371 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1372
1373 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1374 an item's name with its key description in case the description
1375 is a multibyte string.
1376
1377 * keymap.c (Fsingle_key_description): Create a multibyte string
1378 only if necessary.
1379
1380 * macros.c (Fstart_kbd_macro): Doc fix.
1381
1382 * xterm.c (cursor_in_mouse_face_p): New function.
1383 (x_draw_stretch_glyph_string): Use it to choose a different GC
1384 when drawing a cursor within highlighted text.
1385
1386 * editfns.c (char_property_eq): Put in #if 0.
1387
1388 * indent.c (string_display_width): Put in #if 0.
1389
1390 * lread.c (Fload): Remove unused label.
1391
1392 * termcap.c (speeds): Put in #if 0.
1393
1394 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1395
1396 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1397
1398 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1399 transformation matrix by 10.
1400
1401 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1402
1403 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1404 only if it's equal to the former foreground pixel color.
1405 (x_set_foreground_color, x_set_background_color)
1406 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1407
1408 2001-05-16 Dave Love <fx@gnu.org>
1409
1410 * insdel.c (signal_before_change, signal_after_change): Consider a
1411 local change hook which changes the buffer.
1412
1413 * process.c (read_process_output): Don't call signal_after_change
1414 and update_compositions after insert_from_string_before_markers.
1415
1416 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1417
1418 * xfaces.c (split_font_name): Use the right field when
1419 checking for `[...]' syntax.
1420
1421 * buffer.c (copy_overlays): New function.
1422 (clone_per_buffer_values): Use it.
1423
1424 * buffer.h (OVERLAY_PLIST): New macro.
1425
1426 * keymap.c (Fsingle_key_description): Replace a build_string with
1427 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1428
1429 * fontset.c (Ffontset_info): Check that face is non-null
1430 before accessing its fields.
1431
1432 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1433
1434 * keyboard.c (read_key_sequence): Prevent generating a fake
1435 prefix key twice.
1436
1437 * xfaces.c (split_font_name): Handle `[...]' for the right
1438 font name fields.
1439
1440 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1441 of CCL_STAT_INVALID_CMD.
1442
1443 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1444
1445 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1446 in <var> has no default value yet.
1447
1448 * xfaces.c (try_alternative_families): First try the FAMILY.
1449 And if nothing is found in the end, try again with scalable fonts.
1450 (try_font_list): Let try_alternative_families do a bit more of
1451 the work. Only use FAMILY if it is not nil.
1452 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1453
1454 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1455
1456 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1457 pointer shape when show_mouse_face has already done it.
1458
1459 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1460 full-width rows.
1461
1462 * xfaces.c (split_font_name): Make sure to leave the loop
1463 with the right value of `i'.
1464
1465 * xfaces.c (split_font_name): Handle matrix transformations
1466 in the pixel and point size fields of XLFD font names.
1467 (xlfd_point_size): Likewise.
1468
1469 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1470
1471 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1472 (x_to_w32_font): Add prototype.
1473
1474 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1475 redefining, to avoid compiler warnings.
1476
1477 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1478
1479 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1480 (w32_get_bdf_glyph): Cast between unsigned char and char when
1481 passing arguments to subroutines, to shut up compiler warnings.
1482 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1483 GET_HEX_VAL.
1484
1485 * xfaces.c: Include keyboard.h before frame.h, not after it.
1486
1487 * widget.c: Include keyboard.h before frame.h.
1488
1489 * w32term.h (struct image, struct face): Forward declaration, to
1490 avoid compiler warnings.
1491
1492 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1493
1494 * keyboard.c (read_key_sequence): Don't modify events when
1495 generating fake prefix keys (mode-line, scroll-bar, ...) since
1496 this prevents proper processing of such events when pushed back
1497 into unread-command-events.
1498
1499 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1500 actually redrawn. Make the function static.
1501 (note_mouse_highlight): Fix a case where the mouse cursor
1502 was changed back to the text cursor.
1503
1504 * xterm.h (clear_mouse_face): Remove prototype.
1505
1506 * xdisp.c (try_window_id): Fix the fix and set the right
1507 window_end_vpos.
1508
1509 * xdisp.c (try_window_id): Fix computation of window end in the
1510 case that lines were deleted at the end of the window. Add some
1511 more debug_method_adds.
1512
1513 * xfaces.c (try_alternative_families): New function.
1514 (try_font_list): Use it. If ATTRS specifies a family, check
1515 fonts from that family first.
1516 (choose_face_font): Remove code setting the family part of
1517 the pattern to nil.
1518
1519 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1520
1521 * xdisp.c (try_window_id): Fix case of all changes before
1522 the window start.
1523
1524 * xdisp.c (try_window_id): Add some xasserts.
1525
1526 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1527
1528 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1529
1530 2001-05-09 Dave Love <fx@gnu.org>
1531
1532 * xdisp.c (GIVE_UP): Fix for K&R C.
1533
1534 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1535
1536 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1537
1538 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1539 back to the text cursor shape without need.
1540
1541 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1542
1543 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1544
1545 * dispextern.h (inverse_video): Declare extern.
1546
1547 * keyboard.c (delete_kboard): Handle the case that selected_frame
1548 has been deleted in the course of x_connection_closed.
1549
1550 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1551
1552 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1553 Fix the change from 2001-04-30.
1554
1555 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1556
1557 * xfns.c (file_dialog_unmap_cb): New function.
1558 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1559 where a dialog is closed via the window manager.
1560
1561 * xdisp.c (try_window_id): Cases of changes all in front of
1562 the window start or all below the window end mostly rewritten.
1563 (redisplay_window): Move the tests if try_window_id is
1564 applicable to try_window_id.
1565 (GIVE_UP): New macro.
1566
1567 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1568
1569 * xterm.c (expose_window): Return int. If W is the window
1570 currently being updated, mark the frame garbaged.
1571 Fix computation of rows intersecting the exposed rectangle.
1572 (expose_window_tree): Stop when expose_window returns 0.
1573
1574 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1575 again if it has already been drawn.
1576
1577 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1578
1579 * syntax.c (update_syntax_table): Check that oldi has the same
1580 properties as old_prop before deciding not to invalidate.
1581
1582 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1583
1584 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1585 read-only text that is so because of text properties.
1586
1587 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1588 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1589 windows that are components of a Lucid menu bar.
1590
1591 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1592
1593 * term.c (turn_on_face): Fix reverse video handling on terminals
1594 that don't support colors.
1595
1596 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1597
1598 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1599 a non-buffer.
1600
1601 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1602
1603 * term.c (toggle_highlight): New function.
1604 (turn_on_face): Change handling of reverse video.
1605
1606 * process.c (wait_reading_process_input):
1607 Call record_asynch_buffer_change only if a timer really changed buffers.
1608
1609 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1610 of the number of overlays to check.
1611
1612 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1613
1614 * xdisp.c (try_window_id): Fix a case where window_end_pos
1615 and window_end_bytepos were not adjusted.
1616
1617 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1618
1619 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1620 zero instead of -1.
1621
1622 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1623
1624 * process.c (wait_reading_process_input) [!subprocesses]:
1625 Don't reference waiting_for_user_input_p, it's not defined in the
1626 branch without async subprocesses support.
1627
1628 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1629
1630 * keyboard.c (delete_kboard): Prevent a dangling reference
1631 from current_kboard to KB, which is freed.
1632
1633 * process.c (wait_reading_process_input):
1634 Call record_asynch_buffer_change after running timers, to make
1635 read_key_sequence aware of buffer changes from under it.
1636
1637 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1638
1639 * xfaces.c (Qscalable_fonts_allowed): New variable.
1640 (realizing_basic_faces_p): Removed.
1641 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1642 removed.
1643 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1644 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1645 for scalable-fonts-allowed to t.
1646
1647 * fileio.c (Finsert_file_contents): If the file size returned from
1648 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1649 read from files on a procfs whose contents are generated dynamically.
1650
1651 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1652
1653 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1654 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1655 (__memalign_hook): Make the two prototypes consistent.
1656
1657 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1658
1659 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1660 matrix of mini-windows.
1661
1662 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1663
1664 * intervals.c (find_interval): Don't rebalance during signal handling.
1665
1666 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1667
1668 * fns.c: Include blockinput.h.
1669
1670 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1671
1672 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1673
1674 * fns.c (Fcompare_strings): Fix return values.
1675
1676 * window.c (window_scroll): Change the meaning of N to mean
1677 N screen-fulls or N lines.
1678 (window_scroll_pixel_based, window_scroll_line_based)
1679 (scroll_command, Fscroll_other_window): Change accordingly.
1680
1681 * window.c (window_scroll_pixel_based, Frecenter):
1682 Call window_box_height instead of using it.last_visible_y for the
1683 height of the window.
1684
1685 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1686 instead of using it.last_visible_y for the height of the window.
1687
1688 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1689 From Dan Holmsand <dan@eyebee.com>.
1690
1691 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1692 able to write to hidden and system files. From Dan Holmsand
1693 <dan@eyebee.com>.
1694
1695 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1696 Holmsand <dan@eyebee.com>.
1697
1698 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1699
1700 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1701
1702 * window.c (window_internal_height): Return 1 less if the
1703 window has a header line.
1704
1705 * xdisp.c (try_window_id): When scrolling on a terminal, take
1706 the change of window_internal_height into account.
1707
1708 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1709
1710 * gmalloc.c (align): If the argument SIZE would overflow
1711 __malloc_ptrdiff_t, fail right away.
1712
1713 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1714
1715 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1716 Make sure the tooltip is completely visible.
1717 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1718
1719 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1720
1721 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1722
1723 2001-04-06 Dave Love <fx@gnu.org>
1724
1725 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1726 Fix test of `from'.
1727
1728 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1729
1730 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1731
1732 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1733
1734 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1735
1736 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
1737
1738 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
1739
1740 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
1741 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
1742
1743 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
1744 shell widget's position only if it is non-null.
1745
1746 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
1747 Set f->output_data.x->widget to null after destroying it.
1748
1749 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
1750 FILENAME to bring it in synch with the documentation.
1751
1752 * xfaces.c (realizing_basic_faces_p): Renamed from
1753 realize_default_face_p.
1754 (realize_basic_faces): Set/clear realizing_basic_faces_p.
1755 (realize_default_face): Don't set the flag.
1756
1757 2001-04-04 Gerd Moellmann <gerd@gnu.org>
1758
1759 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
1760
1761 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
1762
1763 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
1764 the buffer that was used for echoing.
1765
1766 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
1767 (first_font_matching): Removed unused function.
1768 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
1769 (may_use_scalable_font_p): Remove parameter FONT; rename
1770 parameter NAME to FONT.
1771 (x_face_list_fonts): Fix missing bounds check.
1772 (realizing_default_face_p): New variable.
1773 (realize_default_face): Set and clear that flag.
1774 (x_face_list_fonts): When called during the realization of the
1775 default face, and no matching fonts are found when ignoring
1776 scalable fonts and fonts matching a regexp from
1777 face-ignored-fonts, try without ignoring fonts.
1778
1779 2001-04-03 Gerd Moellmann <gerd@gnu.org>
1780
1781 * xfns.c (postprocess_image): New function.
1782 (lookup_image): Call it for all image types except PostScript.
1783 (x_kill_gs_process): Call postprocess_image.
1784
1785 * xterm.c (x_use_underline_position_properties): New variable.
1786 (x_draw_glyph_string): Use it.
1787 (syms_of_xterm): DEFVAR_BOOL it.
1788
1789 2001-04-02 Gerd Moellmann <gerd@gnu.org>
1790
1791 * xterm.c (x_alloc_nearest_color_1): New function.
1792 (x_alloc_nearest_color): Use it.
1793 (x_color_cells): Take a Display as argument, instead of a frame.
1794 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
1795 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
1796 (x_initialize): Register cvt_string_to_pixel as resource converter
1797 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
1798
1799 2001-03-30 Gerd Moellmann <gerd@gnu.org>
1800
1801 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
1802 (set_iterator_to_next): If a string from a display property ends,
1803 consider the case that this might also be the end of an
1804 overlay string having the display property.
1805
1806 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
1807
1808 * xdisp.c (reseat_to_string): Undo last change.
1809
1810 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
1811 matrix of a window when the header line changes, when
1812 new rows are allocated, or when the width changes.
1813
1814 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
1815
1816 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
1817
1818 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
1819
1820 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
1821 deprecated.
1822
1823 2001-03-29 Gerd Moellmann <gerd@gnu.org>
1824
1825 * data.c (Fsubr_interactive_form): New function.
1826 (syms_of_data): Defsubr it.
1827
1828 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
1829 (live_float_p, live_misc_p): Return 1 only if the offset of the
1830 pointer in its block is >= 0.
1831
1832 2001-03-28 Paul Eggert <eggert@twinsun.com>
1833
1834 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
1835 microseconds calcuation. Avoid double-rounding problem.
1836 In doc string, warn that the result is approximate.
1837
1838 2001-03-28 Gerd Moellmann <gerd@gnu.org>
1839
1840 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
1841 bind `inhibit-eval-during-redisplay' to t.
1842
1843 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
1844
1845 * xdisp.c (inhibit_eval_during_redisplay)
1846 (Qinhibit_eval_during_redisplay): New variables.
1847 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
1848 don't eval, return nil instead.
1849 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
1850 Initialize Qinhibit_eval_during_redisplay.
1851
1852 * xdisp.c (reseat_to_string): If STRING is multibyte, set
1853 the iterator's multibyte_p flag.
1854
1855 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
1856 instead of setting it to zero; it's incremented for each frame
1857 where the menu face is changed.
1858
1859 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
1860 change bottom shadow accordingly.
1861
1862 * xterm.c (expose_window_tree, expose_frame): Don't compute
1863 intersections here.
1864 (expose_window): Do it here instead.
1865 (x_draw_glyph_string): Fix a computation of the underline position.
1866
1867 * bytecode.c (BYTE_CODE_QUIT): New macro.
1868 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
1869
1870 2001-03-27 Gerd Moellmann <gerd@gnu.org>
1871
1872 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
1873 Give up if matrix starts in an ellipsis.
1874 (init_from_display_pos): Do nothing if POS doesn't specify
1875 a dpvec_index but the iterator has such a position.
1876
1877 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
1878
1879 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
1880 x/y position is (0, 0) after destroying the menu bar, restore
1881 its original position.
1882
1883 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
1884 (init_from_display_pos): Use it.
1885 (try_window_reusing_current_matrix): Don't use cursor_row_p.
1886
1887 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1888
1889 * xdisp.c (try_window_id): Undo last change.
1890
1891 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
1892
1893 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
1894
1895 * buffer.c (syms_of_buffer): Doc fix.
1896
1897 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1898
1899 * xfaces.c (x_update_menu_appearance): Use local variable
1900 popup_path for setting font resources.
1901
1902 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
1903
1904 * frame.c (Fframe_list): Don't reference tip_frame if
1905 HAVE_WINDOW_SYSTEM is not defined.
1906
1907 * emacs.c (main): Update the copyright year. From Werner LEMBERG
1908 <wl@gnu.org>.
1909
1910 2001-03-25 Gerd Moellmann <gerd@gnu.org>
1911
1912 * xdisp.c (init_from_display_pos): Test invisible property
1913 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
1914
1915 * xdisp.c (redisplay_internal) <update one window>: Make sure
1916 last_arrow_position and last_arrow_string are set.
1917
1918 * frame.c (Fframe_list): Don't return a tooltip frame.
1919
1920 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1921
1922 * xdisp.c (mark_window_display_accurate_1): New function,
1923 extracted from mark_window_display_accurate.
1924 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
1925 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
1926 (mark_window_display_accurate): Use it.
1927 (redisplay_internal): Use it for the selected window.
1928 (redisplay_internal): Avoid duplicate mark_window_display_accurate
1929 for the selected frame.
1930
1931 * xdisp.c Use make_number, for readability.
1932 (try_window_id): Disable rows below the window end.
1933 (try_window_reusing_current_matrix): Use cursor_row_p.
1934 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
1935 of rows.
1936 (init_from_display_pos): If POS specifies a position in a display
1937 vector, maybe get the iterator set up for that ellipsis.
1938
1939 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
1940
1941 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
1942
1943 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
1944
1945 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1946
1947 * xfaces.c (x_update_menu_appearance): Use a different path
1948 for Lucid popup menus.
1949
1950 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
1951
1952 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
1953
1954 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
1955 (string_buffer_position): Use `make_number'.
1956
1957 2001-03-22 Gerd Moellmann <gerd@gnu.org>
1958
1959 * xfaces.c (x_update_menu_appearance): Renamed from
1960 x_set_menu_face_resources. Use different resources for popups.
1961
1962 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
1963 (GC_CHECK_STRING_BYTES): Don't define.
1964
1965 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
1966 Removed, together with subroutines.
1967 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
1968 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
1969
1970 * dispextern.h (x_set_menu_resources_from_menu_face):
1971 Remove prototype.
1972
1973 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
1974 Remove calls to x_set_menu_resources_from_menu_face.
1975
1976 * xfaces.c (xm_set_menu_resources_from_menu_face):
1977 Remove #ifndef LESSTIF_VERSION.
1978
1979 * xmenu.c: Include widget.h.
1980 (single_submenu): Return int. Some cleanup.
1981 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
1982
1983 2001-03-21 Gerd Moellmann <gerd@gnu.org>
1984
1985 * xterm.c (x_update_window_end): Handle overwritten mouse face
1986 also for tool bar windows.
1987 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
1988 DRAW is DRAW_IMAGE_RAISED.
1989
1990 2001-03-20 Gerd Moellmann <gerd@gnu.org>
1991
1992 * print.c (syms_of_print): Doc fixes.
1993
1994 * fns.c (Fmd5): Doc fix.
1995
1996 2001-03-19 Gerd Moellmann <gerd@gnu.org>
1997
1998 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1999 Clear area of the frame not occupied by the scroll bar.
2000
2001 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2002 tip frame's root window buffer to *tip* right after creating
2003 the frame.
2004
2005 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2006 is an integer don't have to be for space characters.
2007
2008 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2009
2010 * indent.c (current_column, current_column_1, Fmove_to_column)
2011 (compute_motion): Handle characters from display vectors differently.
2012
2013 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2014
2015 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2016 drawing glyph string.
2017
2018 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2019
2020 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2021 (command_loop_1): Undo last change.
2022
2023 * xterm.c (fast_find_position): Return the correct vpos.
2024
2025 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2026 non-null, set a per-buffer value in BUF instead of the current buffer.
2027 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2028 Call store_symval_forwarding with BUF null.
2029 (set_internal): Call store_symval_forwarding with the BUF
2030 parameter passed to set_internal. Formerly, the value was always
2031 set in the current buffer; the buffer recorded in specbind for
2032 this case wasn't used.
2033 (arith_driver): Reindent.
2034
2035 * buffer.c (swap_out_buffer_local_variables):
2036 Call store_symval_forwarding with BUF null.
2037
2038 * lisp.h (store_symval_forwarding): Change prototype.
2039
2040 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2041
2042 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2043
2044 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2045 FOR_DELETION. Avoid resizing the mini-window of the selected
2046 frame if FOR_DELETION is set.
2047 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2048 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2049 signature.
2050
2051 * window.c (Fset_window_configuration): Change call to
2052 do_switch_frame to new format.
2053
2054 * keyboard.c (quit_throw_to_read_char): Change call to
2055 do_switch_frame to new format.
2056
2057 * lisp.h (do_switch_frame): Change prototype.
2058
2059 * frame.c (Fframe_parameters): In the `buffer-list' frame
2060 parameter, store the buffer list of FRAME, not the list of the
2061 selected frame.
2062
2063 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2064 box just because the glyph row's full_width_p flag is set.
2065
2066 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2067
2068 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2069 skip the padding blanks inserted in extend_face_to_end_of_line,
2070 before checking for trailing whitespace.
2071
2072 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2073
2074 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2075 Remove special handling for LessTif/Motif.
2076 (toplevel): Don't include Xm/Xm.h.
2077
2078 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2079 Remove workaround code for LessTif; it doesn't work anymore.
2080
2081 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2082 Xm/ScrollBarP.h.
2083
2084 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2085 Don't access private scroll bar data; it's no longer necessary with
2086 contemporary LessTif.
2087
2088 * xfaces.c (xm_set_menu_resources_from_menu_face):
2089 Change #if 0 to #ifndef LESSTIF_VERSION.
2090
2091 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2092 removing button grabs.
2093
2094 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2095
2096 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2097 and clip-large-size-font as obsolete.
2098
2099 * lread.c (read_multibyte): Check the validity of multibyte
2100 sequence. If invalid, return the first byte.
2101
2102 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2103
2104 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2105 before running the command; timer functions or process
2106 filters may have set it.
2107
2108 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2109
2110 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2111 Doc fix.
2112
2113 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2114
2115 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2116 to sprintf.
2117
2118 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2119
2120 * dispextern.h (string_buffer_position): Add prototype.
2121
2122 * xdisp.c (string_buffer_position, display_prop_string_p)
2123 (single_display_prop_string_p): New functions.
2124
2125 * xterm.c (note_mouse_highlight): If there's no help-echo on
2126 a string, look at the buffer text ``under'' it.
2127
2128 * keyboard.c (make_lispy_event): Add string info to the event,
2129 analogous to what's done on mode lines.
2130 (read_key_sequence): For a click on a string, consider `local-map'
2131 and `keymap' of that string.
2132
2133 * keyboard.c (make_lispy_event, make_lispy_movement):
2134 Adjust calls to buffer_posn_from_coords to new format.
2135
2136 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2137
2138 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2139 POS; return void.
2140
2141 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2142 flags argument to emacs_open; it seems to conflict with O_EXCL.
2143
2144 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2145
2146 * composite.h (struct composition): Change types of members;
2147 glyph_len to unsigned, width to unsigned short.
2148
2149 2001-03-08 Andrew Innes <andrewi@gnu.org>
2150
2151 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2152 menu titles.
2153
2154 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2155
2156 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2157 instead of nil.
2158
2159 * xterm.c (note_mouse_highlight): Handle mouse-face and
2160 help-echo in strings.
2161 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2162 (fast_find_string_pos): New function.
2163
2164 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2165 (display_string): Call face_at_string_position with new parameter.
2166
2167 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2168 Handle `mouse-face'.
2169
2170 * dispextern.h (face_at_string_position): Change prototype.
2171
2172 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2173
2174 * keyboard.c (make_lispy_event): Avoid generating drag events
2175 if the mouse hasn't actually moved to another buffer position.
2176
2177 2001-03-08 Dave Love <fx@gnu.org>
2178
2179 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2180
2181 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2182
2183 * process.c (Fset_process_window_size): Fix a typo.
2184
2185 2001-03-08 Kenichi Handa <handa@etl.go.jp>
2186
2187 * coding.c (detect_coding_sjis): Do more rigid check.
2188 (detect_coding_big5): Likewise.
2189 (decode_coding_sjis_big5): Likewise.
2190 (Fdetect_coding_region): Call detect_coding_system with tailing
2191 anchor byte `\0' for more rigid detection.
2192 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
2193 (Fdetect_coding_string): Likewise.
2194
2195 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
2196
2197 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
2198 a string before extracting its data.
2199
2200 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2201
2202 * window.c (Frecenter): Rewrite code handling negative values
2203 of ARG on graphical frames.
2204
2205 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
2206
2207 * window.c (displayed_window_lines): If W->start is outside the
2208 accessible portion of the buffer, call start_display with BEGV or
2209 ZV instead of W->start.
2210
2211 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2212
2213 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
2214
2215 * process.c (Fset_process_filter): Don't crash if the input
2216 file descriptor of PROCESS is closed.
2217 (Fset_process_window_size): Likewise.
2218
2219 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2220
2221 * xterm.c (XTflash): Make the timeout of select shorter, and call
2222 select repeatedly until the desired time expires.
2223
2224 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2225
2226 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
2227
2228 * xfns.c (Fx_create_frame): Clear Vwindow_list.
2229
2230 * lisp.h (Vwindow_list): Declare extern.
2231
2232 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2233
2234 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2235
2236 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2237
2238 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2239 to detect a case where we have to highlight a different region
2240 despite not having left the currently highlighted region.
2241 Set mouse_face_overlay in the x_display_info.
2242 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2243
2244 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2245
2246 * buffer.c (mouse_face_overlay_overlaps): New function.
2247
2248 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2249 (Qmouse_face): Declare extern.
2250
2251 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2252 if face_change_count is non-zero.
2253
2254 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2255
2256 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2257 that the source is unibyte.
2258
2259 2001-03-05 Dave Love <fx@gnu.org>
2260
2261 * xterm.c (XTmouse_position): Fix typo.
2262
2263 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2264
2265 * minibuf.c (read_minibuf): Clean up the binding stack if
2266 called noninteractively.
2267
2268 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2269
2270 * coding.c (syms_of_coding): Docstring modified.
2271
2272 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2273
2274 * charset.c (char_to_string): If a single byte char has modifier
2275 bits that can't be reflected to the character code, ignore them
2276 instead of signaling an error.
2277
2278 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2279
2280 * s/msdos.h: Update copyright notice.
2281
2282 * dosfns.h: Update copyright notice.
2283
2284 * dosfns.c: Update copyright notice.
2285
2286 * msdos.c: Update copyright notice.
2287
2288 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2289
2290 * xterm.c (glyph_rect): New function.
2291 (XTmouse_position): Use it to raise the threshold for mouse
2292 movement event generation.
2293
2294 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2295
2296 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2297 specifies (reverse . t), reverse the initial screen colors.
2298 (IT_set_frame_parameters): If the property is foreground-color,
2299 but we are reversing the colors, set bg_set, not fg_set.
2300 Likewise for setting background-color and reversing: set fg_set.
2301 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2302 in effect.
2303
2304 * xfaces.c (Finternal_set_lisp_face_attribute)
2305 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2306 parameters alist.
2307
2308 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2309
2310 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2311 to a single slash in the middle of file names.
2312
2313 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2314 Accept only alphanumeric time zone names.
2315
2316 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2317 or width area.
2318 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2319 a widget to zero height.
2320
2321 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2322
2323 * window.c (Fwindow_end): Call move_it_past_eol only if
2324 ending up on a partially visible line.
2325
2326 2001-03-01 Dave Love <fx@gnu.org>
2327
2328 * ccl.c (Fccl_execute): Doc fix.
2329
2330 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2331
2332 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2333 of the tool bar before calling x_figure_window_size.
2334
2335 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2336 NULL after destroying it, otherwise XTread_socket can access a
2337 destroyed widget when input is unblocked.
2338
2339 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2340
2341 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2342 same name as before, although there was a change in fontsets.
2343
2344 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2345
2346 * lisp.h (Fframe_parameter): Declare.
2347
2348 * window.c (set_window_buffer): Field vscroll is an int, not a
2349 Lisp_Object.
2350
2351 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2352
2353 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2354 NULL instead.
2355
2356 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2357 NULL instead.
2358
2359 * alloc.c (toplevel): Include process.h.
2360 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2361 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2362 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2363 (allocate_vector, allocate_hash_table, allocate_window)
2364 (allocate_frame, allocate_process, allocate_other_vector):
2365 New functions.
2366 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2367 (mark_maybe_pointer): New function.
2368 (mark_memory): Also mark Lisp data to which only pointers
2369 remain and not Lisp_Objects.
2370 (min_heap_address, max_heap_address): New variables.
2371 (mem_find): Return MEM_NIL if START is below min_heap_address or
2372 above max_heap_address.
2373 (mem_insert): Compute min_heap_address and max_heap_address.
2374
2375 * process.c (make_process): Use allocate_process.
2376
2377 * frame.c (make_frame): Use allocate_frame.
2378
2379 * window.c (make_window, make_dummy_parent): Use allocate_window.
2380 (Fcurrent_window_configuration): Use allocate_other_vector.
2381
2382 * lisp.h (allocate_vectorlike): Remove prototype.
2383 (allocate_vector, allocate_other_vector, allocate_frame)
2384 (allocate_window, allocate_process, allocate_hash_table):
2385 Add prototypes.
2386
2387 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2388 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2389
2390 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2391
2392 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2393 treat the produced bytes as a valid multibyte sequence.
2394
2395 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2396 (ccl_driver) <CCL_WriteMultibyteChar2>:
2397 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2398 <ccl_finish>: Set ccl->eight_bit_control properly.
2399
2400 * ccl.h (struct ccl_program): New member eight_bit_control.
2401
2402 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2403
2404 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2405 accessible_keymaps_char_table.
2406 (accessible_keymaps_char_table): Obey `is_metized'.
2407 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2408 Lisp_Object.
2409
2410 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2411
2412 * dispnew.c: Check HAVE_TERM_H before including term.h.
2413
2414 2001-02-24 Andrew Innes <andrewi@gnu.org>
2415
2416 * makefile.w32-in: Update copyright notice.
2417
2418 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2419
2420 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2421
2422 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2423
2424 * Makefile.in (lisp): Add international/utf-8.elc.
2425
2426 * fontset.c (Fnew_fontset): Fix handling of the case that an
2427 element of FONTLIST is a cons of family and registry.
2428
2429 2001-02-23 Jason Rumney <jasonr@gnu.org>
2430
2431 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2432 to height unconditionally.
2433
2434 * w32term.c (x_set_glyph_string_background_width): Extend the
2435 background face to the end of the drawing area in the text area, only.
2436 (x_insert_glyphs): Call window_box_left to obtain the left
2437 x-coordinate of the area to shift.
2438
2439 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2440 safe_run_hooks.
2441
2442 2001-02-22 Andrew Innes <andrewi@gnu.org>
2443
2444 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2445 ($(BLD)\dispnew.obj):
2446 ($(BLD)\editfns.obj):
2447 ($(BLD)\fileio.obj):
2448 ($(BLD)\filelock.obj):
2449 ($(BLD)\keyboard.obj):
2450 ($(BLD)\w32proc.obj):
2451 ($(BLD)\process.obj):
2452 ($(BLD)\sysdep.obj): Ditto.
2453
2454 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2455 header files.
2456 ($(BLD)/dispnew.$(O)):
2457 ($(BLD)/editfns.$(O)):
2458 ($(BLD)/fileio.$(O)):
2459 ($(BLD)/filelock.$(O)):
2460 ($(BLD)/keyboard.$(O)):
2461 ($(BLD)/w32proc.$(O)):
2462 ($(BLD)/process.$(O)):
2463 ($(BLD)/sysdep.$(O)): Ditto.
2464
2465 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2466
2467 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2468 at the start of the function, check that the \n in it->c is
2469 from the iterator's current position.
2470
2471 * xdisp.c (handle_single_display_prop): Add parameter
2472 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2473 properties which replace the display of text with something else.
2474 (handle_display_prop): Call handle_single_display_prop with
2475 additional argument saying if we already replaced text display
2476 with something else. Use AREF.
2477 (with_echo_area_buffer_unwind_data, display_menu_bar)
2478 (decode_mode_spec_coding): Use AREF and ASIZE.
2479
2480 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2481 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2482 * vmstime.h: Files removed.
2483
2484 * unexencap.c, unexfx2800.c: Files removed.
2485
2486 * dispnew.c (direct_output_for_insert): Give up if we are showing
2487 a message or just cleared the message because we might need to
2488 resize the echo area window or display an empty echo area.
2489
2490 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2491
2492 * xdisp.c (redisplay_internal): Do the
2493 mark_window_display_accurate after all windows have been
2494 redisplayed because this call resets flags in buffers which are
2495 needed for proper redisplay.
2496
2497 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2498 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2499 the old names.
2500
2501 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2502 busy_window to hourglass_window, busy_p to hourglass_p.
2503
2504 * msdos.h (struct x_output): Rename busy_window to
2505 hourglass_window, busy_p to hourglass_p.
2506
2507 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2508 busy_window to hourglass_window, busy_p to hourglass_p.
2509
2510 * xfns.c: Rename everything containing *busy_cursor* and similar
2511 to *hourglass*.
2512 (syms_of_w32fns): Rename x-busy-pointer-shape to
2513 x-hourglass-pointer-shape, display-busy-cursor to
2514 display-hourglass, busy-cursor-delay to hourglass-delay.
2515
2516 * w32fns.c: Rename everything containing *busy_cursor* and similar
2517 to *hourglass*.
2518 (syms_of_w32fns): Rename x-busy-pointer-shape to
2519 x-hourglass-pointer-shape, display-busy-cursor to
2520 display-hourglass, busy-cursor-delay to hourglass-delay.
2521
2522 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2523 of its busy_p flag.
2524
2525 * dispextern.h (start_hourglass, cancel_hourglass)
2526 (display_hourglass_p): Renamed from *busy_cursor*.
2527
2528 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2529
2530 * keyboard.c (read_char): When an event from unread-command-events
2531 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2532
2533 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2534 equal to the current buffer.
2535
2536 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2537 nil, otherwise we're left with truncate_lines t when a message
2538 is printed with message-truncate-lines bound to t.
2539
2540 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2541
2542 * window.c (Fmove_to_window_line): Undo last change.
2543 (displayed_window_lines): Call line_bottom_y to determine
2544 the line's bottom position.
2545
2546 * dispextern.h (line_bottom_y): Add prototype.
2547
2548 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2549 (pos_visible_p): Use it.
2550
2551 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2552 set redisplaying_p to 0 here instead of in Frecursive_edit.
2553 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2554 set redisplaying_p.
2555
2556 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2557 New variables.
2558 (syms_of_xdisp): Initialize new variables.
2559 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2560 Specbind `inhibit-menubar-update' when updating the menu bar.
2561
2562 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2563 safe_run_hooks.
2564
2565 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2566 safe_run_hooks.
2567
2568 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2569 is null.
2570
2571 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2572 to the start of the file.
2573
2574 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2575
2576 * window.c (set_window_buffer): Fix last change.
2577
2578 * window.c (set_window_buffer): Set window's vscroll to 0.
2579
2580 * window.c (coordinates_in_window): Increase width of area
2581 where the vertical line can be dragged.
2582
2583 * xterm.c (x_set_glyph_string_background_width): Extend the
2584 background face to the end of the drawing area in the text
2585 area, only.
2586
2587 * xdisp.c (handle_single_display_prop): Set iterator's position
2588 to where the `display' property starts, like for images.
2589 (dump_glyph): New function.
2590 (dump_glyph_row): Use it. Dump info about marginal areas.
2591
2592 * dispnew.c (direct_output_for_insert): Recognize more cases where
2593 glyphs can be written instead of being inserted.
2594
2595 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2596 the left x-coordinate of the area to shift.
2597
2598 * dired.c (directory_files_internal): Set result list to nil
2599 before retrying.
2600
2601 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2602
2603 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2604 invalid multibyte sequence, treat *SRC as a character of
2605 eight-bit-graphic.
2606
2607 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2608
2609 * textprop.c (Fset_text_properties): Doc fix.
2610
2611 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2612
2613 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2614
2615 2001-02-14 Dave Love <fx@gnu.org>
2616
2617 * coding.c: Doc and message fixes.
2618
2619 2001-02-14 Andrew Innes <andrewi@gnu.org>
2620
2621 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2622 Emacs frame above the screen size.
2623
2624 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2625
2626 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2627
2628 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2629
2630 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2631 case that TO ends up beyond ZV after running before-change-functions.
2632
2633 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2634 the selected window if it is showing the buffer in question.
2635
2636 * dired.c (directory_files_internal): Initialize errno.
2637 (toplevel): Include errno.h.
2638
2639 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2640
2641 * xfaces.c (best_matching_font): New parameter width_ratio.
2642 Multiply avgwidth by width_ratio.
2643 (choose_face_font): Call best_matching_font with width_ratio
2644 calculated from the column width of C.
2645
2646 2001-02-12 Andrew Innes <andrewi@gnu.org>
2647
2648 The following changes are to draw box lines inside characters area
2649 if line-width is negative.
2650
2651 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2652 face->box_line_width is negative.
2653 (x_produce_stretch_glyph): Likewise.
2654 (x_produce_glyphs): Likewise.
2655 (x_estimate_mode_line_height): Likewise.
2656 (x_draw_glyph_string_background): Likewise.
2657 (x_draw_glyph_string_foreground): Likewise.
2658 (x_draw_composite_glyph_string_foreground): Likewise.
2659 (x_draw_glyph_string_box): Likewise.
2660 (x_draw_image_foreground): Likewise.
2661 (x_draw_image_relief): Likewise.
2662 (x_draw_image_foreground_1): Likewise.
2663 (x_draw_image_glyph_string): Likewise.
2664
2665 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2666
2667 The following changes are to draw box lines inside characters area
2668 if line-width is negative.
2669
2670 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2671 face->box_line_width is negative.
2672 (x_produce_stretch_glyph): Likewise.
2673 (x_produce_glyphs): Likewise.
2674 (x_estimate_mode_line_height): Likewise.
2675 (x_draw_glyph_string_background): Likewise.
2676 (x_draw_glyph_string_foreground): Likewise.
2677 (x_draw_composite_glyph_string_foreground): Likewise.
2678 (x_draw_glyph_string_box): Likewise.
2679 (x_draw_image_foreground): Likewise.
2680 (x_draw_image_relief): Likewise.
2681 (x_draw_image_foreground_1): Likewise.
2682 (x_draw_image_glyph_string): Likewise.
2683
2684 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2685 and :line-width can be negative.
2686 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2687
2688 2001-02-09 Jason Rumney <jasonr@gnu.org>
2689
2690 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2691 characters the same as ASCII and latin-1.
2692 (x_display_and_set_cursor): Check for the focus frame's selected
2693 window instead of selected_window.
2694 (x_after_update_window_line): Don't clear if frame's internal
2695 border width is zero.
2696 (x_new_font): Don't change a tooltip's size.
2697 (w32_initialize): Set char_ins_del_ok to 1.
2698
2699 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2700 (x_set_font): If font hasn't changed, avoid recomputing
2701 faces and other things.
2702 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2703 (Fx_create_frame): Add the tool bar height to the frame height.
2704 (x_create_tip_frame): Prevent changing the tooltip's
2705 background color by specifying a color for the default font
2706 in .Xdefaults.
2707 (Qcancel_timer): New variable.
2708 (syms_of_w32fns): Initialize and staticpro it.
2709 (Fx_hide_tip, Fx_show_tip): Use it.
2710 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2711 the timer.
2712 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2713
2714 * w32.c (init_environment): Duplicate local string before putenv.
2715
2716 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2717
2718 * charset.c (Fstring): A typo.
2719
2720 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2721
2722 * charset.c (Fstring): If all arguments are less than 256, return
2723 a unibyte string.
2724
2725 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2726 return a unibyte string.
2727
2728 * coding.c (code_convert_region): After detecting a coding, if
2729 nothing found, set coding->composing to COMPOSITION_NO.
2730 (decode_coding_string): Likewise.
2731
2732 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2733
2734 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2735 to avoid overflow.
2736
2737 2001-02-07 Kenichi Handa <handa@etl.go.jp>
2738
2739 * charset.c (parse_str_to_multibyte): New function.
2740
2741 * charset.h (parse_str_to_multibyte): Extern it.
2742
2743 * print.c (print_string): If we are going to print a unibyte
2744 string into a multibyte buffer, convert the string to multibyte by
2745 str_to_multibyte.
2746
2747 2001-02-06 Andrew Innes <andrewi@gnu.org>
2748
2749 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
2750 been created. It seems we can get sent window messages such as
2751 WM_ERASEBKGND before we properly update a frame.
2752
2753 2001-02-06 Gerd Moellmann <gerd@gnu.org>
2754
2755 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
2756 Avoid some unnecessary cursor positioning.
2757
2758 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2759
2760 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
2761 (LFACE_AVGWIDTH): New macro.
2762 (LFACEP): Use AREF.
2763 (check_lface_attrs): Check LFACE_AVGWIDTH.
2764 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
2765 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
2766 (merge_face_vectors): Check LFACE_AVGWIDTH.
2767 (Finternal_make_lisp_face): Use AREF.
2768 (xm_set_menu_resources_from_menu_face)
2769 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
2770 (Finternal_lisp_face_empty_p): Use AREF.
2771 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
2772 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
2773 Compare average widths..
2774 (best_matching_font): Arrange for comparing average widths.
2775
2776 * dispextern.h (enum lface_attribute_index):
2777 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
2778
2779 2001-02-05 Dave Love <fx@gnu.org>
2780
2781 * puresize.h: Revert last change following loadup.el change.
2782
2783 2001-02-05 Andrew Innes <andrewi@gnu.org>
2784
2785 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
2786 invocation of temacs, to work with Windows 2000.
2787 (bootstrap-emacs): Ditto.
2788
2789 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2790
2791 * xterm.c (x_display_and_set_cursor): Check for the focus
2792 frame's selected window instead of selected_window.
2793
2794 * xdisp.c (try_scrolling): If point is in the line below the
2795 window, make sure to move the iterator at least a canonical
2796 char height down.
2797
2798 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
2799
2800 2001-02-05 Kenichi Handa <handa@etl.go.jp>
2801
2802 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
2803 If invalid, execute CCL_INVALID_CMD.
2804 (ccl_driver): If the CCL program is terminated because of
2805 CCL_STAT_INVALID_CMD, copy the remaining source data to the
2806 destination instead of throwing them away.
2807
2808 2001-02-02 Gerd Moellmann <gerd@gnu.org>
2809
2810 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
2811 faces and other things.
2812
2813 * xdisp.c (get_next_display_element): Fix case of empty
2814 display table entry.
2815
2816 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
2817
2818 * editfns.c (Fconstrain_to_field): Doc fix.
2819
2820 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
2821 into `thoroughly', to make it consistent with the doc string.
2822
2823 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
2824
2825 2001-02-01 Gerd Moellmann <gerd@gnu.org>
2826
2827 * search.c (search_buffer): Call set_search_regs with a byte
2828 position, not a character position.
2829
2830 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
2831 minibuffer-only,
2832
2833 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
2834
2835 * frame.c (Fmodify_frame_parameters): Doc fix.
2836
2837 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2838
2839 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
2840 identifier which is not reserved by Standard C.
2841
2842 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
2843
2844 * window.c (enum window_part): New enumeration.
2845 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
2846 Qright_bitmap_area.
2847 (coordinates_in_window): Return an enumerator from enum
2848 window_part. Fix handling of right scroll bar.
2849 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
2850 `right-fringe' instead of `left-bitmap-area' and
2851 `right-bitmap-area'. Use enumerators from enum window_part
2852 instead of hard-coded integers.
2853 (check_window_containing, window_from_coordinates):
2854 Use enumerators from enum window_part instead of hard-coded integers.
2855 (syms_of_window): Replace Qleft_bitmap_area and
2856 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
2857
2858 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
2859
2860 * editfns.c (Fformat_time_string): Doc fix.
2861
2862 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
2863
2864 * keymap.c (Fwhere_is_internal): Use the first valid binding
2865 if no ascii binding is found (when firstonly is t).
2866
2867 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2868
2869 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
2870 instead of Finteractive_p.
2871
2872 * lisp.h (interactive_p): Add prototype.
2873
2874 * eval.c (interactive_p): New function.
2875 (Finteractive_p): Use it.
2876
2877 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
2878
2879 2001-01-31 Dave Love <fx@gnu.org>
2880
2881 * .gdbinit (hook-run): Define to run xreload.
2882
2883 * textprop.c (Fset_text_properties): Fix newline in doc string.
2884
2885 2001-01-30 Gerd Moellmann <gerd@gnu.org>
2886
2887 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
2888 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
2889
2890 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
2891 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
2892 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
2893
2894 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
2895 height.
2896
2897 2001-01-30 Dave Love <fx@gnu.org>
2898
2899 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
2900 AFTER_POTENTIAL_GC.
2901
2902 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2903
2904 * bytecode.c (Fbyte_code) <Bcurrent_column>:
2905 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
2906
2907 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
2908
2909 * textprop.c (Fset_text_properties): Doc fix.
2910
2911 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2912
2913 * xdisp.c (forward_to_next_line_start): Remove xassert.
2914
2915 2001-01-29 Jason Rumney <jasonr@gnu.org>
2916
2917 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
2918 returning without releasing it.
2919
2920 2001-01-29 Kenichi Handa <handa@etl.go.jp>
2921
2922 * w32fns.c (w32_font_match): Allocate three more bytes to regex
2923 for '^', '$', and '\0'.
2924
2925 2001-01-28 Andrew Choi <akochoi@i-cable.com>
2926
2927 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
2928 regex for '^', '$', and '\0'.
2929
2930 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
2931 only if current_sblock has been initialized.
2932
2933 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
2934 terminal frame even if it is the only visible frame.
2935
2936 2001-01-28 Kenichi Handa <handa@etl.go.jp>
2937
2938 * fontset.c (font_family_registry): Even if FONTNAME conform to
2939 XLFD, if it specifies other fields than family and registry,
2940 return FONTANME. New argument FORCE if nonzero cancel that feature.
2941 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
2942 a signle byte character. Don't set FAMILY part to nil here.
2943 It is handled by the caller choose_face_font.
2944 (Fnew_fontset): Call font_family_registry with FORCE 0.
2945 (Fset_fontset_font): Likewise.
2946
2947 2001-01-27 Gerd Moellmann <gerd@gnu.org>
2948
2949 * xdisp.c (display_line): Don't treat a newline as fitting
2950 on the line.
2951
2952 2001-01-26 Gerd Moellmann <gerd@gnu.org>
2953
2954 * window.c (size_window): Set the window's orig_top to nil when
2955 changing heights, so that a future shrink_mini_window won't
2956 restore a bogus height.
2957
2958 * frame.c (do_switch_frame): If selected frame has a mini-window,
2959 resize that to exact size.
2960
2961 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
2962
2963 * xdisp.c (display_line): Simplify check for glyphs fitting
2964 entirely in the line.
2965
2966 * xfns.c (xic_style): New variable.
2967 (create_frame_xic): Move static variable to global scope for
2968 the case that `static' gets defined away.
2969
2970 2001-01-26 Kenichi Handa <handa@etl.go.jp>
2971
2972 * coding.c (decode_coding): Set a flag for inhibiting
2973 inconsistent eol.
2974 (code_convert_region): Always set saved_coding_symbol.
2975 (decode_coding_string): Likewise. Update coding->symbol when we
2976 encounter a inconsistent eol by the same way as code_convert_region.
2977
2978 2001-01-25 Gerd Moellmann <gerd@gnu.org>
2979
2980 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
2981 XClearArea.
2982
2983 * xterm.c (x_after_update_window_line): Don't clear if frame's
2984 internal border width is zero.
2985 (x_clear_area): New function.
2986 (x_after_update_window_line, x_clear_end_of_line)
2987 (x_scroll_bar_create, x_scroll_bar_set_handle)
2988 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
2989 instead of XClearArea.
2990
2991 * xterm.h (x_clear_area): Add prototype.
2992
2993 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
2994 which doesn't seem necessary anymore with Lesstif 0.92.
2995
2996 2001-01-25 Dave Love <fx@gnu.org>
2997
2998 * puresize.h (BASE_PURESIZE): Up to 720000.
2999
3000 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3001
3002 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3003
3004 * xdisp.c (echo_area_display): Don't call redisplay_internal
3005 when Emacs is shutting down. We can't run hooks etc. that
3006 would be necessary to do a redisplay.
3007
3008 * lread.c (read_integer): Use type EMACS_INT instead of int.
3009
3010 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3011
3012 * ccl.c (ccl_driver): Fix last change.
3013
3014 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3015
3016 * ccl.h (sturct ccl_program): New member suppress_error.
3017
3018 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3019 insert error message to the output.
3020 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3021
3022 * coding.h (struct coding_system): New member suppress_error.
3023
3024 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3025 (Fset_terminal_coding_system_internal): Set the member
3026 suppress_error to 1.
3027 (Fset_safe_terminal_coding_system_internal): Likewise.
3028
3029 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3030
3031 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3032 as if it was a `charset'.
3033
3034 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3035
3036 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3037 value in where_is_cache; the next lookup in the cache returns
3038 something bogus if we do.
3039
3040 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3041
3042 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3043 if HAVE_WINDOW_SYSTEM isn't defined.
3044
3045 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3046
3047 * fns.c (sweep_weak_table): Fix code taking items out of
3048 the hash collision chain. Some cleanup.
3049
3050 * xterm.c (x_new_font): Don't change a tooltip's size.
3051
3052 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3053 background color by specifying a color for the default font
3054 in .Xdefaults.
3055
3056 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3057
3058 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3059 a workaround for SunOS 4's cc.
3060 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3061 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3062 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3063 statement.
3064
3065 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3066
3067 * xterm.c (x_set_window_size_1): New function extracted from
3068 x_set_window_size.
3069 (x_set_window_size): Use it.
3070 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3071 doesn't have a widget, like tooltips.
3072
3073 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3074
3075 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3076
3077 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3078
3079 * fns.c (Fset_char_table_default): Fix to make sub char-table
3080 correctly.
3081
3082 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3083
3084 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3085 a desired tool bar string, even if there are no tool bar items.
3086
3087 * xdisp.c (Ftool_bar_lines_needed): New function.
3088 (syms_of_xdisp): Defsubr it.
3089
3090 * editfns.c (Fformat): Don't extend text properties from arguments
3091 to padding chars in the result.
3092
3093 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3094
3095 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3096
3097 2001-01-20 Andrew Innes <andrewi@gnu.org>
3098
3099 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3100 (w32_initialize): Don't set term hooks that aren't actually needed
3101 in windowed mode.
3102
3103 * xfaces.c (realize_default_face):
3104 (realize_face):
3105 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3106
3107 * xdisp.c (handle_single_display_prop): Remove references to
3108 FRAME_W32_CONSOLE_P.
3109
3110 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3111
3112 * frame.h (output_method): Remove output_w32_console method.
3113 (FRAME_W32_CONSOLE_P): Remove macro.
3114
3115 * frame.c (Qw32_console): Remove variable.
3116 (Fframep): Remove references to it.
3117 (syms_of_frame): Ditto.
3118 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3119
3120 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3121 redefinition.
3122
3123 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3124
3125 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3126
3127 2001-01-19 Andrew Innes <andrewi@gnu.org>
3128
3129 * w32.c (init_environment): Add a version-independent site-lisp
3130 directory to EMACSLOADPATH, after the version dependent one.
3131
3132 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3133
3134 * editfns.c (Fbuffer_substring): Doc fix.
3135
3136 * xdisp.c (message_dolog, message2, message2_nolog):
3137 Rename parameter LEN to NBYTES.
3138
3139 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3140
3141 * charset.c (strwidth): Use c_string_width.
3142 (c_string_width): New function.
3143 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3144 Caller changed.
3145
3146 * charset.h (c_string_width, lisp_string_width): Extern them.
3147
3148 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3149
3150 * indent.c (check_composition): Check validity of composition.
3151
3152 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3153 characters by calling c_string_width.
3154 (x_consider_frame_title): Get byte length of frame tile string
3155 correctly.
3156 (display_mode_element): Pay attention to width of non-ASCII
3157 characters by calling strwidth.
3158
3159 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3160
3161 * xfns.c (Qcancel_timer): New variable.
3162 (syms_of_xfns): Initialize and staticpro it.
3163 (Fx_hide_tip, Fx_show_tip): Use it.
3164 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3165 the timer.
3166 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3167
3168 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3169
3170 * window.h (WINDOW_LIVE_P): New macro.
3171
3172 * window.c (window_size_fixed): New variable.
3173 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3174 the doc string.
3175
3176 * eval.c (specbind): If binding a per-buffer variable which
3177 doesn't have a buffer-local value in the current buffer, change
3178 the global value by changing the value of the symbol bound in all
3179 buffers not having their own value, to make it consistent with
3180 what happens with other buffer-local variables.
3181
3182 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
3183
3184 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
3185 when searching for a newline.
3186
3187 2001-01-18 Kenichi Handa <handa@etl.go.jp>
3188
3189 * xdisp.c (display_string): Fix previous change.
3190
3191 2001-01-18 Jason Rumney <jasonr@gnu.org>
3192
3193 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
3194 GLYPH_DEBUG is defined.
3195 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
3196 true for images with `:ascent 100'.
3197 (x_set_mouse_face_gc): If the last used mouse face has gone in the
3198 meantime, use face MOUSE_FACE_ID.
3199 If first glyph isn't a character glyph, use the ASCII NUL
3200 character to determine the face.
3201 (expose_area): Do not treat left margin specially.
3202 (note_mode_line_highlight): If no local_map, check global keymap.
3203 (note_mouse_highlight): Initialize overlay.
3204 (clear_mouse_face): Don't return if tip_frame is non-nil.
3205 (show_scroll_bars): Remove unused function.
3206 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
3207 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
3208 Clip to row.
3209 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
3210 (x_free_frame_resources): Unload relief colors.
3211
3212 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3213
3214 * xdisp.c (forward_to_next_line_start): Avoid calling
3215 get_next_display_element when the newline is already found.
3216 This may change the iterator's position, when its current position is
3217 equal to the iterator's stop_charpos.
3218
3219 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
3220 zero, use this method only at the end of a line.
3221
3222 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
3223 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
3224 if SCALABLE_FONTS_P is set.
3225
3226 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
3227 so that scalable fonts are included.
3228
3229 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
3230 In the cache, use a key containing the information if scalable
3231 fonts are included.
3232 (x_load_font): Adapt to change of keys in the font cache.
3233
3234 2001-01-17 Kim F. Storm <storm@filanet.dk>
3235
3236 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3237 XListFonts to take advantage of font caching.
3238
3239 * xterm.c (x_list_fonts): Ensure caching font information when
3240 called for a null frame, which is the case frequently when Emacs
3241 starts.
3242
3243 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3244
3245 * xfns.c (QCconversion): Replaces QCalgorithm.
3246
3247 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3248
3249 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3250 of :algorithm.
3251
3252 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3253 not everything could be displayed.
3254
3255 * line.h, x-list-font.c: Files removed because unused.
3256
3257 2001-01-17 Andrew Innes <andrewi@gnu.org>
3258
3259 * dired.c (directory_files_internal): Convert result from readdir
3260 to a unibyte string initially, to avoid possible misinterpretation
3261 of some bytes as the internal form of Emacs characters.
3262
3263 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3264
3265 * fns.c (concat): Be sure to avoid putting the same `composition'
3266 property on the adjacent regions.
3267
3268 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3269
3270 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3271 (Fscroll_right, Fscroll_left): Set it here instead, if called
3272 interactively.
3273
3274 * buffer.c (Fset_buffer_modified_p): Set buffer's
3275 prevent_redisplay_optimizations_p flag.
3276
3277 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3278 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3279 with additional arg.
3280
3281 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3282 Change prototype.
3283
3284 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3285 FROM_WHERE, for debugging.
3286
3287 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3288
3289 * ccl.c (Fregister_ccl_program): Handle the return value of
3290 resolve_symbol_ccl_program correctly.
3291 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3292
3293 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3294
3295 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3296 has gone in the meantime, use face MOUSE_FACE_ID.
3297
3298 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3299 If x_display_info_for_display returns null, don't try to close
3300 the display; we didn't open it.
3301
3302 * dispnew.c (save_or_restore_current_matrices): Function removed.
3303 (save_current_matrix, restore_current_matrix): New functions.
3304 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3305 restore the frame's current matrix. Due to the glyph pointer
3306 setup done in adjust_glyph_matrix, there is no easy way to make
3307 saving the current matrix in the desired matrix generally correct,
3308 so don't try it.
3309
3310 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3311
3312 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3313 truncation glyphs.
3314 (display_line): Optimize for wide characters.
3315 (display_string): Don't try to display a multi-column character
3316 partially. On ttys, produce more than one truncation glyph for
3317 multi-column characters that don't fit on the line.
3318
3319 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3320
3321 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3322 Define it instead of WORDS_BIGENDIAN. Caller changed.
3323
3324 2001-01-13 Jason Rumney <jasonr@gnu.org>
3325
3326 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3327 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3328 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3329 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3330
3331 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3332 (x_draw_image_relief, x_draw_image_foreground_1)
3333 (x_draw_image_glyph_string): Adapt to change of image margins.
3334
3335 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3336 variables.
3337
3338 * w32bdf.c (search_file_line, get_cached_font_char)
3339 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3340
3341 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3342
3343 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3344 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3345 (Fw32_send_sys_command): Remove unused variables.
3346 (w32_msg_pump): Add parentheses.
3347
3348 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3349 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3350 Add parentheses.
3351
3352 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3353
3354 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3355 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3356 being a pair of margins.
3357 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3358 to DEFVAR_LISP. Extend doc.
3359
3360 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3361 margins.
3362 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3363 pair of integers `(X . Y)', use X for the horizontal and Y for the
3364 vertical margin.
3365 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3366 (parse_image_spec): Check it.
3367 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3368 (tiff_format, gif_format, gs_format):
3369 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3370
3371 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3372 (x_draw_image_relief, x_draw_image_foreground_1)
3373 (x_draw_image_glyph_string): Adapt to the change of image margins.
3374
3375 * dispextern.h (struct image): Replace member `margin' with
3376 `hmargin' and `vmargin'.
3377
3378 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3379 and GLYPHS.
3380
3381 * dispnew.c (update_text_area): Put code which decrements the
3382 stop position when the row's face extends to the end of the
3383 line in #if 0.
3384
3385 * xfns.c (x_set_mouse_color): Fix color allocation.
3386
3387 * keyboard.c: Call get_local_map with new argument list.
3388
3389 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3390
3391 * intervals.h (enum map_property): Removed.
3392 (get_local_map): Change prototype.
3393
3394 * keymap.c: Call get_local_map with new argument list.
3395 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3396
3397 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3398
3399 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3400 of the size needed for the tool bar string. For the last image,
3401 use a `display' property that reaches to the end of the string.
3402
3403 * xselect.c (selection_request_dpyinfo): New variable.
3404 (x_handle_selection_request): Set it.
3405 (x_selection_request_lisp_error): Don't call
3406 x_decline_selection_request if selection request's display has
3407 been closed.
3408
3409 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3410 Do the unregister_colors before calling XFreeColors.
3411
3412 2001-01-10 Dave Love <fx@gnu.org>
3413
3414 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3415 ${SOME_MACHINE_LISP}, not ${lisp}.
3416
3417 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3418
3419 * xdisp.c (display_line): On ttys, produce more than one truncation
3420 glyph for multi-column characters that don't fit on the line.
3421
3422 * xselect.c (x_reply_selection_request): Add a comment.
3423
3424 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3425 XkbGetNames instead of XkbGetKeyboard.
3426
3427 2001-01-10 Dave Love <fx@gnu.org>
3428
3429 * sysdep.c (random): Revert the declaration.
3430
3431 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3432
3433 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3434 Call function string_bytes.
3435 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3436
3437 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3438 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3439 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3440 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3441 the current sblock.
3442 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3443 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3444 after sweeping strings, and at the end.
3445 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3446
3447 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3448 ensure that pop_message is called.
3449
3450 * keyboard.c (Fexecute_extended_command): Use a
3451 record_unwind_protect to ensure that pop_message is called.
3452
3453 * lisp.h (push_message_unwind): Add prototype.
3454
3455 * xdisp.c (push_message_unwind): New function.
3456
3457 * fileio.c (do_auto_save_unwind): Do the pop_message here
3458 instead of in Fdo_auto_save.
3459 (Fdo_auto_save): Don't call pop_message.
3460
3461 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3462
3463 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3464 in inner block.
3465
3466 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3467
3468 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3469 when increasing window's vscroll.
3470
3471 * macros.c (Qkbd_macro_termination_hook): New variable.
3472 (syms_of_macros): Initialize and staticpro it.
3473 (pop_kbd_macro): Run kbd-macro-termination-hook.
3474
3475 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3476
3477 2001-01-07 Dave Love <fx@gnu.org>
3478
3479 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3480 arglist, for documentation's sake.
3481
3482 2001-01-06 Andrew Innes <andrewi@gnu.org>
3483
3484 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3485 of *.pdb.
3486
3487 2001-01-05 Andrew Innes <andrewi@gnu.org>
3488
3489 * term.c (update_end): Don't check updating_frame; for some reason
3490 this can be 0 sometimes, such as after dismissing a popup menu,
3491 and isn't necessary given the explicit frame argument.
3492
3493 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3494
3495 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3496 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3497
3498 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3499
3500 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3501
3502 * xfns.c (x_create_tip_frame): Preserve the value of
3503 face_change_count around the creation of the tip frame.
3504
3505 * xfns.c (last_show_tip_args): New variable.
3506 (compute_tip_xy): New function.
3507 (Fx_show_tip): Reuse an existing tip frame, if possible.
3508 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3509
3510 2001-01-04 Dave Love <fx@gnu.org>
3511
3512 * editfns.c (Fformat): Doc fix.
3513
3514 * systime.h (set_file_times): Prototype.
3515
3516 * widget.h (EmacsFrameSetCharSize_): Prototype.
3517
3518 * sysdep.c (random, srandom): Declare explicitly.
3519
3520 * dispextern.h (move_it_vertically_backward): Declare.
3521
3522 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3523
3524 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3525 like in Fx_create_frame.
3526
3527 * xfaces.c (set_font_frame_param): Don't do anything for
3528 non-graphical frames.
3529
3530 * window.c (Fdelete_other_windows): Set window's window_end_valid
3531 to nil when changing the window's start. Don't change the
3532 window's start when its top position hasn't changed. If we do,
3533 this will set the window's optional_new_start, which act's like a
3534 force_start during redisplay with C-x 1 M-> under particular
3535 circumstances (see report from Per Starback to emacs-pretest-bug
3536 from 2000-12-13.).
3537
3538 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3539
3540 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3541 short cut at the start of the function. Add an assertion.
3542 (reseat_at_next_visible_line_start): Add an assertion.
3543
3544 * window.c (Frecenter): When changing the window start, set the
3545 window's window_end_valid to nil.
3546 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3547
3548 * dispextern.h (move_it_past_eol): Add prototype.
3549
3550 * xdisp.c (move_it_past_eol): New function.
3551
3552 * window.c (Fwindow_end): Doc fix.
3553
3554 2001-01-03 Dave Love <fx@gnu.org>
3555
3556 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3557
3558 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3559
3560 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3561 the enabled_p flag of the glyph row at window_end_vpos to 0.
3562 (handle_single_display_prop): Fix last change.
3563
3564 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3565
3566 * window.c (Frecenter): Doc fix.
3567
3568 2001-01-02 Andrew Innes <andrewi@gnu.org>
3569
3570 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3571
3572 * frame.h (output_method): Add output_w32_console method.
3573 (FRAME_W32_CONSOLE_P): New macro.
3574
3575 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3576 use output_w32_console method.
3577 (Qw32_console): New Lisp_Object.
3578 (Fframep): Return it.
3579 (syms_of_frame): Init it.
3580 (Fframe_parameters): Report w32console as font for w32_console frames.
3581
3582 * xfaces.c (realize_default_face): Set face foreground and
3583 background to unspecified for w32_console frames.
3584 (realize_face): Realize face cache for w32_console frames.
3585 (realize_tty_face): Accept w32_console frames.
3586
3587 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3588 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3589 necessary, even if running interactively.
3590
3591 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3592 w32_console frames.
3593
3594 * w32term.c (x_update_begin):
3595 (x_update_end):
3596 (x_clear_frame):
3597 (x_ins_del_lines):
3598 (x_change_line_highlight):
3599 (x_delete_glyphs):
3600 (w32_ring_bell):
3601 (x_update_begin):
3602 (x_update_end):
3603 (w32_reassert_line_highlight):
3604 (w32_frame_rehighlight):
3605 (w32_frame_raise_lower): Do nothing if not w32 frame.
3606
3607 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3608
3609 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3610 system doesn't tell us directly.
3611 (Fx_display_visual_class): Implement properly.
3612
3613 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3614
3615 * window.c (Frecenter): Handle centering in graphical frames
3616 specially. Centering on the basis of line counts doesn't work
3617 reliably with variable-height lines.
3618
3619 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3620
3621 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3622 and al[].
3623
3624 * composite.c (run_composition_function): Remove unused var `val'.
3625 (update_compositions): Remove unused variable `hook'.
3626
3627 * intervals.c (get_local_map): Remove unused variable `tem'.
3628
3629 * doprnt.c (doprnt1): Remove unused variable `size'.
3630
3631 * fns.c (Flength): Remove unused variable `tail'.
3632 (Fdelete): Remove unused variable `size'.
3633
3634 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3635 and `gcpro2'.
3636
3637 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3638
3639 * data.c (find_symbol_value): Remove extra 3rd argument in the
3640 call to swap_in_symval_forwarding.
3641
3642 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3643
3644 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3645 (trivial_regexp_p): Remove unused variable `c'.
3646 (boyer_moore): Remove unused variable `k'.
3647
3648 * indent.c (current_column): Remove unused variable `stopchar'.
3649 (Fcompute_motion): Remove unused variable `contin'.
3650
3651 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3652
3653 * dired.c (directory_files_internal): Fix a typo in a comment.
3654 Remove an unused variable `handler'.
3655 (file_name_completion): Remove unused function-scope variable `dp'.
3656 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3657 on BSD4_2.
3658
3659 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3660
3661 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3662 and `buf'.
3663 (Fmarker_insertion_type): Remove unused variable `buf'.
3664
3665 * insdel.c (make_gap): Remove unused variable `result'.
3666
3667 * keyboard.c (record_char): Remove unused function-scope var `help'.
3668 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3669 (menu_bar_items): Remove unused function-scope variable `tem'.
3670
3671 * fontset.c (fontset_ref): Remove unused variable `i'.
3672 (fontset_set): Remove unused variables `j' and `tmp'.
3673 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3674 (make_fontset_for_ascii_face): Remove unused variable `name'.
3675 (fs_load_font): Remove unused variable `font_idx'.
3676 (fs_query_fontset): Remove unused function-local variable `fontset'.
3677 (list_fontsets): Remove unused variable `tail'.
3678 (Fnew_fontset): Remove unused variables `family' and `registry'.
3679 (accumulate_font_info): Remove unused variable `tmp'.
3680 (Ffontset_font): Remove unused variable `id'.
3681 (syms_of_fontset): Remove unused variable `i'.
3682
3683 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3684 to x_term_init.
3685 (lookup_image): Remove unused variable `file'.
3686 (xbm_load): Remove unused variables `bitmap_data', `height', and
3687 `width'. Remove function-local variable `i', leave the
3688 block-local one.
3689 (gif_load): Remove unused variable `inc'.
3690
3691 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3692 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3693 leave only the one in the inner block.
3694
3695 * xfaces.c (face_fontset, realize_default_face): Remove unused
3696 variable `fontset'.
3697 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3698
3699 * term.c (encode_terminal_code): Remove unused variable `c'.
3700
3701 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3702 char *' instead of `char *'.
3703
3704 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3705 (Fget_unused_category): Remove unused variable `docstring_vector'.
3706 (Fchar_category_set): Remove unused variables `val', `charset',
3707 `c1' and `c2'.
3708
3709 * coding.c (detect_coding_iso2022, setup_coding_system):
3710 Remove unused variable `i'.
3711 (detect_coding_mask): Remove unused variable `idx'.
3712 (detect_coding): Remove unused variable `i'.
3713 (ccl_coding_driver): Remove unused variable `result'.
3714 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3715 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3716 (encode_coding_string): Remove unused variables `gcpro1' and
3717 `saved_coding_symbol'.
3718 (Ffind_coding_systems_region_internal): Remove function-local
3719 variable args[], leave only the block-local one.
3720 (code_convert_region1): Remove unused variable `len'.
3721
3722 * charset.c (char_printable_p): Remove unused variable `chars'.
3723 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3724 (str_to_multibyte): Remove unused variable `c'.
3725
3726 * window.c (size_window): Remove block-local variable `min_size'.
3727
3728 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3729 `header_line_height'.
3730 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3731 enum display_element_type.
3732
3733 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3734
3735 * xterm.c (x_connection_closed): Catch X errors around all
3736 statements that call X. Save away the error message in a local copy.
3737
3738 * xterm.c (x_connection_closed): Set handling_signal to 0 at
3739 the start.
3740
3741 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
3742 in or at the start of invisible text.
3743
3744 * dispnew.c (update_window): Don't check_current_matrix_flags.
3745
3746 2001-01-01 Jason Rumney <jasonr@gnu.org>
3747
3748 * w32fns.c (x_figure_window_size): Do not allow new_height and
3749 new_width of frame to override specified values.
3750
3751 2000-12-30 Kenichi Handa <handa@etl.go.jp>
3752
3753 * composite.c (find_composition): Fix a code for searching backward.
3754
3755 2000-12-29 Gerd Moellmann <gerd@gnu.org>
3756
3757 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
3758 (update_window) [GLYPH_DEBUG]: Call it.
3759 (scrolling_window): Prevent including current rows which are below
3760 what's displayed in the window.
3761
3762 * xdisp.c (try_window_reusing_current_matrix)
3763 <new start <= old start>: Disable rows in the current matrix
3764 which are below the window after scrolling.
3765
3766 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
3767 is zero. It's not worth the complexity.
3768 (invisible_text_between_p): Put in #if 0 because unused.
3769
3770 2000-12-28 Gerd Moellmann <gerd@gnu.org>
3771
3772 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
3773 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
3774
3775 * keyboard.c (echo_char): If C is an integer, always call
3776 push_key_description. Former code could signal an invalid
3777 character error.
3778
3779 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
3780 If set, print multibyte text.
3781 (Fsingle_key_description): Call push_key_description with
3782 FORCE_MULTIBYTE set.
3783 (describe_buffer_bindings): Likewise.
3784
3785 * lisp.h (push_key_description): Add prototype.
3786
3787 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
3788 around the call to redisplay_internal.
3789
3790 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3791
3792 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3793
3794 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3795
3796 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
3797 (ccl_driver): New local variable `extra_bytes'.
3798
3799 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
3800
3801 * coding.c (setup_coding_system):
3802 Initialize coding->spec.ccl.eight_bit_carryover.
3803 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
3804
3805 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3806
3807 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
3808 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
3809 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
3810 (decode_composition_emacs_mule): New function.
3811 (decode_coding_emacs_mule): Decode composition sequence by calling
3812 decode_composition_emacs_mule.
3813 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
3814 (encode_coding_emacs_mule): Changed from macro to function.
3815 If a text contains compositions, encode them correctly.
3816 (setup_coding_system): Set coding->commong_flags for emacs-mule so
3817 that decoding and encoding are required.
3818
3819 2000-12-27 Gerd Moellmann <gerd@gnu.org>
3820
3821 * xfaces.c (PT_PER_INCH): New macro.
3822 (xlfd_point_size): Compute real point size from font's pixel size.
3823 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
3824 instead of 72.
3825
3826 * .gdbinit: Comment out the line pointing to the Lesstif source
3827 directory.
3828
3829 * window.c (Frecenter): Use displayed_window_lines instead
3830 of window_internal_height.
3831
3832 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3833 instead of x-toolkit-scroll-bars-p.
3834 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3835
3836 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3837 instead of x-toolkit-scroll-bars-p.
3838 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3839
3840 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
3841 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
3842 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
3843 New variables.
3844 (add_window_display_history, add_frame_display_history)
3845 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
3846 (build_frame_matrix_from_leaf_window): Remove unused code.
3847 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
3848 redisplay history.
3849 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
3850 (update_window) [GLYPH_DEBUG]: Likewise.
3851 (syms_of_display): Defsubr dump-redisplay-history.
3852
3853 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3854
3855 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
3856 the end of the prompt. Set echo_after_prompt to the offset
3857 of echoptr in echobuf.
3858
3859 * xdisp.c (init_from_display_pos): Pop until the iterator's
3860 stack is empty; there may be frames for stretch or images
3861 on the stack.
3862
3863 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
3864 (save_or_restore_current_matrix): New function for the same
3865 purpose, but more efficient.
3866 (adjust_frame_glyphs_for_frame_redisplay): Use it.
3867
3868 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
3869
3870 * xdisp.c (syms_of_xdisp): Fix last change.
3871
3872 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3873
3874 * xdisp.c (syms_of_xdisp): Doc fix.
3875
3876 * xdisp.c (redisplay_window): Remove label restore_buffers;
3877 use finish_scroll_bars instead to make sure that scroll bars
3878 are redeemed. If we don't do this, flickering can result from
3879 scroll bars being destroyed and recreated.
3880
3881 2000-12-22 Jason Rumney <jasonr@gnu.org>
3882
3883 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
3884 in the wrong colors when the foreground is not black.
3885 (expose_window): Don't redraw the window that's currently being
3886 updated.
3887
3888 2000-12-22 Gerd Moellmann <gerd@gnu.org>
3889
3890 * window.c (size_window): When setting the window's too_small_ok
3891 flag, compare old size with minimum size depending on WIDTH_P,
3892 don't compare with window_min_width.
3893
3894 * window.c (delete_window): Simplify somewhat.
3895 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
3896 freeing window matrices. The flag windows_or_buffers_changed is
3897 set, so the next redisplay will consider all windows; this should
3898 suffice.
3899
3900 2000-12-22 Kenichi Handa <handa@etl.go.jp>
3901
3902 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
3903
3904 * ccl.h (struct ccl_program): New member cr_consumed.
3905
3906 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
3907 (CCL_READ_CHAR): Handle EOL conversion here.
3908 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
3909
3910 2000-12-21 Gerd Moellmann <gerd@gnu.org>
3911
3912 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
3913
3914 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
3915 otherwise tabs of different size compare equal.
3916
3917 * callint.c (Fcall_interactively): Prevent a compiler warning.
3918
3919 * print.c (print_unwind): Return nil.
3920 (PRINTDECLARE): Initialize all local variables.
3921 (print_preprocess): Add a default case.
3922
3923 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
3924
3925 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
3926
3927 * window.c (delete_window, Fsplit_window)
3928 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
3929
3930 * dispextern.h (ensure_frame_matrix): Function declaration removed.
3931
3932 * dispnew.c (ensure_frame_matrix): Removed.
3933 (save_frame_matrix, restore_frame_matrix): New functions.
3934 (adjust_frame_glyphs_for_frame_redisplay): Use them.
3935
3936 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
3937 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
3938
3939 2000-12-21 Andrew Innes <andrewi@gnu.org>
3940
3941 * w32term.c (x_update_begin): Regenerate the palette here, rather
3942 than for each window.
3943
3944 * w32xfns.c (select_palette): Avoid calling SelectPalette if
3945 palette is NULL, since this corrupts memory! Also get
3946 display_info reference from frame.
3947
3948 2000-12-21 Jason Rumney <jasonr@gnu.org>
3949
3950 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
3951
3952 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
3953 to avoid returning without releasing it.
3954
3955 2000-12-21 Kenichi Handa <handa@etl.go.jp>
3956
3957 * keymap.c (push_key_description): Don't convert eight-bit-control
3958 and eight-bit-graphic to multibyte character.
3959
3960 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
3961 generic character and CODE1 is nil, return the smallest character
3962 in CHARSET.
3963
3964 2000-12-20 Dave Love <fx@gnu.org>
3965
3966 * s/osf5-0.h (NSIG): Don't redefine.
3967
3968 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
3969
3970 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
3971 excluding menu-bar and tool-bar.
3972 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
3973 (menu_item_p): Remove.
3974 (where_is_internal_1): Don't ignore menu-items.
3975
3976 2000-12-20 Gerd Moellmann <gerd@gnu.org>
3977
3978 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
3979 into account.
3980
3981 * window.c (make_window): Initialize window's min_hscroll.
3982 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
3983 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
3984 to zero.
3985 (struct saved_window): New member min_hscroll.
3986 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
3987 (Fset_window_configuration): Set window's min_hscroll.
3988 (save_window_save): Save window's min_hscroll.
3989 (compare_window_configurations): Compare min_hscroll values.
3990
3991 * window.h (struct window): New member min_hscroll.
3992
3993 * keyboard.c (echo_prompt): Prevent a compiler warning.
3994
3995 * xdisp.c (try_cursor_movement): Fix last change. The real
3996 condition is that PT is at the end of the row, and should
3997 be displayed at the start of the next row.
3998
3999 * xdisp.c (try_cursor_movement): If we end on a partially
4000 visible line, end we already decided to scroll, return -1.
4001
4002 * dispextern.h (ensure_frame_matrix): Add prototype.
4003
4004 * window.c (delete_window, Fsplit_window)
4005 (Fset_window_configuration): Call ensure_frame_matrix.
4006
4007 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4008 New functions.
4009 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4010 completed, call fake_current_matrices instead of marking frame
4011 garbaged.
4012
4013 2000-12-20 Jason Rumney <jasonr@gnu.org>
4014
4015 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4016
4017 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4018
4019 * fns.c (Frequire): Doc fix.
4020
4021 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4022
4023 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4024
4025 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4026 currently displaying a message.
4027
4028 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4029 xterm.h.
4030 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4031
4032 2000-12-18 Andrew Innes <andrewi@gnu.org>
4033
4034 * w32.c (w32_strerror): New function.
4035
4036 * w32.h (w32_strerror): New extern.
4037
4038 * w32fns.c (Fw32_shell_execute): Use it.
4039
4040 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4041
4042 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4043
4044 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4045
4046 * msdos.c (IT_set_face): Obey inverse_video.
4047
4048 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4049
4050 * dired.c (directory_files_internal): Always return decoded filenames.
4051
4052 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4053
4054 * xterm.c (x_connection_closed): Prevent being called recursively
4055 because of an error condition in XtCloseDisplay.
4056
4057 * xdisp.c (init_iterator): If noninteractive, and the frame's
4058 face cache is null, make one.
4059
4060 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4061
4062 * process.c (wait_reading_process_input): Check for pending
4063 input when running timers.
4064
4065 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4066
4067 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4068
4069 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4070
4071 * process.c (read_process_output): Don't run a filter if the code
4072 decoder produces nothing but carryover.
4073
4074 2000-12-17 Andrew Innes <andrewi@gnu.org>
4075
4076 * w32.c (sys_rename): Only check errno against EEXIST, and not
4077 EACCES, when determining whether rename failed because the target
4078 exists. This was resulting in indefinite looping on Windows 9x if
4079 the source file was locked by another process.
4080
4081 * w32fns.c (Ffile_system_info): New function.
4082 (syms_of_w32fns): Defsubr it.
4083
4084 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4085
4086 * window.c (coordinates_in_window): Fix computation for
4087 position on vertical line between mode lines.
4088
4089 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4090 Don't alter tip_frame or tip_window.
4091 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4092 was deleted.
4093
4094 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4095 Don't alter tip_frame or tip_window.
4096 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4097 was deleted.
4098
4099 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4100
4101 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4102 be consistent with the doc string. Reported by NAKAJIMA Mikio
4103 <minakaji@osaka.email.ne.jp>.
4104
4105 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4106
4107 * xfaces.c (Vface_ignored_fonts): New variable.
4108 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4109 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4110
4111 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4112
4113 * dispnew.c (update_window): Detect pending input every nth line
4114 updated, i.e. do it depending on real work done, and not on the
4115 vpos of the line.
4116
4117 * xterm.c (expose_window): Don't redraw the window that's
4118 currently being updated.
4119
4120 * window.c (Fset_window_point): Remove test for
4121 cursor_in_non_selected_windows.
4122
4123 * lread.c (read1): Recognize end of file after `\\'.
4124
4125 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4126 not unwind_create_frame.
4127
4128 2000-12-15 Dave Love <fx@gnu.org>
4129
4130 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4131 bcopy & al.
4132
4133 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4134
4135 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4136
4137 * coding.c (setup_coding_system): Clear all members of the struct
4138 coding_system at first.
4139 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4140 argument.
4141 (code_convert_region): Don't override coding->src_multibyte and
4142 coding->dst_multibyte.
4143
4144 * fns.c (Fmd5): Docstring improved.
4145
4146 2000-12-15 Miles Bader <miles@gnu.org>
4147
4148 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4149 are actually marked as mode-lines; otherwise use
4150 estimate_mode_line_height.
4151
4152 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4153
4154 * editfns.c (Fformat): Prevent a buffer overrun when the format
4155 specifies a precision.
4156
4157 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4158
4159 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4160 argument is outside the range [2..3].
4161
4162 2000-12-14 Andrew Innes <andrewi@gnu.org>
4163
4164 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4165 nothing to do. Bind inhibit-quit.
4166 (tip_frame): Make it a Lisp_Object.
4167 (x_create_tip_frame): Set tip_frame after it has been added to
4168 Vframe_list.
4169 (Fx_show_tip): Don't set tip_frame here.
4170 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4171 (unwind_create_frame, unwind_create_tip_frame): New functions.
4172 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4173 while a frame is only partially constructed.
4174
4175 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4176 (x_free_frame_resources): New function.
4177 (x_destroy_window): Use it.
4178
4179 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4180
4181 * xfns.c (Fx_backspace_delete_keys_p): New function.
4182 (syms_of_xfns): Defsubr it.
4183
4184 * config.in (HAVE_XKBGETKEYBOARD): Add.
4185
4186 2000-12-14 Kenichi Handa <handa@etl.go.jp>
4187
4188 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
4189 Always store string in multibyte representation in echobuf.
4190 (echo_char): Always store string in multibyte representation in
4191 echobuf.
4192 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
4193 (read_key_sequence): Adjusted for the change of echo_prompt.
4194
4195 * fns.c (Fmd5): Docstring improved.
4196
4197 * lisp.h (detect_coding_system): Prototype adjusted.
4198
4199 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
4200 (detect_coding_emacs_mule, detect_coding_iso2022,)
4201 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
4202 (detect_coding_utf_16, detect_coding_ccl): Make them static.
4203 New argument MULTIBYTEP. Callers changed.
4204 (detect_coding_mask, detect_coding_system): New argument
4205 MULTIBYTEP. Callers changed.
4206 (decode_coding_string): Set coding->src_multibyte and
4207 coding->dst_multibyte before calling detect_coding and detect_eol.
4208 Update them after some coding system is detected.
4209
4210 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
4211
4212 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
4213
4214 * keyboard.c (menu_bar_items, tool_bar_items):
4215 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
4216
4217 2000-12-13 Gerd Moellmann <gerd@gnu.org>
4218
4219 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
4220 New variables.
4221 (unwind_create_frame, unwind_create_tip_frame): New functions.
4222 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4223 while a frame is only partially constructed.
4224
4225 * xterm.h (x_free_frame_resources): Declare.
4226
4227 * xterm.c (x_free_frame_resources): New function.
4228 (x_destroy_window): Use it.
4229
4230 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
4231 don't interrupt the update for pending input initially, i.e.
4232 update at least some lines.
4233
4234 * keyboard.c (do_mouse_tracking): Make externally visible.
4235
4236 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4237
4238 * xfns.c (gray_bitmap_bits): Declare `char *'.
4239
4240 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4241
4242 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4243 lines start with a relief line.
4244
4245 2000-12-12 Dave Love <fx@gnu.org>
4246
4247 * window.c (Fdisplay_buffer): Doc fix.
4248 (Fwindow_list): Remove unused var.
4249
4250 * buffer.h (mmap_set_vars): Declare.
4251
4252 * window.h (Fset_window_point): Declare.
4253
4254 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4255
4256 * msdos.c (fast_find_position): Don't overstep the last window row.
4257 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4258 variable `area'. When looking for a row under (X,Y), give up if some
4259 of the previous rows is not enabled.
4260
4261 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4262
4263 * window.c (Fset_window_point): If displaying cursors in windows
4264 other than the selected window, make sure redisplay updates
4265 other windows to show the new value of point in the window.
4266
4267 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4268
4269 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4270 the buffer is the sole visible buffer when in the mini-buffer.
4271
4272 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4273 Bind `inhibit-read-only' to t.
4274 (unwind_with_echo_area_buffer): Use AREF.
4275
4276 * xfns.c (Fx_hide_tip): Simplified.
4277
4278 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4279 instead of `1'.
4280
4281 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4282
4283 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4284
4285 * xfns.c (Fx_hide_tip): Fix last change.
4286
4287 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4288 nothing to do. Bind inhibit-quit.
4289 (tip_frame): Make it a Lisp_Object.
4290 (x_create_tip_frame): Set tip_frame after it has been added to
4291 Vframe_list.
4292 (Fx_show_tip): Don't set tip_frame here.
4293
4294 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4295
4296 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4297 Lisp_Object.
4298
4299 * dispextern.h: Change external declaration of tip_frame.
4300
4301 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4302 return an empty string.
4303
4304 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4305 of the window's update_mode_line flag, since the former is set by
4306 force-mode-line-update, not the latter. This makes
4307 column-number-mode slightly faster.
4308
4309 * xdisp.c (try_window_id) <all changes above window start>:
4310 Set the cursor.
4311
4312 2000-12-11 Paul Eggert <eggert@twinsun.com>
4313
4314 * config.in (HAVE_FTELLO): Remove.
4315 (HAVE_FSEEKO): Add.
4316 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4317 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4318 HAVE_FTELLO.
4319 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4320 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4321
4322 2000-12-11 Miles Bader <miles@gnu.org>
4323
4324 * window.c (displayed_window_lines): Don't round up when
4325 converting empty space at bottom to lines.
4326 Handle non-newline-terminated final lines properly.
4327 (Fwindow_text_height): New function (used to be in lisp).
4328 (syms_of_window): Initialize it.
4329
4330 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4331
4332 * syntax.c (scan_lists): Check that the right quote char has the
4333 right Sstring syntax when jumping over strings.
4334 (init_syntax_once): Use Smax rather than 13.
4335
4336 2000-12-09 Miles Bader <miles@gnu.org>
4337
4338 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4339 with PARTIALLY, inverting the sense.
4340 (window_scroll_pixel_based): Scroll partially visible lines into
4341 place if we hit the beginning or end of the buffer.
4342 (displayed_window_lines): Don't include partially visible lines.
4343 (Fmove_to_window_line): Skip past any partially visible first line.
4344
4345 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4346
4347 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4348
4349 * tparam.c (tparam1): Change the way buffers are reallocated to be
4350 portable and less obfuscated.
4351
4352 * termcap.c (tgetent): Change the way buffers are reallocated to
4353 be portable and less obfuscated.
4354
4355 * macros.c (store_kbd_macro_char): Change the way buffers are
4356 reallocated to be portable and less obfuscated.
4357
4358 * lread.c (read1): Change the way buffers are reallocated to be
4359 portable and less obfuscated.
4360
4361 * doc.c (Fsubstitute_command_keys): Change the way buffers
4362 are reallocated so that it is portable.
4363
4364 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4365
4366 * dosfns.c (Ffile_system_info): New function.
4367 (syms_of_dosfns): Defsubr it.
4368
4369 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4370
4371 * alloc.c (gc_sweep): Add comment.
4372
4373 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4374
4375 * sound.c (vox_configure): Change order of ioctls.
4376 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4377 Ignore errors when changing volume.
4378 (vox_close): Don't reset the device.
4379
4380 * process.c (read_process_output): Make sure the process marker's
4381 position is valid when the process buffer is changed in
4382 after-change functions. W3 does that.
4383
4384 * xfns.c (x_free_gcs): New function.
4385
4386 * xterm.h (x_free_gcs): Add prototype.
4387
4388 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4389 freeing GCs here.
4390
4391 * xterm.c (x_destroy_window): Call x_free_gcs so that
4392 resources of non-toolkit X windows will be freed.
4393
4394 2000-12-07 Andrew Innes <andrewi@gnu.org>
4395
4396 * w32fns.c (xlfd_charset_of_font): Fix last change.
4397
4398 2000-12-06 Dave Love <fx@gnu.org>
4399
4400 * md5.h (__P): Don't define -- it comes from config.h.
4401
4402 * strftime.c: Change some #if foo to #ifdef foo.
4403
4404 2000-12-06 Andrew Innes <andrewi@gnu.org>
4405
4406 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4407
4408 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4409 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4410 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4411
4412 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4413
4414 * alloc.c (gc_sweep): Prevent symbols read during loadup
4415 from being freed.
4416
4417 * xdisp.c (underlying_face_id): New function.
4418 (handle_face_prop, face_before_or_after_it_pos): Use it
4419 to determine the face ``under'' a string. Let strings inherit
4420 the face of the buffer under them.
4421
4422 * xfaces.c (face_at_string_position): Update function comment.
4423
4424 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4425 matrix if the window's left position has changed; we need to
4426 redraw it in this case.
4427
4428 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4429
4430 * window.c (coordinates_in_window): Check mouse on mode-line or
4431 header-line first.
4432
4433 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4434 advertized by the function documentation.
4435
4436 * window.c (syms_of_window): Doc fix.
4437
4438 * sound.c (vox_configure): Set volume for left and right channel.
4439 (sound_cleanup): Return nil.
4440
4441 * xdisp.c (move_it_by_lines): Fix paren typo.
4442
4443 * xterm.c (x_load_font): Don't use the font's max_bounds for
4444 computing the height of the font. If max_bounds' ascent or
4445 descent are greater than the font's ascent or descent, this means
4446 glyphs overlap, which should be handled now by redisplay.
4447
4448 * window.c (Veven_window_heights): New variable.
4449 (syms_of_window): DEFVAR_LISP it.
4450 (Fdisplay_buffer): Check Veven_window_heights before evening the
4451 window heights.
4452
4453 2000-12-06 Miles Bader <miles@gnu.org>
4454
4455 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4456 update `default-frame-alist' instead of setting no frame parameters.
4457
4458 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4459
4460 * composite.c (update_compositions): Fix typo (use the correct
4461 variable).
4462
4463 2000-12-05 Jason Rumney <jasonr@gnu.org>
4464
4465 * md5.h: Remove underscores from function declarations.
4466 (__attribute__, __alignof__) [!__GNUC__]: Define.
4467
4468 * md5.c: Delay include of md5.h until after namespace cleaning.
4469
4470 * makefile.w32-in (fns.o): Depend on md5.h
4471 (md5.o): New target.
4472 (sunfns.o): Remove.
4473
4474 * makefile.nt: Likewise.
4475
4476 2000-12-05 Jason Rumney <jasonr@altavista.net>
4477
4478 * w32term.c (expose_area): Complete last change.
4479
4480 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4481
4482 * minibuf.c: Include intervals.h.
4483
4484 2000-12-05 Jason Rumney <jasonr@gnu.org>
4485
4486 * w32term.c (x_produce_glyphs): If a font for a component of
4487 a composition is not found, use 1 pixel dot ascent and 0 dot
4488 descent value to avoid displaying terribly tall empty boxes.
4489 (expose_area): Pass x-coordinate relative to the exposed
4490 area to x_draw_glyphs instead of a window-relative coordinate.
4491
4492 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4493
4494 * xdisp.c (next_element_from_ellipsis): Save face before selective
4495 display in saved_face_id, and set face_before_selective_p.
4496 (reseat_1): Reset face_before_selective_p.
4497 (append_space, extend_face_to_end_of_line): If iterator's
4498 face_before_selective_p is set, use the face from saved_face_id.
4499 (extend_face_to_end_of_line): For tty frames, make sure to
4500 use the right face id when producing spaces at the end of
4501 the line.
4502
4503 * dispextern.h (struct it): Add face_before_selective_p.
4504
4505 * keyboard.c (record_char): Don't record identical help-echo
4506 events in recent_keys.
4507
4508 * xterm.c [USE_X_TOOLKIT]: Close the display.
4509 (xim_close_dpy): Handle case that the display has been closed.
4510
4511 * xterm.c (x_destroy_window): Reset the frame's X window after
4512 destroying it.
4513
4514 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4515 variable window_width.
4516 (line_draw_cost): Fix code skipping over spaces at the end of the
4517 line when must_write_spaces is not set.
4518 (scrolling_window): Fix code inserting runs in list of all runs.
4519
4520 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4521
4522 * coding.c (setup_coding_system): Be sure to initialize
4523 coding->category_idx.
4524
4525 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4526
4527 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4528
4529 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4530 area to x_draw_glyphs instead of a window-relative coordinate.
4531
4532 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4533 error in the message.
4534
4535 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4536 timer after having read a key. It's not good for code reading
4537 several keys in a loop, like an input method.
4538
4539 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4540 record undo information for format-decode.
4541
4542 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4543 current buffer is read-only, not if it isn't.
4544
4545 * keyboard.c (record_char): Record `help-echo' input events
4546 in recent_keys only if they display some help. Don't record
4547 `help-echo' events as macro char.
4548
4549 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4550
4551 * editfns.c (save_excursion_restore): Don't move point
4552 in another window if it is showing the wrong buffer.
4553 Avoid the call to Fwindow_live_p, for speed.
4554
4555 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4556
4557 * xfaces.c (struct font_name): New member registry_priority.
4558 (split_font_name): Initialize the above member to zero.
4559 (concat_font_list): New function.
4560 (font_list): Include fonts of all alternative registries.
4561 (FONT_POINT_SIZE_QUANTUM): New macro.
4562 (better_font_p): Ignore point size difference less than
4563 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4564
4565 * xterm.c (x_produce_glyphs): If a font for a component of
4566 a composition is not found, use 1 pixel dot ascent and 0 dot
4567 descent value to avoid displaying terribly tall empty boxes.
4568
4569 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4570
4571 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4572
4573 * coding.h (code_convert_string1): Declare.
4574
4575 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4576
4577 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4578
4579 2000-12-02 Jason Rumney <jasonr@gnu.org>
4580
4581 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4582 correctly for single byte character case.
4583 (w32_per_char_metric): Do not try to make any assumptions about
4584 the metrics of BDF fonts.
4585 (x_estimate_mode_line_height): If `mode-line' face
4586 hasn't a font, use that of the frame, as drawing glyphs does.
4587 (note_mouse_highlight): Change the cursor shape on the vertical
4588 border between windows [not enabled].
4589
4590 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4591
4592 * w32fns.c (Fx_create_frame): Reintroduce the call to
4593 face-set-after-frame-defaults.
4594 (Vx_window_horizontal_drag_shape): New variable.
4595 (syms_of_xfns): DEFVAR_LISP it.
4596 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4597 enabled].
4598
4599 2000-12-02 Simon Josefsson <simon@josefsson.org>
4600
4601 * fns.c (Fmd5): Use a different logic to decide the coding system
4602 to use.
4603
4604 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4605
4606 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4607
4608 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4609
4610 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4611
4612 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4613 height for YNegative.
4614 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4615 height; also see comment there.
4616
4617 * window.c (coordinates_in_window): Handle computations for
4618 positions on the vertical bar and fringes differently for
4619 window-system frames. Consider some pixels near the vertical bar
4620 as on the bar if the frame doesn't have vertical scroll bars.
4621 Associate positions between mode or header lines with the
4622 right window, the left one.
4623
4624 2000-12-01 Jason Rumney <jasonr@gnu.org>
4625
4626 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4627
4628 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4629 invalid frame.
4630
4631 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4632
4633 * window.c (struct saved_window): Add members orig_top and orig_height.
4634 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4635 (save_window_save, Fset_window_configuration): Save/restore
4636 window's orig_top and orig_height.
4637
4638 2000-12-01 Jason Rumney <jasonr@gnu.org>
4639
4640 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4641
4642 * w32fns.c (x_set_cursor_color): Fix last change.
4643
4644 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4645
4646 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4647 sure that the next redisplay displays the minibuffer, so that
4648 the cursor will be replaced with what the minibuffer wants.
4649
4650 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4651 #ifndef instead of using #if.
4652 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4653 USE_TOOLKIT_SCROLL_BARS is defined.
4654
4655 2000-11-30 Jason Rumney <jasonr@gnu.org>
4656
4657 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4658 x_display_cursor.
4659
4660 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4661
4662 * fns.c (Fmd5): Doc fix.
4663
4664 2000-11-30 Simon Josefsson <simon@josefsson.org>
4665
4666 * fns.c (Fmd5): New function.
4667 (syms_of_fns): Defsubr md5.
4668
4669 * Makefile.in (obj): Add md5.o
4670
4671 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4672
4673 * md5.h, md5.c: New files, taken from glibc.
4674
4675 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4676
4677 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4678 hasn't a font, use that of the frame, as drawing glyphs does.
4679
4680 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4681
4682 * eval.c (Frun_hooks): Allow 0 arguments.
4683
4684 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4685
4686 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4687 is over the menu bar widget, say it's not on the frame.
4688
4689 * xfns.c (Fx_create_frame): Reintroduce the call to
4690 face-set-after-frame-defaults.
4691
4692 * eval.c (Fsignal): Reset handling_signal.
4693
4694 2000-11-28 Jason Rumney <jasonr@gnu.org>
4695
4696 * w32menu.c (add_menu_item): Reset menu item text when changing
4697 type to radio button.
4698
4699 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4700
4701 * xselect.c: Update copyright.
4702
4703 * window.c (coordinates_in_window): If on a mode or header line,
4704 but sufficiently close to its start, return ``on vertical
4705 border''. This gives us a way to drag windows horizontally when
4706 using toolkit scroll bars.
4707
4708 * xterm.c (note_mouse_highlight): Change the cursor shape
4709 on the vertical border between windows.
4710
4711 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4712
4713 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4714 (syms_of_xfns): DEFVAR_LISP it.
4715 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4716
4717 * textprop.c (text_read_only): New function.
4718 (verify_interval_modification): Use it instead of signaling
4719 `text-read-only'. This makes it easier to catch this error
4720 with a breakpoint.:
4721
4722 * xdisp.c (forward_to_next_line_start): Check for newlines,
4723 not end of line, which includes CR.
4724
4725 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4726
4727 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4728 include no-conversion.
4729
4730 2000-11-27 Jason Rumney <jasonr@gnu.org>
4731
4732 * w32fns.c (w32_load_system_font): Always mark font as double byte
4733 if codepage is unicode.
4734
4735 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4736
4737 * xdisp.c (forward_to_next_line_start): If already on a newline,
4738 just consume it to avoid unintended skipping over invisible text below.
4739
4740 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
4741 `vertical-line', `mode-line' and `header-line' events.
4742
4743 * xdisp.c (try_window_id): Avoid starting to display in the middle
4744 of a character, a TAB for instance. This is easier than to set
4745 up the iterator exactly, and it's not a frequent case, so the
4746 additional effort wouldn't really pay off.
4747
4748 2000-11-26 Andrew Choi <akochoi@i-cable.com>
4749
4750 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
4751 init_window_once.
4752
4753 2000-11-25 Jason Rumney <jasonr@gnu.org>
4754
4755 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
4756 Args to window_from_coordinates should be pixel coordinates.
4757
4758 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
4759 redisplay handles them properly.
4760
4761 2000-11-25 Miles Bader <miles@gnu.org>
4762
4763 * indent.c (compute_motion): Keep pos_byte in sync with pos.
4764
4765 2000-11-24 Jason Rumney <jasonr@gnu.org>
4766
4767 * w32.c (init_environment): Set LANG environment variable based on
4768 locale settings, if not set.
4769
4770 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
4771 making tool bar smaller. When clearing the frame, also
4772 clear current matrices. Clear frame when tool bar disappears.
4773 Don't use more lines for the tool-bar than is available.
4774 (x_change_window_heights): New function.
4775
4776 2000-11-24 Gerd Moellmann <gerd@gnu.org>
4777
4778 * xdisp.c (init_from_display_pos): If POS says we're already after
4779 an overlay string ending at POS, make sure to pop the iterator
4780 because it will be in front of that overlay string. When POS is
4781 ZV, we've thereby also ``processed'' overlay strings at ZV.
4782
4783 * xfaces.c (lface_from_face_name): Function comment fix.
4784
4785 2000-11-24 Miles Bader <miles@gnu.org>
4786
4787 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
4788 apply `mode-line-inverse-video' -- zero means force display using
4789 the default face, non-zero means display using the specialized face.
4790 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
4791
4792 2000-11-23 Kenichi Handa <handa@etl.go.jp>
4793
4794 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
4795 hard coded `4'.
4796
4797 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
4798
4799 * coding.c (decode_coding_emacs_mule): Fix the case of
4800 CODING_EOL_LF, which used uninitialized value of c.
4801
4802 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
4803
4804 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
4805
4806 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4807
4808 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
4809 buffer object.
4810
4811 * frame.h (struct frame): Replace desired_tool_bar_items,
4812 current_tool_bar_items, n_desired_tool_bar_items,
4813 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
4814
4815 * frame.c (make_frame): Change initialization of tool bar
4816 items accordingly.
4817
4818 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
4819 Change references to members deleted from struct frame to use the
4820 new ones.
4821
4822 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
4823 references to members deleted from struct frame to use the new ones.
4824
4825 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
4826
4827 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
4828
4829 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
4830 (note_tool_bar_highlight): Change references to members deleted
4831 from struct frame to use the new ones.
4832
4833 2000-11-23 Miles Bader <miles@gnu.org>
4834
4835 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
4836 the face's inverse-video attribute, rather than overriding it.
4837
4838 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4839
4840 * xfns.c (x_set_tool_bar_lines): Clear internal border when
4841 making tool bar smaller.
4842
4843 2000-11-22 Dave Love <fx@gnu.org>
4844
4845 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
4846
4847 2000-11-22 Miles Bader <miles@gnu.org>
4848
4849 * keyboard.c (Vminibuffer_message_timeout): New variable.
4850 (command_loop_1): Use it to determine message timeout.
4851 (syms_of_keyboard): Initialize it.
4852
4853 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
4854
4855 2000-11-22 Kenichi Handa <handa@etl.go.jp>
4856
4857 * sysdep.c: Move the code for declaring h_errno after #include
4858 <netdb.h>.
4859
4860 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4861
4862 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
4863 the menu bar when the tooltip is unmapped.
4864
4865 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
4866 sole visible buffer when we're currently in the mini-buffer, and
4867 give up if so.
4868
4869 2000-11-21 Jason Rumney <jasonr@gnu.org>
4870
4871 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
4872 put on the clipboard.
4873 (Fw32_get_clipboard_data): Compare data on clipboard with saved
4874 copy of what Emacs last put there. If they are the same, do not
4875 use the clipboard copy to avoid losing data due to coding conversions.
4876
4877 2000-11-22 Miles Bader <miles@gnu.org>
4878
4879 * minibuf.c (Vminibuffer_prompt_properties): New variable.
4880 (syms_of_minibuf): Initialize it.
4881 (read_minibuf): Add properties from Vminibuffer_prompt_properties
4882 to prompt, don't make read-only.
4883
4884 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4885
4886 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
4887 Add BEFORE/AFTER_POTENTIAL_GC.
4888
4889 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
4890
4891 * buffer.c (mmap_free_1): Avoid a compiler warning.
4892
4893 * term.c, cm.c: Don't try to include termcap.h; see comment there.
4894
4895 2000-11-21 Kenichi Handa <handa@etl.go.jp>
4896
4897 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
4898 ... #endif scope.
4899
4900 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4901
4902 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
4903 screen supports it.
4904
4905 * s/gnu-linux.h: Don't use `#cpu'.
4906
4907 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
4908 not defined in mman.h.
4909
4910 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
4911 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
4912 and store an index in the XClientMessageEvent. Storing a
4913 Lisp_Object or pointer can fail on a 64 bit system, since X only
4914 transfers 32 bits.
4915 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
4916
4917 2000-11-20 Dave Love <fx@gnu.org>
4918
4919 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
4920
4921 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4922
4923 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
4924
4925 2000-11-20 Kenichi Handa <handa@etl.go.jp>
4926
4927 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
4928 by WIDTH.
4929
4930 * alloc.c (make_string): Fix previous change. Be sure to make
4931 unibyte string correctly.
4932
4933 2000-11-19 Gerd Moellmann <gerd@gnu.org>
4934
4935 * window.c (Fwindow_list): Change parameter list to be XEmacs
4936 compatible.
4937 (window_list_1): New function.
4938 (window_loop): Use it instead of Fwindow_list.
4939
4940 * sysdep.c (emacs_ospeed): New variable.
4941 (toplevel): Don't declare ospeed extern.
4942 (init_baud_rate): Use emacs_ospeed instead of ospeed.
4943
4944 * termcap.c (ospeed): Remove.
4945 (tputs) [!emacs]: Remove unused code.
4946 (tgetent): Avoid a compiler warning.
4947
4948 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
4949 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
4950 SCROLL_BAR_X_WIDGET with additional argument DPY.
4951
4952 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
4953 removed.
4954 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
4955 Take the X display as additional argument.
4956 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
4957 `Widget' is a pointer type that's not easily stored in Lisp_Object
4958 form in a portable way.
4959
4960 * dispnew.c (update_text_area): Fix last change.
4961
4962 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4963
4964 * xdisp.c: Use BINDING_STACK_SIZE throughout.
4965
4966 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
4967 clear current matrices.
4968
4969 * buffer.c (mmap_enlarge): Don't print a message on stderr
4970 if mapping new memory at the end of the existing region fails.
4971
4972 * dispnew.c (update_text_area): Don't skip over equal glyphs
4973 when the last current glyph overlaps the glyph to its right.
4974
4975 2000-11-18 Miles Bader <miles@gnu.org>
4976
4977 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
4978 lines that *end* with "..." too (that's the most common case!).
4979
4980 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4981
4982 * xdisp.c (resize_mini_window): Temporarily change to the
4983 mini-window's buffer if necessary.
4984
4985 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
4986 the tooltip obscures less text under it.
4987
4988 2000-11-17 Gerd Moellmann <gerd@gnu.org>
4989
4990 * puresize.h (BASE_PURESIZE): Increase to 700000.
4991
4992 2000-11-18 Jason Rumney <jasonr@gnu.org>
4993
4994 * w32term.c (w32_draw_bitmap): Use face to set colors.
4995
4996 2000-11-17 Dave Love <fx@gnu.org>
4997
4998 * lread.c (Fload): Fix #ifdef for pcc.
4999
5000 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5001
5002 * xdisp.c (pos_visible_p): Compute the default character height
5003 differently.
5004
5005 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5006
5007 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5008 knowing the line's height; use the default font's height in that case.
5009
5010 * xfaces.c (weight_table): Add `demi' with the same meaning as
5011 `demibold'.
5012
5013 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5014
5015 * dispnew.c (null_row): New global static variable.
5016 (clear_glyph_row): Delete local static variable null_row.
5017
5018 2000-11-15 Jason Rumney <jasonr@gnu.org>
5019
5020 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5021 (w32_alloc_lighter_color): Use new brightness calculations from
5022 xterm.c. Scale delta to be in the range expected by W32.
5023 (w32_draw_relief_rect): Use frame relief colors.
5024
5025 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5026
5027 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5028 (Qinhibit_default_face_x_resources): New variable.
5029 (syms_of_frame): Initialize it.
5030 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5031
5032 * xdisp.c (pos_visible_p): Improve function comment.
5033
5034 * lisp.h (BINDING_STACK_SIZE): New macro.
5035
5036 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5037 reading the directory if readdir returns null and errno is EAGAIN
5038 or EINTR.
5039
5040 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5041
5042 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5043 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5044 Set amount_to_scroll to max of dx and scroll_step so that
5045 scroll-conservatively doesn't defeat scroll-step>1.
5046 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5047 scroll-conservatively for line-at-a-time scrolling.
5048
5049 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5050
5051 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5052 extra argument.
5053
5054 * xdisp.c (current_mode_line_height, current_header_line_height):
5055 New variables.
5056 (init_xdisp): Initialize them.
5057 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5058 and use exact mode line heights if it is set.
5059
5060 * lisp.h (pos_visible_p): Change prototype.
5061
5062 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5063 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5064 and current_header_line_height first.
5065 (current_mode_line_height, current_header_line_height):
5066 Declare extern.
5067
5068 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5069
5070 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5071 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5072 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5073
5074 2000-11-14 Miles Bader <miles@gnu.org>
5075
5076 * xterm.c (x_alloc_lighter_color): Include an additive component
5077 too for dark colors, because FACTOR isn't enough.
5078 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5079 New macros.
5080
5081 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5082
5083 * keyboard.c (show_help_echo): Call message3_nolog with number of
5084 bytes in the help string as 2nd parameter, instead of the number
5085 of characters.
5086
5087 2000-11-13 Miles Bader <miles@gnu.org>
5088
5089 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5090 (Fload): Use new openp return protocol.
5091 Don't try to use Vload_source_file_function to load .elc files.
5092 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5093 openp return protocol.
5094 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5095
5096 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5097
5098 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5099
5100 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5101 Defined these macros.
5102 (NLIST_STRUCT): Avoid re-defining it.
5103
5104 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5105 -I/usr/contrib/X11R6/include.
5106 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5107
5108 2000-11-10 Jason Rumney <jasonr@gnu.org>
5109
5110 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5111
5112 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5113 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5114
5115 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5116 (Qw32_charset_vietnamese): New symbol.
5117 (xlfd_charset_of_font): New function.
5118 (w32_load_system_font): Use it.
5119 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5120 when Vw32_charset_info_alist is nil to ensure default face always
5121 has font. Use Fcar and Fcdr for safety.
5122 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5123 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5124 pseudo-codepages for special cases.
5125 (w32_to_x_font): New parameter to allow charset portion to be
5126 specified where there is many to one mapping. Callers changed.
5127 (w32_list_fonts): Avoid listing fonts that won't display.
5128
5129 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5130
5131 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5132 (font_list_1): Renamed from font_list.
5133 (font_list): New function, trying alternative registries from
5134 Vface_alternative_font_registry_alist.
5135 (Finternal_set_alternative_font_registry_alist): New function.
5136 (syms_of_xfaces): Initialize and Staticpro
5137 Vface_alternative_font_registry_alist.
5138 Defsubr Finternal_set_alternative_font_registry_alist.
5139
5140 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5141
5142 * lisp.h (Flooking_at): Declare.
5143
5144 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5145
5146 * dired.c (directory_files_internal): Fix a braino.
5147
5148 * dired.c (directory_files_internal): Add missing GCPRO's.
5149 Some cleanup.
5150
5151 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5152
5153 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5154 (resize_mini_window): Return quickly if Vresize_mini_window is
5155 nil. Don't return if Vmax_mini_window_height is nil.
5156
5157 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5158 (syms_of_xdisp): Initialize them.
5159 (resize_mini_window): Act according to the setting of
5160 Vresize_mini_window.
5161 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5162
5163 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5164 scroll bar widget after configuring it, so that it will appear at
5165 the right position from the start.
5166 (XTredeem_scroll_bar): Cleaned up.
5167
5168 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5169
5170 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5171 font is taller than the frame line, we don't have to bias the
5172 division by two.
5173
5174 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5175
5176 2000-11-07 Dave Love <fx@gnu.org>
5177
5178 * config.in (HAVE_MKSTEMP): Add.
5179
5180 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5181
5182 2000-11-07 Gerd Moellmann <gerd@gnu.org>
5183
5184 * window.c (Fset_window_configuration): Don't try to preserve
5185 point in the current buffer, if that buffer is displayed in more
5186 than one window.
5187
5188 * xfaces.c (lookup_named_face): If default face isn't realized,
5189 try to realize it. Return -1 if not successful.
5190 (Fx_list_fonts): Handle case that face cannot be determined.
5191 (Fface_font): Likewise.
5192
5193 2000-11-06 Gerd Moellmann <gerd@gnu.org>
5194
5195 * window.c (displayed_window_lines): Detect partially
5196 visible lines at the bottom correctly.
5197
5198 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
5199
5200 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
5201 when ensuring we don't do visit in indirect buffer.
5202
5203 2000-11-06 Kenichi Handa <handa@etl.go.jp>
5204
5205 * composite.h (compose_chars_in_text): Add prototype.
5206
5207 * composite.c (Vcomposition_function_table): New variable.
5208 (Qcomposition_function_table): New variable.
5209 (run_composition_function): Call
5210 Vcompose_chars_after_function with three arguments.
5211 (compose_chars_in_text): New function.
5212 (syms_of_composite): Modified the doc-string of
5213 Vcompose_chars_after_function. Declare composition-function-table
5214 as a lisp variable, and initialize it.
5215
5216 * xfns.c (x_encode_text): Suppress producing escape sequences for
5217 composition.
5218
5219 * xselect.c: Include composite.h.
5220 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
5221
5222 2000-11-05 Andrew Innes <andrewi@gnu.org>
5223
5224 * w32term.c (x_produce_glyphs): Fix typo in enum name.
5225
5226 * sysdep.c (read_input_waiting): Remove extraneous argument to
5227 read_socket_hook.
5228
5229 * w32fns.c (Fx_server_version): Include w32_build_number in the
5230 return list.
5231
5232 * w32heap.c (w32_build_number): New variable.
5233 (cache_system_info): Set it.
5234
5235 * w32heap.h (w32_build_number): Add extern.
5236
5237 * emacs.c (syms_of_emacs): Update docstring for
5238 system-configuration, to reflect the actual usage on MS-Windows.
5239
5240 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5241
5242 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5243 process idle timers while waiting for another event.
5244
5245 * dispnew.c (update_frame_line): Handle case where spaces in
5246 the default face are colored.
5247
5248 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5249 window height hasn't changed.
5250
5251 2000-10-31 Jason Rumney <jasonr@gnu.org>
5252
5253 * w32term.c (x_produce_glyphs): Handle composite characters.
5254 (x_draw_glyph_string_foreground)
5255 (x_draw_composite_glyph_string_foreground): Restore old font.
5256
5257 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5258
5259 * minibuf.c (read_minibuf): Reset the undo history just before
5260 starting the recursive-edit.
5261
5262 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5263
5264 * xfaces.c (menu_face_change_count): New variable.
5265 (Finternal_set_lisp_face_attribute): Increment it for changes
5266 of the `menu' face.
5267 (realize_basic_faces): Reflect changes in the `menu' faces
5268 in menu bars.
5269
5270 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5271 dy obtained from the iterator's y-position after moving from
5272 scroll_margin_pos to PT; see comment there.
5273
5274 * xdisp.c (safe_eval_handler): Call add_to_log.
5275
5276 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5277 is not a symbol or string.
5278
5279 * xdisp.c (echo_area_display): Don't perform a display update from
5280 inside redisplay. The update will happen anyway at the end of
5281 redisplay, and it can confuse redisplay (GC messages while
5282 redisplaying, for instance.)
5283
5284 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5285
5286 * xrdb.c (x_load_resources): Use the class name in the defaults.
5287
5288 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5289 (regex_compile): Catch bogus \(\1\).
5290
5291 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5292
5293 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5294 RGB values.
5295
5296 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5297 we have a color cache, check that the cached color equals the
5298 allocated color. If not, clear the color cache.
5299
5300 * window.c (displayed_window_lines): Change buffers if necessary.
5301 Fix computation of displayed lines.
5302
5303 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5304 update_menu_bindings to DEFVAR_BOOL.
5305
5306 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5307
5308 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5309
5310 * puresize.h (BASE_PURESIZE): Increase to 680000.
5311
5312 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5313
5314 2000-10-29 Jason Rumney <jasonr@gnu.org>
5315
5316 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5317
5318 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5319 (w32_cache_char_metrics): Handle possibility that 'x' does not
5320 exist in a BDF font.
5321 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5322
5323 * w32bdf.h (bdffont): Add nchars.
5324
5325 * w32bdf.c (set_bdf_font_info): Set it.
5326 (w32_BDF_TextOut): Swap byte order of double byte characters.
5327 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5328
5329 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5330
5331 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5332 don't override the colors in frame's param_alist, unless they are
5333 unspecified.
5334
5335 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5336 reverse the effect of the highlight flag.
5337
5338 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5339
5340 * window.h (Fwindow_live_p): Declare.
5341
5342 * undo.c (record_delete): Check that last_undo_buffer is really a
5343 buffer before applying XBUFFER to it.
5344
5345 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5346 Faref.
5347
5348 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5349
5350 * lisp.h (KEYMAPP): New macro.
5351 (get_keymap): Remove.
5352 (get_keymap_1): Rename get_keymap.
5353
5354 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5355
5356 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5357
5358 * xmenu.c (single_submenu): Use KEYMAPP.
5359 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5360 Use KEYMAPP rather than Fkeymapp.
5361
5362 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5363
5364 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5365 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5366 Use KEYMAPP rather than Fkeymapp.
5367 (single_submenu): Use KEYMAPP.
5368 (w32_menu_show, w32_dialog_show): Use TRUE.
5369
5370 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5371
5372 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5373 (Fkeymapp): Use KEYMAPP.
5374 (get_keymap): Rename from get_keymap_1. Remove old def.
5375 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5376 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5377 (Fminor_mode_key_binding): Don't raise an error if the binding
5378 is not a keymap.
5379 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5380 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5381
5382 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5383 Allow Vspecial_event_map to be autoloaded.
5384 (menu_bar_items): Fetch the keymap rather than using keymapp.
5385 (menu_bar_one_keymap): No need to follow func-indirect any more.
5386 (parse_menu_item): get_keymap_1 -> get_keymap.
5387 (tool_bar_items): Fetch the keymap rather than using keymapp.
5388 (read_key_sequence): Use KEYMAPP.
5389
5390 * intervals.c (get_local_map): Use get_keymap rather than following
5391 function-indirections explicitly.
5392
5393 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5394
5395 2000-10-27 Jason Rumney <jasonr@gnu.org>
5396
5397 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5398 point, as Windows has oversized fonts.
5399
5400 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5401
5402 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5403
5404 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5405 (freehook, reallochook): Handle null pointer arguments.
5406 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5407
5408 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5409
5410 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5411 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5412 Giving in to popular pressure to shut up the compiler with casts.
5413
5414 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5415
5416 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5417 signed value, and use a default value computed from the font's
5418 maximum descent.
5419
5420 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5421
5422 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5423 that specify a negative underline position can still use underlines.
5424
5425 * window.c (Fpos_visible_in_window_p): Make POS default to
5426 WINDOW's point, not the current buffer's point.
5427
5428 2000-10-26 Dave Love <fx@gnu.org>
5429
5430 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5431 when it's necessary.
5432
5433 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5434
5435 * window.c (size_window): Compute size difference from sum of old
5436 child window sizes instead of from parent's size.
5437
5438 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5439 Handle obscured lines at the top of the window.
5440
5441 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5442 down after the last error condition check.
5443
5444 * frame.c (Fdelete_frame): Run delete-frame-hook.
5445
5446 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5447
5448 * coding.c (decode_coding): Fix previous change (check also
5449 CODING_MODE_LAST_BLOCK).
5450
5451 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5452
5453 * regex.c: More `unsigned char' -> `re_char' changes.
5454 Also change several `int' into `re_wchar_t'.
5455 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5456 (PUSH_FAILURE_POINTER): Don't cast any more.
5457 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5458 We want GCC to complain, since this piece of code makes
5459 re_match non-reentrant, which *should* be fixed.
5460 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5461 (EXTEND_BUFFER): Use RETALLOC.
5462 (SET_LIST_BIT): Don't cast.
5463 (re_wchar_t): New type.
5464 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5465 that those two functions will always properly return.
5466 (IMMEDIATE_QUIT_CHECK): Cast to void.
5467 (analyse_first): Use recursion rather than an explicit stack.
5468 (re_compile_fastmap): Can't fail anymore.
5469 (re_search_2): Don't check re_compile_fastmap for failure.
5470 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5471 Now also sets the new value (passed in a new argument).
5472 (re_match_2_internal): Use it.
5473 Also, use a new var `reg' of type size_t when looping through regs
5474 rather than reuse the inappropriate `mcnt'.
5475
5476 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5477 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5478 (where_is_internal): Renamed from Fwhere_is_internal.
5479 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5480 (Fwhere_is_internal): New function wrapping where_is_internal.
5481 (where_is_internal_1): Handle the case where we're filling the cache.
5482 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5483
5484 2000-10-25 Miles Bader <miles@gnu.org>
5485
5486 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5487
5488 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5489
5490 * window.c (pos_fully_visible_p): Removed.
5491 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5492 if position is visible and/or fully visible.
5493
5494 * lisp.h (pos_visible_p): Add prototype.
5495
5496 * xdisp.c (pos_visible_p): New function.
5497
5498 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5499
5500 * process.c (send_process): If OBJECT is t, it means that the data
5501 is from C string, but we should encode it. Before calling
5502 setup_raw_text_coding_system, be sure to flush out data by the
5503 previous coding system.
5504
5505 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5506
5507 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5508 assignment of startpos to prev when startpos == pos.
5509
5510 * editfns.c (find_field): Set the field stickiness correctly from
5511 overlay fields. Use renamed `text_property_stickiness'.
5512 (text_property_stickiness): Renamed from `char_property_stickiness'.
5513 Only check text properties, not overlays.
5514 * textprop.c (get_char_property_and_overlay): New function.
5515 (Fget_char_property): Use it.
5516 * intervals.h (get_char_property_and_overlay): Add declaration.
5517
5518 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5519
5520 * keymap.c: Use AREF, ASET and ASIZE macros.
5521 (Fmake_sparse_keymap): Docstring fix.
5522 (synkey): Remove.
5523 (shadow_lookup): Move up.
5524 Handle the case where lookup-key returns an integer.
5525 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5526 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5527 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5528 Simplify/rewrite the keymap-finding code.
5529 Add check for command shadowing, using shadow_lookup.
5530
5531 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5532
5533 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5534 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5535 a symbol.
5536
5537 2000-10-24 Andrew Innes <andrewi@gnu.org>
5538
5539 * dired.c (directory_files_internal_unwind): New function.
5540 (directory_files_internal): Use it to ensure closedir is called
5541 even if expand-file-name or file-attributes throw, eg. because of
5542 a user interrupt. Also enable immediate_quit while calling
5543 re_search, so that matching can be interrupted as well.
5544
5545 2000-10-24 Andrew Innes <andrewi@gnu.org>
5546
5547 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5548 NT-Emacs only.
5549 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5550 so that re_search functions only quit when callers expect them to.
5551
5552 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5553
5554 * regex.c (regex_compile): Change the way of handling a range from
5555 a char less than 256 to a char not less than 256.
5556
5557 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5558
5559 * window.c (size_window): Prevent setting window's width or
5560 height to a negative value (esp. with XSETFASTINT).
5561
5562 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5563 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5564 (protect_malloc_state) [GC_MALLOC_CHECK &&
5565 GC_PROTECT_MALLOC_STATE]: New function.
5566 (PROTECT_MALLOC_STATE): New macro.
5567 (__malloc_initialize, morecore, _malloc_internal)
5568 (_free_internal) _realloc_internal): Use it to make _heapinfo
5569 read-only outside of gmalloc.
5570
5571 * keymap.c: Update copyright.
5572
5573 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5574 a symbol.
5575
5576 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5577
5578 * filelock.c (unlock_all_files): Use unlock_file to expand each
5579 buffer's file_truename before trying remove its lock file.
5580
5581 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5582
5583 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5584 or CRLF, decode EOLs.
5585
5586 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5587
5588 * window.c (Fdisplay_buffer): Fix doc.
5589
5590 2000-10-23 Jason Rumney <jasonr@gnu.org>
5591
5592 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5593 ASCII font of default fontset on Windows.
5594
5595 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5596 xterm.c comment below).
5597
5598 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5599
5600 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5601
5602 * xterm.c (x_connection_closed): Reset handling_signal.
5603
5604 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5605
5606 2000-10-23 Miles Bader <miles@gnu.org>
5607
5608 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5609 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5610 maintain old behavior.
5611 * minibuf.c (Fminibuffer_complete): Likewise.
5612
5613 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5614
5615 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5616 that when a font can't be exactly centered, it errs up rather than
5617 down.
5618
5619 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5620
5621 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5622
5623 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5624
5625 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5626
5627 * dispnew.c [macintosh]: Include macterm.h.
5628 (init_display) [macintosh]: Initialization for window system.
5629
5630 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5631 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5632 syms_of_search, x_term_init, and init_keyboard before calling
5633 init_window_once. Also, call syms_of_xmenu.
5634
5635 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5636 default fontset to Monaco.
5637
5638 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5639 NewMacWindow and DisposeMacWindow.
5640 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5641 instead of calling NewMacWindow and setting fields of
5642 f->output_data.mac directly. Call init_frame_faces.
5643 (Fdelete_frame) [macintosh]: Remove unused code.
5644 (Fmodify_frame_parameters) [macintosh]: Call
5645 x_set_frame_parameters instead of mac_set_frame_parameters.
5646
5647 * frame.h [macintosh]: Define menu_bar_lines field in struct
5648 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5649
5650 * keyboard.c [macintosh]: Include macterm.h.
5651 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5652 and menu_bar_activate_event type events as for X and NT.
5653 (make_lispy_event) [macintosh]: Construct lisp events of type
5654 MENU_BAR_EVENT as for X and NT.
5655
5656 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5657 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5658 (sys_subshell) [macintosh]: Remove definition entirely.
5659 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5660 Vwindow_system_version here. Remove initialization of
5661 Vx_bitmap_file_path.
5662 (read_input_waiting): Correct the number of parameters passed to
5663 read_socket_hook.
5664 Move all Macintosh functions to mac/mac.c.
5665
5666 * term.c [macintosh]: Include macterm.h.
5667
5668 * window.c [macintosh]: Include macterm.h.
5669
5670 * xdisp.c [macintosh]: Include macterm.h. Declare
5671 set_frame_menubar and pending_menu_activation.
5672 (echo_area_display) [macintosh]: Do not return if terminal frame
5673 is the selected frame.
5674 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5675 Allow only the selected frame to set menu bar.
5676 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5677 calling FRAME_EXTERNAL_MENU_BAR (f).
5678 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5679
5680 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5681 and check_x. Declare XCreateGC. Define x_create_gc and
5682 x_free_gc. Initialize font_sort_order.
5683 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5684 but call x_list_fonts instead of w32_list_fonts.
5685 (Finternal_face_x_get_resource) [macintosh]: Do not call
5686 display_x_get_resource.
5687 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5688 (realize_x_face) [macintosh]: Load the font if it is specified in
5689 ATTRS.
5690 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5691
5692 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5693
5694 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5695 is nil: since we go to the end of submap anyway, we'd end up
5696 setting nil to nil.
5697 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5698 doesn't obey autoload.
5699
5700 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5701
5702 * msdos.c (dos_set_window_size): Update screen dimension variables.
5703
5704 2000-10-21 Jason Rumney <jasonr@gnu.org>
5705
5706 * w32term.c (w32_cache_char_metrics): Double check that font is
5707 really fixed pitch before trusting tmPitchAndFamily.
5708
5709 2000-10-21 Andrew Innes <andrewi@gnu.org>
5710
5711 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5712
5713 * w32term.h: Extern decl for w32_cache_char_metrics.
5714
5715 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5716
5717 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5718 (w32_unload_font): Free per_char array if present.
5719
5720 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5721 cached information in emulated XFontStruct to handle common cases
5722 quickly. Do not allocate XCharStruct for return.
5723 (w32_native_per_char_metric): New function.
5724 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5725 allocating one.
5726 (x_produce_glyphs): Don't get an HDC. Change calls to
5727 w32_per_char_metric to match arg change above. Remove calls to
5728 free results.
5729 (w32_get_glyph_overhangs): Ditto.
5730 (w32_cache_char_metrics): New function.
5731
5732 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5733 ($(BLD)/casefiddle.$(O)): Remove compile command.
5734 ($(BLD)/gmalloc.$(O)): Remove compile command.
5735 ($(BLD)/dispnew.obj):
5736 ($(BLD)/keyboard.obj):
5737 ($(BLD)/w32inevt.obj):
5738 ($(BLD)/w32bdf.obj):
5739 ($(BLD)/alloc.obj):
5740 ($(BLD)/buffer.obj):
5741 ($(BLD)/editfns.obj):
5742 ($(BLD)/emacs.obj):
5743 ($(BLD)/fileio.obj):
5744 ($(BLD)/fns.obj):
5745 ($(BLD)/indent.obj):
5746 ($(BLD)/insdel.obj):
5747 ($(BLD)/intervals.obj):
5748 ($(BLD)/minibuf.obj):
5749 ($(BLD)/print.obj):
5750 ($(BLD)/scroll.obj):
5751 ($(BLD)/sysdep.obj):
5752 ($(BLD)/textprop.obj):
5753 ($(BLD)/widget.obj):
5754 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
5755 ($(BLD)/term.obj): Add dependency on dispextern.h.
5756
5757 * makefile.nt ($(BLD)\dispnew.obj):
5758 ($(BLD)\keyboard.obj):
5759 ($(BLD)\w32inevt.obj):
5760 ($(BLD)\w32bdf.obj):
5761 ($(BLD)\alloc.obj):
5762 ($(BLD)\buffer.obj):
5763 ($(BLD)\editfns.obj):
5764 ($(BLD)\emacs.obj):
5765 ($(BLD)\fileio.obj):
5766 ($(BLD)\fns.obj):
5767 ($(BLD)\indent.obj):
5768 ($(BLD)\insdel.obj):
5769 ($(BLD)\intervals.obj):
5770 ($(BLD)\minibuf.obj):
5771 ($(BLD)\print.obj):
5772 ($(BLD)\scroll.obj):
5773 ($(BLD)\sysdep.obj):
5774 ($(BLD)\textprop.obj):
5775 ($(BLD)\widget.obj):
5776 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
5777 ($(BLD)\term.obj): Add dependency on dispextern.h
5778
5779 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5780
5781 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
5782 with an additional argument of Qt.
5783
5784 2000-10-21 Miles Bader <miles@gnu.org>
5785
5786 * window.c (pos_fully_visible_in_window_p): New function.
5787 (Fpos_visible_in_window_p): Add FULLY argument.
5788 Use pos_fully_visible_in_window_p.
5789 (window_scroll_pixel_based, window_scroll_line_based): Update
5790 calls to Fpos_visible_in_window_p.
5791 * lisp.h (Fpos_visible_in_window_p): Update prototype
5792
5793 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5794
5795 * alloc.c (toplevel): Conditionalize compilation of mem_*
5796 functions differently.
5797
5798 2000-10-20 Jason Rumney <jasonr@gnu.org>
5799
5800 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
5801 mem_init where it used to be. mem_z etc not defined otherwise.
5802
5803 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5804
5805 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
5806 GC_MALLOC_CHECK.
5807 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
5808 structure definition and related variabled to the top of the file.
5809 Include this code when GC_MALLOC_CHECK is defined.
5810 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
5811 register/unregister allocated region.
5812 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
5813 which isn't allocated.
5814 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
5815 something which is already in use.
5816 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
5817 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
5818 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
5819 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
5820
5821 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
5822 _malloc_internal instead of malloc.
5823 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
5824 of free.
5825
5826 2000-10-20 Andrew Innes <andrewi@gnu.org>
5827
5828 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
5829 Windows.
5830 (my_strftime) <macro>: Don't use macro arg list when redefining as
5831 _strftime_copytm.
5832 (my_strftime) <function>: Supply 0 as ut argument.
5833
5834 2000-10-19 Jason Rumney <jasonr@altavista.net>
5835
5836 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
5837 including dispextern.h, as it stops faces from working.
5838
5839 * w32fns.c (Fx_create_frame): Don't bother calling
5840 face-set-after-frame-default since the caller does it for us
5841 anyway. Clean up calls to x_get_arg to be consistent with X.
5842
5843 * w32term.c (x_produce_glyphs): Handle
5844 unibyte_display_via_language_environment correctly.
5845 (w32_draw_box_rect): Fix the calculation of width and height.
5846
5847 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
5848 as it has stopped working.
5849 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
5850 menu-bar.
5851
5852 2000-10-19 Gerd Moellmann <gerd@gnu.org>
5853
5854 * eval.c (skip_debugger): Prevent a compiler warning.
5855 (Fcondition_case): Likewise.
5856 (Fbacktrace_frame): Use a null interactive spec.
5857
5858 2000-10-19 Kenichi Handa <handa@etl.go.jp>
5859
5860 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
5861
5862 2000-10-18 Gerd Moellmann <gerd@gnu.org>
5863
5864 * strftime.c: Sync with glibc, file version 1.78.
5865 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
5866 should no longer be used according to ISO 8601.
5867
5868 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
5869 no map for meta_prefix_char, don't try to use it as a keymap.
5870 Instead, if T_OK is non-zero, look up a default binding, if any,
5871 otherwise, if T_OK is zero, return nil.
5872
5873 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
5874 (x_to_xcolors, png_load): Use x_query_color.
5875
5876 * xterm.c (x_color_cells, x_query_colors, x_query_color):
5877 New functions.
5878 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
5879 which can be slow.
5880 (x_copy_color, x_alloc_lighter_color): Likewise.
5881
5882 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
5883 (x_query_color, x_query_colors): Add prototype.
5884
5885 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
5886 check_string_bytes only if not noninteractive, increase count to 50.
5887
5888 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
5889
5890 * insdel.c (adjust_markers_for_delete): Handle before-insertion
5891 markers correctly.
5892
5893 2000-10-17 Gerd Moellmann <gerd@gnu.org>
5894
5895 * alloc.c (pure_bytes_used): Renamed from pureptr.
5896 (ALIGN): New macro.
5897 (pure_alloc): New function.
5898 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
5899 Use it.
5900 (Fpurecopy): Use PURE_POINTER_P.
5901
5902 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
5903 PT has moved backward.
5904
5905 * xdisp.c (cursor_row_p): Take continued lines into account.
5906
5907 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
5908 string's size_byte.
5909 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
5910 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
5911 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
5912 string allocated.
5913
5914 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
5915 of selective display off while searching for the next line start.
5916
5917 2000-10-17 Kenichi Handa <handa@etl.go.jp>
5918
5919 * Makefile.in (term.o): Depend on dispextern.h.
5920
5921 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
5922
5923 * keymap.c (keymap_memberp): Ensure that nil is not a member.
5924
5925 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5926
5927 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
5928 the iterator at the beginning, so that they can be set later on,
5929 for instance in reseat_at_next_visible_line_start, without being
5930 overwritten.
5931
5932 * xfns.c (pbm_format): Add :foreground and :background keywords.
5933 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
5934 (xbm_load): Recognize foreground and background color specifications.
5935
5936 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
5937
5938 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
5939
5940 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
5941
5942 * msdos.c (IT_set_face): Compare highlighted face with the default
5943 face, and invert colors if these faces' colors are identical.
5944 (Fmsdos_remember_default_colors): Don't swap foreground and
5945 background colors in initial_colors[].
5946 (IT_set_frame_parameters): Don't swap frame's foreground and
5947 background pixels. If ALIST includes "(reverse . t)", swap
5948 foreground-color and background-color properties in frame's
5949 param_alist. If the original frame's param_alist doesn't specify
5950 the colors, store unspecified-fg and unspecified-bg, reversed if
5951 required.
5952
5953 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
5954 the colors are unspecified and reversed, reverse fore- and back-
5955 ground in the returned value.
5956 (Fframe_parameter): Ditto.
5957
5958 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5959
5960 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
5961 get_last_unchanged_at_beg_row.
5962 (find_first_unchanged_at_end_row): Renamed from
5963 get_first_unchanged_at_end_row.
5964 (find_first_unchanged_at_end_row): Convert assertions to
5965 unconditional tests which abort. When looking for a row in
5966 unchanged text, don't go further back than first_text_row.
5967
5968 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
5969 Don't add in the last line's height when deciding if the new
5970 position is below the scroll margin.
5971
5972 2000-10-16 Miles Bader <miles@gnu.org>
5973
5974 * editfns.c (Fconstrain_to_field): Check carefully for field
5975 boundaries if either OLD_POS or NEW_POS has a non-nil field
5976 property, even if they're the same.
5977
5978 2000-10-16 Kenichi Handa <handa@etl.go.jp>
5979
5980 * xterm.c (x_draw_box_rect): Fix the calculation of width and
5981 height for XFillRectangle.
5982
5983 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
5984
5985 * syntax.c (Fstring_to_syntax): New function extracted from
5986 Fmodify_syntax_entry.
5987 (Fmodify_syntax_entry): Use it and document the ! and | fences.
5988 (skip_chars, Fforward_comment): Remove unused variables.
5989 (syms_of_syntax): Add defsubr for string-to-syntax.
5990 (describe_syntax): Add code for comment and string fences.
5991
5992 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
5993
5994 * keymap.c (access_keymap): Add AUTOLOAD parameter.
5995 Do the meta->esc mapping. Call get_keyelt before returning.
5996 Start scanning from the second element (the first is always `keymap')
5997 to make it easier to detect when we reach a parent map.
5998 Handle the case of inheriting from a symbol whose function is a map.
5999 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6000 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6001 (get_keyelt, Flookup_key): Update call to access_keymap.
6002 Remove the meta->esc mappings.
6003 (define_as_prefix): Delete old disabled code.
6004 (menu_item_p): New function.
6005 (where_is_internal_1): Skip over the few remaining menu items.
6006 * lisp.h (access_keymap): Update prototype.
6007 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6008 Update call to access_keymap.
6009 (follow_key, read_key_sequence): Update calls to access_keymap.
6010 Remove the meta->esc mappings.
6011
6012 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6013
6014 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6015 with additional argument.
6016
6017 * xdisp.c (cursor_row_p): New function.
6018 (try_cursor_movement, display_line): Use it.
6019
6020 * xdisp.c (append_space): Also save/restore iterator's current
6021 character and its length.
6022
6023 * xdisp.c (init_from_display_pos): Add an assertion.
6024 (handle_stop): Don't set iterator's add_overlay_start.
6025 (handle_invisible_prop): Likewise.
6026 (load_overlay_strings): If text under an overlay is invisible,
6027 take both before- and after-strings into account when the iterator
6028 is positioned either at the start or at the end of the overlay.
6029 (forward_to_next_line_start): Rewritten.
6030 (reseat_at_next_visible_line_start): Rewritten.
6031 (set_iterator_to_next): Add parameter RESEAT_P.
6032
6033 * dispextern.h (struct it): Remove member add_overlay_start.
6034 (set_iterator_to_next): Change prototype.
6035
6036 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6037
6038 * coding.c (code_convert_region): Be sure to initialize
6039 coding->category_idx.
6040 (decode_coding_string): Set coding->src_multibyte and
6041 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6042 (encode_coding_string): Set coding->src_multibyte and
6043 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6044
6045 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6046
6047 * xfns.c (Fx_create_frame): Don't bother calling
6048 face-set-after-frame-default since the caller does it for us anyway.
6049
6050 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6051
6052 * window.c (coordinates_in_window): Fix detection of vertical line
6053 on character terminals.
6054
6055 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6056
6057 * editfns.c (save_excursion_save): Additionally record the
6058 selected window.
6059 (save_excursion_restore): If buffer was visible in a window, and a
6060 different window was selected, and the old selected window is
6061 still live, restore point in that window.
6062
6063 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6064
6065 * xterm.c (x_produce_glyphs): Handle
6066 unibyte_display_via_language_environment correctly.
6067
6068 * regex.c (regex_compile): Change the way of handling a range from
6069 unibyte char to multibyte char.
6070
6071 * syntax.c (skip_chars): Change the way of handling a range from
6072 unibyte char to multibyte char.
6073
6074 * process.c (read_process_output): Cancel previous change.
6075
6076 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6077
6078 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6079
6080 * charset.c (Ffind_charset_string): Doc fix.
6081 (Ffind_charset_region): Doc fix.
6082
6083 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6084
6085 * process.c (read_process_output): Fix previous change. Adjust
6086 multibyteness of text to insert in a buffer by
6087 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6088
6089 2000-10-10 Andreas Schwab <schwab@suse.de>
6090
6091 * alloc.c (mark_object): Remove all workarounds installed on
6092 1993-08-08.
6093
6094 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6095
6096 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6097 (base64_encode_1): Make it work for a text of multibyte form.
6098 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6099 case. Don't call str_to_multibyte because base64_decode_1
6100 produces correct multibyte form for eight-bit codes.
6101 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6102 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6103 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6104 codes.
6105
6106 * charset.h (CHAR_STRING): Optimized for single byte characters.
6107
6108 2000-10-09 Andreas Schwab <schwab@suse.de>
6109
6110 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6111 -1 after socket is closed, to fall through to error processing.
6112
6113 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6114
6115 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6116 variables. If ALIST includes foreground-color or
6117 background-color, change also the colors of the default face for
6118 this frame.
6119
6120 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6121
6122 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6123 them extern (they are defined on xfaces.c).
6124 (syms_of_msdos): Don't intern and don't staticpro
6125 Qbackground_color and Qforeground_color.
6126
6127 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6128
6129 * frame.c (Fframe_parameter): For non-windowed frames, if
6130 f->param_alist says foreground or background color is unspecified,
6131 call tty_color_name to return the color name computed from the
6132 frame's current colors.
6133
6134 2000-10-06 Dave Love <fx@gnu.org>
6135
6136 * terminfo.c (ospeed): Don't declare.
6137
6138 * sysdep.c: Don't include string.h.
6139 (h_errno): Declare conditional also on TRY_AGAIN.
6140
6141 * charset.c (Ffind_charset_string): Doc fix.
6142
6143 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6144 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6145 error messages.
6146
6147 2000-10-05 Dave Love <fx@gnu.org>
6148
6149 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6150 position like menu-bar.
6151
6152 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6153
6154 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6155
6156 * xdisp.c (handle_single_display_prop): Use safe_call1.
6157 (safe_call): Renamed from call_function.
6158 (safe_call1): New function.
6159 (handle_fontified_prop): Use safe_call1 instead of call1.
6160 (safe_eval): Renamed from eval_form.
6161 (safe_eval_handler): Renamed from eval_handler.
6162 (handle_single_display_prop, display_mode_element): Use safe_eval
6163 instead of eval_form.
6164
6165 * xfaces.c (merge_face_heights): Use safe_call instead of
6166 call_function.
6167
6168 * keyboard.c (show_help_echo): Use safe_call instead of
6169 call_function; use safe_eval instead of eval_form.
6170
6171 * lisp.h (safe_call): Renamed from call_function.
6172 (safe_eval): Renamed from eval_form.
6173 (safe_call1): Add prototype.
6174
6175 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6176
6177 * xfns.c (image_ascent): Rearrange ascent calculation for the
6178 has-a-font case.
6179
6180 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6181
6182 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
6183 (where_is_internal_1): Don't bother ignoring menu-items any more.
6184
6185 2000-10-04 Gerd Moellmann <gerd@gnu.org>
6186
6187 * keyboard.c (update_menu_bindings): New variable.
6188 (parse_menu_item): Use AREF. If update_menu_bindings
6189 is 0, don't update menu bindings.
6190 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
6191
6192 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
6193
6194 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
6195 to `mark_object'.
6196
6197 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
6198
6199 * syntax.c (forw_comment): Match nestedness of ender/starter.
6200 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
6201 (prev_char_comstart_first): Remove.
6202 (back_comment): Check two-char comment markers more carefully
6203 to better handle overlapping cases like *//* or /* */* */ ...
6204 Match nestedness of ender/starter.
6205
6206 2000-10-02 Dave Love <fx@gnu.org>
6207
6208 * config.in (HAVE_GAI_STRERROR): Add undef.
6209
6210 * process.c (Fopen_network_stream): Use it.
6211
6212 * m/alpha.h (NO_REMAP): Don't define.
6213
6214 2000-10-02 Gerd Moellmann <gerd@gnu.org>
6215
6216 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
6217 return with a string converted to an integer or vice versa when
6218 Vmocklisp_arguments is t.
6219 (Fsignal): Likewise. The function can return for `quit'.
6220 (struct gcpro): Declare member `var' to point to a volatile
6221 Lisp_Object.
6222
6223 * eval.c (error): Prevent compiler warning.
6224
6225 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
6226
6227 * keymap.c (keymap_memberp): New function.
6228 (Fset_keymap_parent): Use it.
6229 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
6230 Use keymap_memberp to avoid creating cycles.
6231 (access_keymap): Use KEYMAPP.
6232
6233 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6234
6235 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6236 gai_strerror. Make sure xerrno is set if connect fails. Improve
6237 error recovery.
6238
6239 2000-09-29 Jason Rumney <jasonr@gnu.org>
6240
6241 * w32term.c (w32_char_font_type, w32_encode_char)
6242 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6243 (w32_bdf_per_char_metric): New function.
6244 (w32_per_char_metric): Use it.
6245 (x_draw_glyph_string_background): Always draw background for BDF
6246 glyphs.
6247
6248 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6249 GDI object which is a scarce resource.
6250
6251 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6252 (get_quoted_string): Fix limit on memchr search.
6253 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6254 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6255 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6256 (get_cached_font_char, cache_char_offset): Use macro
6257 BDF_CODEPOINT_RANGE_COVER_P.
6258 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6259 (clear_cached_bitmap_slots): New function.
6260 (GET_HEX_VALUE): G-Z, g-z are not hex.
6261 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6262 (get_bitmap_with_cache): Use new cache implementation.
6263 (create_offscreen_bitmap): New function.
6264 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6265
6266 * w32term.c (x_produce_glyphs): If the distance from the current
6267 position to the next tab stop is less than a canonical character
6268 width, use the tab stop after that.
6269 (x_draw_glyphs): Handle case START and END are out of bounds more
6270 carefully.
6271 (x_clear_mouse_face): Block/unblock input.
6272 (x_display_and_set_cursor): Don't show a hollow box cursor for
6273 buffers whose cursor_type is nil.
6274
6275 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6276
6277 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6278
6279 * dispextern.h (updating_frame): Declare extern.
6280
6281 2000-09-29 Andreas Schwab <schwab@suse.de>
6282
6283 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6284
6285 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6286
6287 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6288 use its function definition.
6289 (tool_bar_items): Likewise.
6290
6291 * lisp.h (fatal): Declare NO_RETURN.
6292
6293 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6294
6295 * keymap.c: Remove the line "#undef NULL".
6296
6297 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6298
6299 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6300
6301 2000-09-28 Dave Love <fx@gnu.org>
6302
6303 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6304
6305 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6306
6307 * .gdbinit (xreload): Note its need on GNU/Linux.
6308
6309 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6310 r_alloc, r_alloc_free.
6311
6312 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6313
6314 * syntax.c (skip_chars): Handle negation correctly.
6315
6316 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6317
6318 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6319 with non-zero FORCE_P argument.
6320
6321 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6322 Add assertions.
6323
6324 * xdisp.c (window_box_height): Add an assertion.
6325
6326 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6327 tool-bar than is available.
6328 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6329
6330 2000-09-27 Dave Love <fx@gnu.org>
6331
6332 * s/irix6-5.h: Now works 64-bit. Tidied.
6333
6334 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6335
6336 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6337 instead of BITS_PER_INT.
6338 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6339 EMACS_UINT, respectively.
6340 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6341
6342 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6343
6344 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6345
6346 * window.c (freeze_window_starts): Construct last argument for
6347 foreach_window differently.
6348
6349 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6350
6351 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6352 EMACS_UINT instead of `int' and `unsigned int'.
6353 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6354
6355 * frame.h (struct frame): Make the `nothing' member of union
6356 output_data an EMACS_INT.
6357
6358 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6359 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6360 size in the sdata structure.
6361 (SDATA_NBYTES, SDATA_DATA): New macros.
6362 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6363 differently for the different layout of the sdata structure.
6364 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6365 in sdata.
6366 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6367 Check that size recorded in the string size and size recorded in
6368 the sdata structure agree.
6369
6370 2000-09-25 Dave Love <fx@gnu.org>
6371
6372 * buffer.c: Include stdio.h.
6373
6374 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6375
6376 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6377
6378 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6379 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6380 (__malloc_extra_blocks): Declare as __malloc_size_t.
6381
6382 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6383
6384 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6385
6386 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6387 (read_char): If help-echo is showing, preserve the echo area
6388 when redisplaying.
6389
6390 * xdisp.c (help_echo_showing_p): New variable.
6391 (set_message): Reset it to 0.
6392 (init_xdisp): Initialize help_echo_showing_p.
6393
6394 * dispextern.h (help_echo_showing_p): Declare extern.
6395
6396 * config.in: Fix typo in __GNUC_MINOR__.
6397
6398 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6399
6400 * s/freebsd.h (POSIX_SIGNALS): Define.
6401
6402 * xterm.c (x_clear_mouse_face): Block/unblock input.
6403
6404 2000-09-24 Dave Love <fx@gnu.org>
6405
6406 * fns.c (base64_encode_1): Fix last change.
6407
6408 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6409
6410 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6411
6412 * xdisp.c (try_window_reusing_current_matrix): More fixes
6413 for the case window has a header-line.
6414
6415 2000-09-22 Dave Love <fx@gnu.org>
6416
6417 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6418 a doc string.
6419
6420 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6421
6422 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6423
6424 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6425
6426 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6427 for GCC >= 2.5.
6428
6429 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6430 Declare NO_RETURN.
6431
6432 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6433 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6434 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6435 warnings.
6436
6437 * marker.c (byte_char_debug_check): Return void.
6438
6439 * xfns.c (Fx_create_frame): Set default frame parameter value
6440 for tool-bar-lines to 1.
6441
6442 * dispnew.c (scrolling_window): Compare y-positions of rows
6443 equal at the start. Some simplification.
6444
6445 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6446 reused rows' y-position in the case window has a header-line, and
6447 new window start is greater than old window start.
6448
6449 * process.c (process_sent_to): New variable.
6450 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6451 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6452 Declare more parameters volatile.
6453
6454 * lread.c (Vrecursive_load_depth_limit): New variable.
6455 (Fload): Check recursive loads whose recursion depth exceeds
6456 Vrecursive_load_depth_limit.
6457 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6458
6459 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6460
6461 * fileio.c (Fread_file_name): Doc fix.
6462
6463 * editfns.c (Fmessage_or_box): Doc fix.
6464
6465 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6466
6467 * xfns.c (xbm_scan): Allow C-style comments.
6468
6469 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6470 symbols are specified, add color translations to the cache.
6471 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6472 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6473 xpm_cache_color.
6474 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6475 structures to xpm_init_color_cache.
6476
6477 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6478
6479 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6480
6481 2000-09-19 Andrew Innes <andrewi@gnu.org>
6482
6483 * makefile.nt (bootstrap-emacs): Don't change directory.
6484
6485 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6486
6487 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6488
6489 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6490 If output buffer is too small, signal an appropriated error.
6491
6492 2000-09-18 Dave Love <fx@gnu.org>
6493
6494 * keyboard.c (menu_bar_items, tool_bar_items)
6495 (current_active_maps): Remove redundant get_local_map call.
6496
6497 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6498
6499 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6500 cursor for buffers whose cursor_type is nil.
6501
6502 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6503 a feature to implement that is already implemented.
6504 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6505 warnings.
6506
6507 * xfns.c (x_clear_image_1): New function.
6508 (x_clear_image): Use it.
6509 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6510
6511 * dispnew.c (update_window): Move test for invisible lines
6512 at the top to update_window_line.
6513 (update_window_line): Handle invisible lines here.
6514
6515 * xfns.c (clear_image_cache): Clear current matrices of all
6516 frames sharing an image cache. Block input while freeing
6517 images. Fix timestamp comparison.
6518 (x_clear_image): Also free the mask.
6519
6520 * xfns.c (lookup_image): Block input while loading the image so
6521 that we won't get interrupted in a state where the image isn't yet
6522 set up completely.
6523 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6524 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6525 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6526 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6527
6528 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6529
6530 * dispnew.c (update_window): Make sure to make desired rows
6531 current even if they are completely invisible at the top
6532 of a window.
6533
6534 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6535
6536 * xfns.c (lookup_image): Build mask before applying an algorithm.
6537 Recognize algorithm `disabled'.
6538 (cross_disabled_images): New variable.
6539 (COLOR_INTENSITY): New macro.
6540 (x_detect_edges): Use COLOR_INTENSITY.
6541 (x_disable_image): New function.
6542 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6543
6544 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6545 disabled state, don't apply an image transformation algorithm if
6546 the user specified an image for the disabled state. Use
6547 `:algorithm disabled' for creating a disabled item's image if the
6548 user hasn't specified an image.
6549
6550 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6551 allocation functions with the XPM lib.
6552 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6553 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6554 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6555 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6556 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6557 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6558 functions, if possible, because these handle color allocation
6559 failure more gracefully.
6560 (Fimage_mask_p): New function.
6561
6562 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6563 (Qedge_detection, Qheuristic): New symbols.
6564 (syms_of_xfns): Initialize new symbols.
6565 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6566 `algorithm (edge-detection ...)'.
6567 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6568 (tiff_format, gif_format, gs_format): Add `:mask'.
6569 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6570 (GIF_MASK, GS_MASK): New enumerators.
6571 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6572 (emboss_matrix, laplace_matrix): New variables.
6573 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6574 (x_edge_detection): New functions.
6575 (x_laplace): Rewritten in terms of x_detect_edges.
6576 (x_build_heuristic_mask): If image has a mask, free it.
6577
6578 2000-09-14 Andrew Innes <andrewi@gnu.org>
6579
6580 * makefile.w32-in: Revert to Unix line endings.
6581
6582 2000-09-14 Andrew Innes <andrewi@gnu.org>
6583
6584 * makefile.w32-in: Standardize indentation somewhat.
6585 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6586 cater for differences between shells.
6587
6588 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6589
6590 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6591
6592 * xterm.c (x_produce_glyphs): If the distance from the current
6593 position to the next tab stop is less than a canonical character
6594 width, use the tab stop after that.
6595
6596 2000-09-14 Dave Love <fx@gnu.org>
6597
6598 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6599
6600 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6601
6602 * xdisp.c (handle_fontified_prop): While running fontification
6603 functions, bind `fontification-functions' and
6604 `after-change-functions' to nil.
6605
6606 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6607 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6608
6609 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6610
6611 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6612 USE_MMAP_FOR_BUFFERS.
6613
6614 * insdel.c (make_gap): Use enlarge_buffer_text.
6615
6616 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6617 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6618 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6619 from former r_alloc_* functions in ralloc.c.
6620 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6621 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6622 (mmap_init) [REL_ALLOC_MMAP]: New function.
6623 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6624 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6625 BUFFER_FREE.
6626
6627 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6628 (enlarge_buffer_text): Add prototype.
6629
6630 * ralloc.c: Remove everything having to do with the use of mmap.
6631
6632 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6633
6634 * sound.c (Fplay_sound): Doc fix.
6635
6636 * keyboard.c: Avoid some more compiler warnings.
6637 (parse_tool_bar_item): Ignore cached key bindings.
6638
6639 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6640 and allocation of Lisp data.
6641
6642 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6643
6644 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6645 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6646 defaults first.
6647
6648 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6649
6650 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6651
6652 * ccl.c: Comment fixed.
6653 (MAX_MAP_SET_LEVEL): Increased to 30.
6654 (PUSH_MAPPING_STACK): Enclose with do-while block.
6655 (POP_MAPPING_STACK): Likewise.
6656 (stack_idx_of_map_multiple): New variable.
6657 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6658 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6659 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6660 (ccl_driver) <CCL_MapSingle>: Likewise.
6661 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6662 with the case where looking up process reaches to the end of
6663 map-set, and call CCL programs as the above change.
6664
6665 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6666
6667 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6668 that might be clobbered by longjmp.
6669 (check_x_display_info, x_decode_color, create_frame_xic)
6670 (Fx_display_backing_store, Fx_display_visual_class)
6671 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6672
6673 * lread.c (init_lread): Set Vloads_in_progress to nil.
6674 (Fload): Show list of recursively loaded files, when signaling an
6675 error.
6676
6677 * lread.c (Vloads_in_progress): New variable.
6678 (record_load_unwind): New function.
6679 (Fload): Check for recursive loads.
6680 (syms_of_lread): Initialize Vloads_in_progress.
6681 (read_integer, read1): Avoid some compiler warnings.
6682
6683 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6684 compiler warnings.
6685
6686 2000-09-11 Miles Bader <miles@gnu.org>
6687
6688 * editfns.c (Fbuffer_string): Doc fix.
6689
6690 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6691
6692 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6693
6694 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6695
6696 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6697 whether to include other header files.
6698
6699 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6700
6701 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6702 by Fmemq as a boolean.
6703
6704 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6705
6706 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6707
6708 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6709
6710 * ralloc.c (mmap_fd): Remove initializer which can make it
6711 read-only in a dumped Emacs.
6712 (mmap_fd_1): New variable.
6713 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6714 restore it from there.
6715 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6716 unconditionally so that mmap_fd can be initialized there.
6717 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6718 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6719 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6720
6721 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6722
6723 * xdisp.c (dump_glyph_row): Fix printf format string.
6724 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6725
6726 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6727
6728 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6729 inheritance.
6730
6731 * xdisp.c (try_window_id): When trying to locate cursor in
6732 unchanged rows at the top, handle the case that we can't find it.
6733
6734 * xterm.c (x_draw_glyphs): Handle case START and END are out
6735 of bounds more carefully.
6736
6737 2000-09-08 Dave Love <fx@gnu.org>
6738
6739 * s/sol2.h (REL_ALLOC_MMAP): Define.
6740 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
6741
6742 * ralloc.c: Don't include string.h (redundant).
6743 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
6744 [!MAP_ANON]: Include fcntl.h.
6745 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
6746 (r_alloc, r_re_alloc, r_alloc_free)
6747 (mmap_enlarge, mmap_set_vars): Use it.
6748 (r_alloc_init_fd): New function.
6749 (__morecore) [SYSTEM_MALLOC]: Don't declare.
6750 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
6751 malloc type.
6752
6753 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
6754 Remove vm-limit.o.
6755
6756 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
6757 change to __NetBSD__.
6758
6759 2000-09-08 Kenichi Handa <handa@etl.go.jp>
6760
6761 * search.c (compile_pattern): Check the multibyteness of cached
6762 string and PATTERN.
6763
6764 2000-09-08 Miles Bader <miles@gnu.org>
6765
6766 * xfaces.c (default_face_vector): Function removed.
6767 (Finternal_merge_in_global_face): Restore old global/local
6768 attribute override order. Use inline loop instead of calling
6769 default_face_vector.
6770
6771 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6772
6773 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
6774 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
6775 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
6776 where necessary, in case POINTER_TYPE is `void'.
6777
6778 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
6779
6780 * frame.c (make_terminal_frame): Initialize frame foreground and
6781 background colors to unspecified, for the initial instance of an
6782 MSDOS frame.
6783
6784 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6785
6786 * ralloc.c (mmap_find): Fix overlap computation.
6787 (mmap_enlarge): Compute nbytes before trying to find an
6788 overlapping region.
6789
6790 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
6791 instead of `!='.
6792
6793 * lread.c (syms_of_lread): Change value of regexp
6794 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
6795
6796 * xmenu.c (xdialog_show): When looking up the selection in
6797 menu_items, take `quote' boundaries into account; this corresponds
6798 to a nil ITEM in x-popup-dialog.
6799
6800 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6801
6802 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
6803 not 0x81.
6804 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
6805
6806 * coding.c (encode_coding_sjis_big5): Use translation table for
6807 encoding, not decoding. Fix the handling of latin-jisx0201.
6808 Check for the charset katakana-jisx0201 too.
6809 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
6810 (detect_coding_sjis): Check the byte sequence more rigidly.
6811
6812 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6813
6814 * xfaces.c (Vparam_value_alist): New variable.
6815 (syms_of_xfaces): Initialize it.
6816 (Finternal_set_lisp_face_attribute): Avoid more consing.
6817
6818 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
6819 specially.
6820 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
6821 (Qbackground_mode): New variable.
6822 (syms_of_frame_1): Initialize Qbackground_mode.
6823
6824 * lisp.h (Qdisplay): Declare extern.
6825
6826 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
6827 change face on all frames, and change the default for new frames.
6828
6829 2000-09-07 Dave Love <fx@gnu.org>
6830
6831 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
6832
6833 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6834
6835 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
6836
6837 * charset.c: Include composite.h
6838 (lisp_string_width): New function.
6839 (Fstring_width): Call lisp_string_width instead of strwidth.
6840
6841 * Makefile.in (charset.o): Depends on composite.h.
6842
6843 * process.c (read_process_output): Before inserting the decoded
6844 text in the buffer, adjust the multibyteness.
6845
6846 2000-09-06 Gerd Moellmann <gerd@gnu.org>
6847
6848 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
6849 buffer's text buffer is null, map new memory.
6850
6851 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
6852 POINTER_TYPE and size_t.
6853 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
6854 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
6855 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
6856 [REL_ALLOC_MMAP]: New macros.
6857 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
6858 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
6859 [REL_ALLOC_MMAP]: New functions.
6860
6861 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
6862 before and after unexec.
6863
6864 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
6865 text buffers if necessary.
6866
6867 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
6868 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
6869 in prototypes.
6870
6871 * config.in (HAVE_MMAP): Add #undef.
6872
6873 2000-09-05 Gerd Moellmann <gerd@gnu.org>
6874
6875 * frame.c (Qdisplay_type): New variable.
6876 (syms_of_frame_1): Initialize it.
6877 (Fframe_parameter): New function that avoids consing.
6878 (syms_of_frame): Defsubr it.
6879
6880 * buffer.c (Fother_buffer): Consider buffers as invisible when
6881 they are displayed in a window on an invisible frame.
6882
6883 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
6884 get-largest-window always return nil.
6885
6886 2000-09-04 Gerd Moellmann <gerd@gnu.org>
6887
6888 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
6889 variable; recognize Emacs 19 elc files.
6890
6891 2000-09-04 Miles Bader <miles@gnu.org>
6892
6893 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
6894 before initially popping up the menu, so the menu doesn't flash
6895 when the face settings are significantly different from the defaults.
6896
6897 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
6898
6899 * regex.c (WIDE_CHAR_SUPPORT): New macro.
6900 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
6901 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
6902 (BIT_UNIBYTE): Remove.
6903 (re_match_2_internal): Delete corresponding code and streamline the
6904 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
6905 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
6906 (re_wctype_t): New type.
6907 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
6908 (regex_compile): Use them and fix handling of overly long char classes.
6909
6910 2000-09-03 Andrew Innes <andrewi@gnu.org>
6911
6912 * makefile.w32-in: Change to DOS line endings.
6913
6914 * s/ms-w32.h (ORDINARY_LINK): New define.
6915
6916 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
6917 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
6918
6919 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
6920 (distclean): Delete them here instead.
6921
6922 * w32proc.c (compare_env): Convert to uppercase for comparison,
6923 not lowercase, to match how the native Windows shell works.
6924
6925 2000-09-03 Jason Rumney <jasonr@gnu.org>
6926
6927 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
6928 CVS changes the line-ends when checking in/out on DOS/Windows.
6929
6930 * makefile.nt (emacs): Do not change directory to run temacs, as
6931 the load-path is set relative to current directory.
6932
6933 2000-09-03 Miles Bader <miles@gnu.org>
6934
6935 * xterm.c (x_alloc_lighter_color_for_widget): New function.
6936
6937 2000-09-02 Gerd Moellmann <gerd@gnu.org>
6938
6939 * xdisp.c (redisplay_mode_lines): New function.
6940 (display_mode_lines): Return number of mode lines displayed.
6941 (echo_area_display): Use redisplay_mode_lines to draw garbaged
6942 mode lines. Don't temporarily bind redisplay-dont-pause to t.
6943
6944 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
6945 string.h and strings.h.
6946 (index) [HAVE_INDEX]: Add prototype.
6947
6948 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
6949 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
6950
6951 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
6952 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
6953
6954 2000-09-01 Gerd Moellmann <gerd@gnu.org>
6955
6956 * lread.c (read1): Accept `?' as symbol constituent, for
6957 compatiblity with XEmacs.
6958
6959 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
6960
6961 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
6962 (struct re_pattern_buffer): Remove newline_anchor.
6963 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
6964 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
6965 (re_max_failures, fail_stack): Use size_t rather than unsigned.
6966 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
6967 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
6968 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
6969 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
6970 Get rid of references to newline_anchor.
6971 (regcomp): Allocate and precompute a fastmap.
6972
6973 2000-08-31 Gerd Moellmann <gerd@gnu.org>
6974
6975 * lread.c (openp): GCPRO local variable `filename'.
6976
6977 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
6978
6979 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
6980
6981 * regex.c: Merge some changes from GNU libc. Add prototypes.
6982 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
6983 Use memcmp and memcpy instead of bcopy and bcmp.
6984 (init_syntax_once): Use ISALNUM.
6985 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
6986 (REG_UNSET_VALUE): Remove. Use NULL instead.
6987 (REG_UNSET, re_match_2_internal): Use NULL.
6988 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
6989 New macros.
6990 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
6991 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
6992 (regex_compile): In handle_interval, return an error rather than try to
6993 unfetch the interval if we can't find the closing brace.
6994 Obey the RE_NO_GNU_OPS syntax bit.
6995 (TOLOWER): New macro.
6996 (regcomp): Use it.
6997 (regexec): Allocate regs.start and regs.end as one block.
6998
6999 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7000
7001 * xdisp.c (echo_area_display): Check display_completed instead
7002 of calling detect_input_pending.
7003
7004 * dispnew.c (update_frame): Only set display_completed here; move
7005 the update_begin and update_end calls here from update_frame_1.
7006 (update_frame_1): Don't set display_completed here, don't call
7007 update_begin/update_end.
7008
7009 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7010 instead of store_frame_param.
7011
7012 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7013
7014 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7015 desired window matrix hasn't been displayed, use the current row
7016 instead. Make sure that only those frame rows are updated for
7017 which there exists a corresponding enabled desired row.
7018
7019 2000-08-29 Miles Bader <miles@gnu.org>
7020
7021 * xfaces.c (default_face_vector): New function.
7022 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7023
7024 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7025
7026 * lread.c (openp): Prevent temporary string passed to
7027 Ffile_readable_p from being garbage collected.
7028
7029 2000-08-28 Dave Love <fx@gnu.org>
7030
7031 * keymap.c (store_in_keymap): Add `static' to declaration.
7032
7033 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7034
7035 * emacs.c, callint.c, doc.c, editfns.c
7036 (toplevel) [HAVE_STRING_H]: Include string.h.
7037 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7038 (index): Remove prototypes which might conflict with non-standard
7039 definitions of index/strchr.
7040
7041 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7042 (rindex): Define only if !HAVE_RINDEX.
7043
7044 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7045
7046 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7047
7048 2000-08-28 Miles Bader <miles@gnu.org>
7049
7050 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7051 made inconsistent by a font-related attribute in FROM.
7052 (merge_face_inheritance): Add function comment.
7053
7054 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7055
7056 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7057 the 4th arg (PREV_EVENT) Qt to suppress input method.
7058
7059 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7060
7061 * regex.c: Indent cpp directives and remove parens after `defined'.
7062 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7063 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7064 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7065 (re_compile_pattern): Use size_t for length.
7066 (init_syntax_once): Move to a better place.
7067 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7068 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7069
7070 * syntax.c (back_comment): Detect cases where a comment-starter is
7071 actually inside another comment as in: /* a // b */ c // d \n.
7072 Make it clear that `comstart_pos' is unused for nested comments.
7073
7074 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7075 (KEYMAPP): New macro.
7076 (Fkeymap_parent, Fset_keymap_parent): Use it.
7077 (fix_submap_inheritance): Mark it static.
7078 (define_as_prefix, describe_buffer_bindings, describe_command)
7079 (describe_translation, describe_map): Complete prototypes.
7080
7081 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7082
7083 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7084 to better match the key-lookup behavior.
7085
7086 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7087
7088 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7089 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7090
7091 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7092
7093 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7094 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7095 (xterm.o): Depend on coding.h
7096
7097 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7098
7099 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7100 the corresponding '#endif'.
7101
7102 2000-08-26 Miles Bader <miles@gnu.org>
7103
7104 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7105 * xfaces.c (QCinherit): New variable.
7106 (syms_of_xfaces): Initialize it.
7107 (LFACE_INHERIT): New macro.
7108 (Finternal_get_lisp_face_attribute)
7109 (merge_face_vector_with_property)
7110 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7111 (check_lface_attrs): Allow new types of face height. Check
7112 inherit attribute.
7113 (CYCLE_CHECK): New macro.
7114 (merge_face_inheritance): New function.
7115 (merge_face_vectors): Merge inherited faces too. Add F and
7116 CYCLE_CHECK arguments.
7117 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7118 (lookup_named_face, lookup_derived_face, realize_named_face)
7119 (face_at_string_position, face_at_buffer_position): Supply
7120 new F and CYCLE_CHECK arguments to merge_face_vectors.
7121 (merge_face_heights): New function.
7122 (merge_face_vectors, merge_face_vector_with_property)
7123 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7124 handle relative face heights.
7125 (lface_same_font_attributes_p): Compare heights using EQ.
7126
7127 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7128
7129 * charset.c (char_to_string): Check the character validity.
7130 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7131
7132 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7133
7134 * regex.c (PUSH_FAILURE_COUNT): New macro.
7135 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7136 Handle popping of a register's or a counter's data.
7137 (POP_FAILURE_POINT): Use the new name.
7138 (re_match_2_internal): Push counter data on the stack for succeed_n,
7139 jump_n and set_number_at and remove misleading dead code in succeed_n.
7140
7141 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7142
7143 * xdisp.c (redisplay_internal): If considering all windows on all
7144 frames, update the display for each frame as soon as possible,
7145 instead of first building all desired matrices for all frames, and
7146 then updating them all.
7147 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7148
7149 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7150
7151 * bytecode.c (mark_byte_stack): Add a comment.
7152
7153 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7154 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7155 a graphical frame.
7156
7157 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7158
7159 * minibuf.c (do_completion): Always use compare-string, not
7160 string-equal because the latter doesn't pay attention to
7161 multibyteness of strings.
7162
7163 * process.c (create_process): Don't setup raw-text coding here.
7164 (Fopen_network_stream): Don't set coding->src_multibyte and
7165 coding->dst_multibyte here.
7166 (read_process_output): For process filter, return unibyte string
7167 if default-enable-multibyte-characters is nil.
7168 (send_process): If OBJECT is multibyte text, be sure to encoded it
7169 by the specified coding system for the process. Otherwise, setup
7170 raw-text coding.
7171 (init_process): Don't initialize default-process-coding-system here.
7172
7173 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7174
7175 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7176 <scroll-down-aggressively>: Likewise.
7177
7178 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7179
7180 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7181 zero. Set coding->produced_char correctly.
7182
7183 2000-08-22 Andrew Innes <andrewi@gnu.org>
7184
7185 * makefile.w32-in: New file.
7186
7187 * unexw32.c (unexec): Ignore old_name, and use the actual location
7188 of the current executable instead. Base new_name on this.
7189
7190 * w32proc.c (create_child): Remove reference to security
7191 descriptor, which isn't needed and doesn't compile with mingw32.
7192
7193 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7194 up dllimport attributes.
7195 (x_update_window_end): Update prototype.
7196
7197 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
7198 extern, which screws up dllimport attributes.
7199
7200 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7201 up dllimport attributes.
7202
7203 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
7204 screws up dllimport attributes.
7205
7206 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7207 up dllimport attributes.
7208 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
7209 screws up dllimport attributes.
7210
7211 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7212 up dllimport attributes.
7213
7214 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
7215 screws up dllimport attributes.
7216
7217 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
7218 screws up dllimport attributes.
7219
7220 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7221 up dllimport attributes.
7222
7223 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
7224 unnecessary extern, which screws up dllimport attributes.
7225 (main): Ditto.
7226
7227 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7228 up dllimport attributes.
7229
7230 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
7231 unnecessary extern, which screws up dllimport attributes.
7232
7233 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7234 screws up dllimport attributes.
7235
7236 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7237 up dllimport attributes.
7238
7239 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7240
7241 * w32bdf.c (search_file_line):
7242 (set_bdf_font_info):
7243 (seek_char):
7244 (w32_get_bdf_glyph):
7245 (w32_BDF_to_x_font): Fix compile warnings.
7246
7247 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7248
7249 * w32select.c: Include keyboard.h before frame.h.
7250
7251 * w32fns.c (max): Define macro.
7252 (JOHAB_CHARSET): Define if not known.
7253 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7254 (Fx_show_tip): Synch with X version.
7255
7256 * w32xfns.c: Include keyboard.h before frame.h.
7257
7258 * w32fns.c: Include keyboard.h before frame.h.
7259
7260 * w32term.c: Include keyboard.h before frame.h.
7261
7262 * fontset.c: Include keyboard.h before frame.h.
7263
7264 * w32inevt.c: Include keyboard.h before frame.h.
7265 (MOUSE_MOVED): Define if not known.
7266
7267 * minibuf.c: Include keyboard.h before frame.h.
7268
7269 * keyboard.c: Include keyboard.h before frame.h.
7270
7271 * indent.c: Include keyboard.h before frame.h.
7272
7273 * dispnew.c: Include keyboard.h before frame.h.
7274
7275 * buffer.c: Include keyboard.h before frame.h.
7276
7277 * alloc.c: Include keyboard.h before frame.h.
7278
7279 * print.c: Include keyboard.h before frame.h.
7280
7281 * process.c: Include keyboard.h before frame.h.
7282
7283 * scroll.c: Include keyboard.h before frame.h.
7284
7285 * sysdep.c: Include keyboard.h before frame.h.
7286
7287 * term.c: Include keyboard.h before frame.h.
7288
7289 * window.c: Include keyboard.h before frame.h.
7290
7291 * xdisp.c: Include keyboard.h before frame.h.
7292 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7293
7294 * frame.c: Include keyboard.h before frame.h.
7295
7296 * w32heap.h: Undefine min, max.
7297
7298 * w32gui.h: Undefine min, max.
7299
7300 * unexw32.c: Change PUCHAR to PCHAR.
7301 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7302 (relocate_offset):
7303 (get_section_info):
7304 (copy_executable_and_dump_data): Remove unnecessary static defs.
7305 (copy_executable_and_dump_data): Fix compile warnings.
7306
7307 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7308
7309 * w32console.c (min): Define macro.
7310 (clear_frame, write_glyphs): Fix compile warning.
7311
7312 * w32proc.c (compare_env):
7313 (find_child_console): Fix compile warning.
7314
7315 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7316 sys_errlist instead of _sys_errlist.
7317 (get_emacs_configuration_options): New function.
7318
7319 * s/ms-w32.h (sys_nerr): Provide default definition.
7320 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7321 name with _ prepended.
7322 (NSIG): Define if not known.
7323 (get_emacs_configuration): Provide extern declaration.
7324 (get_emacs_configuration_options): Provide extern declaration.
7325 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7326
7327 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7328 (map_w32_filename):
7329 (read_unc_volume): Fix compile warning.
7330
7331 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7332 definitions from being used.
7333
7334 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7335
7336 * w32.c (unc_volume_file_attributes):
7337 (open_unc_volume): Make arg const.
7338
7339 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7340 (read_input_waiting): Remove excess parameter.
7341
7342 * w32.c (init_environment): Call _access.
7343 (check_windows_init_file): Call _close.
7344 (init_user_info): Call _putenv.
7345 (init_environment): Call _putenv and _strdup.
7346 (init_ntproc): Reset volume info cache on startup.
7347
7348 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7349 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7350 cannot override the CRT malloc.
7351
7352 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7353 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7354
7355 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7356 unless we are linking with a static CRT.
7357 (RVA_TO_PTR): Cast result to unsigned char*.
7358
7359 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7360 (add_volume_info): Use xstrdup.
7361
7362 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7363
7364 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7365 (do_completion, Fminibuffer_complete_word): Use it.
7366 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7367 var so it can take non-boolean values.
7368
7369 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7370
7371 * editfns.c (find_field): Formatting changes.
7372 (toplevel): Some old-style function forward declarations
7373 changed to prototypes, some new protypes added, some functions
7374 made static.
7375
7376 * lisp.h (set_time_zone_rule): Add prototype.
7377 (use_dialog_box): External declaration.
7378
7379 * keyboard.c (gen_help_event): Add parameter SIZE.
7380 (kbd_buffer_events_waiting): Slightly rewritten.
7381 (clear_event): New function.
7382 (kbd_buffer_get_event): Use it, and clear the input_events of
7383 HELP_EVENTs.
7384 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7385 don't fill the newly created array with nils.
7386 (toplevel): Convert some old-style function forward declarations
7387 to prototypes.
7388
7389 * keyboard.h (gen_help_event): Change prototype.
7390
7391 * xterm.c (XTread_socket): Change calls to gen_help_event.
7392
7393 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7394
7395 * eval.c (Fmacroexpand): Doc fix.
7396
7397 2000-08-20 Jason Rumney <jasonr@gnu.org>
7398
7399 * w32term.h (x_display_info_for_display): Remove as this function
7400 does not exist on W32.
7401
7402 * w32term.c (help_echo_window): New variable.
7403 (syms_of_w32term): staticpro it.
7404 (note_mode_line_highlight): Set it.
7405 (XTextExtents16): Removed as there is no equivalent on W32.
7406 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7407 the X way of doing this will not work for W32.
7408 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7409 (x_draw_image_foreground): Avoid drawing outside of the clip area
7410 when image doesn't have a mask.
7411 (note_mouse_highlight): Process overlays in the right order of
7412 priority. Set help_echo_window.
7413 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7414 because that's more visible for large images.
7415
7416 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7417 name to single_keymap_panes.
7418 (w32_menu_show): Set wv->title when dealing with titles.
7419 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7420
7421 2000-08-21 Miles Bader <miles@gnu.org>
7422
7423 * minibuf.c (do_completion): Try again if we rewrite the input
7424 string, but no completion was done, so that any completion message
7425 will be correct.
7426
7427 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7428
7429 * xfaces.c (lface_equal_p): Compare strings differently.
7430 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7431 (realize_tty_face): Use them.
7432 (syms_of_xfaces): Initialize new variables.
7433 (map_tty_color): New function, extracted from realize_tty_face.
7434 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7435 foreground or background color, store the new color name in the
7436 realized face; previous code trying to do this had no effect.
7437 (realize_tty_face): Use map_tty_color.
7438 (Fclear_face_cache): Set face_change_count and ensure thorough
7439 redisplay.
7440
7441 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7442
7443 * undo.c (record_first_change, record_marker_adjustment): Don't
7444 use XBUFFER on last_undo_buffer which might not be a buffer.
7445
7446 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7447
7448 * coding.c (decode_coding_string): Set members consumed,
7449 consumed_char, produced, produced_char of *coding correctly. If
7450 decode_coding doesn't consume any byte, don't try anymore.
7451 (encode_coding_string): Likewise.
7452
7453 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7454
7455 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7456 conditional have void type, for Standard C compilers.
7457
7458 * xdisp.c (redisplay_internal): Compare windows for equality with
7459 EQ, instead of applying XWINDOW to something that might not
7460 be a window.
7461
7462 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7463
7464 * fontset.c (Finternal_char_font): Search only the selected frame
7465 for a window of the current buffer.
7466
7467 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7468
7469 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7470 Lisp_Objects.
7471
7472 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7473 second half of a HELP_EVENT is found at the start of kbd_buffer.
7474
7475 2000-08-18 Miles Bader <miles@gnu.org>
7476
7477 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7478
7479 * editfns.c (save_restriction_save): Rewrite to use markers.
7480 (save_restriction_restore): Rewrite to understand new form of data
7481 saved by save_restriction_save.
7482 (Fsave_restriction): Remove cautionary note in doc-string.
7483
7484 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7485
7486 * fileio.c (build_annotations): Add a comment explaining the
7487 return value of format-annotate-function. Replace a spurious call
7488 to Flength with a CONSP test. Call format-annotate-function with
7489 a fifth arg specifying how many times the function is been called
7490 in a row, to let it choose temporary buffers appropriately.
7491
7492 2000-08-17 Dave Love <fx@gnu.org>
7493
7494 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7495 declare make_temp_name twice.
7496
7497 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7498 (unreadpure): Give it an arg.
7499
7500 * unexalpha.c: Prototype fatal_unexec, mark_x,
7501 update_dynamic_symbols. Declare unexec as void.
7502
7503 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7504 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7505
7506 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7507 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7508
7509 * alloca.c: Use #error.
7510 [POINTER_TYPE]: Use it.
7511
7512 * eval.c (Fdefvar): Doc fix.
7513
7514 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7515 INITIALIZE_INTERVAL.
7516
7517 * buffer.h: Avoid DECLARE_INTERVALS.
7518
7519 * config.in: Add size_t.
7520
7521 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7522
7523 * w16select.c (set_clipboard_data): If there's not enough memory
7524 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7525 expects. In case of other failures, return 3.
7526 (system_error_msg): New error message.
7527 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7528 system_error_msg.
7529
7530 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7531
7532 * term.c (write_glyphs): Also turn off inverse video after turning
7533 off other appearances in case TS_exit_attribute_mode is not equal
7534 to TS_end_standout_mode.
7535 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7536 with the same face.
7537 (turn_off_face): Reset standout_mode only if
7538 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7539 is equal to TS_end_standout_mode.
7540
7541 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7542
7543 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7544 sequence at the end of the source block.
7545
7546 * ccl.c (Fccl_program_p): Docstring modified.
7547 (Fccl_execute): Likewise.
7548 (Fccl_execute_on_string): Likewise.
7549
7550 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7551
7552 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7553
7554 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7555
7556 The following changes are mainly to fix bugs of
7557 encode/decode-coding-string failing if encoding/decoding return
7558 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7559 variable conversion_buffer.
7560
7561 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7562 decrement dst_end to avoid buffer overflow in the later call of
7563 string_as_multibyte
7564
7565 * coding.h (conversion_buffer_size, conversion_buffer)
7566 (get_conversion_buffer): Extern deleted.
7567
7568 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7569 (conversion_buffer, conversion_buffer_size): Variables deleted.
7570 (get_conversion_buffer): Function deleted.
7571 (struct conversion_buffer): New structure.
7572 (MAX_ALLOCA): New macro.
7573 (allocate_conversion_buffer): New macro.
7574 (extend_conversion_buffer, free_conversion_buffer): New functions.
7575 (ccl_coding_driver): Set coding->result.
7576 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7577 this is the last block of source.
7578 (encode_coding): Likewise. Handle the source block as the last
7579 one only when the whole source text is consumed.
7580 (decode_coding_string): Handle the case that the output buffer is
7581 too small to decode the whole source text. Use
7582 allocate_conversion_buffer, extend_conversion_buffer and
7583 free_conversion_buffer, not get_conversion_buffer.
7584 (encode_coding_string): Likewise.
7585 (init_coding): Function deleted.
7586 (init_coding_once): Delete code to initialize conversion_buffer_size.
7587
7588 * emacs.c (main): Don't call init_coding.
7589
7590 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7591
7592 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7593 (insert_glyphs): Likewise.
7594
7595 * w32console.c (write_glyphs): Use a locally declared
7596 conversion_buffer.
7597
7598 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7599
7600 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7601 member of display_info is NULL.
7602
7603 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7604
7605 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7606
7607 * term.c (turn_off_face): Reset standout_mode when resetting
7608 appearances with capability `me'.
7609 (write_glyphs): Switch on inverse video before each face change.
7610
7611 2000-08-14 Dave Love <fx@gnu.org>
7612
7613 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7614 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7615 (lisp_free): Declare and make static.
7616
7617 * window.c: Fix embedded comment.
7618 (syms_of_window): Fix doc string.
7619
7620 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7621
7622 * keymap.c (push_key_description): If C without modifiers is < 32,
7623 make sure to print `C-' before `M-', like in the manual.
7624
7625 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7626
7627 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7628 since they aren't relocated anymore.
7629 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7630
7631 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7632 partially visible line which is smaller than the window's height.
7633
7634 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7635
7636 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7637 the multibyte form of eight-bit-control characters.
7638 (Fccl_execute_on_string): Initialize ccl->multibyte.
7639
7640 * ccl.h (struct ccl_program): New member multibyte.
7641
7642 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7643
7644 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7645
7646 * regex.c (regex_compile) <normal_char>: Pay attention to
7647 multibyteness.
7648 (analyse_first) <exactn>: Setup fastmap correctly for
7649 eight-bit-control characters.
7650
7651 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7652
7653 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7654
7655 * keyboard.c (make_lispy_event): Handle the new event type
7656 multibyte_char_keystroke.
7657
7658 * xterm.c: Include coding.h.
7659 (XTread_socket): Work around a bug of XmbLookupString. If the
7660 input is from XIM, decode it according to the current locale. In
7661 that case, generate multibyte_char_keystroke events.
7662
7663 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7664
7665 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7666 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7667
7668 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7669
7670 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7671 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7672 (move_it_in_display_line_to): Record iterator's ascent and descent
7673 before producing glyphs, and restore them when we know the glyph
7674 doesn't fit on the line.
7675 (move_it_to): Restructured so that it's easier to debug. If
7676 moving to a vpos, and not moving to an x or character position,
7677 stop as soon as the specified vpos is reached; don't move further
7678 into that line because that might change the computed line height.
7679 (try_cursor_movement): New function, extracted from the cursor
7680 movement branch of redisplay_window. If ending on a partially
7681 visible line, don't try to scroll if the cursor line is taller
7682 than the window.
7683 (redisplay_window): Use try_cursor_movement.
7684
7685 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7686 because that function doesn't cope with variable-height lines.
7687
7688 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7689 box cursor because that's better visible for large images.
7690
7691 2000-08-10 Miles Bader <miles@gnu.org>
7692
7693 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7694
7695 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7696
7697 * xdisp.c (Vmessages_buffer_name): New variable.
7698 (message_dolog): Use it.
7699 (syms_of_xdisp): Initialize it.
7700
7701 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7702
7703 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7704 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7705 redundant now that keyboard.h is included.
7706
7707 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7708
7709 * keyboard.c (kbd_buffer_events_waiting): New function.
7710
7711 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7712
7713 * msdos.c: Include keyboard.h.
7714 (XMenuActivate): Empty no_event events from the event buffer. If
7715 no events are left after that, call clear_input_pending.
7716 (mouse_clear_clicks): New function, code moved from mouse_init.
7717 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7718 mouse driver to ``forget'' any past clicks.
7719
7720 * Makefile.in (msdos.o): Depend on keyboard.h.
7721
7722 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7723
7724 * lisp.h (input_pending): External declaration.
7725
7726 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7727
7728 * xdisp.c (echo_area_display): Display thoroughly if input is
7729 pending. Bind redisplay-dont-pause to t during the redisplay.
7730 in case input is pending.
7731
7732 * dispnew.c (Qredisplay_dont_pause): New variable.
7733 (syms_of_display): Initialize and staticpro it.
7734 (update_frame_1): Don't interrupt the display for pending input if
7735 redisplay_dont_pause is set.
7736
7737 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
7738
7739 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7740
7741 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
7742
7743 * callproc.c (Fcall_process): Terminate the unwind-protect around
7744 the post-read-conversion of coding system.
7745
7746 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
7747 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
7748 * buffer.h (overlays_at): Update prototype.
7749 * xdisp.c (next_overlay_change): Update call to overlays_at.
7750 * xfaces.c (face_at_buffer_position): Likewise.
7751 * textprop.c (Fget_char_property): Likewise.
7752 * xterm.c (note_mouse_highlight): Likewise.
7753
7754 * minibuf.c (do_completion): Don't consider a simple change of
7755 case as `completion'.
7756
7757 2000-08-08 Ken Raeburn <raeburn@gnu.org>
7758
7759 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
7760 * undo.c (record_delete): Make sure last_point_position_buffer is
7761 a buffer before comparing pointers.
7762
7763 * coding.h (decode_coding_string): Declare.
7764
7765 * intervals.h (Fprevious_single_char_property_change): Declare.
7766
7767 * textprop.c (Fprevious_single_char_property_change): Don't do
7768 arithmetic directly on lisp objects.
7769
7770 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
7771
7772 * keyboard.h (menu_item_eval_property): Declare.
7773
7774 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
7775 reuse as buffer name, instead of recreating (and discarding) every
7776 time a message is logged.
7777 (with_echo_area_buffer): Make callback arg A2 a lisp object.
7778 (current_message_1, truncate_message_1, set_message_1)
7779 (display_echo_area_1, resize_mini_window_1): Signatures changed.
7780 (current_message, truncate_echo_area, display_echo_area)
7781 (resize_echo_area_axactly): Changed calls.
7782
7783 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
7784 Lisp object.
7785 (Ffind_coding_systems_region_internal): First argument to Fappend
7786 must be an integer, not a Lisp object.
7787
7788 2000-08-08 Kenichi Handa <handa@etl.go.jp>
7789
7790 * charset.c (Fchar_width): Doc fix.
7791
7792 2000-08-08 Gerd Moellmann <gerd@gnu.org>
7793
7794 * charset.c (Fstring_width): Doc fix.
7795
7796 2000-08-07 Gerd Moellmann <gerd@gnu.org>
7797
7798 * xdisp.c (start_display): When starting display on a continuation
7799 line, clear ascent and descent members of the iterator structure;
7800 the height of the continued line does not affect the height of the
7801 continuation line.
7802 (make_cursor_line_fully_visible): Do nothing if cursor is on a
7803 line taller than the window.
7804 (redisplay_window) <forced window start>: Handle case that the
7805 middle of the window is not found in any row.
7806 (dump_glyph_row): Show more information.
7807 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
7808 first text line in a glyph matrix.
7809
7810 * xterm.c (x_draw_image_foreground): Avoid drawing outside
7811 of the clip area when image doesn't have a mask.
7812
7813 * fns.c (sweep_weak_table): Fix survival conditions for
7814 key-or-value and key-and-value weakness.
7815
7816 * .gdbinit (xhashtable): New command.
7817
7818 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
7819 tables out of the list of all weak hash tables.
7820
7821 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
7822 a new buffer is created, make sure echo_area_buffer[] references
7823 the new buffer.
7824
7825 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
7826
7827 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
7828 the doc string.
7829
7830 2000-08-07 Kenichi Handa <handa@etl.go.jp>
7831
7832 * syntax.c (skip_chars): Fix previous change. Make the handling
7833 of unibyte string consistent with that of regex search.
7834
7835 2000-08-05 Gerd Moellmann <gerd@gnu.org>
7836
7837 * xmenu.c (popup_get_selection): Use xfree instead of free.
7838
7839 * fileio.c (Finsert_file_contents): Use xfree instead of free.
7840
7841 * editfns.c (Ftranspose_regions): Use xfree instead of free.
7842
7843 * callproc.c (child_setup): Use xfree instead of free.
7844
7845 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
7846 instead of malloc.
7847 (run_mac_command, closedir): Use `xfree' instead of `free'.
7848
7849 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
7850
7851 * eval.c (error): Use xfree instead of free.
7852
7853 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
7854
7855 * fns.c: Replace `illegal' with `invalid'.
7856 (Fmake_hash_table, make_hash_table): Allow table size of 0.
7857
7858 2000-08-05 Kenichi Handa <handa@etl.go.jp>
7859
7860 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
7861 conversion.
7862
7863 2000-08-04 Noah Friedman <friedman@splode.com>
7864
7865 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
7866 docstring.
7867
7868 2000-08-04 Gerd Moellmann <gerd@gnu.org>
7869
7870 * syntax.c (skip_chars): Fix typo in error message.
7871
7872 2000-08-04 Andreas Schwab <schwab@suse.de>
7873
7874 * m/ia64.h: Moved from s/ia64.h.
7875
7876 2000-08-04 Kenichi Handa <handa@etl.go.jp>
7877
7878 * process.c (read_process_output): Big simplification. Handle
7879 composition and post-read-conversion of coding system correctly.
7880 (send_process): Handle composition correctly.
7881
7882 * callproc.c (Fcall_process): Handle post-read-conversion of
7883 coding system if any.
7884
7885 * coding.c (decode_coding_iso2022): More strict check for handling
7886 single shifting.
7887 (coding_restore_composition): Pay attention to the case that
7888 cmp_data is not set properly (because of invalid code in the
7889 source text).
7890 (run_pre_post_conversion_on_str): Include text properties in the
7891 resulting string.
7892 (decode_coding_string): Set members of coding correctly.
7893
7894 2000-08-03 Gerd Moellmann <gerd@gnu.org>
7895
7896 * s/ia64.h: New file.
7897
7898 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
7899 Use NULL instead of 0 at the end of variable argument list of
7900 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
7901 sizeof (int) < sizeof (void *).
7902
7903 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
7904 of variable argument lists of XtVaGetValues and XtVaSetValues.
7905
7906 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
7907 variable argument lists of XtVaGetValues and XtVaSetValues.
7908
7909 2000-08-02 Gerd Moellmann <gerd@gnu.org>
7910
7911 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
7912 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
7913
7914 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
7915 prototype.
7916
7917 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
7918 in call to Fsingle_key_description.
7919
7920 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
7921 Callers changed.
7922
7923 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
7924
7925 * window.c (display_buffer_reuse_frames): New variable.
7926 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
7927 frames displaying BUFFER.
7928 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
7929
7930 2000-08-01 Miles Bader <miles@gnu.org>
7931
7932 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
7933 when to constrain NEW_POS (they were pretty screwed up before).
7934
7935 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
7936
7937 * msdos.c (run_msdos_command): Save and restore the master
7938 environment, for the case that child_setup signals an error.
7939 When mirroring slashes in DOS shell commands, don't fail when
7940 argv[2] has embedded blanks.
7941 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
7942 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
7943 (dos_ttraw): Call mouse_setup_buttons.
7944
7945 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
7946 using alloca; free it after run_msdos_command returns.
7947
7948 2000-07-27 Dave Love <fx@gnu.org>
7949
7950 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
7951 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
7952
7953 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
7954
7955 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
7956
7957 * editfns.c (lisp_time_argument): Fix last change.
7958
7959 2000-07-27 Gerd Moellmann <gerd@gnu.org>
7960
7961 * fns.c (Fdelete): Make it work on vectors and strings in addition
7962 to lists.
7963
7964 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
7965 (syms_of_fns): Initialize new variables.
7966 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
7967 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
7968 weakness, with t meaning the same as `key-and-value'.
7969
7970 2000-07-27 Kenichi Handa <handa@etl.go.jp>
7971
7972 * coding.h (struct coding_system): Member safe_charset deleted.
7973
7974 * coding.c (Qsafe_charsets): This variable deleted.
7975 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
7976 New variables.
7977 (coding_safe_chars): New function.
7978 (CODING_SAFE_CHAR_P): New macro.
7979 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
7980 checking safe_charsets member of the coding system. Caller changed.
7981 (detect_coding_iso2022): New local variable safe_chars.
7982 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
7983 safe_charsets member of the coding system.
7984 (decode_coding_iso2022): New local variable safe_chars.
7985 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
7986 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
7987 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
7988 (ENCODE_UNSAFE_CHARACTER): New macro.
7989 (encode_coding_iso2022): New local variable safe_chars. Check
7990 unsafe chars.
7991 (setup_coding_system): Delete the code to initialize
7992 coding->safe_charses
7993 (intersection, find_safe_codings): New functions.
7994 (Ffind_coding_systems_region_internal): New function.
7995 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
7996 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
7997 variable and initialize it.
7998
7999 * fns.c (char_table_ref_and_index): New function.
8000
8001 * lisp.h (char_table_ref_and_index): Add prototype.
8002
8003 2000-07-26 Sam Steingold <sds@gnu.org>
8004
8005 * editfns.c (lisp_time_argument): Added third argument `usec'.
8006 (Ffloat_time): New built-in Lisp function.
8007
8008 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8009
8010 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8011 for the character code.
8012
8013 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8014 GNU/Linux.
8015
8016 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8017 if called for a popup menu.
8018 (xmenu_show): Store help string in widget values.
8019
8020 2000-07-26 Dave Love <fx@gnu.org>
8021
8022 * syswait.h: Move some definitions.
8023 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8024 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8025 perspicuous definitions.
8026 (WTERMSIG): Fix bit pattern used.
8027
8028 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8029
8030 * print.c (print_object): If vector printing is truncated, print
8031 "..." to indicate it as well as the case of list printing.
8032
8033 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8034
8035 * xdisp.c (next_element_from_display_vector): Improve comments.
8036
8037 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8038 for the character code, and the rest for the face id as in 20.x.
8039 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8040
8041 * window.c (window_display_table): Cleaned up.
8042
8043 * syntax.c (Fforward_word): Add last arg nil in call of
8044 Fconstrain_to_field.
8045
8046 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8047
8048 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8049 identical but for the letter-case, don't call
8050 barf_or_query_if_file_exists.
8051
8052 2000-07-25 Miles Bader <miles@gnu.org>
8053
8054 * editfns.c (find_field): Honor special `boundary' fields.
8055 (Qboundary): New variables.
8056 (syms_of_editfns): Initialize Qboundary.
8057 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8058 Use scan_buffer instead of find_before_next_newline, because it
8059 allows us to detect the boundary case where there's a newline at
8060 the search limit.
8061 * lisp.h (Fconstrain_to_field): Update external declaration.
8062
8063 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8064
8065 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8066 if that is nil.
8067
8068 2000-07-24 Dave Love <fx@gnu.org>
8069
8070 * s/sunos4-0.h, s/sol2.h:
8071 (LIBS_TERMCAP): Move from m/sparc.h.
8072
8073 * m/sparc.h (TERMINFO): Moved to system files (probably only
8074 relevant for sunos4 judging by its vintage).
8075 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8076 __arch64__.
8077
8078 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8079
8080 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8081 name to single_keymap_panes.
8082
8083 2000-07-24 Andreas Schwab <schwab@suse.de>
8084
8085 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8086
8087 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8088
8089 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8090 parameters instead of using int parameters. Expect FN to accept
8091 EMACS_INT parameters.
8092 (display_echo_area, resize_echo_area_axactly, current_message)
8093 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8094 with new argument list.
8095 (resize_mini_window_1): New callback function.
8096 (current_message_1, truncate_message_1, set_message_1): Change
8097 parameter lists to the new format expected by with_echo_area_buffer.
8098
8099 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8100
8101 * fontset.c (fontset_ref): Remove INLINE declaration.
8102 (fontset_ref_via_base): Likewise.
8103 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8104 to downcase.
8105
8106 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8107
8108 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8109 correct order of priority. If help echo was found in an overlay,
8110 use that overlay as the object in which the help echo was found.
8111
8112 2000-07-22 Miles Bader <miles@gnu.org>
8113
8114 * textprop.c (Fprevious_single_char_property_change): The initial
8115 property value should be from the position preceding POSITION, not
8116 following it.
8117
8118 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8119
8120 * coding.c (syms_of_coding): Doc fix for
8121 inhibit-iso-escape-detection.
8122
8123 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8124
8125 * xterm.c (note_mouse_highlight): Process overlays in the right
8126 order of priority.
8127
8128 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8129
8130 * xterm.c (note_mouse_highlight): If help-echo was found in an
8131 overlay, use that overlay as the object in which the help was found.
8132
8133 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8134
8135 * window.c (foreach_window): Instead of a fake variable argument
8136 list, take one USER_DATA argument.
8137 (foreach_window_1): Likewise, and call callback functions with two
8138 args, the window and USER_DATA.
8139 (struct check_window_data): New struct.
8140 (check_window_containing): Use it.
8141 (window_from_coordinates): Set up a struct check_window_data for
8142 foreach_window.
8143 (add_window_to_list, freeze_window_start): Change parameters
8144 according to new calling convention.
8145
8146 * window.h (foreach_window): Change prototype.
8147
8148 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8149
8150 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8151
8152 * xmenu.c (menu_help_callback): Call show_help_echo with
8153 additional arguments OBJECT and POS.
8154
8155 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8156
8157 * data.c (Faset): Allow storing any multibyte character in a
8158 string. Convert unibyte string to multibyte if necessary.
8159
8160 * xfns.c (x_encode_text): New function.
8161 (x_set_name): Use x_encode_text.
8162 (x_set_title): Likewise.
8163
8164 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8165
8166 * xterm.h (x_encode_text): Add prototype.
8167
8168 2000-07-20 Dave Love <fx@gnu.org>
8169
8170 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8171 xfree, not free.
8172
8173 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8174
8175 * msdos.c (help_echo_window): New variable.
8176 (syms_of_msdos): Initialize and staticpro it.
8177 (IT_note_mode_line_highlight): Set help_echo_window.
8178 (IT_note_mouse_highlight): Ditto.
8179 (dos_rawgetc): Store help_echo_window in the second event produced
8180 for HELP_EVENTs.
8181
8182 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
8183 Record the object that generated the help echo and the position of
8184 that object in help_echo_object and help_echo_pos. Record that
8185 some glyphs in a row are displayed in mouse-face.
8186 (IT_update_begin): Don't clear mouse highlight unless one of the
8187 enabled glyph rows is marked as being displayed in mouse-face.
8188 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
8189 and position recorded in help_echo_object and help_echo_pos to the
8190 event queue.
8191 (IT_menu_display): Accept a new argument PN: the pane number of
8192 the current menu pane. Record the pane number and the item
8193 number of the item which has associated help string.
8194 (XMenuActivate): Update the prototype for help_callback in
8195 function declaration. Call IT_menu_display with the current menu
8196 pane number as an additional argument. Call help_callback with
8197 two additional arguments: the pane number and the item number of
8198 the menu item associated with the help text.
8199 (help_echo_object, help_echo_pos): New variables.
8200 (syms_of_msdos): Initialize them and staticpro help_echo_object.
8201
8202 * msdos.h (XMenuActivate): Update prototype.
8203
8204 2000-07-19 Gerd Moellmann <gerd@gnu.org>
8205
8206 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
8207 Add some more prototypes.
8208
8209 * xterm.c, xterm.h: Add some more prototypes.
8210
8211 * lisp.h (Fnext_single_char_property_change): Add prototype.
8212
8213 * dispnew.c (direct_output_for_insert): Remove confusing
8214 outer local variable mouse_face_overwritten_p.
8215 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
8216
8217 * alloc.c (allocate_string_data): Don't copy old string contents.
8218
8219 2000-07-19 Kenichi Handa <handa@etl.go.jp>
8220
8221 * coding.c (code_convert_region): Delete text properties before
8222 shrinking the conversion region.
8223
8224 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8225
8226 * dispnew.c (update_text_area): Write the whole row if it
8227 has mouse-face in it.
8228
8229 * xfaces.c (face-alternative-font-family-alist): Remove
8230 DEFVAR_LISP; staticpro instead.
8231
8232 * xmenu.c (menu_help_callback): Call show_help_echo with
8233 new arguments.
8234
8235 * keyboard.c (show_help_echo): Add parameter WINDOW.
8236 (read_char): Call show_help_echo with window extracted from Lisp
8237 help event.
8238 (gen_help_event): Add parameter WINDOW.
8239
8240 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8241
8242 * xterm.c (help_echo_window): New variable.
8243 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8244 (XTread_socket): Pass help_echo_window to gen_help_event.
8245 (syms_of_xterm): Initialize and staticpro help_echo_window.
8246
8247 2000-07-18 Dave Love <fx@gnu.org>
8248
8249 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8250
8251 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8252
8253 * alloc.c (allocate_string_data): If string had already data
8254 assigned, copy old contents to new string data.
8255
8256 * coding.c (syms_of_coding): Fix typo in spelling of variable
8257 `inhibit-iso-escape-detection'.
8258
8259 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8260
8261 * Makefile.in: Add dependencies on dispextern.h.
8262 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8263 `free'; both can conflict with system header files.
8264
8265 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8266
8267 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8268 undefined.
8269
8270 2000-07-18 Dave Love <fx@gnu.org>
8271
8272 * window.c (Fwindow_list): Declare arg `window'.
8273
8274 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8275
8276 * coding.c (setup_coding_system): Don't override the explicitly
8277 specified designations.
8278
8279 2000-07-15 Miles Bader <miles@gnu.org>
8280
8281 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8282 from `text_property_eq' and `text_property_stickiness', respectively.
8283 (find_field, Fconstrain_to_field, char_property_eq)
8284 (char_property_stickiness): Changed to call char-property functions
8285 instead of text-property-only ones.
8286
8287 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8288 `next_single_char_property_change'). Do more error checking, and
8289 cleanup limit behavior.
8290 (Fprevious_single_char_property_change): New function.
8291 (syms_of_textprop): Initialize new subrs.
8292
8293 * xdisp.c (display_prop_end, invisible_text_between_p):
8294 Call Fnext_single_char_property_change instead of
8295 next_single_char_property_change.
8296
8297 2000-07-15 Jason Rumney <jasonr@gnu.org>
8298
8299 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8300 after menu is finished with.
8301 (add_menu_item): Only consider wv->title as a menu title.
8302 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8303
8304 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8305 null title.
8306 (FONT_REGEXP): Remove unused macro, and its sub-components.
8307 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8308
8309 * w32term.c (help_echo_object, help_echo_pos): New variables.
8310 (note_mode_line_highlight): Store additional information about the
8311 help-echo in help_echo_object and help_echo_pos. Check both
8312 `local-map' and `keymap' properties for changing the cursor
8313 (note_mouse_highlight): Store additional information about the
8314 help-echo in help_echo_object and help_echo_pos.
8315 (note_tool_bar_highlight): Set help_echo_object to nil and
8316 help_echo_pos to -1.
8317 (w32_read_socket): Use gen_help_event instead of filling
8318 input_events manually.
8319 (syms_of_w32term): Staticpro help_echo_object.
8320 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8321 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8322 (x_clear_mouse_face): New function.
8323 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8324 (x_update_window_begin): No need to turn off the mouse
8325 highlight here.
8326 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8327 depending on whether they contain glyphs highlighted in mouse-face.
8328 (x_fill_stretch_glyph_string): Consume runs of stretch
8329 glyphs instead of a single one.
8330 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8331 with new argument list.
8332 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8333 (x_append_glyph, x_append_composite_glyph)
8334 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8335 changes in struct glyph starting 1999-12-27. See comments for
8336 xterm.c on 2000-07-05.
8337
8338 2000-07-14 Sam Steingold <sds@gnu.org>
8339
8340 * xfaces.c (realize_x_face): Fix the last patch:
8341 check `default_face' before dereferencing.
8342
8343 2000-07-14 Dave Love <fx@gnu.org>
8344
8345 * syntax.c (back_comment): Add null default in switch (for pcc).
8346
8347 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8348
8349 * xfaces.c (realize_x_face): Make fontset using the base of the
8350 default_face's fontset, not using the default fontset.
8351
8352 * coding.c (inhibit_iso_escape_detection): New variable.
8353 (syms_of_coding): Make it a Lisp variable.
8354 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8355 nonzero, ignore ISO2022's escape sequence.
8356
8357 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8358
8359 * alloca.c (malloc) [emacs]: Define as xmalloc.
8360
8361 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8362 use that instead of the mouse position. Add parameters DX and DY.
8363
8364 * dispextern.h (Fx_show_tip): Adjust number of parameters
8365 in prototype.
8366
8367 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8368 if HELP is a function, call it with OBJECT and POS as parameters
8369 to get the help to display.
8370 (gen_help_event, kbd_buffer_store_help_event): New functions.
8371 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8372 (read_char): Call show_help_echo with new parameters.
8373
8374 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8375 Add prototypes.
8376
8377 * xterm.c (help_echo_object, help_echo_pos): New variables.
8378 (note_mode_line_highlight): Store additional information about the
8379 help-echo in help_echo_object and help_echo_pos. Check both
8380 `local-map' and `keymap' properties for changing the cursor
8381 (note_mouse_highlight): Store additional information about the
8382 help-echo in help_echo_object and help_echo_pos.
8383 (note_tool_bar_highlight): Set help_echo_object to nil and
8384 help_echo_pos to -1.
8385 (XTread_socket): Use gen_help_event instead of filling
8386 input_events manually.
8387 (syms_of_xterm): Staticpro help_echo_object.
8388
8389 * xmenu.c (menu_highlight_callback): Use
8390 kbd_buffer_store_help_event instead of setting up and input_event
8391 structure manually.
8392
8393 * xdisp.c (eval_form): GCPRO argument sexpr.
8394 (call_function): New function.
8395 (handle_single_display_prop): Use call_function and FUNCTIONP
8396 instead of checking whether if font_height is a symbol and
8397 using eval_form.
8398
8399 * eval.c (internal_condition_case_2): New function.
8400
8401 * lisp.h (FUNCTIONP): New macro.
8402 (internal_condition_case_2, call_function): Add prototypes.
8403
8404 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8405 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8406 Always set `arg' member of input_events.
8407 (construct_menu_click): Unused function removed.
8408
8409 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8410
8411 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8412 (construct_drag_n_drop, x_scroll_bar_handle_click)
8413 (w32_read_socket): Always set `arg' member of input_events.
8414
8415 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8416
8417 * lisp.h (eval_form): Add prototype.
8418
8419 * xdisp.c (eval_form): Make it externally visible.
8420
8421 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8422
8423 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8424 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8425 consing. For prefix events, store the frame in the `arg' slot of
8426 the event, otherwise store the key there.
8427 (XTread_socket): Instead of consing, use the frame_or_window slot
8428 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8429
8430 * xmenu.c (menu_highlight_callback): Store help string in the
8431 `arg' member of the input event; don't cons.
8432 (menubar_selection_callback): Use the `arg' slot of input events
8433 to queue additional information, instead of consing.
8434
8435 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8436
8437 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8438 TOOL_BAR_EVENTs.
8439 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8440
8441 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8442 input events to queue additional information, instead of consing.
8443
8444 * keyboard.c (kbd_buffer_gcpro): Renamed from
8445 kbd_buffer_frame_or_window. Now used for all Lisp objects
8446 referenced from the input queue.
8447 (kbd_buffer_store_event): Always use structure assignment for
8448 copying input events. Record all Lisp objects referenced from
8449 events in kbd_buffer_gcpro.
8450 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8451 differently from input events. Test for prefix menu_bar_events
8452 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8453 event in kbd_buffer_gcpro to nil.
8454 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8455 frame_or_window is equal to its arg member as prefix events.
8456 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8457 used by an input event to nil.
8458 (init_keyboard): Use two times the size of the input queue
8459 for kbd_buffer_gcpro.
8460 (syms_of_keyboard): Likewise.
8461
8462 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8463 Use USER_SIGNAL_EVENT.
8464
8465 * termhooks.h (struct input_event): Add member `arg'.
8466 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8467 (USER_SIGNAL_EVENT): Renamed from user_signal.
8468
8469 * xfaces.c (ASET): Remove definition.
8470
8471 * lisp.h (AREF, ASET, ASIZE): New macros.
8472
8473 * fontset.c (AREF, ASIZE): Remove definitions.
8474
8475 * fns.c (AREF): Remove definition.
8476
8477 * composite.c (AREF): Remove definition.
8478
8479 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8480
8481 * dispnew.c (redraw_overlapped_rows): Add missing local.
8482 (scrolling_window): Remove debug code.
8483
8484 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8485 Before scrolling, turn off a mouse-highlight in the window
8486 being scrolled.
8487
8488 * xterm.c (x_update_window_end): Add parameter
8489 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8490 redisplay in XTframe_up_to_date.
8491 (x_clear_mouse_face): New function.
8492 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8493
8494 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8495 current glyph row.
8496 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8497 it when any row is written to that contains glyphs highlighted in
8498 mouse-face.
8499 (update_window): Call the window update end hook with new
8500 parameter MOUSE_FACE_OVERWRITTEN_P.
8501 (direct_output_for_insert): Give up if row contains mouse-face.
8502
8503 * dispextern.h (struct redisplay_interface): Add parameter
8504 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8505 (clear_mouse_face): New function pointer member.
8506
8507 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8508
8509 * syntax.c (back_comment): Use one switch rather than a few `if's.
8510 Obey open_paren_in_column_0_is_defun_start.
8511 When reverting to the `slow' method, try to nicely handle the case
8512 of nested comments by checking that the comment-starter we found
8513 does indeed match the comment-ender.
8514 (scan_sexps_forward, scan_sexps_forward):
8515 Ignore excessive opening parenthesis rather than throwing an error.
8516
8517 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8518
8519 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8520 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8521
8522 * dispnew.c (direct_output_forward_char): Give up if currently
8523 displaying a message instead of the minibuffer contents.
8524
8525 * xterm.c (x_update_window_begin): No need to turn off the mouse
8526 highlight here.
8527 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8528 depending on whether they contain glyphs highlighted in mouse-face.
8529
8530 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8531 compare the mouse_face_p flags of both rows.
8532
8533 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8534
8535 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8536
8537 * keyboard.c (show_help_echo): Accept additional parameter
8538 ok_to_overwrite_keystroke_echo.
8539 (read_char): Call show_help_echo with a zero
8540 ok_to_overwrite_keystroke_echo argument.
8541 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8542 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8543 ok_to_overwrite_keystroke_echo argument.
8544 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8545 non-zero ok_to_overwrite_keystroke_echo argument.
8546
8547 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8548
8549 * xdisp.c (try_window_id): If changes are all below what is
8550 displayed in the window, and point is in the window, we still
8551 might have to find point on the display.
8552
8553 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8554 glyphs instead of a single one.
8555 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8556 with new argument list.
8557 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8558
8559 * keymap.c (get_keymap_1): Add comment that this function can GC.
8560 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8561 comment that functions can GC.
8562 (Fset_keymap_parent): GCPRO arg KEYMAP.
8563
8564 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8565
8566 * msdos.c (XMenuActivate): After exiting the menu, restore the
8567 echo area message and erase it.
8568
8569 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8570
8571 * fontset.c (Ffontset_info): Make the return value more compatible
8572 with that of Emacs 20.
8573
8574 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8575
8576 * eval.c (Fsignal): Handle case that backtrace_list is null.
8577
8578 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8579
8580 * ccl.c (Fccl_execute): Typo fixed.
8581
8582 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8583
8584 * window.c (window_loop): Add missing gcpro1 local variable.
8585
8586 * window.c (Fwindow_list): Reverse list at the end.
8587 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8588 means allow windows on OWINDOW's frame, only.
8589 (window_loop): Simplified; use Fwindow_list.
8590
8591 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8592
8593 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8594
8595 * xterm.c (XTread_socket): Increment handling_signal at the start,
8596 decrement it at the end.
8597
8598 * eval.c (handling_signal): New variable.
8599 (Fsignal): Abort if handling_signal is non-zero.
8600
8601 * lisp.h (handling_signal): External declaration.
8602
8603 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8604
8605 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8606
8607 Sound support for NetBSD through "Linux emulation" support:
8608 * config.in (HAVE_SOUNDCARD_H): Undef.
8609 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8610 * Makefile.in (LIBSOUND): New variable.
8611 (LIBES): Include it.
8612 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8613 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8614 (vox_open): Use DEFAULT_SOUND_DEVICE.
8615 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8616
8617 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8618
8619 * print.c (print_error_message): If Vsignaling_function is set,
8620 show it in *Messages*.
8621
8622 * lisp.h (Vsignaling_function): External declaration.
8623
8624 * eval.c (Vsignaling_function): New variable.
8625 (Fsignal): Compute it.
8626 (syms_of_eval): Staticpro it.
8627
8628 2000-07-05 Dave Love <fx@gnu.org>
8629
8630 * syswait.h: Use the autoconf recommended approach. Old code
8631 #if'd out in case we need to revert.
8632
8633 * config.in (HAVE_SYS_WAIT_H): Added.
8634
8635 2000-07-05 Andrew Innes <andrewi@gnu.org>
8636
8637 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8638 when non-NULL instead of __morecore, to take account of buffer
8639 memory. This also solves a problem with spurious memory warnings
8640 on Windows.
8641
8642 * ralloc.c: Make real_morecore non-static.
8643
8644 * eval.c (internal_condition_case): Comment out abort if
8645 interrupt_input_blocked is not zero.
8646
8647 * makefile.nt: Add support for `bootstrap' and related targets.
8648 Include minimal debug info in emacs.exe in release build.
8649 Remove all dependencies on lisp.h, and fixup some others.
8650
8651 * w32.c (init_environment): Install code from 20.7 for providing
8652 default values for environment variables, based on the
8653 executable's own location.
8654 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8655 (sys_socket): Install socket inheritance bug fix from 20.7.
8656
8657 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8658 here via blockinput.h).
8659
8660 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8661
8662 * w32menu.c (w32_menu_display_help):
8663 * xmenu.c (menu_help_callback): Use show_help_echo.
8664
8665 * keyboard.h (show_help_echo): Declare.
8666
8667 * keyboard.c (show_help_echo): New function, extracted from read_char.
8668 Feval its `msg' argument if it's a cons cell.
8669 (read_char): Use it.
8670 (follow_key): Pass `autoload' to get_keyelt.
8671
8672 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8673 (note_tool_bar_highlight, XTread_socket):
8674 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8675 (dos_rawgetc):
8676 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8677 (note_tool_bar_highlight, w32_read_socket):
8678 Do not gratuitously ignore non-string `help-echo' properties.
8679
8680 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8681
8682 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8683
8684 * window.c (delete_all_subwindows): Reset Vwindow_list.
8685
8686 * xterm.c (x_append_glyph, x_append_composite_glyph)
8687 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8688 changes in struct glyph starting 1999-12-27. Some bit-fields of
8689 struct glyph were not set, which made glyphs unequal when compared
8690 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8691 effects were the result. This also depended on the contents of
8692 memory returned by xmalloc. If flickering happens again, activate
8693 the code in clear_glyph_row that's in #if 0. If the flickering is
8694 gone with that, chances are that it is caused by something similar.
8695
8696 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8697
8698 * dispextern.h: Add some comments.
8699
8700 * window.c (add_window_to_list): Add parameter LIST.
8701 (window_list): Order list so that, for each frame, windows are
8702 in canonical order, and so that frames appear in the list in
8703 the order given by Vframe_list.
8704 (next_window): Reverse the handling of NEXT_P.
8705
8706 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8707
8708 * window.c (Vwindow_list): New variable.
8709 (make_window, delete_window): Set Vwindow_list to nil.
8710 (check_window_containing): New function.
8711 (window_from_coordinates): Rewritten.
8712 (add_window_to_list, window_list, candidate_window_p)
8713 (decode_next_window_args, next_window): New functions.
8714 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8715 (Fwindow_list): New function.
8716 (Fother_window): Cleaned up.
8717 (foreach_window): Add a longer "variable argument list". Let
8718 callback function return 0 to indicate that cycling over windows
8719 should stop.
8720 (foreach_window_1): Likewise.
8721 (freeze_window_start): Return int.
8722 (init_window): New function.
8723 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8724
8725 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8726 input_event with bzero.
8727 (main): Call init_window.
8728
8729 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8730 a menu filter.
8731
8732 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8733
8734 * composite.h (make_composition_value_copy): Extern it.
8735
8736 * composite.c (make_composition_value_copy): New function.
8737
8738 * editfns.c (Fformat): While copying text properties, make each
8739 composition property value a copy.
8740
8741 * fns.c (concat): While copying text properties, make each
8742 composition property value a copy.
8743
8744 2000-07-03 Gerd Moellmann <gerd@gnu.org>
8745
8746 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
8747
8748 * fns.c (sweep_weak_table): Mark only objects that are not
8749 marked already.
8750
8751 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
8752 include those frames as candidates which have their focus
8753 redirected to the minibuffer frame.
8754
8755 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
8756
8757 * fns.c (Fputhash): Return `value' rather than nil.
8758
8759 2000-06-30 Gerd Moellmann <gerd@gnu.org>
8760
8761 * frame.c (next_frame): Don't check focus redirection in case
8762 MINIBUF is a window. Doing so excludes frames using MINIBUF
8763 unless their focus is redirected, which contradicts the
8764 specification of next-frame, and leads to infinite loops in
8765 certain situations when cycling through windows with next-window.
8766
8767 2000-06-30 Kenichi Handa <handa@etl.go.jp>
8768
8769 * coding.c (code_convert_region): Even if the length of text is
8770 zero, try to convert it if coding->type is coding_type_ccl.
8771 (decode_coding_string, encode_coding_string): Likewise.
8772
8773 2000-06-28 Gerd Moellmann <gerd@gnu.org>
8774
8775 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
8776 the display if windows_or_buffers_changed.
8777
8778 * dispnew.c (struct row_entry): New structure.
8779 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
8780 (row_table_size, old_lines, new_lines, old_lines_size)
8781 (new_lines_size, run_pool, runs_size, runs): New variables.
8782 (add_row_entry): New function.
8783 (scrolling_window): Use data structures allocated with xmalloc and
8784 held in global variables, instead of allocating them with alloca and
8785 holding them in local variables. Use a larger hash table whose
8786 size depends on glyph matrix sizes. Don't use bzero to clear the
8787 hash table; instead, clear used slots only.
8788
8789 * fns.c (next_almost_prime): Make it externally visible.
8790
8791 * lisp.h (next_almost_prime): Add prototype.
8792
8793 * s/isc4-0.h (sigunblock): Define.
8794
8795 * s/sco5.h (sigunblock): Define.
8796
8797 2000-06-27 Dave Love <fx@gnu.org>
8798
8799 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
8800 (moved to osf5-0.h).
8801 [!NOT_C_CODE]: Protect string.h stuff.
8802
8803 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
8804 (sys_siglist, NSIG): Definitions moved here from osf1.h.
8805
8806 2000-06-27 Gerd Moellmann <gerd@gnu.org>
8807
8808 * xdisp.c (resize_mini_window): Subtract the extra line spacing
8809 below the last line from the needed window height.
8810
8811 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
8812
8813 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
8814 (Fwidget_get): Use it.
8815 (syms_of_fns): Defsubr it.
8816
8817 2000-06-26 Gerd Moellmann <gerd@gnu.org>
8818
8819 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
8820 display info for XIM.
8821 (xim_open_dpy): Likewise.
8822 (xim_close_dpy): Don't free the display info's XIM.
8823
8824 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
8825
8826 * config.in (USE_XIM): New define.
8827
8828 * keymap.c (get_keyelt): For menu-items containing a `:filter
8829 FILTER', apply FILTER to the menu-item's definition to get the
8830 real definition to use.
8831
8832 * lisp.h (QCfilter): External declaration.
8833
8834 * xfns.c (Fimage_size): New function.
8835 (syms_of_xfns): Defsubr it.
8836
8837 2000-06-26 Andreas Schwab <schwab@suse.de>
8838
8839 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
8840 Fstring_as_unibyte.
8841
8842 2000-06-25 Dave Love <fx@gnu.org>
8843
8844 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
8845
8846 * Makefile.in (blockinput.h): Depend on atimer.h.
8847 (atimer.h): Depend on systime.h.
8848
8849 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
8850
8851 * atimer.h: Protect against multiple inclusion. Include systime.h.
8852
8853 * lisp.h (swap_in_global_binding): Declare.
8854
8855 2000-06-24 Ken Raeburn <raeburn@gnu.org>
8856
8857 * process.c (Fopen_network_stream): Turn off atimers for duration
8858 of call to connect. (Patch from Gerd.)
8859
8860 2000-06-23 Dave Love <fx@gnu.org>
8861
8862 * ralloc.c: Maybe include unistd.h
8863
8864 * emacs.c (setgrp): Undefine before defining.
8865 (malloc_warning, set_time_zone_rule, index): Prototype.
8866
8867 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
8868 HAVE_STRUCT_TIMEZONE.
8869
8870 * s/osf1.h: Move string.h hack here from alpha.h and make it
8871 conditional.
8872 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
8873 _XOPEN_SOURCE.
8874 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
8875 (SOCKLEN_TYPE): Don't define.
8876
8877 * m/alpha.h: Remove string.h hack.
8878
8879 * s/osf5-0.h: New file.
8880
8881 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
8882 include time.h, done by systime.h.
8883 [__FreeBSD__]: Remove redundant includes.
8884
8885 * callproc.c (setpgrp): Undefine before defining.
8886 (delete_temp_file): Return Qnil to avoid warning.
8887
8888 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
8889
8890 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
8891 HAVE_X_WINDOWS.
8892
8893 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
8894
8895 * composite.h (compose_text): Declare.
8896
8897 * xterm.c: Don't include sys/types.h unconditionally. Don't
8898 protect its inclusion with !USG (following xmenu.c).
8899
8900 2000-06-23 Gerd Moellmann <gerd@gnu.org>
8901
8902 * xfns.c (x_create_tip_frame): Initialize frame's colors like
8903 in x_create_frame.
8904
8905 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
8906
8907 * coding.c (decode_eol_post_ccl): Special handling for undecided
8908 and inconsistent EOL types.
8909
8910 2000-06-22 Gerd Moellmann <gerd@gnu.org>
8911
8912 * xrdb.c (x_load_resources): Add default resource for scroll bar's
8913 trough color and main window's background color.
8914
8915 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
8916
8917 * xterm.h (Xt_app_con): External declaration.
8918
8919 * widget.c (EmacsFrameRealize): Fix typo.
8920
8921 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
8922
8923 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
8924 (handle_invisible_prop): Record the start of invisible text in
8925 it->add_overlay_start.
8926 (struct overlay_entry): Add member `overlay'.
8927 (handle_overlay_change): Simplify.
8928 (next_overlay_string): After having processed overlay strings at the
8929 end of the buffer, record that fact in
8930 it->overlay_strings_at_end_processed_p.
8931 (compare_overlay_entries): If before- and after-strings come
8932 from the same overlay, let before-strings come first.
8933 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
8934 (load_overlay_strings): Take it->add_overlay_start into account
8935 when adding overlay strings.
8936
8937 * dispextern.h (struct it): Add member add_overlay_start.
8938
8939 2000-06-22 Dave Love <fx@gnu.org>
8940
8941 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
8942
8943 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
8944
8945 2000-06-22 Kenichi Handa <handa@etl.go.jp>
8946
8947 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
8948 is greater than 0.
8949
8950 2000-06-21 Dave Love <fx@gnu.org>
8951
8952 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
8953
8954 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
8955
8956 * syntax.c (back_comment): Simplify string-parity counting (with
8957 the added benefit of handling multiple string-styles as long as
8958 they are not intertwined).
8959 Jump to the slow code as soon as a comment starter is found in
8960 a "string_lossage" position. Fixes the case: " /* " /* " */.
8961
8962 2000-06-21 Dave Love <fx@gnu.org>
8963
8964 * Makefile.in: Use GETLOADAVG_LIBS.
8965
8966 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
8967 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
8968
8969 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8970
8971 * syntax.c (describe_syntax): Recognize the `n'estable bit.
8972 (Fforward_comment, scan_lists):
8973 Check the comstyle of single-char comment-starters.
8974 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
8975 we're just at the beginning of the comment (f.ex with (*) ... (*)).
8976 Check the comstyle of single-char comment-starters.
8977 Clarify control-flow around the Scomment case.
8978
8979 2000-06-20 Dave Love <fx@gnu.org>
8980
8981 * fns.c (make_hash_table, maybe_resize_hash_table):
8982 Cast arg of next_almost_prime.
8983
8984 * tparam.c [emacs]: Include lisp.h.
8985
8986 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
8987 and unistd.h.
8988
8989 2000-06-20 Gerd Moellmann <gerd@gnu.org>
8990
8991 * keyboard.c (adjust_point_for_property): Check if display
8992 property should be treated as intangible by looking at its value.
8993
8994 * xdisp.c (single_display_prop_intangible_p)
8995 (display_prop_intangible_p): New functions.
8996
8997 * dispextern.h (display_prop_intangible_p): Add prototype.
8998
8999 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9000
9001 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9002 argument to sigprocmask.
9003
9004 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9005 argument to sigprocmask.
9006
9007 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9008 sigprocmask_set, and pass a pointer to it to sigprocmask.
9009
9010 * sysdep.c (sigprocmask_set): New variable.
9011
9012 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9013 report_file_error.
9014
9015 2000-06-20 Sam Steingold <sds@gnu.org>
9016
9017 * xrdb.c: Don't declare xmalloc, xrealloc.
9018
9019 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9020
9021 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9022 (re_comp): Cast gettext return value to avoid complaints when
9023 !HAVE_LIBINTL.
9024
9025 2000-06-20 Dave Love <fx@gnu.org>
9026
9027 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9028
9029 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9030
9031 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9032
9033 * m/alpha.h: Don't declare xmalloc, xrealloc.
9034
9035 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9036
9037 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9038
9039 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9040
9041 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9042 HAVE_GETWD.
9043
9044 * keyboard.h (poll_for_input_1): Declare.
9045
9046 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9047
9048 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9049
9050 * doprnt.c: Don't declare xmalloc, xrealloc.
9051
9052 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9053 (getenv, ctime, getwd): Removed.
9054 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9055
9056 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9057 x_set_tool_bar_lines.
9058
9059 * config.in: Add HAVE_GETWD. Move some definitions above
9060 machine/system includes.
9061
9062 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9063
9064 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9065
9066 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9067 contain information about ENCODING.
9068
9069 * fontset.c (FONTSET_ASCII): Use the first element of char table
9070 for an ASCII font, not defalt slot.
9071 (fontset_ref_via_base): If FONTSET doesn't contain information for
9072 C, try the default fontset.
9073 (make_fontset): Don't copy the default fontset.
9074 (fontset_font_pattern): Likewise.
9075 (accumulate_font_info): If ELT is nil, use the corresponding
9076 element in the default fontset.
9077
9078 2000-06-19 Dave Love <fx@gnu.org>
9079
9080 * syntax.c (Fparse_partial_sexp): Doc fix.
9081
9082 * regex.h: Test PROTOTYPES as well as __STDC__.
9083
9084 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9085 errno, strerror. Put text after #endif in comment.
9086
9087 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9088
9089 * xterm.c (x_frame_of_widget): Likewise.
9090
9091 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9092
9093 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9094 to Vfundamental_mode_abbrev_table.
9095
9096 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9097 bogus objects are marked. This slows down GC by ~80 percent, but
9098 it might be worth trying when debugging GC-related problems.
9099 This feature requires conservative stack marking to be enabled.
9100
9101 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9102 returns XLookupChars, reset `modifiers' to zero.
9103
9104 2000-06-19 Dave Love <fx@gnu.org>
9105
9106 * mktime.c: Unprotoized.
9107
9108 2000-06-19 Richard Stallman <rms@gnu.org>
9109
9110 * data.c (set_internal): If variable is frame-local,
9111 store the new value immediately into the frame parameter alist.
9112
9113 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9114
9115 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9116 in the custom handler pointer.
9117
9118 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9119 value, or checks for CHAR_META can fail when Lisp_Object is a
9120 union type.
9121 * keymap.c (get_keyelt): Likewise.
9122
9123 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9124
9125 * ccl.h (struct ccl_program): New member eol_type.
9126 (struct ccl_spec): New member cr_carryover.
9127
9128 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9129 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9130
9131 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9132 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9133 (decode_eol_post_ccl): New function.
9134 (decode_coding): Don't detect EOL format here for CCL based coding
9135 systems.
9136 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9137 decode_eol_post_ccl after running the CCL program.
9138 (code_convert_region): Don't detect EOL format here for CCL based
9139 coding systems.
9140 (decode_coding_string): Likewise.
9141
9142 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9143
9144 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9145 when treating it as an integer.
9146
9147 * coding.h (encode_coding_string): Declare.
9148
9149 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9150 it as an integer.
9151
9152 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9153 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9154 to be passed to get_local_map.
9155
9156 * sound.c (Fplay_sound): Don't call make_number on
9157 Frun_hook_with_args count argument.
9158
9159 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9160 for lisp objects in X event structure data field, when lisp
9161 objects are represented with unions.
9162 (x_scroll_bar_to_input_event): Ditto.
9163
9164 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9165
9166 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9167 termination of string. Fix sense of test whether
9168 Vline_number_display_limit is an integer.
9169
9170 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9171
9172 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9173 only if HAVE_X_WINDOWS.
9174
9175 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9176 of titles.
9177
9178 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9179 out of bounds.
9180
9181 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
9182
9183 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
9184 of its headers.
9185
9186 2000-06-15 Kenichi Handa <handa@etl.go.jp>
9187
9188 * coding.c (decode_coding_emacs_mule): Always set src_base at the
9189 start of the while loop.
9190
9191 2000-06-15 Gerd Moellmann <gerd@gnu.org>
9192
9193 * atimer.c (alarm_signal_handler): Add forward declaration.
9194
9195 * data.c (set_internal): Remove debug code.
9196
9197 2000-06-14 Gerd Moellmann <gerd@gnu.org>
9198
9199 * Makefile.in (bootstrap-temacs): Add `-I../src'.
9200
9201 * unexec.c (toplevel) [COFF]: Include coff.h.
9202
9203 * s/lynxos.h: New file.
9204
9205 * keymap.c (Fsingle_key_description): Enclose function key and
9206 event symbol names in angle brackets.
9207
9208 * xdisp.c (setup_echo_area_for_printing): Call
9209 message_log_maybe_newline if message_buf_print is not set.
9210
9211 * print.c (printchar, strout): Don't check message_buf_print
9212 before calling setup_echo_area_for_printing because that
9213 function does something useful even when message_buf_print is
9214 already set.
9215
9216 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
9217 New variables.
9218 (ensure_echo_area_buffers): Initialize echo buffer's
9219 truncate lines setting to nil.
9220 (with_echo_area_buffer): Don't set the echo buffer's truncate
9221 lines setting here.
9222 (set_message_1): Set it here instead, based on the value
9223 of message_truncate_lines.
9224 (resize_mini_window): Handle case that lines are truncated.
9225 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
9226 DEFVAR_BOOL message-truncate-lines.
9227
9228 * keyboard.c (read_char): Bind message-truncate-lines to t
9229 while displaying a help-echo.
9230
9231 * lisp.h (Qmessage_truncate_lines): External declaration.
9232
9233 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9234
9235 * xdisp.c (Vline_number_display_limit): Renamed from
9236 line_number_display_limit.
9237 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9238 Extend documentation string. Initialize
9239 Vline_number_display_limit to nil meaning no limit.
9240 (decode_mode_spec): Use Vline_number_display_limit with its new
9241 meaning.
9242
9243 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9244
9245 2000-06-13 Richard Stallman <rms@gnu.org>
9246
9247 * frame.c (Fmodify_frame_parameters): Doc fix.
9248
9249 * xfns.c (x_set_frame_parameters): Comment fix.
9250
9251 * frame.c (store_frame_param): Call swap_in_global_binding if the
9252 variable's current binding was chosen based on this frame.
9253
9254 * data.c (swap_in_global_binding): New function.
9255
9256 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9257
9258 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9259 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9260
9261 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9262
9263 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9264
9265 2000-06-12 Jason Rumney <jasonr@gnu.org>
9266
9267 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9268
9269 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9270
9271 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9272
9273 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9274
9275 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9276
9277 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9278 (syms_of_xfaces): Defsubr Sdump_colors.
9279 (x_free_colors): Don't treat b&w specially on default visual.
9280 (x_free_dpy_colors): New function.
9281 (free_face_colors): Don't check visual class; it's done
9282 in x_free_colors.
9283
9284 * xterm.c (x_frame_of_widget): New function.
9285 (x_alloc_nearest_color_for_widget): Use it.
9286 (x_copy_dpy_color): New function.
9287 (x_destroy_window): Free various colors.
9288
9289 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9290
9291 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9292
9293 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9294
9295 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9296
9297 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9298
9299 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9300
9301 2000-06-11 Dave Love <fx@gnu.org>
9302
9303 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9304
9305 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9306
9307 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9308
9309 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9310
9311 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9312 to `XEvent *'.
9313
9314 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9315
9316 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9317 (regex_compile): Fix the code for handling the case of single byte
9318 char and multibyte char being mixed in a range within [...].
9319
9320 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9321 and dst_multibyte members of coding.
9322
9323 * charset.c (update_charset_table): Update the table
9324 bytes_by_char_head.
9325 (init_charset_once): Initialize elements of bytes_by_char_head to
9326 1 except for leading codes for private charases.
9327
9328 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9329 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9330
9331 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9332
9333 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9334 access the data it doesn't point to.
9335
9336 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9337
9338 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9339 will be translated to a switch-frame event when reading the
9340 event queue. This is necessary because Emacs otherwise won't
9341 perform a switch-frame to a new frame until some other event, for
9342 example a keystroke event, forces it to do so. This has various
9343 effects, one visible being that the cursor of a frame created with
9344 C-x 5 2 or switched to with a window manager key binding like
9345 A-TAB stays hollow because selected_window isn't on the newly
9346 focused frame until the switch-frame is performed.
9347
9348 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9349 generating a switch-frame event if necessary.
9350
9351 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9352
9353 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9354 it's an integer.
9355
9356 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9357
9358 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9359
9360 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9361
9362 * window.c (displayed_window_lines): Take empty lines at
9363 the bottom of a window into account.
9364
9365 * window.c (displayed_window_lines): New function.
9366 (Fmove_to_window_line): Use displayed_window_lines to determine
9367 the number of lines to move, instead of using the window's height.
9368
9369 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9370 to stop reading, even if the form read sets point to a different
9371 value when evaluated.
9372
9373 * xdisp.c (display_line): Fix code deciding in which line to
9374 put the cursor.
9375
9376 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9377
9378 * fileio.c (e_write): Free composition data if stored in
9379 coding->cmp_data.
9380
9381 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9382
9383 * xdisp.c (display_line): Set row's and iterator's
9384 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9385 Set cursor even if row ends in the middle of a character.
9386 (dump_glyph_row): Print values of new flags.
9387 (redisplay_window) <cursor movement in unchanged window>: When
9388 point has been moved forward, and PT is at the end of the cursor
9389 row, don't place the cursor in the next row if the cursor row ends
9390 in the middle of a character or at ZV.
9391
9392 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9393 (struct glyph_row): Add starts_in_middle_of_char_p and
9394 ends_in_middle_of_char_p.
9395 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9396 ends_in_middle_of_char_p flag.
9397 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9398
9399 * term.c (append_glyph): Revert change of 2000-06-06.
9400
9401 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9402 padding glyph not fitting on line as whole character not
9403 fitting on line.
9404
9405 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9406 this isn't true for images with `:ascent 100'.
9407
9408 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9409
9410 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9411 as modified if it is originally unmodified.
9412
9413 * term.c (encode_terminal_code): Change the way to check if
9414 terminal coding does any conversion.
9415 (append_glyph): Set glyph->pixel_width correctly.
9416
9417 * xdisp.c (display_line): While checking line continuation, pay
9418 attention to a padding glyph.
9419
9420 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9421
9422 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9423
9424 2000-06-05 Dave Love <fx@gnu.org>
9425
9426 * xdisp.c: Include fontset.h.
9427
9428 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9429
9430 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9431
9432 * dispnew.c: Conditionally include term.h.
9433
9434 * coding.h: Declare code_convert_string_norecord.
9435
9436 * frame.h (struct frame): Use volatile unconditionally.
9437
9438 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9439
9440 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9441
9442 * systime.h: Protect against multiple inclusion.
9443 (timezone) [USG5_4]: Define as time_t.
9444
9445 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9446 (Foptimize_char_table, make_temp_name): Declare.
9447
9448 * Makefile.in (xdisp.o): Depend on fontset.h.
9449
9450 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9451
9452 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9453 (Foptimize_char_table, make_temp_name): Declare.
9454
9455 * s/irix4-0.h:
9456 * s/irix5-0.h:
9457 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9458
9459 2000-06-02 Dave Love <fx@gnu.org>
9460
9461 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9462
9463 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9464
9465 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9466 result face, set flags in that face indicating that colors may not
9467 be freed.
9468
9469 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9470 glyph, use the ASCII NUL character to determine the face.
9471
9472 2000-06-02 Dave Love <fx@gnu.org>
9473
9474 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9475 (VFORK_RETURN_TYPE): Remove.
9476
9477 * config.in: Add NO_MATHERR.
9478
9479 2000-06-01 Dave Love <fx@gnu.org>
9480
9481 * cmds.c (internal_self_insert): Don't check
9482 Vbefore_change_function, Vafter_change_function.
9483
9484 * insdel.c (signal_before_change, signal_after_change): Likewise.
9485
9486 * buffer.c (Vbefore_change_function, Vafter_change_function):
9487 Variables and their initializations deleted.
9488
9489 * callint.c (Fcall_interactively): Doc fix.
9490
9491 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9492
9493 2000-05-31 Dave Love <fx@gnu.org>
9494
9495 * textprop.c: Revert last change -- duplicated.
9496
9497 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9498
9499 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9500 in #if 0.
9501
9502 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9503
9504 2000-05-31 Jason Rumney <jasonr@gnu.org>
9505
9506 * search.c (Fre_search_forward, Fre_search_backward)
9507 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9508
9509 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9510
9511 2000-05-30 Jason Rumney <jasonr@gnu.org>
9512
9513 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9514 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9515
9516 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9517
9518 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9519 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9520 expand a nil default_filename.
9521
9522 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9523 pointer to glyph_to_pixel_coords, not a frame.
9524
9525 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9526 coding.h to dependencies.
9527
9528 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9529
9530 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9531 window pointer to be consistent with w32term.c and xterm.c.
9532
9533 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9534 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9535 (Qline_spacing, Qcenter): New variables.
9536 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9537 (x_set_line_spacing): New function.
9538 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9539 (x_specified_cursor_type): New function.
9540 (x_set_cursor_type): Use it.
9541 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9542 and icon strings.
9543 (validate_x_resource_name, x_get_resource_string): Measure lengths
9544 of external strings in bytes.
9545 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9546 GetTextExtentPoint32 with NULL title.
9547 (Fx_create_frame): Initialize Qline_spacing.
9548 (w32_load_system_font): Initialize font->double_byte_p.
9549 (x_to_w32_charset): Use Vw32_charset_info_alist.
9550 (Image, busy cursor, tooltip functions): Merged changes from
9551 xfns.c. Not yet functional on Windows.
9552
9553 * w32gui.h (W32FontStruct): Add double_byte_p member.
9554
9555 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9556 (emacs_button_translation): Use it.
9557 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9558 in `mask' to be set.
9559
9560 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9561 menu strings.
9562
9563 * w32term.c: Format and doc changes to bring closer to xterm.c.
9564 (w32_char_font_type): New enum.
9565 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9566 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9567 (w32_encode_char): New function.
9568 (x_encode_char): Removed.
9569 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9570 x_encode_char and w32_font_is_double_byte.
9571 (x_produce_image_glyph): Use image_ascent.
9572 (x_produce_glyphs): Use new version of w32_per_char_metric and
9573 handle NULL return value. Allow extra line spacing.
9574 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9575 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9576 w32_font_type member of glyph instead.
9577 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9578 (fast_find_position): Make sure not to consider rows not visible
9579 in the window.
9580 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9581 w32_menu_display_help with input blocked, as it can abort.
9582 (x_display_and_set_cursor): Choose cursor depending
9583 on buffer-local value of cursor_type.
9584 (x_draw_bar_cursor): Add parameter WIDTH.
9585
9586 * w32term.h (CP_DEFAULT): Define.
9587 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9588
9589 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9590
9591 * search.c (Fre_search_forward, Fre_search_backward)
9592 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9593
9594 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9595
9596 * coding.c (detect_coding_iso2022): Fix code for checking
9597 CODING_CATEGORY_MASK_ISO_8_2.
9598
9599 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9600
9601 * regex.c (PREFETCH_NOLIMIT): New function.
9602 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9603
9604 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9605
9606 * syntax.c (find_defun_start): Move test for
9607 open_paren_in_column_0_is_defun_start outside of the loop.
9608
9609 * xdisp.c (redisplay_window): Really switch buffers when
9610 displaying mode lines, and temporarily set selected_frame to the
9611 frame of the window that's redisplayed.
9612
9613 * xfaces.c (free_realized_faces): Block/unblock input.
9614 (free_realized_multibyte_face): Ditto.
9615
9616 2000-05-29 Dave Love <fx@gnu.org>
9617
9618 * textprop.c (Qkeymap): New variable.
9619 (syms_of_textprop): Intern it.
9620
9621 * keymap.c: Include intervals.h.
9622 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9623
9624 * Makefile.in (keymap.o): Depend on intervals.h.
9625
9626 * keyboard.c (menu_bar_items, tool_bar_items)
9627 (Fexecute_extended_command): Deal with `keymap' property.
9628 (read_key_sequence): Track map from `keymap' property as well as
9629 `local_map'.
9630
9631 * intervals.c (get_local_map): Extra arg to allow looking for
9632 `keymap' too.
9633
9634 * intervals.h (map_property): New enum.
9635 (get_local_map): Extra arg using it.
9636 (Qkeymap): Declare.
9637
9638 * lisp.h (get_local_map): Don't declare here.
9639
9640 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9641
9642 * Makefile.in (callproc.o): Depend on composite.h.
9643
9644 * callproc.c: Include composite.h.
9645 (Fcall_process): Handle composition correctly.
9646
9647 * coding.h (coding_allocate_composition_data): Extern it.
9648 (coding_restore_composition): Likewise.
9649
9650 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9651 yet allocated, finish decoding with result
9652 CODING_FINISH_INSUFFICIENT_CMP.
9653 (coding_allocate_composition_data): Make it non-static.
9654 (coding_restore_composition): Likewise.
9655
9656 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9657
9658 * charset.c (syms_of_charset): Revert last change.
9659
9660 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9661
9662 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9663 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9664 Handa.
9665
9666 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9667
9668 * charset.c (syms_of_charset): Set width of character sets
9669 eight-bit-control and eight-bit-graphic to 1 column.
9670
9671 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9672
9673 * config.in (HAVE_SPEED_T): New define.
9674
9675 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9676 `extern speed_t'.
9677
9678 2000-05-26 Dave Love <fx@gnu.org>
9679
9680 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9681
9682 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9683 (Fsubr_arity): New function.
9684 (syms_of_data): Install them.
9685
9686 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9687
9688 * charset.c (init_charset_once): Set the table bytes_by_char_head
9689 correctly.
9690
9691 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9692 the default fontset to what Emacs uses by default.
9693 (check_registry_encoding): This function deleted.
9694 (Fset_fontset_font): Remove the adhoc condition for the default
9695 fontset. Allow cons in FONTNAME.
9696
9697 * fns.c (map_char_table): Ignore char-table entries for
9698 charsets eight-bit-control and eight-bit-graphic.
9699
9700 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9701
9702 * emacs.c (main): Initialize keyboard syms before initializing
9703 window code, so face names are available.
9704
9705 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9706
9707 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9708 of an anchor at the beginning of a shy-group.
9709
9710 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9711
9712 * xdisp.c (handle_invisible_prop): Don't try to skip over
9713 invisible text if end of text is already reached.
9714
9715 2000-05-25 Dave Love <fx@gnu.org>
9716
9717 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9718
9719 * coding.c (encode_eol): Add null statement after label.
9720
9721 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9722
9723 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9724 2000-05-20.
9725
9726 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9727
9728 * ccl.c (ccl_driver): Fix previous change.
9729
9730 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9731
9732 * coding.c (run_pre_post_conversion_on_str): Set point to the
9733 beginning of buffer before calling coding->post_read_conversion.
9734 (decode_coding_string): Give correct args to
9735 run_pre_post_conversion_on_str.
9736 (encode_coding_string): Likewise.
9737
9738 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
9739 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
9740 eight-bit-graphic correctly.
9741
9742 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
9743
9744 * fileio.c (Finsert_file_contents): Even if a file is not found,
9745 execute codes for setting up coding system. Call
9746 after-insert-file-functions unconditionally.
9747
9748 2000-05-24 Gerd Moellmann <gerd@gnu.org>
9749
9750 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
9751 BSD_PGRPS are not defined.
9752
9753 2000-05-24 Kenichi Handa <handa@etl.go.jp>
9754
9755 * charset.c (update_charset_table): Accept nil in LONG_NAME and
9756 DESCRIPTION.
9757 (syms_of_charset): Avoid building same strings.
9758
9759 2000-05-23 Gerd Moellmann <gerd@gnu.org>
9760
9761 * lread.c (Fload): Add a comment about the meaning of
9762 Vuser_init_file being t.
9763
9764 * puresize.h (BASE_PURESIZE): Increase to 675000.
9765
9766 * s/gnu-linux.h (setpgrp): Don't define it here because this
9767 prevents compilation on GNU/Linux systems with glib 2.2.
9768
9769 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
9770 as setpgid.
9771
9772 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
9773
9774 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
9775 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
9776 version.
9777 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
9778
9779 2000-05-23 Kenichi Handa <handa@etl.go.jp>
9780
9781 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9782
9783 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
9784
9785 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
9786
9787 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
9788
9789 2000-05-22 Kenichi Handa <handa@etl.go.jp>
9790
9791 * keyboard.c (read_char): Allow character codes 128..255 to be
9792 handled by input-method-function.
9793
9794 * insdel.c (adjust_markers_for_replace): Fix previous change.
9795 (adjust_after_replace): If PREV_TEXT is nil, call
9796 adjust_markers_for_insert, not adjust_markers_for_replace.
9797
9798 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
9799
9800 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
9801 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
9802 [HAVE_GRANDPT]: Define.
9803 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
9804
9805 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
9806 like SYSV_PTYS.
9807
9808 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
9809
9810 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
9811
9812 2000-05-20 Kenichi Handa <handa@etl.go.jp>
9813
9814 The following changes are to handle 8-bit characters in a
9815 multibyte buffer/string without facing with byte combining
9816 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
9817 eight-bit-graphic (for 0xA0..0xFF) are introduced.
9818
9819 * Makefile.in (fns.o): Depend on charset.h.
9820
9821 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
9822 convert it to unibyte.
9823 (make_string): Use parse_str_as_multibyte, not chars_in_text.
9824
9825 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
9826 apparent char boundary.
9827 (Fset_buffer_multibyte): Convert 8-bit characters in the range
9828 0x80..0x9F to/from multibyte form.
9829
9830 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
9831 to unibyte.
9832
9833 * callproc.c (Fcall_process): Always encode an argument string if
9834 it is multibyte. Setup src_multibyte and dst_multibyte members of
9835 process_coding properly.
9836
9837 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
9838 SPLIT_NON_ASCII_CHAR.
9839
9840 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
9841 as is.
9842 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
9843
9844 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
9845 (SPLIT_CHARACTER_SEQ): This macro deleted.
9846 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
9847 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
9848 and eight-bit-graphic.
9849 (char_to_string): Likewise. Signal an error for too large
9850 character code.
9851 (char_printable_p): Return 0 for 8-bit characters.
9852 (update_charset_table): Update iso_charset_table only when a final
9853 character is non-negative.
9854 (find_charset_in_text): Renamed from find_charset_in_str.
9855 Arguments and return value changed. Callers changed.
9856 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
9857 be -1 if CHARSET is used only internally.
9858 (Fmake_char_internal): Handle new charsets; eight-bit-control and
9859 eight-bit-graphic.
9860 (Fcharset_after): Simplified.
9861 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
9862 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
9863 (multibyte_chars_in_text): Simplified by assuming there's no
9864 invalid multibyte sequence.
9865 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9866 (str_as_unibyte): New functions.
9867 (Fstring): Simpified by assuming that byte combining never happens.
9868 (init_charset_once): Initialization for
9869 LEADING_CODE_8_BIT_CONTROL.
9870 (syms_of_charset): Intern and staticpro Qeight_bit_control and
9871 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
9872 eight-bit-control and eight-bit-graphic.
9873
9874 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
9875 (CHARSET_8_BIT_GRAPHIC): New macros.
9876 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
9877 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
9878 (CHARSET_REVERSE_CHARSET): Likewise.
9879 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
9880 eight-bit-graphic.
9881 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
9882 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
9883 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
9884 encounter an invalid multibyte sequence.
9885 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
9886 sequence is always valid.
9887 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
9888 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
9889 (CHAR_STRING): For 8-bit characters, call char_to_string.
9890 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
9891 multibyte sequence is always valid.
9892 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
9893 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9894 (str_as_unibyte): Extern them.
9895 (BCOPY_SHORT): Fix a bug.
9896 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
9897 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
9898 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
9899 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
9900
9901 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
9902 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
9903 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
9904 (EMIT_BYTES): New macros.
9905 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
9906 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
9907 macros deleted.
9908 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
9909 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
9910 check the validity of multibyte sequence.
9911 (decode_coding_emacs_mule): New function.
9912 (encode_coding_emacs_mule): New macro.
9913 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
9914 the source.
9915 (DECODE_ISO_CHARACTER): Just return a character code.
9916 (DECODE_COMPOSITION_START): Set coding->result instead of result.
9917 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
9918 EMIT_CHAR to produced decoded characters. Exit the loop only by
9919 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
9920 block here.
9921 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
9922 only position codes for an invalid character.
9923 (encode_designation_at_bol): Return new destination pointer. 5th
9924 arg DSTP is changed to DST.
9925 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
9926 from the source by ONE_MORE_CHAR. Don't handle the case of last
9927 block here.
9928 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
9929 macros deleted.
9930 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
9931 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
9932 TWO_MORE_BYTES to fetch a byte from the source.
9933 (encode_eol): Pay attention to coding->src_multibyte.
9934 (detect_coding, detect_eol): Preserve members src_multibyte and
9935 dst_multibyte.
9936 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
9937 (encoding_buffer_size): Set magnification to 3 for all coding
9938 systems that require encoding.
9939 (ccl_coding_driver): For decoding, be sure that the result is
9940 valid multibyte sequence.
9941 (decode_coding): Initialize coding->errors and coding->result.
9942 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
9943 and raw-text, always call decode_eol. Handle the case of last
9944 block here. If not coding->dst_multibyte, convert the resulting
9945 sequence to unibyte.
9946 (encode_coding): Initialize coding->errors and coding->result.
9947 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
9948 and raw-text, always call encode_eol. Handle the case of last
9949 block here.
9950 (shrink_decoding_region, shrink_encoding_region): Detect cases
9951 that we can't skip data more rigidly.
9952 (code_convert_region): Setup src_multibyte and dst_multibyte
9953 members of coding. For decoding, if the buffer is multibyte,
9954 convert the source sequence to unibyte in advance. For encoding,
9955 if the buffer is multibyte, convert the resulting sequence to
9956 multibyte afterward.
9957 (run_pre_post_conversion_on_str): New function.
9958 (code_convert_string): Deleted and divided into the following two.
9959 (decode_coding_string, encode_coding_string): New functions.
9960 (code_convert_string1, code_convert_string_norecord): Call one of
9961 above.
9962 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
9963 MAKE_NON_ASCII_CHAR.
9964 (Fset_terminal_coding_system_internal)
9965 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
9966 and dst_multibyte members.
9967 (init_coding_once): Initialize iso_code_class with new enum
9968 ISO_control_0 and ISO_control_1.
9969
9970 * coding.h (enum iso_code_class_type): Member ISO_control_code is
9971 devided into ISO_control_0 and ISO_control_1.
9972 (struct coding_system): New members src_multibyte, dst_multibyte,
9973 errors, and result. Delete member fake_multibyte.
9974 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
9975 nonzero.
9976 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
9977 nonzero.
9978
9979 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
9980 (Faset): Likewise.
9981
9982 * editfns.c (Fformat): Be sure to convert 8-bit characters to
9983 multibyte form.
9984 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
9985 combining occurs.
9986 (Ftranspose_region): Delete codes for handling byte combining.
9987
9988 * fileio.c (Finsert_file_contents): Setup src_multibyte and
9989 dst_multibyte members of coding. On handling REPLACE on unibyte
9990 buffer, convert the result of decode_coding to unibyte. On
9991 inserting into a mutibyte buffer, always call code_convert_region.
9992 (e_write): Setup coding->src_multibyte according to the
9993 multibyteness of the source (buffer or string).
9994
9995 * fns.c (concat): Handle 8-bit characters correctly.
9996 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
9997 unibyte in the result.
9998 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
9999 valid multibyte form in the result.
10000 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10001 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10002 return -1, signal an error.
10003 (base64_encode_1): New arg MULTIBYTE. Get each character by
10004 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10005 character is found, return -1.
10006 (Fbase64_decode_region): Delete codes for handling byte-combining.
10007 Treat each decoded byte as a unibyte character.
10008 (Fbase64_decode_string): Return unibyte string.
10009 (Fcompare_strings, concat, string_byte_to_char): Use
10010 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10011 FETCH_STRING_CHAR_ADVANCE.
10012 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10013 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10014
10015 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10016 SPLIT_NON_ASCII_CHAR.
10017 (fontset_ref_via_base, fontset_set): Likewise
10018
10019 * insdel.c (adjust_markers_for_record_delete): Deleted.
10020 (adjust_markers_for_insert): Argument changed. Caller changed.
10021 (adjust_markers_for_replace): Likewise.
10022 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10023 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10024 (copy_text): Delete unused local varialbe c_save. For converting
10025 to multibyte, be sure to make all 8-bit characters in valid
10026 multibyte form.
10027 (count_size_as_multibyte): Handle 8-bit characters correctly.
10028 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10029 (adjust_after_replace, replace_range, del_range_2)
10030 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10031 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10032 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10033 handling byte combining.
10034 (adjust_before_replace): Deleted.
10035
10036 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10037 SPLIT_NON_ASCII_CHAR.
10038 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10039 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10040 (Fkey_description): Likewise.
10041
10042 * lread.c (read1): On reading multibyte string, be sure to make
10043 all 8-bit chararacters in valid multibyte form.
10044 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10045
10046 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10047 unconditionally.
10048
10049 * process.c (Fstart_process): GCPRO current_dir before calling
10050 Ffind_operation_coding_system. Encode arguments here.
10051 (create_process): Don't encode arguments here. Setup
10052 src_multibyte and dst_multibyte members of struct coding.
10053 (read_process_output): Setup src_multibyte and dst_multibyte
10054 members of struct coding. If the output is to multibyte buffer,
10055 always decode the output of the process. Adjust the
10056 representation of 8-bit characters to the multibyteness of the output.
10057 (send_process): Setup coding->src_multibyte according to the
10058 multibyteness of the source.
10059
10060 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10061 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10062 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10063
10064 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10065
10066 * w16select.c (Fw16_set_clipboard_data): Setup members
10067 src_multibyte and dst_multibyte of coding. Adjusted for the
10068 change for find_charset_in_str.
10069 (Fw16_get_clipboard_data): Likewise.
10070
10071 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10072 dst_multibyte of coding.
10073 (x_to_w32_font): Likewise.
10074
10075 * w32select.c (Fw32_set_clipboard_data): Setup members
10076 src_multibyte and dst_multibyte of coding. Adjusted for the
10077 change for find_charset_in_str.
10078 (Fw32_get_clipboard_data): Likewise.
10079
10080 * xdisp.c (get_next_display_element): Handle 8-bit characters
10081 correctly.
10082 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10083 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10084
10085 * xselect.c (selection_data_to_lisp_data): Setup members
10086 src_multibyte and dst_multibyte of coding. Adjusted for the
10087 change for find_charset_in_str.
10088 (lisp_data_to_selection_data): Likewise.
10089
10090 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10091
10092 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10093
10094 * dispextern.h (Vimage_types): Add extern declaration.
10095
10096 * xdisp.c (Vimage_types): Moved here from xfns.c.
10097 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10098
10099 * xfns.c (Vimages_types): Moved to xdisp.c.
10100 (syms_of_xfns): Move `image-types' to xdisp.c.
10101
10102 * w32fns.c (Vimage_types): Removed.
10103 (syms_of_w32fns): Remove `image-types'.
10104
10105 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10106
10107 * fns.c (map_char_table): Pay attention to character number of
10108 charset. Check the validity of charset at the first level. For
10109 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10110 the default value.
10111
10112 * fontset.c: Include "buffer.h".
10113 (fs_load_font): If the face has fontset, record the face ID in
10114 that fontset.
10115 (Finternal_char_font): New function.
10116 (accumulate_font_info): New function.
10117 (Ffontset_info): Rewritten for the new fontset implementation.
10118 (syms_of_fontset): Register Vdefault_fontset in the first element
10119 of Vfontset_table. Include Vdefault_fontset in
10120 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10121 function.
10122
10123 2000-05-16 Dave Love <fx@gnu.org>
10124
10125 * m/iris5d.h: Deleted -- unused.
10126
10127 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10128
10129 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10130 `invalid' instead of `illegal'.
10131
10132 * indent.c (Fmove_to_column): When ending within a tab, insert
10133 spaces first so that markers at the end of the tab get adjusted.
10134
10135 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10136 buffer list that wasn't selected in that frame.
10137
10138 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10139 is needed on mescaline, use a 2 char prefix, and call
10140 make_temp_name with second arg non-zero.
10141
10142 * fileio.c (make_temp_name): New function, extracted from
10143 Fmake_temp_name.
10144 (Fmake_temp_name): Use it.
10145
10146 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10147
10148 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10149
10150 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10151
10152 * Makefile.in (lisp): Add env.elc.
10153
10154 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10155
10156 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10157
10158 * search.c (Freplace_match): Handle case of `\N' in the
10159 replacement when there's no group N.
10160
10161 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10162
10163 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10164 of the message to message_dolog.
10165
10166 * keyboard.c (read_char): Don't clear current message for help
10167 events; let the code handling help events handle this. Change
10168 code detecting help events that should be ignored.
10169
10170 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10171 we're interating over a string.
10172
10173 2000-05-09 Dave Love <fx@gnu.org>
10174
10175 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10176 that offset before writing. Move gcpro region past call of
10177 Ffile_regular_p.
10178
10179 2000-05-04 Dave Love <fx@gnu.org>
10180
10181 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
10182
10183 2000-05-04 Gerd Moellmann <gerd@gnu.org>
10184
10185 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
10186 of inserted characters when BUF equals the current buffer, and PT
10187 is in front of or equal to FROM.
10188
10189 2000-05-03 Gerd Moellmann <gerd@gnu.org>
10190
10191 * xdisp.c (handle_single_display_prop): If display property value
10192 is invalid, or something not supported on the frame, restore
10193 iterator's position to what it was initially. Make sure to return
10194 0 for invalid and unsupported property values.
10195
10196 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
10197 that x_per_char_metric returns null.
10198
10199 2000-05-02 Gerd Moellmann <gerd@gnu.org>
10200
10201 * xterm.h (struct face): Add forward declaration.
10202 (struct image): Ditto.
10203 (image_ascent): Add prototype.
10204
10205 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
10206 (x_draw_image_relief, x_draw_image_foreground_1): Call function
10207 image_ascent instead of using IMAGE_ASCENT.
10208
10209 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
10210 (IMAGE_ASCENT): Removed.
10211
10212 * xfns.c (Qcenter): New variable.
10213 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
10214 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
10215 (image_ascent): New function.
10216 (lookup_image): Recognize `:ascent center'.
10217 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
10218 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
10219 (xbm_load): Don't set image's ascent here.
10220 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
10221 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
10222 check ascent values here.
10223 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
10224 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
10225 (syms_of_xfns): Initialize Qcenter.
10226
10227 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
10228 to the limits, increase the limits.
10229
10230 2000-05-01 Kenichi Handa <handa@etl.go.jp>
10231
10232 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10233 Check Vfont_encoding_alist against the full name of the opened font.
10234
10235 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10236
10237 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10238 taller than the window.
10239
10240 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10241
10242 * xfaces.c (realize_x_face): Fix the argument of the second
10243 xassert. BASE_FACE may not be a face for ASCII.
10244
10245 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10246
10247 * print.c (print_object): Treat print-length < 0 as nil.
10248
10249 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10250
10251 * s/freebsd.h (TERMCAP_OBJ): Removed.
10252 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10253
10254 * lread.c (read1): Don't treat period followed by certain
10255 characters as symbol start.
10256
10257 * xfns.c (slurp_file): New function.
10258 (xbm_image_p): Handle case of in-memory XBM files.
10259 (xbm_scan): Rewritten to work on memory buffers instead of files.
10260 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10261 Work on memory buffers instead of files. If DATA is null test
10262 if buffer looks like an in-memory XBM file.
10263 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10264 memory buffers instead of files.
10265 (xbm_file_p): New function.
10266 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10267
10268 * lread.c (end_of_file_error): New function.
10269 (read1): Call it instead of signaling `end-of-file' directly.
10270
10271 * print.c (print_error_message): Print data of `end-of-file'
10272 with Fprinc instead of Fprin1.
10273
10274 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10275
10276 * window.c (freeze_window_start): Check that minibuffer scroll
10277 window isn't nil before extracting the window structure pointer
10278 from it.
10279
10280 * undo.c (record_delete): If we hit the end of the undo list, stop
10281 picking elements apart.
10282
10283 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10284
10285 * xdisp.c (display_line): If lines are continued, restore
10286 iterator's ascent/descent information to the values before the
10287 first glyph not fitting on the line.
10288
10289 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10290
10291 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10292 positions in glyph matrix. Don't compute new window end positions.
10293
10294 * dispnew.c (increment_matrix_positions): Renamed from
10295 increment_glyph_matrix_buffer_positions.
10296 (increment_row_positions): Renamed from
10297 increment_glyph_row_buffer_positions.
10298
10299 * dispextern.h: Change names of renamed functions from dispnew.c
10300 in prototypes.
10301
10302 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10303
10304 * fileio.c (Fdo_auto_save): Create directories for auto-save
10305 list file if necessary.
10306
10307 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10308 from buffer or frame.
10309 (automatic_hscrolling_p): New variable.
10310 (hscroll_windows): Scroll windows horizontally only if automatic
10311 hscrolling is allowed.
10312 (syms_of_xdisp): New variable `automatic-hscrolling'.
10313
10314 * frame.h (struct frame): Add member extra_line_spacing.
10315
10316 * xfns.c (x_set_line_spacing): New function.
10317 (Fx_create_frame): Set line spacing from resources.
10318 (Qline_spacing): New variable.
10319 (syms_of_xfns): Initialize Qline_spacing.
10320
10321 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10322
10323 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10324 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10325 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10326 extra_line_spacing from default value.
10327 (init_buffer_once): Initialize default value of extra_line_spacing.
10328
10329 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10330 and extra3.
10331
10332 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10333 prompt_width. Add extra line spacing.
10334
10335 * term.c (produce_glyphs): Remove reference to struct it's
10336 prompt_width.
10337
10338 * dispextern.h (struct it): Remove member prompt_width, add
10339 extra_line_spacing.
10340
10341 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10342
10343 * dispnew.c (update_frame_line): When writing a whole line, make
10344 sure cursor is in the right row afterwards, otherwise a use of
10345 capability `ch' in cmgoto might leave the cursor in the row below.
10346
10347 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10348
10349 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10350
10351 * keyboard.c (timer_check): Fix typo in comment.
10352
10353 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10354
10355 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10356 name change: ch -> character.
10357
10358 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10359
10360 * keyboard.c (echo_message_buffer): New variable.
10361 (echo_now): Set echo_message_buffer to the echo area buffer used
10362 to display the echo.
10363 (cancel_echoing): Reset echo_message_buffer to nil.
10364 (read_char): Code rewritten that handles canceling an echo or
10365 echoing a dash, respectively.
10366
10367 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10368 directory doesn't exist.
10369
10370 2000-04-19 Dave Love <fx@gnu.org>
10371
10372 * fns.c (syms_of_fns): Defsubr mapc.
10373 (concat): Don't allow numeric args.
10374 (Fconcat): Doc change.
10375
10376 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10377
10378 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10379 instead define end_match(1|2) more carefully.
10380 Use GET_CHAR_BEFORE_2 for `begline'.
10381
10382 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10383
10384 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10385 on 64-bit systems where NULL is defined as `0'.
10386
10387 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10388 the `variable argument list' to make it work on Alpha.
10389
10390 * m/alpha.h (_LP64) [!_LP64]: Define.
10391 (ORDINARY_LINK): Define for NetBSD.
10392
10393 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10394
10395 2000-04-19 Dave Love <fx@gnu.org>
10396
10397 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10398 change.
10399
10400 * Makefile.in (LIBS): Don't use.
10401 (GETLOADAVG_OBJ): Define again.
10402 (otherobj): Add GETLOADAVG_OBJ.
10403
10404 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10405
10406 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10407
10408 * lread.c (read_filtered_event): Cancel and start busy cursor.
10409
10410 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10411 that the per-character metrics may be null.
10412
10413 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10414
10415 * buffer.c (clone_per_buffer_values): New function.
10416 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10417 clone_per_buffer_values if CLONE is not nil.
10418
10419 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10420
10421 2000-04-16 Dave Love <fx@gnu.org>
10422
10423 * Makefile.in: Remove obsolete localcpp stuff.
10424 (GETLOADAVG_OBJ): Don't define.
10425 (obj): Move LIBOBJS...
10426 (otherobj): ... to here.
10427 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10428 whitespace-only lines after the continuation (Irix).
10429
10430 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10431
10432 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10433
10434 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10435
10436 2000-04-14 Dave Love <fx@gnu.org>
10437
10438 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10439 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10440 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10441 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10442 NLIST_STRUCT.
10443
10444 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10445 autoconfiscated HAVE_GETLOADAVG.
10446
10447 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10448 BROKEN_MKTIME.
10449
10450 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10451
10452 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10453 (fill_in_lock_file_name): Avoid existing files that aren't links.
10454
10455 2000-04-14 Dave Love <fx@gnu.org>
10456
10457 * Makefile.in (LIBS, LIBOBJS): New variable.
10458 (INTERVAL_SRC): Convert to make variable.
10459 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10460 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10461 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10462 add LIBOBJS.
10463 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10464 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10465 (shortlisp): Add facemenu, float-sup, frame.
10466 (SOME_MACHINE_LISP): Remove them from here.
10467 (LIBES): Change unused LDLIBS to autoconf LIBS.
10468
10469 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10470
10471 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10472
10473 * composite.c (update_compositions): If FROM and TO are not in a
10474 valid range, do nothing.
10475
10476 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10477
10478 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10479
10480 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10481
10482 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10483 as TERMCAP_OBJ.
10484
10485 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10486
10487 * fileio.c (a_write): Remove redundant semi-colons.
10488 (e_write): Return -1 if failed to write all the data.
10489 This fixes the changes made at 1999-12-15.
10490
10491 2000-04-12 Dave Love <fx@gnu.org>
10492
10493 * fns.c (mapcar1): Test for null vals to support mapc.
10494 (Fmapc): New function.
10495
10496 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10497
10498 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10499 (IT_frame_up_to_date): Support the buffer local value of
10500 cursor-type, if defined.
10501
10502 2000-04-10 Dave Love <fx@gnu.org>
10503
10504 * editfns.c (preceding-char, following-char): Doc fix.
10505
10506 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10507
10508 * Makefile.in (temacs): Revert 2000-03-12 change.
10509
10510 2000-04-10 Jason Rumney <jasonr@gnu.org>
10511
10512 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10513
10514 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10515
10516 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10517 area buffer, if it's not set up yet.
10518
10519 * indent.c (compute_motion): Set immediate_quit.
10520
10521 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10522
10523 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10524 (realize_tty_face): Suppress boldness if colors are the inverse of
10525 the default colors, and tty_suppress_bold_inverse_default_colors_p
10526 is set.
10527 (Ftty_suppress_bold_inverse_default_colors): New function.
10528 (syms_of_xfaces): Defsubr it.
10529
10530 * buffer.c (Frestore_buffer_modified_p): New function.
10531 (syms_of_buffer): Defsubr it.
10532
10533 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10534
10535 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10536 charset id (int) argument, not a charset (Lisp_Object).
10537
10538 * coding.h (code_convert_string): Declare.
10539 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10540 object, as the fourth argument to code_convert_string.
10541
10542 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10543 (Fset_fontset_font): Use EQ to compare lisp objects.
10544
10545 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10546
10547 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10548 a pointer that looks like a lisp object.
10549 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10550 zero, instead see whether it's an integer object, since they can't
10551 have intervals.
10552 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10553
10554 * dispnew.c (allocate_matrices_for_frame_redisplay)
10555 (direct_output_forward_char): Use X(U)INT and make_number as needed
10556 to convert between (unsigned) int values and lisp integers.
10557 * keyboard.c (read_key_sequence): Likewise.
10558 * lread.c (substitute_object_recurse): Likewise.
10559 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10560 * minibuf.c (do_completion, Fminibuffer_complete_word)
10561 (Fminibuffer_completion_help): Likewise.
10562 * term.c (produce_special_glyphs): Likewise.
10563
10564 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10565 * print.c (print_preprocess, print_object): Likewise.
10566
10567 * search.c (compile_pattern): Use NILP when checking for nil.
10568
10569 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10570 __OPTIMIZE__]: Provide a GNU C macro version that handles
10571 lisp-object unions.
10572 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10573 field, to better cope with ENABLE_CHECKING and calls that modify a
10574 Lisp_Object using its old value.
10575
10576 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10577
10578 * window.c (compare_window_configurations): Signal an error
10579 if parameters C1 or C2 aren't window configurations.
10580
10581 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10582 AFTER_POTENTIAL_GC calls around calls to functions that can
10583 signal an error and thus invoke the debugger.
10584
10585 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10586
10587 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10588 an error if decoding fails.
10589
10590 * keyboard.c (lispy_mouse_names): Variable removed.
10591 (Vlispy_mouse_stem): New variable.
10592 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10593 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10594 for any mouse button number. Increase size of mouse_syms and
10595 button_down_location as needed. Call modify_event_symbol with
10596 different arguments.
10597 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10598 Call modify_event_symbol with different arguments.
10599 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10600 for any button number. Call modify_event_symbol with different
10601 arguments.
10602 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10603 Accept a string for NAME_ALIST_OR_STEM.
10604
10605 * lisp.h (larger_vector): Add prototype.
10606
10607 * fns.c (larger_vector): Make externally visible.
10608
10609 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10610
10611 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10612
10613 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10614 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10615 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10616 we are between str1 and str2.
10617 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10618 (PATFETCH): Use `TRANSLATE'.
10619 (PATFETCH_RAW): Fetch multibyte char if applicable.
10620 (PATUNFETCH): Remove.
10621 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10622 When writing a char, write it directly into the pattern buffer rather
10623 than going needlessly through a temp char-array.
10624 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10625 multibyte magic and remove the useless `#ifdef emacs'.
10626 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10627 buffer.
10628
10629 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10630 conditional on `emacs'.
10631
10632 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10633
10634 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10635
10636 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10637 non-union-type versions of XMARK and friends here, because XMARK
10638 and friends won't work on an integer field if NO_UNION_TYPE is not
10639 defined.
10640 (make_number): Define as a function if it's not defined as a macro.
10641
10642 * composite.c (run_composite_function): Use NILP when checking for nil.
10643 (syms_of_composite): Delete local var NARGS, pass an int as first
10644 argument to Fmake_hash_table.
10645
10646 * editfns.c (text_property_stickiness): Use NILP to test
10647 Lisp_Object boolean value.
10648 (Fmessage_or_box): Don't use NILP to test int variable.
10649 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10650 problems reading from and changing the same lisp value in an
10651 XSETSTRING call.
10652
10653 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10654
10655 * term.c (TN_no_color_video): New variable.
10656 (term_init): Intitialize TN_no_color_video.
10657 (enum no_color_bit): New enumeration.
10658 (MAY_USE_WITH_COLORS_P): New macro.
10659 (turn_on_face): Use it to determine if attributes may be used
10660 combined with colors.
10661
10662 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10663
10664 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10665 with int lvalues via casts; instead, just yield lisp object lvalues.
10666 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10667 proper accessor macros.
10668 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10669 (grow_mini_window): Fix typo getting int value of root->height.
10670
10671 * xdisp.c (compute_string_pos): Fix order of arguments to
10672 string_pos_nchars_ahead.
10673 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10674 count arg to variable-arg routines like Frun_hook_with_args and
10675 Fformat.
10676 (back_to_previous_visible_line_start)
10677 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10678 fixed-arg routines like Fget_char_property and Fmake_string.
10679 (reconsider_clip_changes): Use XINT when comparing integer lisp
10680 objects, or passing them as int arguments.
10681 (mark_window_display_accurate, insert_left_trunc_glyphs)
10682 (append_space, extend_face_to_end_of_line): Use make_number when
10683 storing or passing integer values as lisp objects.
10684 (set_cursor_from_row, highlight_trailing_whitespace): Use
10685 INTEGERP, not implicit test against zero, for glyph object.
10686 (try_window_id): Don't use make_number when we want an int value.
10687
10688 * xfaces.c (xlfd_symbolic_value): Make last argument a
10689 Lisp_Object, to be consistent with callers.
10690 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10691 (lface_hash): Apply XFASTINT to lisp values before folding in.
10692
10693 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10694 fill in window width and height. Pass an int, not a lisp object,
10695 as first arg to Finsert.
10696
10697 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10698
10699 * xfaces.c (realize_basic_faces): Block input while realizing
10700 the faces.
10701
10702 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10703
10704 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10705
10706 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10707
10708 * xterm.c (x_produce_glyphs): When displaying unibyte text
10709 or ASCII, handle case that per-char metric is null.
10710
10711 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10712
10713 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10714
10715 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10716 (XSUBR, XBUFFER): Verify correct object type before returning
10717 pointer, using eassert.
10718 * frame.h (XFRAME): Likewise.
10719
10720 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10721 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10722 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10723 * data.c (set_internal): Likewise.
10724 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10725 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10726 * fileio.c (auto_save_1): Likewise.
10727 * insdel.c (check_markers): Likewise.
10728 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10729 * undo.c (record_insert): Likewise.
10730 * vmsproc.c (child_sig): Likewise.
10731 * window.c (unshow_buffer, window_loop): Likewise.
10732 * xterm.c (x_erase_phys_cursor): Likewise.
10733
10734 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10735
10736 * xfns.c (free_image_cache): Free the cache structure itself
10737 last, after all its members have been freed.
10738
10739 * lisp.h (xstrdup): Add prototype.
10740
10741 * alloc.c (xstrdup): Moved here from xfaces.c.
10742 (allocating_for_lisp): Variable removed.
10743 (lisp_malloc): Block input around the calls to malloc and mem_insert.
10744
10745 * xfaces.c (realize_tty_face): Use find_symbol_value instead
10746 of Fsymbol_value.
10747 (xstrdup): Moved to alloc.c.
10748
10749 2000-03-29 Ken Raeburn <raeburn@gnu.org>
10750
10751 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
10752
10753 * emacs.c (main): Fix sense of no-loadup test.
10754
10755 * config.in (ENABLE_CHECKING): Undef.
10756
10757 * lisp.h (struct interval): Replace "parent" field with a union of
10758 interval pointer and Lisp_Object; add new bitfield to use as
10759 discriminant. Change other flag fields to bitfields.
10760 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
10761 is defined and the supplied test fails, print a message and abort.
10762 (eassert): New macro. Use CHECK to provide an assert-like facility.
10763
10764 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
10765 pointers; abort if the value looks like a lisp object.
10766 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
10767 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
10768 Modify for new interval parent definition.
10769
10770 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
10771 (UNMARK_BALANCE_INTERVALS): Update references that need an
10772 addressable lisp object in the interval structure.
10773 (die): New function.
10774 (suppress_checking): New variable.
10775
10776 * intervals.c (interval_start_pos): Just return 0 if there's no
10777 parent object.
10778
10779 2000-03-29 Gerd Moellmann <gerd@gnu.org>
10780
10781 * lread.c (read1): Accept `.' (period) as symbol start like in CL
10782 and earlier Emacs versions.
10783
10784 * keyboard.c (Ftop_level): Cancel busy-cursor.
10785
10786 * eval.c (call_debugger): Cancel busy-cursor.
10787
10788 2000-03-29 Kenichi Handa <handa@etl.go.jp>
10789
10790 * search.c (Freplace_match): Adjust multibyteness of the current
10791 buffer and NEWTEXT. Free allocated memory before signaling an error.
10792
10793 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
10794
10795 * regex.c (analyse_first): New function obtained by ripping out most
10796 of re_compile_fastmap and generalizing it a little bit so that it
10797 can also just return whether a given (sub)pattern can match the empty
10798 string or not.
10799 (regex_compile): Use `analyse_first' to decide whether the loop-check
10800 needs to be done or not for *, +, *? and +? (the loop check is costly
10801 for non-greedy repetition).
10802 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
10803
10804 2000-03-28 Dave Love <fx@gnu.org>
10805
10806 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
10807
10808 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
10809
10810 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
10811
10812 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
10813 an expression.
10814 (enum re_opcode_t): Update description of succeed_n.
10815 (PATFETCH): Always define.
10816 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
10817 operators, char classes, shy-groups and intervals).
10818 Optimize special cases of intervals so as to only use succeed_n and
10819 jump_n when really needed.
10820 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
10821 that we don't have to handle the special cases any more.
10822 Simplify on_failure_jump handling as well.
10823
10824 2000-03-28 Jason Rumney <jasonr@gnu.org>
10825
10826 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
10827
10828 2000-03-27 Gerd Moellmann <gerd@gnu.org>
10829
10830 * s/freebsd.h (GC_SETJMP_WORKS): Define.
10831
10832 * s/msdos.h (GC_SETJMP_WORKS): Define.
10833
10834 * alloc.c (mark_maybe_object): New function.
10835 (mark_memory): Use it.
10836 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
10837 (setjmp_tested_p, longjmp_done): New variables.
10838 (test_setjmp): New function.
10839 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
10840 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
10841
10842 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
10843 to DEC_TEXT_POS and INC_TEXT_POS.
10844
10845 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
10846 with parameter MULTIBYTE_P.
10847
10848 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
10849
10850 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
10851 buffers because it looks for multibyte character byte sequences
10852 which don't exist in unibyte text.
10853
10854 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
10855
10856 * xfaces.c (register_color, unregister_color, unregister_colors)
10857 [DEBUG_X_COLORS]: New functions.
10858 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
10859
10860 * xfns.c (x_set_cursor_color): Get color reference counts right.
10861
10862 * xterm.c (x_copy_color): New function.
10863 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
10864
10865 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
10866 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
10867 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
10868 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
10869 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
10870 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
10871 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
10872 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
10873 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
10874 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
10875
10876 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
10877 names for handling per-buffer variables.
10878
10879 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
10880 instead of MAX_BUFFER_LOCAL_VARS.
10881 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
10882
10883 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
10884
10885 * xfns.c (x_specified_cursor_type): New function.
10886 (x_set_cursor_type): Use it.
10887
10888 * buffer.h (struct buffer): Add cursor_type.
10889
10890 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
10891
10892 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
10893 (print_partial_compiled_pattern, re_compile_fastmap):
10894 Handle new opcode.
10895 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
10896 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
10897 executing it as well as when popping it off the stack to find infinite
10898 loops in non-greedy repetition operators.
10899
10900 2000-03-26 Gerd Moellmann <gerd@gnu.org>
10901
10902 * doc.c (Qfunction_documentation): New variable.
10903 (syms_of_doc): Initialize Qfunction_documentation.
10904 (Fdocumentation): If FUNCTION is a symbol with non-nil
10905 `function-documentation' property, return a documentation derived
10906 from that.
10907
10908 * buffer.c (syms_of_buffer): Add default-cursor-type.
10909 (init_buffer_once): Don't let cursor_type have a local value
10910 in every buffer.
10911
10912 * xterm.c (x_display_and_set_cursor): Choose cursor depending
10913 on buffer-local value of cursor_type.
10914 (x_draw_bar_cursor): Add parameter WIDTH.
10915
10916 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
10917 (init_buffer_once): Set default cursor_type value to t.
10918 Mark cursor_type as local everywhere.
10919 (syms_of_buffer): New per-buffer variable cursor-type.
10920
10921 * buffer.h (struct buffer): Remove member local_var_flags,
10922 add local_flags.
10923 (MAX_BUFFER_LOCAL_VARS): New macro.
10924 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
10925 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
10926 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
10927 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
10928
10929 * print.c (print_object): Use new macros for per-buffer variables.
10930
10931 * category.c (Fset_category_table): Use new macros for per-buffer
10932 variables.
10933
10934 * buffer.c (buffer_permanent_local_flags): Make a char array.
10935 (max_buffer_local_idx): New variable.
10936 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
10937 for new handling of per-buffer variables.
10938 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
10939 (init_buffer_once): Initialize per-buffer vars differently.
10940 Set max_buffer_local_idx.
10941
10942 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
10943 variables.
10944
10945 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
10946
10947 * data.c (do_symval_forwarding, store_symval_forwarding)
10948 (find_symbol_value, set_internal, default_value, Fset_default)
10949 (Fkill_local_variable, Flocal_variable_p): Use new macros for
10950 per-buffer variables.
10951
10952 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
10953
10954 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10955
10956 * xterm.c (x_term_init): Unblock input around call1 of
10957 Qvendor_specific_keysyms.
10958
10959 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
10960 (find_defun_start): Consider an open parenthesis in column 0
10961 a defun start only if open_paren_in_column_0_is_defun_start is set.
10962 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
10963
10964 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
10965
10966 * eval.c (Fautoload): Add entry in load-history (if after dump).
10967 * lread.c (load-history): Update docstring.
10968
10969 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10970
10971 * indent.c (Fvertical_motion): Always use the current buffer.
10972 Temporarily change the window's buffer, if necessary.
10973
10974 2000-03-23 Gerd Moellmann <gerd@gnu.org>
10975
10976 * xterm.c (fast_find_position): Make sure not to consider rows
10977 not visible in the window.
10978
10979 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
10980
10981 * regex.c (enum syntaxcode): Provide default for non-Emacs.
10982 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
10983
10984 2000-03-22 Jason Rumney <jasonr@gnu.org>
10985
10986 * w32menu.c (single_submenu): Set help string to NULL if none.
10987 (w32_menu_show): Set help string correctly.
10988 (add-menu-item): Set help string in MIIM_DATA for menu item.
10989 Load SetMenuItemInfoA explicitly.
10990 (w32_menu_display_help): New function.
10991
10992 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
10993 (QCdata): Moved to xdisp.c.
10994
10995 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
10996 (Vw32_charset_to_codepage_alist): Removed.
10997 (Vw32_charset_info_alist): New variable.
10998 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
10999 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11000 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11001 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11002 with TODO comment.
11003 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11004 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11005 Define Vw32_charset_info_alist and w32_charset symbols.
11006
11007 2000-03-22 Jason Rumney <jasonr@gnu.org>
11008
11009 * makefile.nt (w32bdf.obj): Update dependencies.
11010
11011 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11012
11013 * w32fns.c: Include fontset.h after dispextern.h.
11014 (Fx_create_frame): Do not create fontset.
11015 (w32_load_system_font): Doc fix.
11016 (Fx_close_connection): Free full_name if it is not shared.
11017
11018 * w32term.c: Include fontset.h after dispextern.h.
11019 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11020 Callers updated.
11021 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11022 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11023 (w32_font_is_double_byte): New function, needs body.
11024 (x_append_glyph): Set glyph->glyph_not_available_p.
11025 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11026 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11027 character, convert it to a unibyte character.
11028 (struct glyph_string): Delete member `charset'.
11029 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11030 calculating it is found.
11031 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11032 the case that per char metric is not available correctly.
11033 (x_fill_glyph_string): Handle the case that the specific glyph is
11034 not available correctly.
11035 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11036 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11037 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11038 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11039 fontset. Don't call FS_LOAD_FONT.
11040
11041 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11042
11043 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11044 (INT_LISPLIKE): New macro.
11045 (NULL_INTERVAL_P): Use it.
11046 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11047 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11048 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11049
11050 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11051 explicit references to "parent" field of struct interval and
11052 associated unclean type conversions.
11053 * intervals.c (create_root_interval, root_interval, rotate_right)
11054 (rotate_left, balance_possible_root_interval, split_interval_right)
11055 (split_interval_left, interval_start_pos, find_interval)
11056 (next_interval, previous_interval, update_interval)
11057 (adjust_intervals_for_insertion, delete_node, delete_interval)
11058 (adjust_intervals_for_deletion, merge_interval_right)
11059 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11060 (copy_intervals_to_string): Likewise.
11061 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11062 Likewise.
11063 * syntax.c (update_syntax_table): Likewise.
11064
11065 * intervals.c (reproduce_tree_obj): New function, like
11066 reproduce_tree but takes a Lisp_Object for the parent. Declare
11067 with prototype.
11068 (graft_intervals_into_buffer): Use it when appropriate.
11069 (reproduce_tree): Declare with prototype.
11070 (balance_possible_root_interval): Check that the parent is a lisp
11071 object before trying to examine its type.
11072
11073 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11074
11075 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11076 as strings only if both are known to be strings.
11077
11078 * s/openbsd.h (LIBS_TERMCAP): Undef.
11079
11080 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11081
11082 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11083 definitions for non-Emacs compilation.
11084 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11085 outside of `#ifdef emacs'.
11086 (print_partial_compiled_pattern): Update.
11087 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11088 (re_compile_fastmap): Merge handling of charset and charset_not (for
11089 emacs and non-emacs compilation as well).
11090 Similarly for (not)categoryspec and (not)syntaxspec.
11091 Don't use the fastmap when reaching `anychar' since the added
11092 complexity is not justified.
11093 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11094 and (not)syntaxspec. Merge (not)categoryspec.
11095
11096 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11097
11098 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11099 (FACE_FOR_CHAR): Define them differently for the configuration of
11100 --without-x.
11101
11102 2000-03-21 Dave Love <fx@gnu.org>
11103
11104 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11105 doc string.
11106
11107 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11108
11109 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11110 (lface_fully_specified_p): Don't check contents of
11111 LFACE_FONT_INDEX because that attribute is optional.
11112 (realize_x_face): Remove now unwarranted xassert.
11113
11114 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11115
11116 The following changes are to make font selection based on
11117 characters, not charset. In addition, they recover fontset
11118 facilities while utilizing the new font selection mechanism.
11119
11120 * Makefile.in (fontset.o): Depend on dispextern.h.
11121
11122 * alloc.c (mark_face_cache): Don't mark face->registry.
11123
11124 * dispextern.h (struct glyph): New member glyph_not_available_p.
11125 Use 22 bits for face_id.
11126 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11127 (struct face): Delete member registry, new member ascii_face.
11128 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11129 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11130 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11131 (struct it): Delete member charset, new member glyph_not_available_p.
11132
11133 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11134 (struct fontset_info, struct fontset_data): Structs removed.
11135 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11136 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11137 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11138 (fs_free_face_fontset, fontset_font_pattern)
11139 (face_suitable_for_char_p, face_for_char)
11140 (make_fontset_for_ascii_face): Extern them.
11141 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11142 (FS_LOAD_FACE_FONT): New macro.
11143
11144 * fontset.c: All codes rewritten or adjusted for the change of
11145 fontset implementation. Now fontset is represented by char table.
11146 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11147 Variables removed.
11148 (my_strcasecmp): Function removed.
11149 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11150 (AREF, ASIZE): New macros.
11151 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11152 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11153 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11154 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11155 (fontset_id_valid_p, font_family_registry, fontset_name)
11156 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11157 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11158 New functions.
11159 (fs_load_font): New arg FACE. Caller changed.
11160 (fs_query_fontset): Argument changed. Caller changed.
11161 (Fquery_fontset): call fs_query_fontset.
11162 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11163 Functions removed.
11164 (clear_fontset_elements, check_registry_encoding)
11165 (check_fontset_name): New functions.
11166 (syms_of_fontset): Set char-table-extra-slots property of fontset
11167 to 3. Staticpro and initialize Vfontset_table and
11168 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11169
11170 * frame.h (struct frame): Member `fontset_data' removed.
11171 (FRAME_FONTSET_DATA): Macro removed.
11172
11173 * frame.c (make_frame): Don't allocate f->fontset_data.
11174 (Fdelete_frame): Don't free f->fontset_data.
11175
11176 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11177
11178 * xdisp.c (charset_at_position): Function removed.
11179 (init_iterator): Don't set member charset of struct `it'.
11180 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11181 (next_element_from_display_vector, insert_left_trunc_glyphs):
11182 Likewise.
11183 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
11184 FACE_FOR_CHARSET.
11185 (get_next_display_element, append_space)
11186 (extend_face_to_end_of_line): Likewise.
11187
11188 * xfaces.c (Qx_charset_registry, Vface_default_registry):
11189 Variables removed.
11190 (clear_font_table, frame_update_line_height, load_face_font):
11191 Adjusted for the change of fontset implementation.
11192 (load_face_fontset_font): Function removed.
11193 (pixel_point_size): New function.
11194 (font_list): Argument type changed. Caller changed.
11195 (LFACE_FONT): New macro.
11196 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
11197 (set_lface_from_font_name): Type of arg FONTNAME is changed to
11198 Lisp_Object. Determine the font name by actually loading a font
11199 by the specified pattern. Set LFACE_FONT (lface) to the specified
11200 pattern. Even if a font is not found, don't try alternatives.
11201 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
11202 (set_font_frame_param): If `font' is specified in lface, use it.
11203 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
11204 (lface_same_font_attributes_p): Likewise.
11205 (make_realized_face): Arguent changed. Caller changed. Set
11206 face->ascii_face to face itself.
11207 (free_realized_face): Free face->fontset if face is for ASCII.
11208 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
11209 (deduce_unibyte_registry, x_charset_registry): Functions removed.
11210 (free_realized_multibyte_face): New function.
11211 (lookup_face, lookup_named_face, lookup_derived_face): Argument
11212 changed. Caller changed.
11213 (try_font_list): Argument type changed.
11214 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
11215 (choose_face_font): Argument changed. Handle fontset properly.
11216 (choose_face_fontset_font): Function removed.
11217 (realize_default_face, realize_named_face): Don't remove the
11218 former face here.
11219 (realize_face): Argument changed. Caller changed. Remove face
11220 with the arg former_face_id in advance. Load font for the new face.
11221 (realize_x_face): Argument changed. Caller changed. For a
11222 multibyte character, share fontset with base_face. For a single
11223 byte character, make a new realized fontset. Don't load a font here.
11224 (realize_tty_face): Argument changed. Caller changed.
11225 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
11226 (face_at_buffer_position): Don't check multibyte_p for returning
11227 DEFAULT_FACE_ID.
11228 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
11229 FACE_SUITABLE_FOR_CHARSET_P.
11230 (syms_of_xfaces): Remove code for Qx_charset_registry and
11231 Vface_default_registry.
11232
11233 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11234 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11235 (x_per_char_metric): Don't try FONT->default_char. Even if
11236 pcm->width is zero, glyph bits may exist.
11237 (x_encode_char): Always initialize char2b->byte1.
11238 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11239 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11240 (x_append_glyph): Set glyph->glyph_not_available_p.
11241 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11242 it->charset. Handle the case that per char metric is not
11243 available. If it->multibyte_p is zero and it->c is a multibyte
11244 character, convert it to a unibyte character.
11245 (struct glyph_string): Delete member `charset'.
11246 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11247 the case that per char metric is not available correctly.
11248 (x_fill_glyph_string): Handle the case that the specific glyph is
11249 not available correctly.
11250 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11251 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11252 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11253 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11254 fontset. Don't call FS_LOAD_FONT.
11255
11256 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11257 (x_create_tip_frame): Likewise.
11258 (Fx_close_connection): Free full_name of font_info.
11259
11260 * fns.c (optimize_sub_char_table): New function.
11261 (Foptimize_char_table): New function.
11262 (syms_of_fns): Defsubr Soptimize_char_table.
11263
11264 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11265
11266 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11267 only if buffer is displayed in some window.
11268
11269 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11270 (try_window_reusing_current_matrix): Don't call scroll run
11271 function if run's current and desired position are the same;
11272 this prevents cursor flickering.
11273
11274 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11275
11276 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11277
11278 * regex.c (RE_STRING_CHAR): New macro.
11279 (GET_CHAR_AFER_2): Remove.
11280 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11281 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11282 (print_partial_compiled_pattern, re_compile_fastmap)
11283 (re_match_2_internal): Remove on_failure_jump_exclusive.
11284 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11285 optimization only need to work for * (ie. can use of_keep_string_jump).
11286 Remove the special case for .*\n since it is now covered by the general
11287 optimization.
11288 (re_search_2): Don't bother with `room'.
11289 (skip_one_char): New function.
11290 (skip_noops): Simplify since `memory' is not needed any more.
11291 (mutually_exclusive_p): Restructure slightly to use `switch' and
11292 add handling for "all" remaining cases.
11293 (re_match_2_internal): Change on_failure_jump_smart to use
11294 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11295 rather than on_failure_jump_exclusive.
11296
11297 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11298
11299 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11300 number of bits per RGB because it's everywhere used as the depth
11301 of the visual.
11302
11303 * term.c (calculate_costs): Remove code dealing with X frames.
11304
11305 2000-03-19 Richard M. Stallman <rms@gnu.org>
11306
11307 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11308
11309 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11310
11311 * lread.c (read_integer): Unread the last char not consumed.
11312
11313 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11314
11315 * xterm.c (x_update_window_cursor): Don't update in frames
11316 which are in the process of being deleted.
11317
11318 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11319
11320 * Makefile.in (mostlyclean): Add `*.core'.
11321 (clean): Add `bootstrap-emacs'.
11322
11323 * lread.c (read_integer): New function.
11324 (read1): Support read syntax #o, #x, #b, #r.
11325
11326 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11327
11328 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11329 make sure POINTER_TO_OFFSET gives the same value before and after
11330 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11331 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11332 (debug): Now only active if > 0 rather than if != 0.
11333 (DEBUG_*): Update for the new meaning of `debug'.
11334 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11335 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11336 in `succeed_n', `jump_n' and `set_number_at'.
11337 (store_op1, store_op2, insert_op1, insert_op2)
11338 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11339 (group_in_compile_stack): Move to after its arg's types are
11340 declared and add a prototype.
11341 (PATFETCH): Define in terms of PATFETCH_RAW.
11342 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11343 (QUIT): Redefine as a nop except for NTemacs.
11344 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11345 indentation of the greedy-op and shy-group code.
11346 (at_(beg|end)line_loc_p): Fix argument's types.
11347 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11348 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11349 (MATCHING_IN_FIRST_STRING): Remove.
11350 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11351 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11352 QUIT unconditionally.
11353
11354 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11355
11356 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11357 a sole completion.
11358
11359 * process.c (send_process): Add a hint that the function
11360 can call Lisp code to its comment.
11361
11362 * lread.c (load_dangerous_libraries): New variable.
11363 (Vbytecomp_version_regexp): New variable.
11364 (safe_to_load_p): New function.
11365 (Fload): Handle files not compiled with Emacs specially.
11366 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11367
11368 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11369
11370 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11371
11372 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11373 support functions only if HAVE_X11R6_XIM is defined.
11374 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11375
11376 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11377
11378 * xfns.c (X_I18N_INHIBITED): Don't define.
11379 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11380 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11381
11382 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11383 (HAVE_X11R6_XIM): Define.
11384
11385 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11386
11387 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11388 If set, call XSynchronize.
11389
11390 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11391
11392 * regex.c: Declare a new type `re_char' used throughout the code
11393 for the string char type. It's `const unsigned char' to match the
11394 rest of Emacs. Consistently make sure all pointers to strings use
11395 it and make sure all pointers into the pattern use `unsigned char'.
11396 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11397 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11398 code duplication.
11399
11400 * charset.h (GET_CHAR_AFTER_2): Remove.
11401 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11402
11403 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11404
11405 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11406 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11407 of them try to use backquotes.
11408
11409 2000-03-12 Dave Love <fx@gnu.org>
11410
11411 * unexelf.c: Restore changes of 1999-10-19.
11412 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11413 fix its type and alignment; copy it from current process.
11414
11415 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11416
11417 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11418 has been found. Fix bug not computing timer's predecessor.
11419
11420 * fileio.c (Fread_file_name): Handle case that DIR contains a
11421 file name.
11422
11423 * window.c (Fsave_window_excursion): Doc fix.
11424
11425 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11426
11427 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11428
11429 * msdos.c (vga_installed): New function, code moved from
11430 dos_set_window_size.
11431 (Qbar, Qcursor_type, outside_cursor): New variables.
11432 (syms_of_msdos): Intern and staticpro them.
11433 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11434 shape used outside Emacs when called for the first time.
11435 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11436 cursor shape used outside Emacs.
11437 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11438 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11439 type has changed.
11440 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11441 parameters specify the cursor. Make qreverse a global
11442 variable (renamed to Qreverse).
11443
11444 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11445
11446 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11447
11448 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11449
11450 This is a big redesign of failure-stack and register handling, prompted
11451 by bugs revealed when trying to add shy-groups. Overall, what happened
11452 is that loops are now structured a little differently, groups can be
11453 shy and the code is a little simpler.
11454
11455 * regex.h: Update the copyright.
11456 (RE_SHY_GROUPS): New value.
11457 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11458 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11459
11460 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11461 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11462 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11463 for (start|stop)_memory since they now only take one argument (the
11464 second has becomes unnecessary).
11465 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11466 (print_compiled_pattern): Use %ld to printf long ints and flush to
11467 make debugging a little easier.
11468 (union fail_stack_elt): Make the integer unsigned.
11469 (struct fail_stack_type): Add a `frame' element.
11470 (INIT_FAIL_STACK): Init `frame' as well.
11471 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11472 (DEBUG_PUSH, DEBUG_POP): Remove.
11473 (NUM_REG_ITEMS): Remove.
11474 (NUM_NONREG_ITEMS): Adjust.
11475 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11476 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11477 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11478 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11479 New macros.
11480 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11481 address pushed is not the destination of the jump but the source
11482 of it instead.
11483 (NUM_FAILURE_ITEMS): Remove.
11484 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11485 registers before the actual failure point). Don't hardcode any
11486 meaning for str==NULL anymore.
11487 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11488 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11489 Remove.
11490 (REG_UNSET_VALUE): Use NULL (why not?).
11491 (compile_range): Remove declaration since it doesn't exist.
11492 (struct compile_stack_elt_t): Remove inner_group_offset.
11493 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11494 (regex_grow_registers): Remove dead code.
11495 (FIXUP_ALT_JUMP): New macro.
11496 (regex_compile): Add shy-groups Change loops to use
11497 on_failure_jump_smart&jump instead of
11498 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11499 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11500 variable to me). Use `jump' instead of `jump_past_alt' and don't
11501 bother with push_dummy_failure in alternatives since it is now
11502 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11503 emacs' for (re)allocating the stack.
11504 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11505 from loop when bufp->can_be_null rather than jumping to `done'.
11506 Avoid jumping backwards so as to ensure termination. Use
11507 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11508 backreferences. Remove dead code in handling of `anychar'.
11509 (skip_noops, mutually_exclusive_p): New functions taken from the
11510 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11511 improve mutually_exclusive_p to handle ".+\n".
11512 (lowest_active_reg, highest_active_reg)
11513 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11514 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11515 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11516 variables. Push register (in `start_memory') on the stack rather
11517 than storing it in old_reg(start|end). Remove the cycle detection
11518 from `stop_memory', replaced by the use of on_failure_jump_loop
11519 for greedy loops. Add code for the new on_failure_jump_<foo>.
11520 Remove ad-hoc code in `on_failure_jump' to push more registers in
11521 the case of a loop. Take out code from `maybe_pop_jump' into
11522 separate functions and adapt it to the semantics of
11523 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11524 and push_dummy_failure. Remove dummy_failure handling and
11525 handling of `failures to jump to on_failure_jump' (this last one
11526 was already dead code, it seems).
11527 (group_match_null_string_p, alt_match_null_string_p)
11528 (common_op_match_null_string_p): Remove.
11529
11530 2000-03-08 Dave Love <fx@gnu.org>
11531
11532 * config.in: Don't depend on __STDC__ for volatile.
11533 Add POINTER_TYPE, PTR, PROTOTYPES.
11534
11535 * hftctl.c, strftime.c: Use PROTOTYPES.
11536 * eval.c (find_handler_clause): Likewise.
11537
11538 * mem-limits.h: Use POINTER_TYPE.
11539
11540 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11541 (memory_warnings): Declare using POINTER_TYPE.
11542
11543 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11544
11545 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11546
11547 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11548
11549 * xfns.c: Remove obsolete code in #if 0.
11550 (Fx_focus_frame): New function.
11551
11552 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11553
11554 * coding.c (coding_category_name): Add coding-category-utf-8,
11555 coding-category-utf-16-be, coding-category-utf-16-le.
11556 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11557 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11558 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11559 (detect_coding_utf_8): New function.
11560 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11561 UTF_16_LOW_SURROGATE_P): New macros.
11562 (detect_coding_utf_16): New function
11563 (detect_coding_mask): When priorities are specified, skip any
11564 categories that have `nil' coding-system. Fix bug of returning
11565 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11566 returns a mask not set in PRIORITIES.
11567 (detect_eol_type_in_2_octet_form): New function.
11568 (detect_eol): selects detect_eol_type_XXX to call according to
11569 cooding->category_idx.
11570 (detect_coding_system): Remove `nil' coding-system in the result.
11571 (Fupdate_coding_systems_internal): Update all coding-categories.
11572
11573 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11574 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11575 New macros.
11576 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11577 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11578 (CODING_CATEGORY_IDX_UTF_16_LE)
11579 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11580 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11581 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11582 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11583
11584 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11585
11586 * doc.c (Fdocumentation_property): If value is not a string,
11587 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11588
11589 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11590 close the display with XtCloseDisplay. This caused a bus error
11591 on OpenWindows.
11592
11593 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11594 complete but not unique.
11595
11596 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11597
11598 * process.c (send_process): Remove local variable `procname' that
11599 might become invalid when a GC happens. Instead, access the
11600 process name slot directly.
11601
11602 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11603 orig_height if set.
11604
11605 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11606 orig_height if set.
11607
11608 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11609
11610 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11611 glyph matrices have been freed.
11612
11613 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11614
11615 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11616 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11617
11618 * xfns.c (QCdata): Moved to xdisp.c.
11619
11620 * xdisp.c (QCdata): Moved here from xfns.c.
11621 (syms_of_xdisp): Initialize QCdata.
11622
11623 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11624
11625 * window.c (coordinates_in_window): Use
11626 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11627 FRAME_INTERNAL_BORDER_WIDTH.
11628
11629 * xdisp.c (try_window_id): Recompute unchanged information if
11630 it is obviously invalid.
11631
11632 * xterm.c (x_term_init): Create a colormap if not using the
11633 default visual.
11634
11635 * xterm.h (select_visual): Change prototype.
11636
11637 * xfns.c (select_visual): Rewritten. Recognize user-specified
11638 visual classes.
11639 (visual_classes): New variable.
11640
11641 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11642
11643 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11644 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11645 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11646 (x_decode_color): Don't handle allocation of white and black specially.
11647 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11648 XtNcolormap resources.
11649 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11650 (Fx_create_frame): Initialize color members of x_output structure.
11651 (xpm_load): Pass colormap to XPM lib.
11652
11653 * xfaces.c (x_free_colors): Access colormap of frame using
11654 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11655 when default colormap is used.
11656
11657 * xterm.c (x_term_init): Set Colormap member of x_display_info
11658 structure. Copy colormap if resource `privateColormap' is
11659 specified (PseudoColor only).
11660 (x_setup_relief_color): Access colormap of frame using
11661 FRAME_X_COLORMAP.
11662
11663 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11664 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11665
11666 2000-03-04 Jason Rumney <jasonr@gnu.org>
11667
11668 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11669 other non-platform-specific equivalents.
11670 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11671 specific functions and macros as their w32 equivalents where
11672 non-platform-specifics are not available.
11673 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11674 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11675 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11676 (frame_update_line_height): Use macros to access f->output_data.
11677 (defined_color): Remove FIXME comments; fixed.
11678 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11679 into #ifdef blocks. Add WINDOWSNT blocks.
11680 (Fx_list_fonts): Use macros for accessing font data.
11681 (set_lface_from_font_name): Different default fonts for X and
11682 WINDOWSNT.
11683 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11684 scalable for backward compatibility.
11685 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11686 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11687
11688 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11689 syms_of_w32faces.
11690
11691 * makefile.nt (w32faces.obj): Remove.
11692 (xfaces.obj): Add.
11693
11694 2000-03-03 Jason Rumney <jasonr@gnu.org>
11695
11696 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11697 correct parameters.
11698
11699 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11700
11701 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11702 standard ELF definitions here if the system header does not.
11703
11704 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11705
11706 * xterm.c (PER_CHAR_METRIC): Removed.
11707 (x_per_char_metric_1, x_default_char): New functions.
11708 (x_per_char_metric): If font's default char is invalid, return
11709 metrics of a suitably chosen usable default char.
11710 (x_draw_glyph_string_foreground): If font has an invalid default
11711 char, replace occurrences of unprintable chars with a suitably
11712 chosen usable default char.
11713
11714 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11715
11716 * xterm.c (note_mouse_highlight): Return quickly if frame's
11717 glyph matrices have been freed.
11718
11719 * dispnew.c (free_glyphs): Block input while freeing matrices.
11720
11721 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11722
11723 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11724 Use x_free_colors.
11725
11726 * dispextern.h (x_free_colors): Add prototype.
11727
11728 * xfaces.c (x_free_colors): New function.
11729 (unload_color, free_face_colors): Use it.
11730
11731 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11732
11733 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11734
11735 * window.c [MSDOS]: Include msdos.h.
11736
11737 2000-03-02 Dave Love <fx@gnu.org>
11738
11739 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
11740
11741 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
11742 set C_OPTIMIZE_SWITCH for gcc.
11743
11744 2000-03-02 Kenichi Handa <handa@etl.go.jp>
11745
11746 * coding.c (coding_save_composition): Be sure to allocate
11747 composition data area in coding even if there's no composition in
11748 the current run.
11749
11750 2000-03-01 Jason Rumney <jasonr@gnu.org>
11751
11752 * w32term.c: Equivalent changes to those made to xterm.c on
11753 2000-02-25 and 2000-02-24.
11754
11755 * w32fns.c: Equivalent changes to those made to xfns.c on
11756 2000-02-25 and 2000-02-21.
11757
11758 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
11759 correct line-end convention is followed.
11760
11761 * w32menu.c [HAVE_BOXES]: Remove #undef.
11762 (single_keymap_panes): Remove code for simulating checkmarks.
11763 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
11764 Remove code for drawing simulated checkmarks.
11765 (w32_menu_show): make unibyte help string correctly.
11766 (add_menu_item): draw standard Windows checkmarks. Draw radio
11767 buttons as radio buttons if possible.
11768
11769 2000-03-01 Gerd Moellmann <gerd@gnu.org>
11770
11771 * sysdep.c (start_of_text): Don't define this function for NetBSD
11772 with ELF.
11773
11774 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
11775 Don't define.
11776 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
11777 (LINKER): Don't undef if __NetBSD__ is defined.
11778
11779 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
11780
11781 * fileio.c [__NetBSD__]: Define `unix'.
11782
11783 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
11784
11785 2000-02-29 Gerd Moellmann <gerd@gnu.org>
11786
11787 * atimer.c (start_atimer): Don't abort when timers are stopped.
11788 (append_atimer_lists): New function.
11789 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
11790 arbitrary lists of stopped and running atimers.
11791
11792 * atimer.c (cancel_atimer): Handle canceling an atimer when
11793 some timers are stopped.
11794
11795 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
11796 after canceling it.
11797
11798 * fns.c (maybe_resize_hash_table): Handle case of new size
11799 coming out as being the same as old size.
11800
11801 2000-02-27 Jason Rumney <jasonr@gnu.org>
11802
11803 * makefile.nt: Add atimer.h to dependencies.
11804 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
11805 * w32console.c: Only disable window system features for dispextern.h
11806 (initialize_w32_display): Build a display info for the console.
11807 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
11808 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
11809 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
11810 as 2 button mice.
11811 * w32gui.h (struct W32FontStruct): Revert last change after change
11812 to xdisp.c.
11813 * w32menu.c (single_submenu): Set up help string.
11814 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
11815 (w32_dialog_show): Set up help string.
11816 * w32term.c (w32_display_info_for_display): Remove unused function.
11817 (w32_draw_bitmap): Use pre-built bitmaps.
11818 (w32_initialize_display_info): New function to initialize parts of
11819 display info that are common to both GUI and console frames.
11820 (w32_term_init): Use w32_initialize_display_info. Do not set
11821 Vw32_num_mouse_buttons here, as it is not called for console
11822 frames. Build bitmaps for indicating truncated lines etc.
11823 (x_delete_display): Destroy pre-built bitmaps.
11824 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
11825 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
11826
11827 2000-02-27 Dave Love <fx@gnu.org>
11828
11829 * lisp.h: Add a bunch of prototypes.
11830
11831 2000-02-26 Kenichi Handa <handa@etl.go.jp>
11832
11833 * keyboard.c (read_char): Set `usec' correctly.
11834
11835 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11836
11837 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
11838 `lambda', set reg[RRR] to the map index.
11839 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
11840 reg[RRR] to 0. Otherwise, set it to -1.
11841
11842 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11843
11844 * emacs.c (main): Remove code snippet commented out with `//'.
11845
11846 2000-02-25 Richard M. Stallman <rms@gnu.org>
11847
11848 * fileio.c (Ffile_symlink_p): If result starts with a `/'
11849 and contains a `:', prepend `/:'.
11850
11851 * window.c (select_window_1): If selected_window is nil,
11852 don't "swap out" the buffer's point.
11853 (Fset_window_configuration): Set selected_window to nil
11854 before calling Fselect_window.
11855 (unshow_buffer): Don't set point in buffer from window's point
11856 if another more recently selected window also shows the buffer.
11857
11858 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11859
11860 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
11861
11862 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
11863 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
11864 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
11865 New variables.
11866 (DEFAULT_BUSY_CURSOR_DELAY): New define.
11867 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
11868 (hide_busy_cursor): New functions.
11869 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
11870
11871 * minibuf.c (read_minibuf): Cancel busy-cursor.
11872
11873 * keyboard.c (command_loop_1): Call start_busy_cursor before
11874 Fcommand_execute and cancel_busy_cursor after it.
11875 (timer_check): Remove busy-cursor code.
11876 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
11877 cursor timer.
11878
11879 * process.c (wait_reading_process_input): Remove busy-cursor code.
11880
11881 * eval.c (Fsignal): Call cancel_busy_cursor instead of
11882 Fx_hide_busy_cursor.
11883
11884 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
11885 Remove prototyoes.
11886 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
11887
11888 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
11889
11890 * xterm.c (XTread_socket): Remove busy-cursor code.
11891
11892 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
11893 (build_frame_matrix_from_leaf_window): Put code handling
11894 glyph row's not being a slice of a frame row in #if 0.
11895 (sync_window_with_frame_matrix_rows): New function.
11896 (frame_row_to_window): New function.
11897 (mirror_line_dance): Handle copies between windows.
11898
11899 * lread.c (Fload): Use `xfree' instead of `free'.
11900 (init_obarray): Use `xmalloc' instead of `malloc'.
11901
11902 * window.c (Fset_window_buffer): Set WINDOW to the window
11903 after decoding.
11904 (coordinates_in_window): Take frame's internal border width
11905 into account.
11906
11907 2000-02-24 Gerd Moellmann <gerd@gnu.org>
11908
11909 * xterm.c (x_display_and_set_cursor): Display cursor of
11910 non-selected windows depending on the setting of
11911 cursor_in_non_selected_windows.
11912
11913 * xdisp.c (cursor_in_non_selected_windows): New variable.
11914 (syms_of_xdisp): DEFVAR_BOOL it.
11915
11916 2000-02-23 Gerd Moellmann <gerd@gnu.org>
11917
11918 * data.c (Fstring_to_number): If number is greater than what
11919 fits into an integer, return a float.
11920
11921 * eval.c (specbind): Remove references to
11922 keyword_symbols_constant_flag.
11923
11924 * data.c (keyword_symbols_constant_flag): Removed.
11925 (Fmakunbound, set_internal, syms_of_data): Remove references to
11926 keyword_symbols_constant_flag.
11927
11928 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
11929
11930 2000-02-23 Kenichi Handa <handa@etl.go.jp>
11931
11932 * syntax.c (multibyte_syntax_as_symbol): New variable.
11933 (syms_of_syntax): Declare it as a Lisp variable.
11934 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
11935 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
11936 nonzero, treat all multibyte characters as symbol.
11937 (init_syntax_once): Give syntax `word' to all multibyte characters.
11938
11939 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
11940
11941 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
11942 a deleted frame.
11943
11944 2000-02-21 Gerd Moellmann <gerd@gnu.org>
11945
11946 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
11947
11948 * xfns.c (x_window_to_frame, x_any_window_to_frame)
11949 (x_non_menubar_window_to_frame): Check the busy-cursor window.
11950
11951 2000-02-21 Dave Love <fx@gnu.org>
11952
11953 * frame.c (Vmouse_position_function): New variable.
11954 (Fmouse_position): Use it.
11955 (syms_of_frame): Install it.
11956
11957 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
11958
11959 2000-02-20 Gerd Moellmann <gerd@gnu.org>
11960
11961 * fileio.c (Finsert_file_contents): Unbind the binding of
11962 standard-output done by temp_output_buffer_setup.
11963
11964 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
11965 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
11966 (specbind, unbind_to): Handle most common case of non-constant
11967 symbol with trivial value specially.
11968
11969 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
11970
11971 2000-02-20 Richard M. Stallman <rms@gnu.org>
11972
11973 * data.c (Fmake_variable_buffer_local): Doc fix.
11974 Init found_for_buffer to 0.
11975 (Fmake_variable_frame_local): If the variable has already
11976 been buffer-local, set the check_frame field.
11977
11978 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
11979
11980 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
11981 produced for CODING_MODE_LAST_BLOCK requires.
11982
11983 2000-02-18 Dave Love <fx@gnu.org>
11984
11985 * keyboard.c (echo_keystrokes): Remove declaration.
11986 (Vecho_keystrokes) New variable.
11987 (read_char, record_menu_key, read_key_sequence): Use it to allow
11988 use of float value.
11989 (syms_of_keyboard): Change Vecho_keystrokes declaration.
11990
11991 * lread.c: Undef feature selection macros before defining.
11992
11993 2000-02-18 Gerd Moellmann <gerd@gnu.org>
11994
11995 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
11996 for symbols other than the symbol in question.
11997
11998 2000-02-17 Dave Love <fx@gnu.org>
11999
12000 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12001
12002 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12003
12004 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12005
12006 * alloc.c (enum mem_type): Compile unconditionally.
12007
12008 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12009
12010 * xfaces.c (tty_defined_color): Don't return faulire indication
12011 for unspecified-fg and unspecified-bg pseudo-colors.
12012
12013 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12014
12015 * alloc.c (mark_object): Don't mark symbol names in pure space.
12016 (gc_sweep): Don't unmark symbol names in pure space.
12017
12018 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12019 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12020 [GC_MARK_STACK]: New defines.
12021 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12022 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12023
12024 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12025
12026 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12027 allocate_buffer instead of xmalloc.
12028
12029 * alloc.c (toplevel): Include setjmp.h.
12030 (PURE_POINTER_P): New define.
12031 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12032 (Vdead) [GC_MARK_STACK]: New variable.
12033 (lisp_malloc): Add parameter TYPE, call mem_insert if
12034 GC_MARK_STACK is defined.
12035 (allocate_buffer): New function.
12036 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12037 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12038 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12039 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12040 (MEM_NIL) [GC_MARK_STACK]: New define.
12041 (struct mem_node) [GC_MARK_STACK]: New structure.
12042 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12043 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12044 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12045 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12046 (mark_stack) [GC_MARK_STACK]: New functions.
12047 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12048 (clear_marks): Removed.
12049 (gc_sweep): Set free conses' car, free floats' type, free
12050 symbols' function to Vdead. Use lisp_free to free buffers.
12051 (init_alloc_once): Initialize Vdead.
12052 (survives_gc_p): Return non-zero for pure objects.
12053
12054 * alloc.c: Add comments throughout the file.
12055
12056 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12057 that unblocks alarms.
12058
12059 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12060 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12061 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12062
12063 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12064
12065 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12066
12067 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12068 avoid infinite error signaling. Allocate sufficient memory for
12069 eol_str in the case that eoltype is Lisp_Int.
12070
12071 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12072
12073 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12074 depends on the previous behavior.
12075
12076 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12077
12078 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12079
12080 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12081
12082 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12083
12084 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12085 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12086 write(2).
12087
12088 2000-02-15 Richard M. Stallman <rms@gnu.org>
12089
12090 * data.c (set_internal): Don't make variable buffer-local
12091 if within a let-binding for the same buffer.
12092 (let_shadows_buffer_binding_p): New function.
12093
12094 * eval.c (specbind): For buffer-local value,
12095 record the current buffer also.
12096 (unbind_to): Cope with that change.
12097
12098 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12099
12100 * window.c (Fsave_window_excursion): Doc fix.
12101
12102 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12103
12104 * syntax.c (back_comment): Make sure we only consider comment-starters
12105 of the relevant style and return -1 in case of a failure to find the
12106 beginning of the comment.
12107 (Fforward_comment): If back_comment fails, go back to the position just
12108 after the comment-end.
12109 (scan_lists): Add comment describing a very minor bug.
12110
12111 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12112
12113 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12114 `completion-regexp-list' in the docstring.
12115
12116 2000-02-14 Dave Love <fx@gnu.org>
12117
12118 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12119
12120 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12121
12122 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12123 to Emacs' syntax. Also fix the comment about set/not-set meanings
12124 since Emacs syntax is not the value 0 any more.
12125 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12126 since it's now part of RE_SYNTAX_EMACS.
12127
12128 2000-02-12 Dave Love <fx@gnu.org>
12129
12130 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12131
12132 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12133
12134 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12135
12136 2000-02-12 Dave Love <fx@gnu.org>
12137
12138 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12139
12140 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12141 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12142 * s/hpux.h: Don't define HAVE_VFORK.
12143
12144 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12145
12146 * s/nextstep.h: Don't define HAVE_ALLOCA.
12147
12148 * config.in: Add vfork bits.
12149
12150 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12151
12152 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12153 unwind function to undo the effect of stopping atimers.
12154
12155 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12156
12157 * atimer.c (stopped_atimers): New variable.
12158 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12159 New functions.
12160
12161 * atimer.h (stop_other_atimers, run_all_atimers)
12162 (unwind_stop_other_atimers): Add function prototypes.
12163
12164 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12165
12166 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12167
12168 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12169 library may depend on jpeg.
12170 (atimer.o): Depends on atimer.c.
12171
12172 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12173
12174 * insdel.c (del_range_1): Call update_compositions.
12175 (del_range_both): Call update_compositions just once..
12176
12177 2000-02-10 Dave Love <fx@gnu.org>
12178
12179 * xfns.c (create_frame_xic): Fix initialization of automatic
12180 aggregates for pcc.
12181
12182 2000-02-09 Kenichi Handa <handa@etl.go.jp>
12183
12184 * ccl.c (CCL_MAKE_CHAR): New macro.
12185 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
12186 registers by CCL_MAKE_CHAR before calling translate_char.
12187 <CCL_TranslateCharacterConstTbl> Likewise.
12188
12189 2000-02-08 Dave Love <fx@gnu.org>
12190
12191 * lread.c (__EXTENSIONS__): Define.
12192
12193 2000-02-08 Gerd Moellmann <gerd@gnu.org>
12194
12195 * puresize.h (BASE_PURESIZE): Increase to 650000.
12196
12197 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12198
12199 * msdos.c (XMenuActivate): Turn off the cursor after displaying
12200 the help message.
12201
12202 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12203
12204 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
12205 md, mh, mb, mr, and me to the fake termcap entry.
12206
12207 2000-02-06 Ken Raeburn <raeburn@gnu.org>
12208
12209 * sound.c (sound_cleanup): Don't call device close routine if the
12210 function pointer is null.
12211
12212 2000-02-06 Andrew Innes <andrewi@gnu.org>
12213
12214 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
12215 around image definitions and prototypes.
12216 (gamma_correct) [WINDOWSNT]: New prototype.
12217
12218 * w32term.c (x_make_frame_visible): Replace call to
12219 input_poll_signal with poll_for_input.
12220
12221 * window.c [WINDOWSNT]: Include w32term.h.
12222
12223 * xdisp.c [WINDOWSNT]: Include w32term.h.
12224
12225 * makefile.nt: Add dependencies on w32gui.h.
12226 (OBJ1): Include atimer.obj.
12227 ($(BLD)\atimer.obj): New dependency rule.
12228
12229 * w32.c (sigmask): New function (does nothing).
12230 (sigunblock): Ditto.
12231
12232 * frame.c [WINDOWSNT]: Include w32term.h.
12233
12234 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12235
12236 * lread.c (syms_of_lread): Fix literal newlines.
12237
12238 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12239 the string constant limit (2048 bytes) in MSVC.
12240 (main): Ditto.
12241
12242 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12243
12244 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12245 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12246 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12247 dispatch the event.
12248
12249 2000-02-04 Dave Love <fx@gnu.org>
12250
12251 * fileio.c: Remove some unused vars.
12252 (_GNU_SOURCE): Define (for euidaccess).
12253
12254 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12255
12256 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12257 gcpro1, gcpro2.
12258 (read_minibuf): Deal with allow_props correctly.
12259
12260 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12261
12262 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12263
12264 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12265
12266 * search.c (compile_pattern): If a cache entry has a nil regexp,
12267 fill in that entry instead of clobbering a previously cached
12268 string regexp.
12269
12270 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12271
12272 * puresize.h (BASE_PURESIZE): Increase to 610000.
12273
12274 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12275
12276 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12277 can GC.
12278
12279 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12280
12281 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12282 instead of incrementing ic directly.
12283 <CCL_WriteExprConst> Likewise.
12284 <ccl_set_expr>: Set ic to jump_address.
12285
12286 * fileio.c (e_write): Fix the handling of
12287 CODING_FINISH_INSUFFICIENT_SRC.
12288
12289 2000-02-01 Dave Love <fx@gnu.org>
12290
12291 * editfns.c (Fpropertize): Doc fix.
12292
12293 * process.c (Fstart_process): Doc fix.
12294
12295 * eval.c: Fix various doc strings not to duplicate information
12296 from help-manyarg-func-alist.
12297
12298 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12299
12300 * doc.c (Vhelp_manyarg_func_alist): New variable.
12301 (Fdocumentation): Use it.
12302 (syms_of_doc): Define it.
12303
12304 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12305
12306 * xterm.c (xim_open_dpy): Remove unused local variable.
12307
12308 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12309
12310 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12311 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12312
12313 * fns.c (sweep_weak_table): New function.
12314 (sweep_weak_hash_tables): Use it. Keep on marking until there
12315 is no more change.
12316
12317 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12318
12319 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12320 that XTread_socket does not crash by trying to call XNoOp on a
12321 closed display.
12322
12323 2000-01-30 Jason Rumney <jasonr@gnu.org>
12324
12325 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12326 Change selected_frame to SELECTED_FRAME ().
12327 (w32_console_mouse_position): Remove #ifndef MULE from around
12328 `insist' parameter.
12329
12330 * makefile.nt: Remove dosfns.obj.
12331
12332 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12333
12334 * w32fns.c (w32_defined_color): Check for valid frame before
12335 applying gamma correction. Eliminate dependency on frame elsewhere.
12336 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12337 (w32_to_x_font): Use resx and resy not height_in and width_in.
12338 (x_to_w32_font): Doc fix.
12339 (xlfd_strip_height): New function to strip and return font height.
12340 (w32_font_match): Compare height separately from rest of xlfd
12341 spec, using xlfd_strip_height.
12342
12343 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12344 width_in. Use w32_defined_color in place of defined_color.
12345
12346 * w32faces.c: Merge more of DOS and X specifics in preparation for
12347 merge with xfaces.c.
12348 (defined_color): Remove FIXME comment.
12349 (tty_color_name): Provide w32-specific function.
12350 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12351
12352 * w32console.c (turn_on_face, turn_off_face): Removed.
12353 (w32_face_attributes): New function.
12354 (Global_variables): Reduce scope where possible.
12355 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12356 fill attribute.
12357 (hl_mode): Don't modify text attributes.
12358 (write_glyphs): Don't do anything if len <= 0. Use
12359 w32_face_attributes to get attributes for drawing. Write
12360 terminating codes using char_attr_normal.
12361 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12362 (update_begin, update_end): Likewise.
12363 (vga_stdcolor_name): New function.
12364 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12365 (Fset_screen_color): Remove char_attr_reverse.
12366
12367 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12368
12369 * xfns.c (xic_set_preeditarea): Take window parameter and
12370 window-relative pixel-positions.
12371
12372 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12373 is its frame's selected window.
12374 (xim_instantiate_callback): Likewise.
12375
12376 * xfns.c (x_create_im): Removed.
12377 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12378 (supported_xim_styles): Renamed from supported_styles.
12379 (best_xim_style): Renamed from best_style.
12380 (create_frame_xic): Renamed from xic_create_frame.
12381 (free_frame_xic): Renamed from xic_destroy_frame.
12382
12383 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12384
12385 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12386 our frames, call XFilterEvent with 2nd parameter `None'.
12387 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12388 returning XBufferOverflow.
12389 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12390 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12391 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12392 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12393 (xim_initialize, xim_close)
12394 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12395 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12396 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12397 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12398
12399 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12400 and `xim_styles'.
12401 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12402 `xic_style' and `xic_xfs'.
12403 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12404 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12405 (FRAME_XIM): Removed.
12406
12407 * xfns.c (supported_styles): New variable.
12408 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12409 (xic_create_xfontset, best_style, xic_create_frame)
12410 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12411 (xic_set_xfontset): New functions.
12412
12413 2000-01-28 Dave Love <fx@gnu.org>
12414
12415 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12416
12417 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12418
12419 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12420
12421 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12422 for *scratch* if it already existed.
12423
12424 * emacs.c (USAGE): New macro.
12425 (main): Use it to display usage information.
12426
12427 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12428
12429 Support for the menu-help feature:
12430
12431 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12432
12433 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12434 part of the line to the termscript file.
12435 (IT_clear_to_end): Clear the entire line, not just its beginning.
12436 (menu_help_message, prev_menu_help_message): New variables.
12437 (IT_menu_make_room): Make room for the help_text member.
12438 (IT_menu_display): New argument disp_help; all callers changed.
12439 If disp_help is non-zero, store the help text of the active menu
12440 item in menu_help_message.
12441 (XMenuAddPane): Initialize the help_text member to NULL.
12442 (XMenuAddSelection): New argument help_text. Store it in the
12443 XMenu structure.
12444 (XMenuActivate): New argument help_callback. If the value of
12445 menu_help_message has changed since the last time, display the
12446 menu help message text while waiting for the mouse to move. Clear
12447 the echo area before exiting.
12448 (XMenuDestroy): Free the help_text member.
12449
12450 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12451
12452 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12453 XMenuAddSelection. Pass help callback to XMenuActivate.
12454 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12455
12456 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12457
12458 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12459 and EMACS_SET_USECS.
12460
12461 2000-01-26 Dave Love <fx@gnu.org>
12462
12463 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12464
12465 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12466 an error may be signalled.
12467
12468 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12469
12470 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12471 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12472
12473 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12474
12475 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12476
12477 * charset.c (Fstring): If there is a multibyte char among
12478 the args, always return a multibyte string.
12479
12480 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12481
12482 * sysdep.c (sys_select): Turn atimers off and on instead of
12483 recording and restoring old alarm handler
12484
12485 * process.c (toplevel): Include atimer.h.
12486 (create_process_1): Rewritten.
12487 (create_process): Use atimers instead of alarm.
12488 (wait_reading_process_input) [hpux]: Turn atimers off instead
12489 of turning off SIGALRM.
12490 (wait_reading_process_input): Turn off atimers instead off
12491 calling stop_polling.
12492
12493 * emacs.c (main): Call init_atimer.
12494
12495 * keyboard.c (toplevel): Include systime.h and atimer.h.
12496 (polling_for_input): Removed because unused.
12497 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12498 (poll_timer): New variable.
12499 (poll_for_input, poll_for_input_1): New functions.
12500 (start_polling, stop_polling): Rewritten.
12501
12502 * keyboard.h (polling_for_input): Removed.
12503
12504 * atimer.h, atimer.c: New files.
12505
12506 * Makefile.in (obj): Add atimer.o.
12507 (atimer.o): New target.
12508
12509 * blockinput.h (pending_atimers): Add extern declaration.
12510 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12511
12512 * lisp.h (popup_activated_flag): Add extern declaration.
12513
12514 * xmenu.c (popup_activated_flag): Make externally visible.
12515 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12516 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12517
12518 * xterm.c (toplevel): Include atimer.h.
12519 (toolkit_scroll_bar_interaction): New variable.
12520 (Fxt_process_timeouts): Removed.
12521 (x_process_timeouts): New function.
12522 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12523 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12524 (x_make_frame_visible): Call poll_for_input_1 instead of
12525 input_poll_signal. Don't call alarm.
12526 (x_initialize): Install timer calling x_process_timeouts.
12527
12528 2000-01-24 Dave Love <fx@gnu.org>
12529
12530 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12531 Don't use -cckr -- apparently not now necessary.
12532
12533 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12534
12535 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12536 screen boundary.
12537
12538 2000-01-23 Jason Rumney <jasonr@gnu.org>
12539
12540 * w32fns.c (w32_defined_color): Apply gamma correction before
12541 trying to map to the palette.
12542 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12543 to w32_clear_rect.
12544
12545 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12546 here. Callers changed to always pass real device context.
12547 (w32_draw_bitmap): Likewise.
12548 (w32_get_glyph_overhangs): Likewise.
12549 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12550 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12551 pfnSetScrollInfo and SetScrollRange.
12552 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12553 back into MULE characters after decoding them.
12554 (x_get_glyph_face_and_encoding): Likewise.
12555 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12556 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12557 (x_produce_glyphs): Calculate per char metrics for a character
12558 that we know exists in default font when font_not_found_p is true.
12559
12560 2000-01-22 Jason Rumney <jasonr@gnu.org>
12561
12562 * makefile.nt (intervals.obj, composite.obj): New modules.
12563 (composite.h): Added as dependency where appropriate.
12564
12565 * w32gui.h (XGCValue): New struct for emulating X GCs.
12566
12567 * w32term.h (XCharStruct): New struct for emulating X.
12568
12569 * w32console.c (turn_on_face, turn_off_face): New functions.
12570 (change_line_highlight): New prototype for new redisplay.
12571 (write_glyphs): Support multibyte text. Support faces.
12572
12573 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12574
12575 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12576 throughout. struct frame * in place of FRAME_PTR.
12577 Skeleton support for images, toolbars, tooltips from xfns.c.
12578 (Fx_create_frame): Use system default for default scroll bar width.
12579 (w32_get_arg): Renamed from x_get_arg.
12580 (Fx_file_dialog): New function.
12581 (w32_list_fonts): Check cache before asking system.
12582 (Vw32_enable_synthesized_fonts): New variable.
12583 (Vw32_enable_italics): Obsolete, removed.
12584
12585 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12586 Use SELECTED_FRAME macro.
12587
12588 * w32menu.c: Add skeleton support for help strings on menus.
12589 (add_menu_item): Native checkbox and radio support added, but not
12590 yet enabled due to bugs.
12591 (push_menu_item): Add parameters type, selection and help.
12592 Callers updated.
12593 Formatting changes to reduce unnecessary diffs with xmenu.c.
12594
12595 * w32select.c (Fw32_set_clipboard_data): Update call to
12596 find_charset_in_str.
12597
12598 * w32term.c: Complete rewrite for new redisplay based on new
12599 xterm.c with necessary sections merged back in from old w32term.c.
12600
12601 2000-01-21 Richard M. Stallman <rms@gnu.org>
12602
12603 * data.c (set_internal): Further fix in same criterion.
12604
12605 2000-01-20 Richard M. Stallman <rms@gnu.org>
12606
12607 * data.c (set_internal): Fix the criteria for whether
12608 to swap out the old cached binding.
12609
12610 2000-01-19 Dave Love <fx@gnu.org>
12611
12612 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12613
12614 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12615
12616 * regex.c (re_compile_fastmap): While checking a range table for
12617 `charset', skip flag bits for a character class correctly.
12618
12619 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12620
12621 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12622
12623 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12624
12625 * widget.c (EmacsFrameSetCharSize): Change size of children first
12626 because of problems with main window geometry management under Lesstif.
12627
12628 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12629 MENU_ITEMS_ITEM_.*.
12630 (MENU_ITEMS_ITEM_HELP): New enumerator.
12631 (push_menu_item): Add parameter HELP. Record help in menu_items.
12632 (single_menu_item, single_submenu, list_of_items): Call
12633 push_menu_item with new parameter.
12634 (single_submenu): Set help string in widget value.
12635 (menu_highlight_callback): New function.
12636 (set_frame_menubar): Call lw_create_widget with new
12637 parameter list.
12638 (xmenu_show, xdialog_show): Ditto.
12639
12640 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12641
12642 * sound.c (Fplay_sound): Improve doc string.
12643
12644 2000-01-11 Richard M. Stallman <rms@gnu.org>
12645
12646 * lisp.h (set_internal): Enter the new arg.
12647
12648 * eval.c (specbind): Record buffer-local variables specially,
12649 indicating which buffer's binding was saved.
12650 (unbind_to): Restore buffer-local variables specially
12651 in the proper buffer.
12652
12653 * data.c (set_internal): New arg BUF.
12654
12655 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12656 * data.c (Fset): Pass new arg to set_internal.
12657 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12658
12659 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12660
12661 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12662
12663 2000-01-11 Richard M. Stallman <rms@gnu.org>
12664
12665 * minibuf.c (Ftry_completion): Doc fix.
12666
12667 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12668
12669 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12670 vector, too.
12671
12672 2000-01-11 Andreas Schwab <schwab@suse.de>
12673
12674 * coding.c (code_convert_region): Initialize total_skip.
12675
12676 2000-01-08 Dave Love <fx@gnu.org>
12677
12678 * eval.c (Fuser_variable_p): Check customizability too.
12679
12680 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12681
12682 * minibuf.c (Fcompleting_read): Doc fix.
12683
12684 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12685
12686 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12687 -L /usr/local/lib.
12688
12689 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12690 Check that input style is supported before trying to create an
12691 IC for it.
12692 (x_window): Call x_create_im.
12693
12694 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12695
12696 * xfns.c (current_gif_memory_src): New variable.
12697 (gif_load): Record the address of the current memory source
12698 in current_gif_memory_src.
12699 (gif_read_from_memory): Use current_gif_memory_src.
12700
12701 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12702 macros statement form.
12703
12704 * sound.c (struct sound): Renamed from struct sound_file.
12705 (struct sound): Add members `data' and `header_size'.
12706 (enum sound_attr): Add SOUND_DATA.
12707 (current_sound, current_sound_device): Variables renamed from
12708 sound_file and sound_device.
12709 (parse_sound): Parse :data.
12710 (parse_sound): Handle sound data in strings.
12711 (find_sound_type): Function renamed from find_sound_file_type.
12712 (wav_init, au_init): Fail if sound's header_size is smaller than
12713 needed header size.
12714 (wav_play, au_play): Play sounds from string data.
12715
12716 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12717
12718 * lisp.h: Add prototype for allocate_string_data.
12719
12720 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12721
12722 * alloc.c (mark_buffer): Remove code in #if 0.
12723 (gc_sweep): Ditto.
12724 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12725 (strings_consed): New variable.
12726 (allocate_string): Set it.
12727 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12728 (Fmemory_use_counts): Return strings_consed. Use Flist.
12729
12730 * alloc.c: General cleanup in comments etc. Remove conditional
12731 compilation for `standalone'.
12732
12733 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12734
12735 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12736 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
12737 (DONT_COPY_FLAG): Removed.
12738 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
12739 (struct sdata, struct sblock): New
12740 (struct string_block): Rewritten.
12741 (STRINGS_IN_STRING_BLOCK): New macro.
12742 (oldest_sblock, current_sblock, total_strings, total_free_strings)
12743 (large_sblocks, string_blocks, string_free_list): New variables.
12744 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
12745 (init_strings): Rewritten.
12746 (allocate_string, allocate_string_data, compact_small_strings)
12747 (free_large_strings, sweep_strings): New functions.
12748 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
12749 (struct string_block_head, current_string_block)
12750 (first_string_block, large_string_blocks, STRING_FULLSIZE)
12751 (STRING_PAD): Removed.
12752 (make_uninit_multibyte_string, make_pure_string): Rewritten.
12753 (Fgarbage_collect): Don't set mark bit in large strings.
12754 (mark_object): Mark strings differently. Mark symbol names
12755 differently.
12756 (survives_gc_p): Test marked strings differently.
12757 (gc_sweep): Sweep strings differently, unmark strings in
12758 symbol names.
12759 (compact_strings): Removed.
12760
12761 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
12762
12763 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
12764 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
12765
12766 2000-01-04 Kenichi Handa <handa@etl.go.jp>
12767
12768 * fileio.c (Finsert_file_contents): Signal error if visiting file
12769 in a non-empty buffer.
12770
12771 * term.c (encode_terminal_code): Fix the previous change.
12772
12773 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12774
12775 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
12776 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
12777
12778 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
12779
12780 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12781
12782 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
12783 need to test for MSDOS frames.
12784
12785 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12786
12787 * dosfns.c (unspecified_colors): Remove.
12788 (msdos_stdcolor_idx): Use global variables unspecified_fg and
12789 unspecified_bg.
12790 (msdos_stdcolor_name): Return strings for unspecified fore- and
12791 back-ground colors.
12792
12793 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
12794 (syms_of_xfaces): Remove their staticpro's.
12795 (tty_color_name): Return Lisp strings for unspecified fore- and
12796 back-ground colors.
12797 (Finternal_set_lisp_face_attribute): Remove the special treatment
12798 for Qunspecified_{f,b}g.
12799 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
12800
12801 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12802
12803 * xdisp.c (reseat_at_next_visible_line_start): Position before
12804 newline only if ending up on a newline.
12805 (next_element_from_ellipsis): Return success. Handle case of
12806 displaying no ellipsis. Fix case of ellipsis defined in display table.
12807 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
12808 returns 0.
12809
12810 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12811
12812 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
12813 (Fcolor_supported_p): Renamed from face-color-supported-p.
12814
12815 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12816
12817 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
12818 list of colors renamed to tty-defined-color-alist.
12819 (tty_color_name): Pass the frame to tty-color-by-index.
12820 (realize_tty_face): tty-color-alist is now a function which
12821 accepts the frame as argument.
12822
12823 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
12824
12825 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12826
12827 * term.c (insert_glyphs): Pass glyph, not &glyph, to
12828 encode_terminal_code.
12829
12830 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12831
12832 * dispnew.c (mode_line_string): Support termcap frames as well.
12833
12834 2000-01-01 Gerd Moellmann <gerd@gnu.org>
12835
12836 * syntax.c (Fforward_word): Undo previous change.
12837
12838 * editfns.c (Fconstrain_to_field): Don't constrain if
12839 inhibit-field-text-motion is non-nil.
12840 (Fline_beginning_position): Undo previous change.
12841 (Fline_end_position): Ditto.
12842
12843 * syntax.c (Fforward_word): Notice field boundaries only if
12844 inhibit-field-text-motion is nil.
12845
12846 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
12847
12848 * editfns.c (Vinhibit_field_text_motion): New variable.
12849 (inhibit-field-text-motion): New DEFVAR_LISP.
12850 (Fline_beginning_position, Fline_end_position): Notice field
12851 boundaries only if inhibit-field-text-motion is nil.
12852
12853 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
12854 All calls adjusted.
12855 (x_build_heuristic_mask): Likewise.
12856 (xbm_load_image_from_file): Change error output.
12857 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
12858 (gif_load, gs_load, x_kill_gs_process): Ditto.
12859
12860 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
12861 color indices when accessing raster pixels.
12862 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
12863 one of :file or :data.
12864 (enum pbm_keyword_index): Add PBM_DATA.
12865 (pbm_format): Add :data.
12866 (pbm_image_p): Allow either :file or :data.
12867 (pbm_read_file): New function.
12868 (pbm_scan_number): Rewritten to read from string.
12869 (pbm_load): Support :data.
12870
12871 See ChangeLog.8 for earlier changes.
12872
12873 ;; Local Variables:
12874 ;; coding: iso-2022-7bit
12875 ;; End:
12876
12877 Copyright (C) 2001 Free Software Foundation, Inc.
12878 Copying and distribution of this file, with or without modification,
12879 are permitted provided the copyright notice and this notice are preserved.