*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
1 2001-10-12 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * lread.c (syms_of_lread) <load-suffixes>: Fix last change:
4 multi-line strings without a trailing "\n\".
5
6 2001-10-12 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
7
8 * floatfns.c: float_error() is defined iff FLOAT_CATCH_SIGILL is
9 defined.
10
11 2001-10-11 Stefan Monnier <monnier@cs.yale.edu>
12
13 * xfns.c (x_create_bitmap_from_file, x_find_image_file):
14 * w32proc.c (sys_spawnve):
15 * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
16 * w32.c (check_windows_init_file):
17 * sound.c (Fplay_sound):
18 * process.c (Fstart_process): Update calls to openp.
19
20 * callproc.c (Vexec_suffixes): New var.
21 (Fcall_process): Update call to openp.
22 (decode_suffixes): New function.
23 (syms_of_callproc): Init exec-suffixes.
24
25 * lread.c (Vload_suffixes, default_suffixes): New vars.
26 (openp): Take a lisp list of suffixes.
27 Check for file-name-handlers even if the file was absolute already.
28 (syms_of_lread): Declare load-suffixes.
29 (Fload): Fix up call to openp.
30 Don't bother checking for file-name-handler at the very beginning.
31
32 * keymap.h (Fcopy_keymap): Don't export.
33
34 * lisp.h (empty_string): Declare.
35 (Vload_suffixes, Vexec_suffixes): Declare.
36 (openp): Update prototype.
37
38 * emacs.c (empty_string): New var.
39 (syms_of_emacs): Initialize it.
40
41 * search.c (wordify): Use it.
42
43 * buffer.c (Fbury_buffer): Don't try to remove the buffer from the
44 selected window if it's not displayed there. Handle the case
45 when the window is dedicated.
46 (syms_of_buffer): Fix docstrings not to mention "buffer-local" anymore.
47
48 * undo.c (Fprimitive_undo): Use XCAR/XCDR.
49
50 * syntax.h (struct gl_state_s): Change the meaning of b_property.
51 Remove left_ok and right_ok.
52 (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE)
53 (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT): Update to the
54 new meaning of b_property.
55
56 * syntax.c (update_syntax_table): Simplify.
57 (Fforward_comment): Don't skip quoted chars when going backward.
58
59 2001-10-11 Gerd Moellmann <gerd@gnu.org>
60
61 * lisp.h (FIXNUM_OVERFLOW_P): Cast I to EMACS_INT in comparisons
62 in case I is of some unsigned type, in which case
63 MOST_NEGATIVE_FIXNUM will be converted to unsigned, and the
64 comparison becomes bogus.
65
66 * editfns.c (Fuser_uid, Fuser_real_uid): Use make_fixnum_or_float.
67 (Fuser_full_name): Fix bug treating a float as a fixnum.
68
69 * data.c (Fstring_to_number): Use make_fixnum_or_float.
70
71 * lisp.h (make_fixnum_or_float): New macro.
72
73 * lisp.h (circular_list_error): Add prototype.
74
75 * data.c (Qcircular_list): New variable.
76 (circular_list_error): New function.
77 (syms_of_data): Initialize it Qcircular_list.
78
79 2001-10-10 Stefan Monnier <monnier@cs.yale.edu>
80
81 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
82 casefiddle.c, buffer.c: Include keymap.h.
83
84 2001-10-10 Gerd Moellmann <gerd@gnu.org>
85
86 * s/osf5-0.h (C_SWITCH_SYSTEM) [!__GNUC__]: Add `-nointrinsics'
87 options. From Dave Love <d.love@dl.ac.uk>.
88
89 2001-10-09 Gerd Moellmann <gerd@gnu.org>
90
91 * regex.c (WIDE_CHAR_SUPPORT): Do not use defined() in macro.
92 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
93
94 * editfns.c (Fcurrent_time_zone): Cast isalnum() argument to
95 unsigned char.
96 From Hallvard B Furuseth <h.b.furuseth@usit.uio.no>.
97
98 2001-10-08 Andrew Innes <andrewi@gnu.org>
99
100 * lisp.h [max]: Undef min and max before redefining them.
101
102 * w32gui.h: Do not undef min and max.
103
104 * w32heap.h: Do not undef min and max.
105
106 * s/ms-w32.h: Do not undef min and max.
107
108 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
109
110 * xdisp.c (handle_fontified_prop): Don't bind after-change-functions.
111
112 2001-10-08 Sam Steingold <sds@gnu.org>
113
114 * keymap.c (current-active-maps): Quote newlines (compilation error).
115
116 2001-10-08 Eli Zaretskii <eliz@is.elta.co.il>
117
118 * Makefile.in (lisp, shortlisp): Replace bindings.el with
119 bindings.elc, since otherwise doc strings in bindings.el get wrong
120 offsets in etc/DOC.
121
122 2001-10-08 Stefan Monnier <monnier@cs.yale.edu>
123
124 * lisp.h: Remove the entries for keymap.c (moved to keymap.h).
125
126 * keyboard.h (map_prompt): Remove.
127
128 * xterm.c, w32term.c, term.c, minibuf.c, keymap.c,
129 * intervals.c, fns.c, doc.c, callint.c: Include keymap.h.
130
131 * xmenu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
132
133 * w32menu.c (keymap_panes, Fx_popup_menu): Use Fkeymap_prompt.
134
135 * keyboard.c (map_prompt): Remove.
136 (read_char_x_menu_prompt, read_char_minibuf_menu_prompt):
137 Use Fkeymap_prompt.
138
139 * keymap.h: New file. Extracted from lisp.h.
140
141 * keymap.c (Fkeymap_prompt, Fcurrent_active_maps): New funs.
142 (accessible_keymaps_1): New function.
143 (Faccessible_keymaps, accessible_keymaps_char_table): Use it.
144 (Fwhere_is_internal): Use Fcurrent_active_maps.
145 (Fdescribe_buffer_bindings): Renamed from describe_buffer_bindings.
146 Insert in current buffer rather than standard-output.
147 Don't call `help-mode'. Export to elisp.
148 (describe_buffer_bindings): New wrapper.
149 (syms_of_keymap): Defsubr Skeymap_prompt, Scurrent_active_maps
150 and Sdescribe_buffer_bindings.
151
152 2001-10-08 Gerd Moellmann <gerd@gnu.org>
153
154 * atimer.c (alarm_signal_handler) [USG && !POSIX_SIGNALS]:
155 Remove code setting signal handler.
156
157 * sysdep.c (child_setup_tty) [HAVE_TERMIO || HAVE_TERMIOS]:
158 Clear ICRNL and INLCR. From Daiki Ueno <ueno@unixuser.org>.
159
160 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
161
162 * keyboard.c: Don't define min/max.
163
164 2001-10-08 Gerd Moellmann <gerd@gnu.org>
165
166 * xterm.c, xmenu.c, xfns.c, xdisp.c, window.c:
167 * w32term.c, w32menu.c, w32console.c, w32bdf.c, w32.c, term.c
168 * sysdep.c, sound.c, search.c, scroll.c, minibuf.c, keymap.c
169 * intervals.c, insdel.c, indent.c, fns.c, fileio.c, editfns.c
170 * dispnew.c, dired.c, charset.c, xfaces.c, alloc.c, atimer.c:
171 Don't define min/max.
172
173 * lisp.h (min, max): New macros.
174
175 * puresize.h (BASE_PURESIZE): Increase to 725000.
176
177 2001-10-08 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
178
179 * xfaces.c (free_frame_menubar): Add prototype.
180
181 * lisp.h (init_window): Add prototype.
182
183 * editfns.c: Include ctype.h.
184
185 * xterm.c: USE_LUCID can be defined iff USE_X_TOOLKIT is defined.
186 (xm_scroll_callback) [USE_MOTIF]: Remove unused variable `percent'.
187 (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]: Remove unused
188 variable `sb'.
189
190 * xfns.c (Fx_hide_tip): Fix typo in a doc string.
191 (Fx_file_dialog) [USE_MOTIF]: Remove unused variables
192 `popup_activated_flag' and `title'.
193
194 * doc.c (Fdocumentation_property): Fix typo in a doc string.
195
196 * emacs.c (main): Remove extra `;'.
197
198 * atimer.h (struct atimer): Fix typos in a comment.
199
200 * atimer.c: Fix typo.
201
202 * Makefile.in: Fix typo.
203
204 * README: Remove obsolete part mentioning removed VMS file.
205
206 2001-10-07 Miles Bader <miles@gnu.org>
207
208 * Makefile.in (lisp, shortlisp): Add `button.elc'.
209
210 2001-10-07 Ken Raeburn <raeburn@gnu.org>
211
212 * minibuf.c (Fminibuffer_prompt_end): Don't apply make_number to a
213 Lisp_Object.
214
215 * lisp.h (Ffield_end): Declare.
216
217 2001-10-07 Gerd Moellmann <gerd@gnu.org>
218
219 * keyboard.c (parse_modifiers, apply_modifiers): Use VALMASK.
220
221 * insdel.c (make_gap): Use MOST_POSITIVE_FIXNUM.
222
223 * floatfns.c (FLOAT_TO_INT2, FLOAT_TO_INT): Use FIXNUM_OVERFLOW_P.
224
225 * dired.c (Ffile_attributes): Use FIXNUM_OVERFLOW_P.
226
227 * bytecode.c (syms_of_bytecode) [BYTE_CODE_METER]: Doc fix.
228 (METER_CODE, Fbyte_code): Use MOST_POSITIVE_FIXNUM.
229
230 * alloc.c (inhibit_garbage_collection): Simplify.
231 (Fmemory_use_counts): Ditto.
232
233 * data.c (most_positive_fixnum, most_negative_fixnum): New variables.
234 (syms_of_data): DEFVAR_INT most-positive-fixnum and
235 most-negative-fixnum.
236
237 * lisp.h (MOST_NEGATIVE_FIXNUM, MOST_POSITIVE_FIXNUM)
238 (FIXNUM_OVERFLOW_P): New macros.
239
240 2001-10-06 Miles Bader <miles@gnu.org>
241
242 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
243 scroll_bar_bottom_shadow_pixel fields.
244 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
245 for the shadows, and tell the toolkit about them if we succeed.
246 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
247 Free scroll-bar shadow colors.
248 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
249 Free scroll-bar shadow colors when the background color changes.
250 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
251 Initialize scroll-bar shadow-color fields.
252
253 2001-10-05 Gerd Moellmann <gerd@gnu.org>
254
255 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
256
257 2001-10-05 Miles Bader <miles@gnu.org>
258
259 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
260 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
261 New functions (were in simple.el).
262 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
263 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
264 (syms_of_minibuf): Initialize them.
265
266 2001-10-05 Gerd Moellmann <gerd@gnu.org>
267
268 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
269 (tiff_load): Install them as error and warning handler.
270
271 2001-10-04 Andrew Innes <andrewi@gnu.org>
272
273 * w32fns.c (x_to_w32_color): Fix argument to alloca.
274 (w32_load_system_font): Don't believe what GetLanguageFontInfo
275 says; query codepage info directly to determine if font is double byte.
276 (x_to_w32_charset): Handle private format for unknown charsets.
277 Handle wildcards in charset spec, by ignoring them.
278 (w32_codepage_for_font): Fix argument to alloca. Don't remove
279 "*-" prefix from charset.
280 (x_to_w32_font): Enlarge remainder array for safety. Specifically
281 handle the truncated font spec form constructed by font_list_1, so
282 that we correctly identify the charset fields. Don't remove "*-"
283 prefix from charset.
284 (w32_list_synthesized_fonts): Fix argument to alloca.
285
286 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
287
288 * window.h (MINI_WINDOW_P): Use NILP.
289
290 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
291
292 * termhooks.h (struct input_event): Use proper type for `kind'.
293
294 2001-10-04 Gerd Moellmann <gerd@gnu.org>
295
296 This handles unknown keysyms better than before. For example,
297 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
298 Emacs formerly completely ignored F5. With the change, it derives
299 a key symbol from the name of the X keysym, `ccaron' in this case.
300 Reported by Martin Buchholz.
301
302 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
303 unknown keysyms.
304
305 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
306 that EVENT->code isn't a function key, use the keysym's name.
307
308 2001-10-04 Gerd Moellmann <gerd@gnu.org>
309
310 FOREACH is a macro that should make it easier to loop over Lisp
311 lists with checks for cycles and proper lists.
312
313 * lisp.h (LIST_END_P, FOREACH): New macros.
314
315 2001-10-04 Gerd Moellmann <gerd@gnu.org>
316
317 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
318 called for a lost connection. Prevent dumping core in this case.
319 Instead print the X error, and exit. On user request.
320
321 * xterm.c (error_msg): New variable.
322 (x_fatal_error_signal): New function.
323 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
324 as fatal_error_signal_hook around the call to XtCloseDisplay.
325
326 * emacs.c (fatal_error_signal_hook): New variable.
327 (fatal_error_signal): Call that function.
328
329 2001-10-04 Gerd Moellmann <gerd@gnu.org>
330
331 With this, Emacs prints how much pure storage it will
332 approximately need in case pure storage overflows while dumping.
333
334 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
335 New variables.
336 (init_alloc_once): Initialize new variables.
337 (PURE_POINTER_P): Use new variables.
338 (pure_alloc): If pure storage overflows, allocate from the heap.
339 (check_pure_size): New function.
340 (Fgarbage_collect): Don't GC if pure storage has overflowed.
341
342 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
343 (check_pure_size): Add prototype.
344
345 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
346
347 2001-10-04 Gerd Moellmann <gerd@gnu.org>
348
349 This adds a post-gc-hook that's run with GC inhibited.
350 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
351
352 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
353 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
354 (Fgarbage_collect): Run post-gc-hook.
355
356 2001-10-04 Gerd Moellmann <gerd@gnu.org>
357
358 This adds `defvaralias' and `indirect-variable'. Changes not
359 directly related to this feature are there to gain the same
360 performance again as before variable aliases.
361
362 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
363 code to get and set symbol values, to take defvaralias into account.
364
365 (Note: the new `constant' bit-flag in symbols would make it
366 possible to define arbitrary read-only variables, e.g. with
367 `defconst'.)
368
369 Documentation is in lispref/variables.texi. Added to NEWS.
370
371 * lisp.h (enum symbol_interned): New enumeration.
372 (struct Lisp_Symbol): Remove member `obarray', add
373 `indirect_variable', `constant', and `interned'.
374 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
375 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
376 (indirect_variable): Add prototype.
377
378 * print.c (print_preprocess, print_object): Test internedness of
379 symbols differently.
380
381 * lread.c (Fintern, Funintern): Set symbol's interned and constant
382 bit-fields.
383 (init_obarray): Likewise for t and nil.
384
385 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
386 (Fdefvaralias): New function.
387 (specbind): Simplify the test if symbol is a constant.
388 (syms_of_eval): Defsubr Fdefvaralias.
389
390 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
391 (Qcyclic_variable_indirection): New variable.
392 (Fkeywordp): Check for internedness differently.
393 (Fmakunbound): Simplify the test if symbol is a constant.
394 (indirect_variable, Findirect_variable): New functions.
395 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
396 aliased symbol.
397 (let_shadows_buffer_binding_p): Check for variable aliases.
398 (set_internal): Simplify the test if SYMBOL is a constant.
399 If SYMBOL has a buffer-local value and is an alias, use the aliased
400 symbol instead.
401 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
402 Sindirect_variable.
403
404 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
405 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
406 set directly.
407
408 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
409
410 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
411 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
412 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
413
414 2001-10-04 Gerd Moellmann <gerd@gnu.org>
415
416 * Branch for 21.1.
417
418 2001-10-03 Miles Bader <miles@gnu.org>
419
420 * callproc.c (syms_of_callproc): Explicitly state in the
421 documentation for `process-environment' that earlier entries take
422 precedence over later ones.
423
424 2001-10-02 Miles Bader <miles@gnu.org>
425
426 * textprop.c (Fnext_char_property_change)
427 (Fprevious_char_property_change): Remove reference to non-existant
428 argument OBJECT from doc-string.
429
430 2001-10-01 Gerd Moellmann <gerd@gnu.org>
431
432 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
433 (try_window_id): Skip back over lines ending in a newline from a
434 string.
435
436 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
437 New bit flag
438
439 2001-10-01 Richard M. Stallman <rms@gnu.org>
440
441 * search.c (Freplace_match): Doc fix.
442
443 2001-09-28 Andrew Innes <andrewi@gnu.org>
444
445 * w32menu.c (set_frame_menubar): Take into account that
446 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
447 <raeburn@gnu.org>.
448
449 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
450
451 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
452
453 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
454
455 * s/gnu-linux.h: Fix a typo in comment.
456
457 2001-09-28 Andreas Schwab <schwab@suse.de>
458
459 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
460 nocombreloc, in case -z combreloc is the default.
461
462 2001-09-28 Gerd Moellmann <gerd@gnu.org>
463
464 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
465 really going on here.
466
467 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
468
469 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
470
471 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
472
473 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
474 utf-8, menu-bar, and latin-N.
475 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
476 unconditionally now.
477 (lisp): Add latin-N, since they are preloaded.
478
479 2001-09-27 Gerd Moellmann <gerd@gnu.org>
480
481 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
482 to the left. Some cleanup.
483
484 * xdisp.c (display_mode_element): One more case where a string's
485 multibyteness should be used for display.
486
487 2001-09-26 Gerd Moellmann <gerd@gnu.org>
488
489 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
490 reading at EOF.
491
492 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
493 of the only temporarily set echoing flag for deciding when
494 the cancel echoing.
495
496 * keyboard.c (echo_kboard): Make externally visible.
497
498 * lisp.h (echo_kboard): Declare extern.
499
500 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
501 fonts_changed_p if we need larger matrices due to vscrolling.
502 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
503 this round of redisplay if make_cursor_line_fully_visible fails.
504 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
505 (try_cursor_movement, try_scrolling): Use them instead of integers.
506
507 * dispextern.h (required_matrix_width, required_matrix_height):
508 Add prototypes.
509
510 * dispnew.c (required_matrix_width, required_matrix_height):
511 New functions.
512 (allocate_matrices_for_window_redisplay)
513 (allocate_matrices_for_frame_redisplay: Use them.
514 Remove parameters CH_DIM.
515
516 * xdisp.c (display_mode_lines): Temporarily set selected_frame
517 and selected_window to the frame of the window whose mode-lines
518 are displayed, and to the window itself.
519 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
520 here.
521
522 2001-09-25 Gerd Moellmann <gerd@gnu.org>
523
524 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
525 the image cache under us.
526
527 * xdisp.c (display_mode_element): If the mode element is a symbol
528 with a string value, use that string's multibyteness for displaying.
529
530 * keyboard.c (read_char): Don't clear a message for a switch-frame
531 event. From Stefan Monnier <monnier@cs.yale.edu>.
532
533 * xterm.c (fast_find_position) [0]: Add a presumably more correct
534 version for after 21.1.
535
536 * xdisp.c (row_containing_pos): Make externally visible.
537
538 * dispextern.h (row_containing_pos): Add prototype.
539
540 * process.c (send_process): Disable composition if from_byte < 0.
541 From Kenichi Handa <handa@etl.go.jp>.
542
543 2001-09-24 Gerd Moellmann <gerd@gnu.org>
544
545 * xterm.c (refreshicon): Function removed.
546
547 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
548
549 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
550
551 * xterm.c (toplevel): Remove includes in #if 0.
552
553 * process.c (sigchld_handler) [LINUX]: Don't return from
554 the signal handler at the end of the loop.
555
556 2001-09-21 Gerd Moellmann <gerd@gnu.org>
557
558 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
559 Terminate only if kill returns -1, and errno is ESRCH.
560
561 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
562
563 * Makefile.in (shortlisp): Add ../lisp/env.elc.
564
565 2001-09-20 Gerd Moellmann <gerd@gnu.org>
566
567 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
568 since this function can be called during GC.
569
570 * callproc.c (Fcall_process): Handle errors from pipe(2).
571 (child_setup): Delete code in #ifdef vipc.
572
573 2001-09-19 Gerd Moellmann <gerd@gnu.org>
574
575 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
576 (display_mode_element): Display the string from decode_mode_spec
577 depending on its multibyteness.
578
579 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
580
581 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
582
583 2001-09-18 Gerd Moellmann <gerd@gnu.org>
584
585 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
586 recursive_edit_unwind.
587 (recursive_edit_unwind): Set kboard state according to
588 SINGLE-KBOARD.
589
590 * buffer.c (modify_overlay): Don't do nothing if START == END;
591 This can still be a modification, for example when an overlay has
592 a before-string or after-string.
593 (Fdelete_overlay): Prevent redisplay optimizations when deleting
594 an overlay with before-string or after-string.
595
596 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
597 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
598
599 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
600 first_unchanged_at_end_row is in front of
601 last_unchanged_at_beg_row. This code should be removed after the
602 release of 21.1.
603
604 2001-09-17 Gerd Moellmann <gerd@gnu.org>
605
606 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
607 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
608
609 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
610 versions >= 2.95.
611
612 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
613
614 * dired.c (Ffile_attributes): Doc fix.
615
616 2001-09-14 Gerd Moellmann <gerd@gnu.org>
617
618 * fileio.c (Ffile_symlink_p): Fix last change.
619
620 * filelock.c (current_lock_owner): Fix last change.
621
622 2001-09-13 Gerd Moellmann <gerd@gnu.org>
623
624 * filelock.c (current_lock_owner): If readlink returns ERANGE,
625 take that to mean that the buffer is too small.
626
627 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
628 that to mean that the buffer is too small.
629
630 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
631 current buffer's multibyteness when discarding the iterator's
632 stack.
633
634 * xfns.c (Fx_window_property): Handle case that property gets
635 deleted between the two calls to XGetWindowProperty.
636
637 2001-09-11 Gerd Moellmann <gerd@gnu.org>
638
639 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
640
641 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
642 in addition to read-only.
643
644 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
645 to t in addition to read-only.
646
647 * lisp.h (Qinhibit_modification_hooks): Declare.
648
649 * insdel.c (Qinhibit_modification_hooks): New variable.
650 (syms_of_insdel): Initialize and staticpro it.
651
652 * textprop.c (verify_interval_modification): Don't run
653 modification-hooks if inhibit_modification_hooks.
654
655 * dispnew.c (set_window_cursor_after_update): Fix code
656 finding glyph row containing cursor when cursor_in_echo_area
657 is >= 0.
658
659 * xdisp.c (init_from_display_pos): Put some code in #if 0.
660 (add_to_log): Use bcopy instead of strcpy.
661 (init_from_display_pos): Use an explicit loop over bytes in
662 overlay strings instead of calling index.
663
664 2001-09-10 Gerd Moellmann <gerd@gnu.org>
665
666 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
667
668 * dispnew.c (direct_output_for_insert): Don't change IT's
669 stop_charpos to something in front of its current position.
670
671 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
672 `format'.
673
674 2001-09-10 Richard M. Stallman <rms@gnu.org>
675
676 * frame.c (Fmouse_position): Doc fix.
677
678 2001-09-07 Gerd Moellmann <gerd@gnu.org>
679
680 * xdisp.c (init_from_display_pos): Don't compare the result
681 of calling index with NULL.
682
683 2001-09-06 Gerd Moellmann <gerd@gnu.org>
684
685 * xfns.c (x_set_background_color): Don't change the colors
686 of the X window of scroll bar widgets.
687
688 2001-09-05 Andrew Innes <andrewi@gnu.org>
689
690 * w32fns.c (w32_createwindow): Undo last change.
691
692 2001-09-05 Gerd Moellmann <gerd@gnu.org>
693
694 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
695
696 * xdisp.c (string_buffer_position): Use *single_char_property*
697 functions instead of the *single_property* functions.
698
699 2001-09-04 Andrew Innes <andrewi@gnu.org>
700
701 * w32term.c (w32_read_socket): Add more information to debugging
702 output.
703
704 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
705 from Emacs frames, so that calls to GetClipBox in w32term.c
706 correctly report when part of a frame is visible (including
707 scrollbars, etc). This prevents repeated redrawing of frames when
708 only a scrollbar is visible.
709 (w32_wnd_proc): Add more frame information to debugging output.
710
711 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
712
713 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
714
715 2001-09-03 Gerd Moellmann <gerd@gnu.org>
716
717 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
718 help-echo for a string which doesn't have help-echo itself, use
719 get-char-property to obtain the help-echo from the string's buffer
720 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
721 have mouse-face, look ``under'' the string for mouse-face from an
722 overlay.
723 (fast_find_position): Add parameter STOP. In the final row, stop
724 before glyphs having STOP as object. Don't consider glyphs that
725 are not from a buffer.
726
727 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
728
729 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
730
731 * fns.c (Fmd5): Doc fix.
732
733 2001-08-31 Gerd Moellmann <gerd@gnu.org>
734
735 * composite.c (update_compositions): Do nothing if
736 inhibit-modification-hooks is set.
737
738 2001-08-30 Gerd Moellmann <gerd@gnu.org>
739
740 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
741 and check_message_stack if terminating abnormally. We want
742 glyph matrices etc. in a core dump.
743
744 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
745 (syms_of_xdisp): Initialize them.
746 (handle_single_display_prop): Don't change point, bind `object',
747 `position', and `buffer-position' instead to the object having the
748 `display' property, position in the object and position in the buffer.
749
750 * fileio.c (Finsert_file_contents): Don't change the multibyteness
751 of the buffer if REPLACE is non-nil.
752
753 2001-08-29 Gerd Moellmann <gerd@gnu.org>
754
755 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
756
757 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
758
759 * w32term.c (x_set_glyph_string_background_width)
760 (show_mouse_face): Track the last changes in xterm.c.
761
762 2001-08-28 Gerd Moellmann <gerd@gnu.org>
763
764 * xterm.c (x_set_glyph_string_background_width): Set the glyph
765 string's background width so that multi-line mouse-face is drawn
766 to the right edge of the window.
767 (show_mouse_face): Set the row's mouse_face_p flag after drawing
768 glyphs.
769
770 * dispnew.c (direct_output_for_insert): Set updated_area
771 before inserting/writing glyphs.
772
773 * xdisp.c (display_mode_element): Use string_byte_to_char to
774 determine character positions in strings, use chars_in_text
775 instead of strwidth.
776 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
777 a matrix as parameter; this is easier to use from GDB.
778
779 2001-08-28 Miles Bader <miles@gnu.org>
780
781 * textprop.c (Fprevious_single_char_property_change)
782 (Fnext_single_char_property_change): Doc fixes.
783
784 2001-08-27 Gerd Moellmann <gerd@gnu.org>
785
786 * fileio.c (Finsert_file_contents): Allocate, restore, and
787 free composition data in the case of REPLACE not being nil.
788
789 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
790 there exist overlay strings with newlines at POS.
791 (text_outside_line_unchanged_p): Return 0 if changes start at
792 START and overlays exist at START. Likewise for END.
793 (try_window_id): Give up if init_to_row_end returns 0.
794
795 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
796 unconditionally.
797
798 2001-08-24 Gerd Moellmann <gerd@gnu.org>
799
800 * keymap.c (access_keymap): Return the cdr of the binding of
801 a generic character instead of its definition (KEY . BINDING).
802
803 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
804 to 0 also in the REPLACE case.
805
806 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
807
808 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
809 open to determine whether file is readable (as for DOS_NT).
810
811 2001-08-23 Gerd Moellmann <gerd@gnu.org>
812
813 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
814 coding.type is coding_type_no_conversion or coding_type_raw_text,
815 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
816 non-nil instead of just setting enable_multibyte_characters in the
817 buffer to nil.
818
819 2001-08-22 Gerd Moellmann <gerd@gnu.org>
820
821 * dispextern.h (struct face_cache): Add member
822 menu_face_changed_p.
823
824 * xfaces.c (menu_face_changed_default): New variable.
825 (menu_face_changed_count): Variable removed.
826 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
827 the menu_face_changed_default flag, otherwise set the FRAME's
828 menu_face_changed_p flag if the `menu' face has been changed.
829 Prevent calling set_font_frame_param if FRAME is t.
830 (make_face_cache): Initialize cache's menu_face_changed_p
831 from menu_face_changed_default.
832 (realize_basic_faces): Look into the frame's face cache to
833 determine if the menu appearance needs updating.
834
835 * keymap.c (access_keymap): Fix last change to not consider
836 IDX when it has modifiers.
837
838 2001-08-21 Gerd Moellmann <gerd@gnu.org>
839
840 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
841 . BINDING) exists, where GENERIC-CHAR is the generic character of
842 the charset of IDX, return BINDING unless there exists a binding
843 for IDX itself.
844
845 2001-08-16 Gerd Moellmann <gerd@gnu.org>
846
847 * xrdb.c (SYSV): Don't define on Solaris 2.
848 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
849
850 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
851 of the screen line, not text line, containing IT's current position.
852
853 2001-08-15 Gerd Moellmann <gerd@gnu.org>
854
855 * window.c (window_scroll_pixel_based): Don't recenter if
856 PT is partially visible in the window.
857
858 * xterm.c (expose_window_tree, expose_window, expose_line):
859 Return 1 when overwriting mouse-face.
860 (expose_frame): If mouse-face was overwritten, redo it.
861
862 * xfaces.c (x_update_menu_appearance): Don't call
863 set_frame_menubar, let the next redisplay do it.
864
865 2001-08-14 Andrew Innes <andrewi@gnu.org>
866
867 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
868 drawing glyph string.
869
870 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
871
872 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
873 running HI-UX/MPP.
874
875 2001-08-14 Gerd Moellmann <gerd@gnu.org>
876
877 * xfaces.c (x_update_menu_appearance): Save and restore value of
878 interrupt_input_blocked.
879
880 2001-08-13 Gerd Moellmann <gerd@gnu.org>
881
882 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
883 a line start, move back to the line start.
884
885 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
886 exactly when a mini-buffer is active.
887
888 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
889 in units of 1/8 character on non window-system frames.
890 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
891
892 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
893
894 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
895 a doc string.
896
897 2001-08-09 Gerd Moellmann <gerd@gnu.org>
898
899 * keyboard.c (Vpre_help_message): New variable.
900 (syms_of_keyboard): Initialize and staticpro it.
901 (show_help_echo): Record current message before displaying a
902 help-echo, and restore that message when clearing the help.
903
904 * xfns.c (x_create_im): Remove prototype.
905
906 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
907
908 * dispnew.c (adjust_glyph_matrix): Undo last change.
909
910 2001-08-08 Gerd Moellmann <gerd@gnu.org>
911
912 * dispnew.c (adjust_glyph_matrix): In the optimization for
913 windows whose height has changed, disable partially visible lines.
914
915 2001-08-07 Gerd Moellmann <gerd@gnu.org>
916
917 * window.c (Frecenter): If ARG < 0, and on a window system
918 frame, count in some empty lines when we can't move -ARG lines down.
919
920 * xdisp.c (start_display): Don't try to determine the continuation
921 lines width if lines are truncated. It's superfluous and leads to
922 incorrect results if POS is not visible in the window after
923 reseating the iterator at the previous line start.
924
925 2001-08-06 Gerd Moellmann <gerd@gnu.org>
926
927 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
928
929 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
930
931 * alloc.c (init_stack): Remove declaration.
932
933 2001-08-03 Gerd Moellmann <gerd@gnu.org>
934
935 * keyboard.c (read_key_sequence): Check that key is an integer
936 before comparing it with quit_char.
937 (add_command_key): Use larger_vector.
938 (read_char_x_menu_prompt): Instead of converting symbol and
939 integer events into conses (EVENT . nil), use (EVENT . disabled)
940 which cannot be confused with valid events.
941 (read_char): When reading from Vunread_command_events, check for
942 events of the form (EVENT . disabled) instead of
943 (EVENT . nil).
944
945 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
946 a float, determine the max height from the frame's height.
947
948 2001-08-02 Gerd Moellmann <gerd@gnu.org>
949
950 * xdisp.c (redisplay_internal): Take message_cleared_p into
951 account only if minibuf_level == 0.
952
953 2001-08-01 Gerd Moellmann <gerd@gnu.org>
954
955 * xdisp.c (redisplay_internal): Add a check for the last
956 displayed message.
957
958 * xdisp.c (message_cleared_p): New variable.
959 (clear_message): Set message_cleared_p when clearing the current
960 message.
961 (redisplay_internal): Look at message_cleared_p to capture
962 the case that the echo area should be cleared.
963
964 * keyboard.c (command_loop_1): Fix spelling of
965 resize_echo_area_exactly.
966
967 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
968
969 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
970
971 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
972 current matrix when the window gets smaller.
973
974 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
975
976 * print.c (strout): Cast the character passed to insert_char to
977 unsigned char, to avoid sign extension when it is promoted to int.
978
979 2001-07-31 Gerd Moellmann <gerd@gnu.org>
980
981 * fileio.c (Finsert_file_contents): Don't treat a return value
982 of 0 from emacs_read as an IO error.
983
984 2001-07-30 Gerd Moellmann <gerd@gnu.org>
985
986 * keyboard.c (abs): New macro.
987 (double_click_fuzz): New variable.
988 (make_lispy_event): Use it to determine what makes a double-click.
989 (syms_of_keyboard): DEFVAR_INT it.
990
991 * xmenu.c (set_frame_menubar): Take into account that
992 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
993 <raeburn@gnu.org>.
994
995 2001-07-27 Gerd Moellmann <gerd@gnu.org>
996
997 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
998
999 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
1000 of row's visible height.
1001
1002 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
1003 deal with the first overlay string having an image `display' property.
1004 (try_window_reusing_current_matrix, compute_line_metrics):
1005 Fix computation of row's visible height for the case that part of the
1006 row is invisible above and part of the row is at the same time
1007 invisible below the window.
1008
1009 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1010
1011 * xfns.c (x-show-tip): Doc fix.
1012
1013 * xfns.c (Vx_max_tooltip_size): New variable.
1014 (syms_of_xfns): DEFVAR_LISP it.
1015 (Fx_show_tip): Set frame's window_width to the width of the
1016 window. Use a maximum tooltip size specified by
1017 Vx_max_tooltip_size, if that has valid contents.
1018 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
1019
1020 2001-07-26 Andrew Innes <andrewi@gnu.org>
1021
1022 * w32term.c (x_display_list): New variable.
1023 (w32_term_init): Set it.
1024
1025 * w32term.h (x_display_list): New extern.
1026
1027 2001-07-26 Gerd Moellmann <gerd@gnu.org>
1028
1029 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
1030 is non-nil, instead of when redisplaying_p is non-zero.
1031 See comment there.
1032 (mark_window_display_accurate_1): Add an assertion.
1033
1034 2001-07-25 Gerd Moellmann <gerd@gnu.org>
1035
1036 * dispextern.h (struct it): Increase size of ctl_chars to 16.
1037
1038 * xfns.c (Fx_file_dialog): Block/unblock input while processing
1039 events so that we get a chance of processing expose events.
1040
1041 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
1042
1043 2001-07-24 Gerd Moellmann <gerd@gnu.org>
1044
1045 * xfns.c (valid_image_p): Protect better against invalid image
1046 specifications. Previous code could signal an error.
1047
1048 2001-07-23 Gerd Moellmann <gerd@gnu.org>
1049
1050 * indent.c (current_column): Fix column computation in the
1051 presence of display table entries.
1052 (current_column_1, Fmove_to_column, compute_motion): Likewise.
1053
1054 * dispnew.c (adjust_glyph_matrix): In the optimization for
1055 windows whose height has changed, use the new window height
1056 to compute which rows to invalidate.
1057
1058 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
1059 (MAX_10_EXP): New macro.
1060 (Fformat): Use it.
1061
1062 * coding.c (code_convert_region): Handle the multibyte case if
1063 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
1064
1065 2001-07-20 Gerd Moellmann <gerd@gnu.org>
1066
1067 * dispextern.h (struct face): Change type of `stipple' to
1068 int; it's an ID.
1069
1070 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
1071
1072 2001-07-19 Gerd Moellmann <gerd@gnu.org>
1073
1074 * dispnew.c (update_window): Don't set the cursor at the end
1075 of the update if display update has been paused.
1076
1077 * composite.h (syms_of_composite): Renamed from syms_of_composition.
1078
1079 2001-07-18 Ken Raeburn <raeburn@gnu.org>
1080
1081 * fns.c (Fset_char_table_default): Check that a charset is defined
1082 before checking its dimension.
1083
1084 2001-07-17 Ken Raeburn <raeburn@gnu.org>
1085
1086 * coding.c (setup_coding_system): Don't do any designation based
1087 on reg_bits if charset is not yet defined.
1088
1089 * lisp.h (XVECTOR): Verify correct object type before returning a
1090 pointer, using eassert.
1091
1092 2001-07-17 Gerd Moellmann <gerd@gnu.org>
1093
1094 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
1095 Increase to 4096 because of paste problems reported on GNU/Linux.
1096
1097 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
1098
1099 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
1100
1101 2001-07-16 Gerd Moellmann <gerd@gnu.org>
1102
1103 * fileio.c (unwind_read): Function removed.
1104 (read_non_regular, read_non_regular_quit): New functions.
1105 (Finsert_file_contents): When reading from non-regular files,
1106 arrange to catch a `quit' and terminate the loop. Rearrange
1107 code so that a `quit' when reading from a regular file doesn't
1108 insert text in the buffer.
1109
1110 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
1111 Clear faces afterwards.
1112 (clear_font_table): Take a x_display_info parameter. Don't free
1113 fonts being the default font of any frame on the given display.
1114
1115 2001-07-13 Gerd Moellmann <gerd@gnu.org>
1116
1117 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
1118 instead of CHAR_STRING which can signal an error.
1119
1120 * charset.c (char_to_string_1): Extracted from char_to_string.
1121 Return -1 instead of signaling an error.
1122 (char_to_string): Use it.
1123
1124 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
1125
1126 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
1127
1128 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
1129 is t, don't try to append anything to it.
1130
1131 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
1132
1133 * dired.c (file_name_completion): Pass dp->d_name to
1134 Fstring_match, not elt, which is always nil here.
1135
1136 2001-07-12 Gerd Moellmann <gerd@gnu.org>
1137
1138 * xselect.c (x_decline_selection_request): Handle errors
1139 caused by receivers that have vanished.
1140
1141 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
1142 ignoring events on foreign windows in #if 0. Always dispatch
1143 the event after checking it with x_handle_property_notify.
1144
1145 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
1146 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
1147 TRACE macros to facilitate debugging. Add additional trace statements.
1148 (toplevel): Add prototypes for file-local functions.
1149 (x_atom_to_symbol): Remove DPYINFO parameter.
1150
1151 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
1152
1153 * w32menu.c (menubar_selection_callback, w32_menu_show):
1154 Initialize `entry' to nil.
1155 (w32_dialog_show): Remove unused `save_wv' variable.
1156 (name_is_separator): Recognize "--:foo" and "--foo-bar".
1157
1158 2001-07-11 Gerd Moellmann <gerd@gnu.org>
1159
1160 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
1161
1162 * fileio.c (unwind_read): Print a message when discarding inserted
1163 text or switching the buffer to unibyte. Change parameter.
1164 (Finsert_file_contents): Don't pass VISIT to unwind_read.
1165
1166 * fileio.c (unwind_read): New function.
1167 (Finsert_file_contents): Record it as unwind-function for
1168 the case that reading is interrupted by C-g.
1169
1170 2001-07-10 Gerd Moellmann <gerd@gnu.org>
1171
1172 * dispnew.c (update_window): Don't skip the header-line
1173 update when scrolling_window returns 0.
1174
1175 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
1176
1177 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
1178 for the case that x_decode_color signals an error.
1179
1180 * xdisp.c (add_to_log): Do nothing if called asynchronously.
1181
1182 2001-07-09 Gerd Moellmann <gerd@gnu.org>
1183
1184 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
1185 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
1186 around ioctls.
1187
1188 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
1189
1190 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
1191 doc string line for dos-timezone-offset.
1192
1193 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
1194 inline assembly, to avoid compiler warnings.
1195 (syms_of_msdos): Add \n\ at the end of a line in the doc string
1196 line for dos-unsupported-char-glyph.
1197
1198 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
1199
1200 2001-07-05 Gerd Moellmann <gerd@gnu.org>
1201
1202 * sound.c: Include Emacs' header files with #include "...".
1203
1204 * eval.c (specbind): Additionally record the buffer that was
1205 current when a buffer-local or frame-local variable was bound.
1206
1207 2001-07-04 Gerd Moellmann <gerd@gnu.org>
1208
1209 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
1210 to unibyte characters in unibyte buffers.
1211
1212 2001-07-03 Gerd Moellmann <gerd@gnu.org>
1213
1214 * eval.c (specbind): If SYMBOL has a frame-local binding, record
1215 the frame on the binding stack. Change format of entries for
1216 local bindings on the binding stack to '(SYMBOL . WHERE)'.
1217 (unbind_to): Handle unbinding a frame-local variable.
1218
1219 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
1220 glyphs and truncation glyphs at the end of a row from its pixel width.
1221 (dump_glyph_row): Print row's continuation_lines_width.
1222 (try_window_id): Take the shortcut if ZV is visible in the
1223 window, but there are actually no changes at ZV.
1224
1225 2001-07-02 Gerd Moellmann <gerd@gnu.org>
1226
1227 * xterm.h (x_free_dpy_colors): Add prototype.
1228
1229 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
1230 right number of arguments.
1231
1232 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
1233 ($(lwlibdir)TAGS): New target.
1234 (TAGS): Fix dependency list.
1235
1236 * xterm.c (x_list_fonts): Make sure XFreeFont is called
1237 with input blocked.
1238
1239 2001-06-30 Gerd Moellmann <gerd@gnu.org>
1240
1241 * emacs.c (main): Remove extern declaration for sys_nerr, which
1242 isn't used and causes a compilation error with GCC 3.0 on
1243 FreeBSD 4.3.
1244
1245 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1246
1247 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1248 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1249 (toplevel): Include <signal.h> and syssignal.h.
1250
1251 * sound.c (vox_configure, vox_close): Turn off atimers
1252 around ioctls.
1253
1254 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1255
1256 * keyboard.c (read_char) <non_reread>: Record the previous idle
1257 start time before calling timer_stop_idle.
1258 (read_char) <reread_first>: After processing a help-echo event,
1259 restore the previous idle start time.
1260
1261 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1262 the start of invisible text.
1263 (setup_for_ellipsis): New function.
1264 (next_overlay_string): After all overlay strings have been
1265 processed, display an ellipsis if necessary.
1266 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1267 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1268
1269 * dispextern.h (struct iterator_stack_entry): Add member
1270 display_ellipsis_p.
1271
1272 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1273
1274 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1275 on the value of the wait-for-wm frame parameter.
1276
1277 * xterm.h (struct x_output): Add member wait_for_wm.
1278
1279 * xfns.c (Qwait_for_wm): New variable.
1280 (x_frame_parms): Add entry for `wait-for-wm".
1281 (x_set_wait_for_wm): New function.
1282 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1283 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1284
1285 * xdisp.c (try_window_id) <all changes below window end>: Don't
1286 take this shortcut if ZV is visible in the window.
1287 (try_window_id): When checking for window start being in changed
1288 text, don't check that the buffer's size has changed.
1289
1290 2001-06-23 Richard M. Stallman <rms@gnu.org>
1291
1292 * minibuf.c (Fcompleting_read): Doc fix.
1293
1294 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1295
1296 * composite.c (Ffind_composition_internal): Accept ZV
1297 and a string's end position as POS.
1298
1299 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1300
1301 * composite.c (Ffind_composition_internal): Check POS
1302 for validity.
1303
1304 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1305
1306 * editfns.c (Fmessage_box): If the frame is not under a window
1307 system, output the message in the echo area.
1308
1309 2001-06-14 Richard M. Stallman <rms@gnu.org>
1310
1311 * xdisp.c (try_window_id): When EOB is visible, don't treat
1312 insertion at EOB as if it were "off the bottom of the screen."
1313
1314 2001-06-11 Andrew Innes <andrewi@gnu.org>
1315
1316 * w32proc.c (create_child): Add new parameter is_gui_app.
1317 (w32_executable_type): Add new parameter is_gui_app.
1318 (sys_spawnve): Use it.
1319 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1320 SIGQUIT. This matches better how the signals are interpreted by
1321 MSVC compiled programs.
1322 (syms_of_ntproc): Update docstring.
1323
1324 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1325
1326 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1327 well otherwise note_mouse_highlight might optimize away highlighting
1328 if we pass over that same overlay again.
1329
1330 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1331
1332 * lread.c (Fload): Document that the argument is run via
1333 substitute-in-file-name.
1334
1335 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1336
1337 * Makefile.in (bootstrap-doc): New target.
1338 (bootstrap-emacs): Depend on it.
1339
1340 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1341 auto-save-list-file-name when shutting down Emacs, because
1342 creating the directory might signal an error, and leaves
1343 Emacs in a strange state.
1344
1345 * term.c: (tty_cursor_hidden): New variable.
1346 (update_begin): Don't call tty_hide_cursor. Clean up.
1347 (update_end, set_terminal_window, set_scroll_region): Clean up.
1348 (ring_bell, reset_terminal_modes): Clean up.
1349 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1350 on tty_cursor_hidden.
1351 (write_glyphs): Call tty_hide_cursor.
1352
1353 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1354
1355 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1356
1357 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1358
1359 * xfns.c (enum image_value_type): New enumerator
1360 IMAGE_STRING_OR_NIL_VALUE.
1361 (parse_image_spec): Handle it.
1362 (xbm_format, pbm_format): Use it for :foreground and :background.
1363 (xbm_load, pbm_load): Check for nil color names.
1364
1365 * xterm.c (note_mouse_highlight): If an overlapping overlay
1366 exists, but we find that we highlight the same overlay as before,
1367 don't do the highlighting again.
1368
1369 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1370
1371 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1372 Protect unibyte strings created by replacing their multibyte
1373 equivalents in menu_items.
1374
1375 * keymap.c (Fsingle_key_description): NUL-terminate the string
1376 buffer before calling build_string.
1377
1378 * callproc.c (Fcall_process): Deal with decode_coding returning
1379 CODING_FINISH_INCONSISTENT_EOL.
1380
1381 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1382
1383 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1384 an item's name with its key description in case the description
1385 is a multibyte string.
1386
1387 * keymap.c (Fsingle_key_description): Create a multibyte string
1388 only if necessary.
1389
1390 * macros.c (Fstart_kbd_macro): Doc fix.
1391
1392 * xterm.c (cursor_in_mouse_face_p): New function.
1393 (x_draw_stretch_glyph_string): Use it to choose a different GC
1394 when drawing a cursor within highlighted text.
1395
1396 * editfns.c (char_property_eq): Put in #if 0.
1397
1398 * indent.c (string_display_width): Put in #if 0.
1399
1400 * lread.c (Fload): Remove unused label.
1401
1402 * termcap.c (speeds): Put in #if 0.
1403
1404 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1405
1406 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1407
1408 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1409 transformation matrix by 10.
1410
1411 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1412
1413 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1414 only if it's equal to the former foreground pixel color.
1415 (x_set_foreground_color, x_set_background_color)
1416 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1417
1418 2001-05-16 Dave Love <fx@gnu.org>
1419
1420 * insdel.c (signal_before_change, signal_after_change): Consider a
1421 local change hook which changes the buffer.
1422
1423 * process.c (read_process_output): Don't call signal_after_change
1424 and update_compositions after insert_from_string_before_markers.
1425
1426 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1427
1428 * xfaces.c (split_font_name): Use the right field when
1429 checking for `[...]' syntax.
1430
1431 * buffer.c (copy_overlays): New function.
1432 (clone_per_buffer_values): Use it.
1433
1434 * buffer.h (OVERLAY_PLIST): New macro.
1435
1436 * keymap.c (Fsingle_key_description): Replace a build_string with
1437 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1438
1439 * fontset.c (Ffontset_info): Check that face is non-null
1440 before accessing its fields.
1441
1442 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1443
1444 * keyboard.c (read_key_sequence): Prevent generating a fake
1445 prefix key twice.
1446
1447 * xfaces.c (split_font_name): Handle `[...]' for the right
1448 font name fields.
1449
1450 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1451 of CCL_STAT_INVALID_CMD.
1452
1453 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1454
1455 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1456 in <var> has no default value yet.
1457
1458 * xfaces.c (try_alternative_families): First try the FAMILY.
1459 And if nothing is found in the end, try again with scalable fonts.
1460 (try_font_list): Let try_alternative_families do a bit more of
1461 the work. Only use FAMILY if it is not nil.
1462 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1463
1464 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1465
1466 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1467 pointer shape when show_mouse_face has already done it.
1468
1469 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1470 full-width rows.
1471
1472 * xfaces.c (split_font_name): Make sure to leave the loop
1473 with the right value of `i'.
1474
1475 * xfaces.c (split_font_name): Handle matrix transformations
1476 in the pixel and point size fields of XLFD font names.
1477 (xlfd_point_size): Likewise.
1478
1479 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1480
1481 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1482 (x_to_w32_font): Add prototype.
1483
1484 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1485 redefining, to avoid compiler warnings.
1486
1487 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1488
1489 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1490 (w32_get_bdf_glyph): Cast between unsigned char and char when
1491 passing arguments to subroutines, to shut up compiler warnings.
1492 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1493 GET_HEX_VAL.
1494
1495 * xfaces.c: Include keyboard.h before frame.h, not after it.
1496
1497 * widget.c: Include keyboard.h before frame.h.
1498
1499 * w32term.h (struct image, struct face): Forward declaration, to
1500 avoid compiler warnings.
1501
1502 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1503
1504 * keyboard.c (read_key_sequence): Don't modify events when
1505 generating fake prefix keys (mode-line, scroll-bar, ...) since
1506 this prevents proper processing of such events when pushed back
1507 into unread-command-events.
1508
1509 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1510 actually redrawn. Make the function static.
1511 (note_mouse_highlight): Fix a case where the mouse cursor
1512 was changed back to the text cursor.
1513
1514 * xterm.h (clear_mouse_face): Remove prototype.
1515
1516 * xdisp.c (try_window_id): Fix the fix and set the right
1517 window_end_vpos.
1518
1519 * xdisp.c (try_window_id): Fix computation of window end in the
1520 case that lines were deleted at the end of the window. Add some
1521 more debug_method_adds.
1522
1523 * xfaces.c (try_alternative_families): New function.
1524 (try_font_list): Use it. If ATTRS specifies a family, check
1525 fonts from that family first.
1526 (choose_face_font): Remove code setting the family part of
1527 the pattern to nil.
1528
1529 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1530
1531 * xdisp.c (try_window_id): Fix case of all changes before
1532 the window start.
1533
1534 * xdisp.c (try_window_id): Add some xasserts.
1535
1536 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1537
1538 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1539
1540 2001-05-09 Dave Love <fx@gnu.org>
1541
1542 * xdisp.c (GIVE_UP): Fix for K&R C.
1543
1544 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1545
1546 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1547
1548 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1549 back to the text cursor shape without need.
1550
1551 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1552
1553 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1554
1555 * dispextern.h (inverse_video): Declare extern.
1556
1557 * keyboard.c (delete_kboard): Handle the case that selected_frame
1558 has been deleted in the course of x_connection_closed.
1559
1560 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1561
1562 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1563 Fix the change from 2001-04-30.
1564
1565 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1566
1567 * xfns.c (file_dialog_unmap_cb): New function.
1568 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1569 where a dialog is closed via the window manager.
1570
1571 * xdisp.c (try_window_id): Cases of changes all in front of
1572 the window start or all below the window end mostly rewritten.
1573 (redisplay_window): Move the tests if try_window_id is
1574 applicable to try_window_id.
1575 (GIVE_UP): New macro.
1576
1577 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1578
1579 * xterm.c (expose_window): Return int. If W is the window
1580 currently being updated, mark the frame garbaged.
1581 Fix computation of rows intersecting the exposed rectangle.
1582 (expose_window_tree): Stop when expose_window returns 0.
1583
1584 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1585 again if it has already been drawn.
1586
1587 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1588
1589 * syntax.c (update_syntax_table): Check that oldi has the same
1590 properties as old_prop before deciding not to invalidate.
1591
1592 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1593
1594 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1595 read-only text that is so because of text properties.
1596
1597 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1598 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1599 windows that are components of a Lucid menu bar.
1600
1601 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1602
1603 * term.c (turn_on_face): Fix reverse video handling on terminals
1604 that don't support colors.
1605
1606 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1607
1608 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1609 a non-buffer.
1610
1611 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1612
1613 * term.c (toggle_highlight): New function.
1614 (turn_on_face): Change handling of reverse video.
1615
1616 * process.c (wait_reading_process_input):
1617 Call record_asynch_buffer_change only if a timer really changed buffers.
1618
1619 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1620 of the number of overlays to check.
1621
1622 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1623
1624 * xdisp.c (try_window_id): Fix a case where window_end_pos
1625 and window_end_bytepos were not adjusted.
1626
1627 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1628
1629 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1630 zero instead of -1.
1631
1632 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1633
1634 * process.c (wait_reading_process_input) [!subprocesses]:
1635 Don't reference waiting_for_user_input_p, it's not defined in the
1636 branch without async subprocesses support.
1637
1638 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1639
1640 * keyboard.c (delete_kboard): Prevent a dangling reference
1641 from current_kboard to KB, which is freed.
1642
1643 * process.c (wait_reading_process_input):
1644 Call record_asynch_buffer_change after running timers, to make
1645 read_key_sequence aware of buffer changes from under it.
1646
1647 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1648
1649 * xfaces.c (Qscalable_fonts_allowed): New variable.
1650 (realizing_basic_faces_p): Removed.
1651 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1652 removed.
1653 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1654 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1655 for scalable-fonts-allowed to t.
1656
1657 * fileio.c (Finsert_file_contents): If the file size returned from
1658 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1659 read from files on a procfs whose contents are generated dynamically.
1660
1661 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1662
1663 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1664 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1665 (__memalign_hook): Make the two prototypes consistent.
1666
1667 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1668
1669 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1670 matrix of mini-windows.
1671
1672 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1673
1674 * intervals.c (find_interval): Don't rebalance during signal handling.
1675
1676 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1677
1678 * fns.c: Include blockinput.h.
1679
1680 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1681
1682 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1683
1684 * fns.c (Fcompare_strings): Fix return values.
1685
1686 * window.c (window_scroll): Change the meaning of N to mean
1687 N screen-fulls or N lines.
1688 (window_scroll_pixel_based, window_scroll_line_based)
1689 (scroll_command, Fscroll_other_window): Change accordingly.
1690
1691 * window.c (window_scroll_pixel_based, Frecenter):
1692 Call window_box_height instead of using it.last_visible_y for the
1693 height of the window.
1694
1695 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1696 instead of using it.last_visible_y for the height of the window.
1697
1698 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1699 From Dan Holmsand <dan@eyebee.com>.
1700
1701 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1702 able to write to hidden and system files. From Dan Holmsand
1703 <dan@eyebee.com>.
1704
1705 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1706 Holmsand <dan@eyebee.com>.
1707
1708 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1709
1710 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1711
1712 * window.c (window_internal_height): Return 1 less if the
1713 window has a header line.
1714
1715 * xdisp.c (try_window_id): When scrolling on a terminal, take
1716 the change of window_internal_height into account.
1717
1718 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1719
1720 * gmalloc.c (align): If the argument SIZE would overflow
1721 __malloc_ptrdiff_t, fail right away.
1722
1723 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1724
1725 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1726 Make sure the tooltip is completely visible.
1727 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1728
1729 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1730
1731 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1732
1733 2001-04-06 Dave Love <fx@gnu.org>
1734
1735 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1736 Fix test of `from'.
1737
1738 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1739
1740 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1741
1742 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1743
1744 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1745
1746 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
1747
1748 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
1749
1750 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
1751 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
1752
1753 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
1754 shell widget's position only if it is non-null.
1755
1756 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
1757 Set f->output_data.x->widget to null after destroying it.
1758
1759 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
1760 FILENAME to bring it in synch with the documentation.
1761
1762 * xfaces.c (realizing_basic_faces_p): Renamed from
1763 realize_default_face_p.
1764 (realize_basic_faces): Set/clear realizing_basic_faces_p.
1765 (realize_default_face): Don't set the flag.
1766
1767 2001-04-04 Gerd Moellmann <gerd@gnu.org>
1768
1769 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
1770
1771 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
1772
1773 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
1774 the buffer that was used for echoing.
1775
1776 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
1777 (first_font_matching): Removed unused function.
1778 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
1779 (may_use_scalable_font_p): Remove parameter FONT; rename
1780 parameter NAME to FONT.
1781 (x_face_list_fonts): Fix missing bounds check.
1782 (realizing_default_face_p): New variable.
1783 (realize_default_face): Set and clear that flag.
1784 (x_face_list_fonts): When called during the realization of the
1785 default face, and no matching fonts are found when ignoring
1786 scalable fonts and fonts matching a regexp from
1787 face-ignored-fonts, try without ignoring fonts.
1788
1789 2001-04-03 Gerd Moellmann <gerd@gnu.org>
1790
1791 * xfns.c (postprocess_image): New function.
1792 (lookup_image): Call it for all image types except PostScript.
1793 (x_kill_gs_process): Call postprocess_image.
1794
1795 * xterm.c (x_use_underline_position_properties): New variable.
1796 (x_draw_glyph_string): Use it.
1797 (syms_of_xterm): DEFVAR_BOOL it.
1798
1799 2001-04-02 Gerd Moellmann <gerd@gnu.org>
1800
1801 * xterm.c (x_alloc_nearest_color_1): New function.
1802 (x_alloc_nearest_color): Use it.
1803 (x_color_cells): Take a Display as argument, instead of a frame.
1804 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
1805 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
1806 (x_initialize): Register cvt_string_to_pixel as resource converter
1807 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
1808
1809 2001-03-30 Gerd Moellmann <gerd@gnu.org>
1810
1811 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
1812 (set_iterator_to_next): If a string from a display property ends,
1813 consider the case that this might also be the end of an
1814 overlay string having the display property.
1815
1816 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
1817
1818 * xdisp.c (reseat_to_string): Undo last change.
1819
1820 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
1821 matrix of a window when the header line changes, when
1822 new rows are allocated, or when the width changes.
1823
1824 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
1825
1826 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
1827
1828 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
1829
1830 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
1831 deprecated.
1832
1833 2001-03-29 Gerd Moellmann <gerd@gnu.org>
1834
1835 * data.c (Fsubr_interactive_form): New function.
1836 (syms_of_data): Defsubr it.
1837
1838 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
1839 (live_float_p, live_misc_p): Return 1 only if the offset of the
1840 pointer in its block is >= 0.
1841
1842 2001-03-28 Paul Eggert <eggert@twinsun.com>
1843
1844 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
1845 microseconds calcuation. Avoid double-rounding problem.
1846 In doc string, warn that the result is approximate.
1847
1848 2001-03-28 Gerd Moellmann <gerd@gnu.org>
1849
1850 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
1851 bind `inhibit-eval-during-redisplay' to t.
1852
1853 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
1854
1855 * xdisp.c (inhibit_eval_during_redisplay)
1856 (Qinhibit_eval_during_redisplay): New variables.
1857 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
1858 don't eval, return nil instead.
1859 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
1860 Initialize Qinhibit_eval_during_redisplay.
1861
1862 * xdisp.c (reseat_to_string): If STRING is multibyte, set
1863 the iterator's multibyte_p flag.
1864
1865 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
1866 instead of setting it to zero; it's incremented for each frame
1867 where the menu face is changed.
1868
1869 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
1870 change bottom shadow accordingly.
1871
1872 * xterm.c (expose_window_tree, expose_frame): Don't compute
1873 intersections here.
1874 (expose_window): Do it here instead.
1875 (x_draw_glyph_string): Fix a computation of the underline position.
1876
1877 * bytecode.c (BYTE_CODE_QUIT): New macro.
1878 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
1879
1880 2001-03-27 Gerd Moellmann <gerd@gnu.org>
1881
1882 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
1883 Give up if matrix starts in an ellipsis.
1884 (init_from_display_pos): Do nothing if POS doesn't specify
1885 a dpvec_index but the iterator has such a position.
1886
1887 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
1888
1889 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
1890 x/y position is (0, 0) after destroying the menu bar, restore
1891 its original position.
1892
1893 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
1894 (init_from_display_pos): Use it.
1895 (try_window_reusing_current_matrix): Don't use cursor_row_p.
1896
1897 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1898
1899 * xdisp.c (try_window_id): Undo last change.
1900
1901 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
1902
1903 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
1904
1905 * buffer.c (syms_of_buffer): Doc fix.
1906
1907 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1908
1909 * xfaces.c (x_update_menu_appearance): Use local variable
1910 popup_path for setting font resources.
1911
1912 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
1913
1914 * frame.c (Fframe_list): Don't reference tip_frame if
1915 HAVE_WINDOW_SYSTEM is not defined.
1916
1917 * emacs.c (main): Update the copyright year. From Werner LEMBERG
1918 <wl@gnu.org>.
1919
1920 2001-03-25 Gerd Moellmann <gerd@gnu.org>
1921
1922 * xdisp.c (init_from_display_pos): Test invisible property
1923 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
1924
1925 * xdisp.c (redisplay_internal) <update one window>: Make sure
1926 last_arrow_position and last_arrow_string are set.
1927
1928 * frame.c (Fframe_list): Don't return a tooltip frame.
1929
1930 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1931
1932 * xdisp.c (mark_window_display_accurate_1): New function,
1933 extracted from mark_window_display_accurate.
1934 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
1935 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
1936 (mark_window_display_accurate): Use it.
1937 (redisplay_internal): Use it for the selected window.
1938 (redisplay_internal): Avoid duplicate mark_window_display_accurate
1939 for the selected frame.
1940
1941 * xdisp.c Use make_number, for readability.
1942 (try_window_id): Disable rows below the window end.
1943 (try_window_reusing_current_matrix): Use cursor_row_p.
1944 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
1945 of rows.
1946 (init_from_display_pos): If POS specifies a position in a display
1947 vector, maybe get the iterator set up for that ellipsis.
1948
1949 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
1950
1951 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
1952
1953 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
1954
1955 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1956
1957 * xfaces.c (x_update_menu_appearance): Use a different path
1958 for Lucid popup menus.
1959
1960 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
1961
1962 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
1963
1964 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
1965 (string_buffer_position): Use `make_number'.
1966
1967 2001-03-22 Gerd Moellmann <gerd@gnu.org>
1968
1969 * xfaces.c (x_update_menu_appearance): Renamed from
1970 x_set_menu_face_resources. Use different resources for popups.
1971
1972 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
1973 (GC_CHECK_STRING_BYTES): Don't define.
1974
1975 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
1976 Removed, together with subroutines.
1977 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
1978 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
1979
1980 * dispextern.h (x_set_menu_resources_from_menu_face):
1981 Remove prototype.
1982
1983 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
1984 Remove calls to x_set_menu_resources_from_menu_face.
1985
1986 * xfaces.c (xm_set_menu_resources_from_menu_face):
1987 Remove #ifndef LESSTIF_VERSION.
1988
1989 * xmenu.c: Include widget.h.
1990 (single_submenu): Return int. Some cleanup.
1991 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
1992
1993 2001-03-21 Gerd Moellmann <gerd@gnu.org>
1994
1995 * xterm.c (x_update_window_end): Handle overwritten mouse face
1996 also for tool bar windows.
1997 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
1998 DRAW is DRAW_IMAGE_RAISED.
1999
2000 2001-03-20 Gerd Moellmann <gerd@gnu.org>
2001
2002 * print.c (syms_of_print): Doc fixes.
2003
2004 * fns.c (Fmd5): Doc fix.
2005
2006 2001-03-19 Gerd Moellmann <gerd@gnu.org>
2007
2008 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
2009 Clear area of the frame not occupied by the scroll bar.
2010
2011 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
2012 tip frame's root window buffer to *tip* right after creating
2013 the frame.
2014
2015 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
2016 is an integer don't have to be for space characters.
2017
2018 2001-03-16 Gerd Moellmann <gerd@gnu.org>
2019
2020 * indent.c (current_column, current_column_1, Fmove_to_column)
2021 (compute_motion): Handle characters from display vectors differently.
2022
2023 2001-03-15 Kenichi Handa <handa@etl.go.jp>
2024
2025 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
2026 drawing glyph string.
2027
2028 2001-03-15 Gerd Moellmann <gerd@gnu.org>
2029
2030 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
2031 (command_loop_1): Undo last change.
2032
2033 * xterm.c (fast_find_position): Return the correct vpos.
2034
2035 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
2036 non-null, set a per-buffer value in BUF instead of the current buffer.
2037 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
2038 Call store_symval_forwarding with BUF null.
2039 (set_internal): Call store_symval_forwarding with the BUF
2040 parameter passed to set_internal. Formerly, the value was always
2041 set in the current buffer; the buffer recorded in specbind for
2042 this case wasn't used.
2043 (arith_driver): Reindent.
2044
2045 * buffer.c (swap_out_buffer_local_variables):
2046 Call store_symval_forwarding with BUF null.
2047
2048 * lisp.h (store_symval_forwarding): Change prototype.
2049
2050 * eval.c (specbind): Call store_symval_forwarding with BUF null.
2051
2052 2001-03-14 Gerd Moellmann <gerd@gnu.org>
2053
2054 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
2055 FOR_DELETION. Avoid resizing the mini-window of the selected
2056 frame if FOR_DELETION is set.
2057 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
2058 (Fmake_frame_invisible): Change calls to do_switch_frame for new
2059 signature.
2060
2061 * window.c (Fset_window_configuration): Change call to
2062 do_switch_frame to new format.
2063
2064 * keyboard.c (quit_throw_to_read_char): Change call to
2065 do_switch_frame to new format.
2066
2067 * lisp.h (do_switch_frame): Change prototype.
2068
2069 * frame.c (Fframe_parameters): In the `buffer-list' frame
2070 parameter, store the buffer list of FRAME, not the list of the
2071 selected frame.
2072
2073 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
2074 box just because the glyph row's full_width_p flag is set.
2075
2076 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
2077
2078 * xdisp.c (highlight_trailing_whitespace): On character terminals,
2079 skip the padding blanks inserted in extend_face_to_end_of_line,
2080 before checking for trailing whitespace.
2081
2082 2001-03-13 Gerd Moellmann <gerd@gnu.org>
2083
2084 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
2085 Remove special handling for LessTif/Motif.
2086 (toplevel): Don't include Xm/Xm.h.
2087
2088 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
2089 Remove workaround code for LessTif; it doesn't work anymore.
2090
2091 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
2092 Xm/ScrollBarP.h.
2093
2094 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
2095 Don't access private scroll bar data; it's no longer necessary with
2096 contemporary LessTif.
2097
2098 * xfaces.c (xm_set_menu_resources_from_menu_face):
2099 Change #if 0 to #ifndef LESSTIF_VERSION.
2100
2101 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
2102 removing button grabs.
2103
2104 2001-03-13 Kenichi Handa <handa@etl.go.jp>
2105
2106 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
2107 and clip-large-size-font as obsolete.
2108
2109 * lread.c (read_multibyte): Check the validity of multibyte
2110 sequence. If invalid, return the first byte.
2111
2112 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2113
2114 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
2115 before running the command; timer functions or process
2116 filters may have set it.
2117
2118 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
2119
2120 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
2121 Doc fix.
2122
2123 2001-03-12 Gerd Moellmann <gerd@gnu.org>
2124
2125 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
2126 to sprintf.
2127
2128 2001-03-09 Gerd Moellmann <gerd@gnu.org>
2129
2130 * dispextern.h (string_buffer_position): Add prototype.
2131
2132 * xdisp.c (string_buffer_position, display_prop_string_p)
2133 (single_display_prop_string_p): New functions.
2134
2135 * xterm.c (note_mouse_highlight): If there's no help-echo on
2136 a string, look at the buffer text ``under'' it.
2137
2138 * keyboard.c (make_lispy_event): Add string info to the event,
2139 analogous to what's done on mode lines.
2140 (read_key_sequence): For a click on a string, consider `local-map'
2141 and `keymap' of that string.
2142
2143 * keyboard.c (make_lispy_event, make_lispy_movement):
2144 Adjust calls to buffer_posn_from_coords to new format.
2145
2146 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
2147
2148 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
2149 POS; return void.
2150
2151 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
2152 flags argument to emacs_open; it seems to conflict with O_EXCL.
2153
2154 2001-03-09 Kenichi Handa <handa@etl.go.jp>
2155
2156 * composite.h (struct composition): Change types of members;
2157 glyph_len to unsigned, width to unsigned short.
2158
2159 2001-03-08 Andrew Innes <andrewi@gnu.org>
2160
2161 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
2162 menu titles.
2163
2164 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2165
2166 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
2167 instead of nil.
2168
2169 * xterm.c (note_mouse_highlight): Handle mouse-face and
2170 help-echo in strings.
2171 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
2172 (fast_find_string_pos): New function.
2173
2174 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
2175 (display_string): Call face_at_string_position with new parameter.
2176
2177 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
2178 Handle `mouse-face'.
2179
2180 * dispextern.h (face_at_string_position): Change prototype.
2181
2182 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
2183
2184 * keyboard.c (make_lispy_event): Avoid generating drag events
2185 if the mouse hasn't actually moved to another buffer position.
2186
2187 2001-03-08 Dave Love <fx@gnu.org>
2188
2189 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
2190
2191 2001-03-08 Gerd Moellmann <gerd@gnu.org>
2192
2193 * process.c (Fset_process_window_size): Fix a typo.
2194
2195 2001-03-08 Kenichi Handa <handa@etl.go.jp>
2196
2197 * coding.c (detect_coding_sjis): Do more rigid check.
2198 (detect_coding_big5): Likewise.
2199 (decode_coding_sjis_big5): Likewise.
2200 (Fdetect_coding_region): Call detect_coding_system with tailing
2201 anchor byte `\0' for more rigid detection.
2202 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
2203 (Fdetect_coding_string): Likewise.
2204
2205 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
2206
2207 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
2208 a string before extracting its data.
2209
2210 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2211
2212 * window.c (Frecenter): Rewrite code handling negative values
2213 of ARG on graphical frames.
2214
2215 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
2216
2217 * window.c (displayed_window_lines): If W->start is outside the
2218 accessible portion of the buffer, call start_display with BEGV or
2219 ZV instead of W->start.
2220
2221 2001-03-07 Gerd Moellmann <gerd@gnu.org>
2222
2223 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
2224
2225 * process.c (Fset_process_filter): Don't crash if the input
2226 file descriptor of PROCESS is closed.
2227 (Fset_process_window_size): Likewise.
2228
2229 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2230
2231 * xterm.c (XTflash): Make the timeout of select shorter, and call
2232 select repeatedly until the desired time expires.
2233
2234 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2235
2236 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
2237
2238 * xfns.c (Fx_create_frame): Clear Vwindow_list.
2239
2240 * lisp.h (Vwindow_list): Declare extern.
2241
2242 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2243
2244 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2245
2246 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2247
2248 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2249 to detect a case where we have to highlight a different region
2250 despite not having left the currently highlighted region.
2251 Set mouse_face_overlay in the x_display_info.
2252 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2253
2254 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2255
2256 * buffer.c (mouse_face_overlay_overlaps): New function.
2257
2258 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2259 (Qmouse_face): Declare extern.
2260
2261 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2262 if face_change_count is non-zero.
2263
2264 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2265
2266 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2267 that the source is unibyte.
2268
2269 2001-03-05 Dave Love <fx@gnu.org>
2270
2271 * xterm.c (XTmouse_position): Fix typo.
2272
2273 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2274
2275 * minibuf.c (read_minibuf): Clean up the binding stack if
2276 called noninteractively.
2277
2278 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2279
2280 * coding.c (syms_of_coding): Docstring modified.
2281
2282 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2283
2284 * charset.c (char_to_string): If a single byte char has modifier
2285 bits that can't be reflected to the character code, ignore them
2286 instead of signaling an error.
2287
2288 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2289
2290 * s/msdos.h: Update copyright notice.
2291
2292 * dosfns.h: Update copyright notice.
2293
2294 * dosfns.c: Update copyright notice.
2295
2296 * msdos.c: Update copyright notice.
2297
2298 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2299
2300 * xterm.c (glyph_rect): New function.
2301 (XTmouse_position): Use it to raise the threshold for mouse
2302 movement event generation.
2303
2304 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2305
2306 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2307 specifies (reverse . t), reverse the initial screen colors.
2308 (IT_set_frame_parameters): If the property is foreground-color,
2309 but we are reversing the colors, set bg_set, not fg_set.
2310 Likewise for setting background-color and reversing: set fg_set.
2311 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2312 in effect.
2313
2314 * xfaces.c (Finternal_set_lisp_face_attribute)
2315 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2316 parameters alist.
2317
2318 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2319
2320 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2321 to a single slash in the middle of file names.
2322
2323 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2324 Accept only alphanumeric time zone names.
2325
2326 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2327 or width area.
2328 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2329 a widget to zero height.
2330
2331 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2332
2333 * window.c (Fwindow_end): Call move_it_past_eol only if
2334 ending up on a partially visible line.
2335
2336 2001-03-01 Dave Love <fx@gnu.org>
2337
2338 * ccl.c (Fccl_execute): Doc fix.
2339
2340 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2341
2342 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2343 of the tool bar before calling x_figure_window_size.
2344
2345 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2346 NULL after destroying it, otherwise XTread_socket can access a
2347 destroyed widget when input is unblocked.
2348
2349 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2350
2351 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2352 same name as before, although there was a change in fontsets.
2353
2354 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2355
2356 * lisp.h (Fframe_parameter): Declare.
2357
2358 * window.c (set_window_buffer): Field vscroll is an int, not a
2359 Lisp_Object.
2360
2361 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2362
2363 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2364 NULL instead.
2365
2366 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2367 NULL instead.
2368
2369 * alloc.c (toplevel): Include process.h.
2370 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2371 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2372 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2373 (allocate_vector, allocate_hash_table, allocate_window)
2374 (allocate_frame, allocate_process, allocate_other_vector):
2375 New functions.
2376 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2377 (mark_maybe_pointer): New function.
2378 (mark_memory): Also mark Lisp data to which only pointers
2379 remain and not Lisp_Objects.
2380 (min_heap_address, max_heap_address): New variables.
2381 (mem_find): Return MEM_NIL if START is below min_heap_address or
2382 above max_heap_address.
2383 (mem_insert): Compute min_heap_address and max_heap_address.
2384
2385 * process.c (make_process): Use allocate_process.
2386
2387 * frame.c (make_frame): Use allocate_frame.
2388
2389 * window.c (make_window, make_dummy_parent): Use allocate_window.
2390 (Fcurrent_window_configuration): Use allocate_other_vector.
2391
2392 * lisp.h (allocate_vectorlike): Remove prototype.
2393 (allocate_vector, allocate_other_vector, allocate_frame)
2394 (allocate_window, allocate_process, allocate_hash_table):
2395 Add prototypes.
2396
2397 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2398 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2399
2400 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2401
2402 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2403 treat the produced bytes as a valid multibyte sequence.
2404
2405 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2406 (ccl_driver) <CCL_WriteMultibyteChar2>:
2407 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2408 <ccl_finish>: Set ccl->eight_bit_control properly.
2409
2410 * ccl.h (struct ccl_program): New member eight_bit_control.
2411
2412 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2413
2414 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2415 accessible_keymaps_char_table.
2416 (accessible_keymaps_char_table): Obey `is_metized'.
2417 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2418 Lisp_Object.
2419
2420 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2421
2422 * dispnew.c: Check HAVE_TERM_H before including term.h.
2423
2424 2001-02-24 Andrew Innes <andrewi@gnu.org>
2425
2426 * makefile.w32-in: Update copyright notice.
2427
2428 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2429
2430 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2431
2432 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2433
2434 * Makefile.in (lisp): Add international/utf-8.elc.
2435
2436 * fontset.c (Fnew_fontset): Fix handling of the case that an
2437 element of FONTLIST is a cons of family and registry.
2438
2439 2001-02-23 Jason Rumney <jasonr@gnu.org>
2440
2441 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2442 to height unconditionally.
2443
2444 * w32term.c (x_set_glyph_string_background_width): Extend the
2445 background face to the end of the drawing area in the text area, only.
2446 (x_insert_glyphs): Call window_box_left to obtain the left
2447 x-coordinate of the area to shift.
2448
2449 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2450 safe_run_hooks.
2451
2452 2001-02-22 Andrew Innes <andrewi@gnu.org>
2453
2454 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2455 ($(BLD)\dispnew.obj):
2456 ($(BLD)\editfns.obj):
2457 ($(BLD)\fileio.obj):
2458 ($(BLD)\filelock.obj):
2459 ($(BLD)\keyboard.obj):
2460 ($(BLD)\w32proc.obj):
2461 ($(BLD)\process.obj):
2462 ($(BLD)\sysdep.obj): Ditto.
2463
2464 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2465 header files.
2466 ($(BLD)/dispnew.$(O)):
2467 ($(BLD)/editfns.$(O)):
2468 ($(BLD)/fileio.$(O)):
2469 ($(BLD)/filelock.$(O)):
2470 ($(BLD)/keyboard.$(O)):
2471 ($(BLD)/w32proc.$(O)):
2472 ($(BLD)/process.$(O)):
2473 ($(BLD)/sysdep.$(O)): Ditto.
2474
2475 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2476
2477 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2478 at the start of the function, check that the \n in it->c is
2479 from the iterator's current position.
2480
2481 * xdisp.c (handle_single_display_prop): Add parameter
2482 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2483 properties which replace the display of text with something else.
2484 (handle_display_prop): Call handle_single_display_prop with
2485 additional argument saying if we already replaced text display
2486 with something else. Use AREF.
2487 (with_echo_area_buffer_unwind_data, display_menu_bar)
2488 (decode_mode_spec_coding): Use AREF and ASIZE.
2489
2490 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2491 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2492 * vmstime.h: Files removed.
2493
2494 * unexencap.c, unexfx2800.c: Files removed.
2495
2496 * dispnew.c (direct_output_for_insert): Give up if we are showing
2497 a message or just cleared the message because we might need to
2498 resize the echo area window or display an empty echo area.
2499
2500 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2501
2502 * xdisp.c (redisplay_internal): Do the
2503 mark_window_display_accurate after all windows have been
2504 redisplayed because this call resets flags in buffers which are
2505 needed for proper redisplay.
2506
2507 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2508 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2509 the old names.
2510
2511 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2512 busy_window to hourglass_window, busy_p to hourglass_p.
2513
2514 * msdos.h (struct x_output): Rename busy_window to
2515 hourglass_window, busy_p to hourglass_p.
2516
2517 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2518 busy_window to hourglass_window, busy_p to hourglass_p.
2519
2520 * xfns.c: Rename everything containing *busy_cursor* and similar
2521 to *hourglass*.
2522 (syms_of_w32fns): Rename x-busy-pointer-shape to
2523 x-hourglass-pointer-shape, display-busy-cursor to
2524 display-hourglass, busy-cursor-delay to hourglass-delay.
2525
2526 * w32fns.c: Rename everything containing *busy_cursor* and similar
2527 to *hourglass*.
2528 (syms_of_w32fns): Rename x-busy-pointer-shape to
2529 x-hourglass-pointer-shape, display-busy-cursor to
2530 display-hourglass, busy-cursor-delay to hourglass-delay.
2531
2532 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2533 of its busy_p flag.
2534
2535 * dispextern.h (start_hourglass, cancel_hourglass)
2536 (display_hourglass_p): Renamed from *busy_cursor*.
2537
2538 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2539
2540 * keyboard.c (read_char): When an event from unread-command-events
2541 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2542
2543 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2544 equal to the current buffer.
2545
2546 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2547 nil, otherwise we're left with truncate_lines t when a message
2548 is printed with message-truncate-lines bound to t.
2549
2550 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2551
2552 * window.c (Fmove_to_window_line): Undo last change.
2553 (displayed_window_lines): Call line_bottom_y to determine
2554 the line's bottom position.
2555
2556 * dispextern.h (line_bottom_y): Add prototype.
2557
2558 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2559 (pos_visible_p): Use it.
2560
2561 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2562 set redisplaying_p to 0 here instead of in Frecursive_edit.
2563 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2564 set redisplaying_p.
2565
2566 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2567 New variables.
2568 (syms_of_xdisp): Initialize new variables.
2569 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2570 Specbind `inhibit-menubar-update' when updating the menu bar.
2571
2572 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2573 safe_run_hooks.
2574
2575 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2576 safe_run_hooks.
2577
2578 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2579 is null.
2580
2581 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2582 to the start of the file.
2583
2584 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2585
2586 * window.c (set_window_buffer): Fix last change.
2587
2588 * window.c (set_window_buffer): Set window's vscroll to 0.
2589
2590 * window.c (coordinates_in_window): Increase width of area
2591 where the vertical line can be dragged.
2592
2593 * xterm.c (x_set_glyph_string_background_width): Extend the
2594 background face to the end of the drawing area in the text
2595 area, only.
2596
2597 * xdisp.c (handle_single_display_prop): Set iterator's position
2598 to where the `display' property starts, like for images.
2599 (dump_glyph): New function.
2600 (dump_glyph_row): Use it. Dump info about marginal areas.
2601
2602 * dispnew.c (direct_output_for_insert): Recognize more cases where
2603 glyphs can be written instead of being inserted.
2604
2605 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2606 the left x-coordinate of the area to shift.
2607
2608 * dired.c (directory_files_internal): Set result list to nil
2609 before retrying.
2610
2611 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2612
2613 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2614 invalid multibyte sequence, treat *SRC as a character of
2615 eight-bit-graphic.
2616
2617 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2618
2619 * textprop.c (Fset_text_properties): Doc fix.
2620
2621 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2622
2623 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2624
2625 2001-02-14 Dave Love <fx@gnu.org>
2626
2627 * coding.c: Doc and message fixes.
2628
2629 2001-02-14 Andrew Innes <andrewi@gnu.org>
2630
2631 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2632 Emacs frame above the screen size.
2633
2634 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2635
2636 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2637
2638 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2639
2640 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2641 case that TO ends up beyond ZV after running before-change-functions.
2642
2643 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2644 the selected window if it is showing the buffer in question.
2645
2646 * dired.c (directory_files_internal): Initialize errno.
2647 (toplevel): Include errno.h.
2648
2649 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2650
2651 * xfaces.c (best_matching_font): New parameter width_ratio.
2652 Multiply avgwidth by width_ratio.
2653 (choose_face_font): Call best_matching_font with width_ratio
2654 calculated from the column width of C.
2655
2656 2001-02-12 Andrew Innes <andrewi@gnu.org>
2657
2658 The following changes are to draw box lines inside characters area
2659 if line-width is negative.
2660
2661 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2662 face->box_line_width is negative.
2663 (x_produce_stretch_glyph): Likewise.
2664 (x_produce_glyphs): Likewise.
2665 (x_estimate_mode_line_height): Likewise.
2666 (x_draw_glyph_string_background): Likewise.
2667 (x_draw_glyph_string_foreground): Likewise.
2668 (x_draw_composite_glyph_string_foreground): Likewise.
2669 (x_draw_glyph_string_box): Likewise.
2670 (x_draw_image_foreground): Likewise.
2671 (x_draw_image_relief): Likewise.
2672 (x_draw_image_foreground_1): Likewise.
2673 (x_draw_image_glyph_string): Likewise.
2674
2675 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2676
2677 The following changes are to draw box lines inside characters area
2678 if line-width is negative.
2679
2680 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2681 face->box_line_width is negative.
2682 (x_produce_stretch_glyph): Likewise.
2683 (x_produce_glyphs): Likewise.
2684 (x_estimate_mode_line_height): Likewise.
2685 (x_draw_glyph_string_background): Likewise.
2686 (x_draw_glyph_string_foreground): Likewise.
2687 (x_draw_composite_glyph_string_foreground): Likewise.
2688 (x_draw_glyph_string_box): Likewise.
2689 (x_draw_image_foreground): Likewise.
2690 (x_draw_image_relief): Likewise.
2691 (x_draw_image_foreground_1): Likewise.
2692 (x_draw_image_glyph_string): Likewise.
2693
2694 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2695 and :line-width can be negative.
2696 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2697
2698 2001-02-09 Jason Rumney <jasonr@gnu.org>
2699
2700 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2701 characters the same as ASCII and latin-1.
2702 (x_display_and_set_cursor): Check for the focus frame's selected
2703 window instead of selected_window.
2704 (x_after_update_window_line): Don't clear if frame's internal
2705 border width is zero.
2706 (x_new_font): Don't change a tooltip's size.
2707 (w32_initialize): Set char_ins_del_ok to 1.
2708
2709 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2710 (x_set_font): If font hasn't changed, avoid recomputing
2711 faces and other things.
2712 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2713 (Fx_create_frame): Add the tool bar height to the frame height.
2714 (x_create_tip_frame): Prevent changing the tooltip's
2715 background color by specifying a color for the default font
2716 in .Xdefaults.
2717 (Qcancel_timer): New variable.
2718 (syms_of_w32fns): Initialize and staticpro it.
2719 (Fx_hide_tip, Fx_show_tip): Use it.
2720 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2721 the timer.
2722 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2723
2724 * w32.c (init_environment): Duplicate local string before putenv.
2725
2726 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2727
2728 * charset.c (Fstring): A typo.
2729
2730 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2731
2732 * charset.c (Fstring): If all arguments are less than 256, return
2733 a unibyte string.
2734
2735 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2736 return a unibyte string.
2737
2738 * coding.c (code_convert_region): After detecting a coding, if
2739 nothing found, set coding->composing to COMPOSITION_NO.
2740 (decode_coding_string): Likewise.
2741
2742 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2743
2744 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2745 to avoid overflow.
2746
2747 2001-02-07 Kenichi Handa <handa@etl.go.jp>
2748
2749 * charset.c (parse_str_to_multibyte): New function.
2750
2751 * charset.h (parse_str_to_multibyte): Extern it.
2752
2753 * print.c (print_string): If we are going to print a unibyte
2754 string into a multibyte buffer, convert the string to multibyte by
2755 str_to_multibyte.
2756
2757 2001-02-06 Andrew Innes <andrewi@gnu.org>
2758
2759 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
2760 been created. It seems we can get sent window messages such as
2761 WM_ERASEBKGND before we properly update a frame.
2762
2763 2001-02-06 Gerd Moellmann <gerd@gnu.org>
2764
2765 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
2766 Avoid some unnecessary cursor positioning.
2767
2768 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2769
2770 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
2771 (LFACE_AVGWIDTH): New macro.
2772 (LFACEP): Use AREF.
2773 (check_lface_attrs): Check LFACE_AVGWIDTH.
2774 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
2775 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
2776 (merge_face_vectors): Check LFACE_AVGWIDTH.
2777 (Finternal_make_lisp_face): Use AREF.
2778 (xm_set_menu_resources_from_menu_face)
2779 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
2780 (Finternal_lisp_face_empty_p): Use AREF.
2781 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
2782 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
2783 Compare average widths..
2784 (best_matching_font): Arrange for comparing average widths.
2785
2786 * dispextern.h (enum lface_attribute_index):
2787 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
2788
2789 2001-02-05 Dave Love <fx@gnu.org>
2790
2791 * puresize.h: Revert last change following loadup.el change.
2792
2793 2001-02-05 Andrew Innes <andrewi@gnu.org>
2794
2795 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
2796 invocation of temacs, to work with Windows 2000.
2797 (bootstrap-emacs): Ditto.
2798
2799 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2800
2801 * xterm.c (x_display_and_set_cursor): Check for the focus
2802 frame's selected window instead of selected_window.
2803
2804 * xdisp.c (try_scrolling): If point is in the line below the
2805 window, make sure to move the iterator at least a canonical
2806 char height down.
2807
2808 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
2809
2810 2001-02-05 Kenichi Handa <handa@etl.go.jp>
2811
2812 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
2813 If invalid, execute CCL_INVALID_CMD.
2814 (ccl_driver): If the CCL program is terminated because of
2815 CCL_STAT_INVALID_CMD, copy the remaining source data to the
2816 destination instead of throwing them away.
2817
2818 2001-02-02 Gerd Moellmann <gerd@gnu.org>
2819
2820 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
2821 faces and other things.
2822
2823 * xdisp.c (get_next_display_element): Fix case of empty
2824 display table entry.
2825
2826 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
2827
2828 * editfns.c (Fconstrain_to_field): Doc fix.
2829
2830 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
2831 into `thoroughly', to make it consistent with the doc string.
2832
2833 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
2834
2835 2001-02-01 Gerd Moellmann <gerd@gnu.org>
2836
2837 * search.c (search_buffer): Call set_search_regs with a byte
2838 position, not a character position.
2839
2840 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
2841 minibuffer-only,
2842
2843 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
2844
2845 * frame.c (Fmodify_frame_parameters): Doc fix.
2846
2847 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2848
2849 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
2850 identifier which is not reserved by Standard C.
2851
2852 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
2853
2854 * window.c (enum window_part): New enumeration.
2855 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
2856 Qright_bitmap_area.
2857 (coordinates_in_window): Return an enumerator from enum
2858 window_part. Fix handling of right scroll bar.
2859 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
2860 `right-fringe' instead of `left-bitmap-area' and
2861 `right-bitmap-area'. Use enumerators from enum window_part
2862 instead of hard-coded integers.
2863 (check_window_containing, window_from_coordinates):
2864 Use enumerators from enum window_part instead of hard-coded integers.
2865 (syms_of_window): Replace Qleft_bitmap_area and
2866 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
2867
2868 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
2869
2870 * editfns.c (Fformat_time_string): Doc fix.
2871
2872 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
2873
2874 * keymap.c (Fwhere_is_internal): Use the first valid binding
2875 if no ascii binding is found (when firstonly is t).
2876
2877 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2878
2879 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
2880 instead of Finteractive_p.
2881
2882 * lisp.h (interactive_p): Add prototype.
2883
2884 * eval.c (interactive_p): New function.
2885 (Finteractive_p): Use it.
2886
2887 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
2888
2889 2001-01-31 Dave Love <fx@gnu.org>
2890
2891 * .gdbinit (hook-run): Define to run xreload.
2892
2893 * textprop.c (Fset_text_properties): Fix newline in doc string.
2894
2895 2001-01-30 Gerd Moellmann <gerd@gnu.org>
2896
2897 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
2898 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
2899
2900 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
2901 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
2902 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
2903
2904 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
2905 height.
2906
2907 2001-01-30 Dave Love <fx@gnu.org>
2908
2909 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
2910 AFTER_POTENTIAL_GC.
2911
2912 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2913
2914 * bytecode.c (Fbyte_code) <Bcurrent_column>:
2915 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
2916
2917 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
2918
2919 * textprop.c (Fset_text_properties): Doc fix.
2920
2921 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2922
2923 * xdisp.c (forward_to_next_line_start): Remove xassert.
2924
2925 2001-01-29 Jason Rumney <jasonr@gnu.org>
2926
2927 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
2928 returning without releasing it.
2929
2930 2001-01-29 Kenichi Handa <handa@etl.go.jp>
2931
2932 * w32fns.c (w32_font_match): Allocate three more bytes to regex
2933 for '^', '$', and '\0'.
2934
2935 2001-01-28 Andrew Choi <akochoi@i-cable.com>
2936
2937 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
2938 regex for '^', '$', and '\0'.
2939
2940 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
2941 only if current_sblock has been initialized.
2942
2943 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
2944 terminal frame even if it is the only visible frame.
2945
2946 2001-01-28 Kenichi Handa <handa@etl.go.jp>
2947
2948 * fontset.c (font_family_registry): Even if FONTNAME conform to
2949 XLFD, if it specifies other fields than family and registry,
2950 return FONTANME. New argument FORCE if nonzero cancel that feature.
2951 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
2952 a signle byte character. Don't set FAMILY part to nil here.
2953 It is handled by the caller choose_face_font.
2954 (Fnew_fontset): Call font_family_registry with FORCE 0.
2955 (Fset_fontset_font): Likewise.
2956
2957 2001-01-27 Gerd Moellmann <gerd@gnu.org>
2958
2959 * xdisp.c (display_line): Don't treat a newline as fitting
2960 on the line.
2961
2962 2001-01-26 Gerd Moellmann <gerd@gnu.org>
2963
2964 * window.c (size_window): Set the window's orig_top to nil when
2965 changing heights, so that a future shrink_mini_window won't
2966 restore a bogus height.
2967
2968 * frame.c (do_switch_frame): If selected frame has a mini-window,
2969 resize that to exact size.
2970
2971 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
2972
2973 * xdisp.c (display_line): Simplify check for glyphs fitting
2974 entirely in the line.
2975
2976 * xfns.c (xic_style): New variable.
2977 (create_frame_xic): Move static variable to global scope for
2978 the case that `static' gets defined away.
2979
2980 2001-01-26 Kenichi Handa <handa@etl.go.jp>
2981
2982 * coding.c (decode_coding): Set a flag for inhibiting
2983 inconsistent eol.
2984 (code_convert_region): Always set saved_coding_symbol.
2985 (decode_coding_string): Likewise. Update coding->symbol when we
2986 encounter a inconsistent eol by the same way as code_convert_region.
2987
2988 2001-01-25 Gerd Moellmann <gerd@gnu.org>
2989
2990 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
2991 XClearArea.
2992
2993 * xterm.c (x_after_update_window_line): Don't clear if frame's
2994 internal border width is zero.
2995 (x_clear_area): New function.
2996 (x_after_update_window_line, x_clear_end_of_line)
2997 (x_scroll_bar_create, x_scroll_bar_set_handle)
2998 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
2999 instead of XClearArea.
3000
3001 * xterm.h (x_clear_area): Add prototype.
3002
3003 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
3004 which doesn't seem necessary anymore with Lesstif 0.92.
3005
3006 2001-01-25 Dave Love <fx@gnu.org>
3007
3008 * puresize.h (BASE_PURESIZE): Up to 720000.
3009
3010 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
3011
3012 2001-01-25 Gerd Moellmann <gerd@gnu.org>
3013
3014 * xdisp.c (echo_area_display): Don't call redisplay_internal
3015 when Emacs is shutting down. We can't run hooks etc. that
3016 would be necessary to do a redisplay.
3017
3018 * lread.c (read_integer): Use type EMACS_INT instead of int.
3019
3020 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
3021
3022 * ccl.c (ccl_driver): Fix last change.
3023
3024 2001-01-25 Kenichi Handa <handa@etl.go.jp>
3025
3026 * ccl.h (sturct ccl_program): New member suppress_error.
3027
3028 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
3029 insert error message to the output.
3030 (setup_ccl_program): Initialize ccl->suppress_error to 0.
3031
3032 * coding.h (struct coding_system): New member suppress_error.
3033
3034 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
3035 (Fset_terminal_coding_system_internal): Set the member
3036 suppress_error to 1.
3037 (Fset_safe_terminal_coding_system_internal): Likewise.
3038
3039 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
3040
3041 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
3042 as if it was a `charset'.
3043
3044 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3045
3046 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
3047 value in where_is_cache; the next lookup in the cache returns
3048 something bogus if we do.
3049
3050 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
3051
3052 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
3053 if HAVE_WINDOW_SYSTEM isn't defined.
3054
3055 2001-01-24 Gerd Moellmann <gerd@gnu.org>
3056
3057 * fns.c (sweep_weak_table): Fix code taking items out of
3058 the hash collision chain. Some cleanup.
3059
3060 * xterm.c (x_new_font): Don't change a tooltip's size.
3061
3062 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
3063 background color by specifying a color for the default font
3064 in .Xdefaults.
3065
3066 2001-01-24 Kenichi Handa <handa@etl.go.jp>
3067
3068 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
3069 a workaround for SunOS 4's cc.
3070 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
3071 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
3072 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
3073 statement.
3074
3075 2001-01-23 Gerd Moellmann <gerd@gnu.org>
3076
3077 * xterm.c (x_set_window_size_1): New function extracted from
3078 x_set_window_size.
3079 (x_set_window_size): Use it.
3080 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
3081 doesn't have a widget, like tooltips.
3082
3083 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
3084
3085 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
3086
3087 2001-01-23 Kenichi Handa <handa@etl.go.jp>
3088
3089 * fns.c (Fset_char_table_default): Fix to make sub char-table
3090 correctly.
3091
3092 2001-01-22 Gerd Moellmann <gerd@gnu.org>
3093
3094 * xdisp.c (build_desired_tool_bar_string): Make sure we have
3095 a desired tool bar string, even if there are no tool bar items.
3096
3097 * xdisp.c (Ftool_bar_lines_needed): New function.
3098 (syms_of_xdisp): Defsubr it.
3099
3100 * editfns.c (Fformat): Don't extend text properties from arguments
3101 to padding chars in the result.
3102
3103 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
3104
3105 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
3106
3107 2001-01-20 Andrew Innes <andrewi@gnu.org>
3108
3109 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
3110 (w32_initialize): Don't set term hooks that aren't actually needed
3111 in windowed mode.
3112
3113 * xfaces.c (realize_default_face):
3114 (realize_face):
3115 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
3116
3117 * xdisp.c (handle_single_display_prop): Remove references to
3118 FRAME_W32_CONSOLE_P.
3119
3120 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
3121
3122 * frame.h (output_method): Remove output_w32_console method.
3123 (FRAME_W32_CONSOLE_P): Remove macro.
3124
3125 * frame.c (Qw32_console): Remove variable.
3126 (Fframep): Remove references to it.
3127 (syms_of_frame): Ditto.
3128 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
3129
3130 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
3131 redefinition.
3132
3133 2001-01-20 Kenichi Handa <handa@etl.go.jp>
3134
3135 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
3136
3137 2001-01-19 Andrew Innes <andrewi@gnu.org>
3138
3139 * w32.c (init_environment): Add a version-independent site-lisp
3140 directory to EMACSLOADPATH, after the version dependent one.
3141
3142 2001-01-19 Gerd Moellmann <gerd@gnu.org>
3143
3144 * editfns.c (Fbuffer_substring): Doc fix.
3145
3146 * xdisp.c (message_dolog, message2, message2_nolog):
3147 Rename parameter LEN to NBYTES.
3148
3149 2001-01-19 Kenichi Handa <handa@etl.go.jp>
3150
3151 * charset.c (strwidth): Use c_string_width.
3152 (c_string_width): New function.
3153 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
3154 Caller changed.
3155
3156 * charset.h (c_string_width, lisp_string_width): Extern them.
3157
3158 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
3159
3160 * indent.c (check_composition): Check validity of composition.
3161
3162 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
3163 characters by calling c_string_width.
3164 (x_consider_frame_title): Get byte length of frame tile string
3165 correctly.
3166 (display_mode_element): Pay attention to width of non-ASCII
3167 characters by calling strwidth.
3168
3169 2001-01-18 Gerd Moellmann <gerd@gnu.org>
3170
3171 * xfns.c (Qcancel_timer): New variable.
3172 (syms_of_xfns): Initialize and staticpro it.
3173 (Fx_hide_tip, Fx_show_tip): Use it.
3174 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
3175 the timer.
3176 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
3177
3178 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
3179
3180 * window.h (WINDOW_LIVE_P): New macro.
3181
3182 * window.c (window_size_fixed): New variable.
3183 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
3184 the doc string.
3185
3186 * eval.c (specbind): If binding a per-buffer variable which
3187 doesn't have a buffer-local value in the current buffer, change
3188 the global value by changing the value of the symbol bound in all
3189 buffers not having their own value, to make it consistent with
3190 what happens with other buffer-local variables.
3191
3192 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
3193
3194 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
3195 when searching for a newline.
3196
3197 2001-01-18 Kenichi Handa <handa@etl.go.jp>
3198
3199 * xdisp.c (display_string): Fix previous change.
3200
3201 2001-01-18 Jason Rumney <jasonr@gnu.org>
3202
3203 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
3204 GLYPH_DEBUG is defined.
3205 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
3206 true for images with `:ascent 100'.
3207 (x_set_mouse_face_gc): If the last used mouse face has gone in the
3208 meantime, use face MOUSE_FACE_ID.
3209 If first glyph isn't a character glyph, use the ASCII NUL
3210 character to determine the face.
3211 (expose_area): Do not treat left margin specially.
3212 (note_mode_line_highlight): If no local_map, check global keymap.
3213 (note_mouse_highlight): Initialize overlay.
3214 (clear_mouse_face): Don't return if tip_frame is non-nil.
3215 (show_scroll_bars): Remove unused function.
3216 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
3217 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
3218 Clip to row.
3219 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
3220 (x_free_frame_resources): Unload relief colors.
3221
3222 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3223
3224 * xdisp.c (forward_to_next_line_start): Avoid calling
3225 get_next_display_element when the newline is already found.
3226 This may change the iterator's position, when its current position is
3227 equal to the iterator's stop_charpos.
3228
3229 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
3230 zero, use this method only at the end of a line.
3231
3232 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
3233 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
3234 if SCALABLE_FONTS_P is set.
3235
3236 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
3237 so that scalable fonts are included.
3238
3239 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
3240 In the cache, use a key containing the information if scalable
3241 fonts are included.
3242 (x_load_font): Adapt to change of keys in the font cache.
3243
3244 2001-01-17 Kim F. Storm <storm@filanet.dk>
3245
3246 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3247 XListFonts to take advantage of font caching.
3248
3249 * xterm.c (x_list_fonts): Ensure caching font information when
3250 called for a null frame, which is the case frequently when Emacs
3251 starts.
3252
3253 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3254
3255 * xfns.c (QCconversion): Replaces QCalgorithm.
3256
3257 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3258
3259 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3260 of :algorithm.
3261
3262 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3263 not everything could be displayed.
3264
3265 * line.h, x-list-font.c: Files removed because unused.
3266
3267 2001-01-17 Andrew Innes <andrewi@gnu.org>
3268
3269 * dired.c (directory_files_internal): Convert result from readdir
3270 to a unibyte string initially, to avoid possible misinterpretation
3271 of some bytes as the internal form of Emacs characters.
3272
3273 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3274
3275 * fns.c (concat): Be sure to avoid putting the same `composition'
3276 property on the adjacent regions.
3277
3278 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3279
3280 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3281 (Fscroll_right, Fscroll_left): Set it here instead, if called
3282 interactively.
3283
3284 * buffer.c (Fset_buffer_modified_p): Set buffer's
3285 prevent_redisplay_optimizations_p flag.
3286
3287 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3288 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3289 with additional arg.
3290
3291 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3292 Change prototype.
3293
3294 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3295 FROM_WHERE, for debugging.
3296
3297 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3298
3299 * ccl.c (Fregister_ccl_program): Handle the return value of
3300 resolve_symbol_ccl_program correctly.
3301 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3302
3303 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3304
3305 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3306 has gone in the meantime, use face MOUSE_FACE_ID.
3307
3308 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3309 If x_display_info_for_display returns null, don't try to close
3310 the display; we didn't open it.
3311
3312 * dispnew.c (save_or_restore_current_matrices): Function removed.
3313 (save_current_matrix, restore_current_matrix): New functions.
3314 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3315 restore the frame's current matrix. Due to the glyph pointer
3316 setup done in adjust_glyph_matrix, there is no easy way to make
3317 saving the current matrix in the desired matrix generally correct,
3318 so don't try it.
3319
3320 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3321
3322 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3323 truncation glyphs.
3324 (display_line): Optimize for wide characters.
3325 (display_string): Don't try to display a multi-column character
3326 partially. On ttys, produce more than one truncation glyph for
3327 multi-column characters that don't fit on the line.
3328
3329 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3330
3331 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3332 Define it instead of WORDS_BIGENDIAN. Caller changed.
3333
3334 2001-01-13 Jason Rumney <jasonr@gnu.org>
3335
3336 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3337 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3338 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3339 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3340
3341 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3342 (x_draw_image_relief, x_draw_image_foreground_1)
3343 (x_draw_image_glyph_string): Adapt to change of image margins.
3344
3345 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3346 variables.
3347
3348 * w32bdf.c (search_file_line, get_cached_font_char)
3349 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3350
3351 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3352
3353 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3354 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3355 (Fw32_send_sys_command): Remove unused variables.
3356 (w32_msg_pump): Add parentheses.
3357
3358 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3359 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3360 Add parentheses.
3361
3362 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3363
3364 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3365 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3366 being a pair of margins.
3367 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3368 to DEFVAR_LISP. Extend doc.
3369
3370 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3371 margins.
3372 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3373 pair of integers `(X . Y)', use X for the horizontal and Y for the
3374 vertical margin.
3375 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3376 (parse_image_spec): Check it.
3377 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3378 (tiff_format, gif_format, gs_format):
3379 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3380
3381 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3382 (x_draw_image_relief, x_draw_image_foreground_1)
3383 (x_draw_image_glyph_string): Adapt to the change of image margins.
3384
3385 * dispextern.h (struct image): Replace member `margin' with
3386 `hmargin' and `vmargin'.
3387
3388 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3389 and GLYPHS.
3390
3391 * dispnew.c (update_text_area): Put code which decrements the
3392 stop position when the row's face extends to the end of the
3393 line in #if 0.
3394
3395 * xfns.c (x_set_mouse_color): Fix color allocation.
3396
3397 * keyboard.c: Call get_local_map with new argument list.
3398
3399 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3400
3401 * intervals.h (enum map_property): Removed.
3402 (get_local_map): Change prototype.
3403
3404 * keymap.c: Call get_local_map with new argument list.
3405 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3406
3407 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3408
3409 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3410 of the size needed for the tool bar string. For the last image,
3411 use a `display' property that reaches to the end of the string.
3412
3413 * xselect.c (selection_request_dpyinfo): New variable.
3414 (x_handle_selection_request): Set it.
3415 (x_selection_request_lisp_error): Don't call
3416 x_decline_selection_request if selection request's display has
3417 been closed.
3418
3419 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3420 Do the unregister_colors before calling XFreeColors.
3421
3422 2001-01-10 Dave Love <fx@gnu.org>
3423
3424 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3425 ${SOME_MACHINE_LISP}, not ${lisp}.
3426
3427 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3428
3429 * xdisp.c (display_line): On ttys, produce more than one truncation
3430 glyph for multi-column characters that don't fit on the line.
3431
3432 * xselect.c (x_reply_selection_request): Add a comment.
3433
3434 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3435 XkbGetNames instead of XkbGetKeyboard.
3436
3437 2001-01-10 Dave Love <fx@gnu.org>
3438
3439 * sysdep.c (random): Revert the declaration.
3440
3441 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3442
3443 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3444 Call function string_bytes.
3445 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3446
3447 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3448 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3449 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3450 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3451 the current sblock.
3452 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3453 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3454 after sweeping strings, and at the end.
3455 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3456
3457 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3458 ensure that pop_message is called.
3459
3460 * keyboard.c (Fexecute_extended_command): Use a
3461 record_unwind_protect to ensure that pop_message is called.
3462
3463 * lisp.h (push_message_unwind): Add prototype.
3464
3465 * xdisp.c (push_message_unwind): New function.
3466
3467 * fileio.c (do_auto_save_unwind): Do the pop_message here
3468 instead of in Fdo_auto_save.
3469 (Fdo_auto_save): Don't call pop_message.
3470
3471 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3472
3473 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3474 in inner block.
3475
3476 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3477
3478 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3479 when increasing window's vscroll.
3480
3481 * macros.c (Qkbd_macro_termination_hook): New variable.
3482 (syms_of_macros): Initialize and staticpro it.
3483 (pop_kbd_macro): Run kbd-macro-termination-hook.
3484
3485 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3486
3487 2001-01-07 Dave Love <fx@gnu.org>
3488
3489 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3490 arglist, for documentation's sake.
3491
3492 2001-01-06 Andrew Innes <andrewi@gnu.org>
3493
3494 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3495 of *.pdb.
3496
3497 2001-01-05 Andrew Innes <andrewi@gnu.org>
3498
3499 * term.c (update_end): Don't check updating_frame; for some reason
3500 this can be 0 sometimes, such as after dismissing a popup menu,
3501 and isn't necessary given the explicit frame argument.
3502
3503 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3504
3505 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3506 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3507
3508 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3509
3510 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3511
3512 * xfns.c (x_create_tip_frame): Preserve the value of
3513 face_change_count around the creation of the tip frame.
3514
3515 * xfns.c (last_show_tip_args): New variable.
3516 (compute_tip_xy): New function.
3517 (Fx_show_tip): Reuse an existing tip frame, if possible.
3518 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3519
3520 2001-01-04 Dave Love <fx@gnu.org>
3521
3522 * editfns.c (Fformat): Doc fix.
3523
3524 * systime.h (set_file_times): Prototype.
3525
3526 * widget.h (EmacsFrameSetCharSize_): Prototype.
3527
3528 * sysdep.c (random, srandom): Declare explicitly.
3529
3530 * dispextern.h (move_it_vertically_backward): Declare.
3531
3532 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3533
3534 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3535 like in Fx_create_frame.
3536
3537 * xfaces.c (set_font_frame_param): Don't do anything for
3538 non-graphical frames.
3539
3540 * window.c (Fdelete_other_windows): Set window's window_end_valid
3541 to nil when changing the window's start. Don't change the
3542 window's start when its top position hasn't changed. If we do,
3543 this will set the window's optional_new_start, which act's like a
3544 force_start during redisplay with C-x 1 M-> under particular
3545 circumstances (see report from Per Starback to emacs-pretest-bug
3546 from 2000-12-13.).
3547
3548 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3549
3550 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3551 short cut at the start of the function. Add an assertion.
3552 (reseat_at_next_visible_line_start): Add an assertion.
3553
3554 * window.c (Frecenter): When changing the window start, set the
3555 window's window_end_valid to nil.
3556 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3557
3558 * dispextern.h (move_it_past_eol): Add prototype.
3559
3560 * xdisp.c (move_it_past_eol): New function.
3561
3562 * window.c (Fwindow_end): Doc fix.
3563
3564 2001-01-03 Dave Love <fx@gnu.org>
3565
3566 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3567
3568 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3569
3570 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3571 the enabled_p flag of the glyph row at window_end_vpos to 0.
3572 (handle_single_display_prop): Fix last change.
3573
3574 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3575
3576 * window.c (Frecenter): Doc fix.
3577
3578 2001-01-02 Andrew Innes <andrewi@gnu.org>
3579
3580 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3581
3582 * frame.h (output_method): Add output_w32_console method.
3583 (FRAME_W32_CONSOLE_P): New macro.
3584
3585 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3586 use output_w32_console method.
3587 (Qw32_console): New Lisp_Object.
3588 (Fframep): Return it.
3589 (syms_of_frame): Init it.
3590 (Fframe_parameters): Report w32console as font for w32_console frames.
3591
3592 * xfaces.c (realize_default_face): Set face foreground and
3593 background to unspecified for w32_console frames.
3594 (realize_face): Realize face cache for w32_console frames.
3595 (realize_tty_face): Accept w32_console frames.
3596
3597 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3598 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3599 necessary, even if running interactively.
3600
3601 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3602 w32_console frames.
3603
3604 * w32term.c (x_update_begin):
3605 (x_update_end):
3606 (x_clear_frame):
3607 (x_ins_del_lines):
3608 (x_change_line_highlight):
3609 (x_delete_glyphs):
3610 (w32_ring_bell):
3611 (x_update_begin):
3612 (x_update_end):
3613 (w32_reassert_line_highlight):
3614 (w32_frame_rehighlight):
3615 (w32_frame_raise_lower): Do nothing if not w32 frame.
3616
3617 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3618
3619 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3620 system doesn't tell us directly.
3621 (Fx_display_visual_class): Implement properly.
3622
3623 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3624
3625 * window.c (Frecenter): Handle centering in graphical frames
3626 specially. Centering on the basis of line counts doesn't work
3627 reliably with variable-height lines.
3628
3629 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3630
3631 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3632 and al[].
3633
3634 * composite.c (run_composition_function): Remove unused var `val'.
3635 (update_compositions): Remove unused variable `hook'.
3636
3637 * intervals.c (get_local_map): Remove unused variable `tem'.
3638
3639 * doprnt.c (doprnt1): Remove unused variable `size'.
3640
3641 * fns.c (Flength): Remove unused variable `tail'.
3642 (Fdelete): Remove unused variable `size'.
3643
3644 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3645 and `gcpro2'.
3646
3647 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3648
3649 * data.c (find_symbol_value): Remove extra 3rd argument in the
3650 call to swap_in_symval_forwarding.
3651
3652 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3653
3654 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3655 (trivial_regexp_p): Remove unused variable `c'.
3656 (boyer_moore): Remove unused variable `k'.
3657
3658 * indent.c (current_column): Remove unused variable `stopchar'.
3659 (Fcompute_motion): Remove unused variable `contin'.
3660
3661 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3662
3663 * dired.c (directory_files_internal): Fix a typo in a comment.
3664 Remove an unused variable `handler'.
3665 (file_name_completion): Remove unused function-scope variable `dp'.
3666 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3667 on BSD4_2.
3668
3669 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3670
3671 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3672 and `buf'.
3673 (Fmarker_insertion_type): Remove unused variable `buf'.
3674
3675 * insdel.c (make_gap): Remove unused variable `result'.
3676
3677 * keyboard.c (record_char): Remove unused function-scope var `help'.
3678 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3679 (menu_bar_items): Remove unused function-scope variable `tem'.
3680
3681 * fontset.c (fontset_ref): Remove unused variable `i'.
3682 (fontset_set): Remove unused variables `j' and `tmp'.
3683 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3684 (make_fontset_for_ascii_face): Remove unused variable `name'.
3685 (fs_load_font): Remove unused variable `font_idx'.
3686 (fs_query_fontset): Remove unused function-local variable `fontset'.
3687 (list_fontsets): Remove unused variable `tail'.
3688 (Fnew_fontset): Remove unused variables `family' and `registry'.
3689 (accumulate_font_info): Remove unused variable `tmp'.
3690 (Ffontset_font): Remove unused variable `id'.
3691 (syms_of_fontset): Remove unused variable `i'.
3692
3693 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3694 to x_term_init.
3695 (lookup_image): Remove unused variable `file'.
3696 (xbm_load): Remove unused variables `bitmap_data', `height', and
3697 `width'. Remove function-local variable `i', leave the
3698 block-local one.
3699 (gif_load): Remove unused variable `inc'.
3700
3701 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3702 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3703 leave only the one in the inner block.
3704
3705 * xfaces.c (face_fontset, realize_default_face): Remove unused
3706 variable `fontset'.
3707 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3708
3709 * term.c (encode_terminal_code): Remove unused variable `c'.
3710
3711 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3712 char *' instead of `char *'.
3713
3714 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3715 (Fget_unused_category): Remove unused variable `docstring_vector'.
3716 (Fchar_category_set): Remove unused variables `val', `charset',
3717 `c1' and `c2'.
3718
3719 * coding.c (detect_coding_iso2022, setup_coding_system):
3720 Remove unused variable `i'.
3721 (detect_coding_mask): Remove unused variable `idx'.
3722 (detect_coding): Remove unused variable `i'.
3723 (ccl_coding_driver): Remove unused variable `result'.
3724 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3725 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3726 (encode_coding_string): Remove unused variables `gcpro1' and
3727 `saved_coding_symbol'.
3728 (Ffind_coding_systems_region_internal): Remove function-local
3729 variable args[], leave only the block-local one.
3730 (code_convert_region1): Remove unused variable `len'.
3731
3732 * charset.c (char_printable_p): Remove unused variable `chars'.
3733 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3734 (str_to_multibyte): Remove unused variable `c'.
3735
3736 * window.c (size_window): Remove block-local variable `min_size'.
3737
3738 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3739 `header_line_height'.
3740 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3741 enum display_element_type.
3742
3743 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3744
3745 * xterm.c (x_connection_closed): Catch X errors around all
3746 statements that call X. Save away the error message in a local copy.
3747
3748 * xterm.c (x_connection_closed): Set handling_signal to 0 at
3749 the start.
3750
3751 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
3752 in or at the start of invisible text.
3753
3754 * dispnew.c (update_window): Don't check_current_matrix_flags.
3755
3756 2001-01-01 Jason Rumney <jasonr@gnu.org>
3757
3758 * w32fns.c (x_figure_window_size): Do not allow new_height and
3759 new_width of frame to override specified values.
3760
3761 2000-12-30 Kenichi Handa <handa@etl.go.jp>
3762
3763 * composite.c (find_composition): Fix a code for searching backward.
3764
3765 2000-12-29 Gerd Moellmann <gerd@gnu.org>
3766
3767 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
3768 (update_window) [GLYPH_DEBUG]: Call it.
3769 (scrolling_window): Prevent including current rows which are below
3770 what's displayed in the window.
3771
3772 * xdisp.c (try_window_reusing_current_matrix)
3773 <new start <= old start>: Disable rows in the current matrix
3774 which are below the window after scrolling.
3775
3776 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
3777 is zero. It's not worth the complexity.
3778 (invisible_text_between_p): Put in #if 0 because unused.
3779
3780 2000-12-28 Gerd Moellmann <gerd@gnu.org>
3781
3782 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
3783 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
3784
3785 * keyboard.c (echo_char): If C is an integer, always call
3786 push_key_description. Former code could signal an invalid
3787 character error.
3788
3789 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
3790 If set, print multibyte text.
3791 (Fsingle_key_description): Call push_key_description with
3792 FORCE_MULTIBYTE set.
3793 (describe_buffer_bindings): Likewise.
3794
3795 * lisp.h (push_key_description): Add prototype.
3796
3797 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
3798 around the call to redisplay_internal.
3799
3800 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3801
3802 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3803
3804 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3805
3806 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
3807 (ccl_driver): New local variable `extra_bytes'.
3808
3809 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
3810
3811 * coding.c (setup_coding_system):
3812 Initialize coding->spec.ccl.eight_bit_carryover.
3813 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
3814
3815 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3816
3817 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
3818 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
3819 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
3820 (decode_composition_emacs_mule): New function.
3821 (decode_coding_emacs_mule): Decode composition sequence by calling
3822 decode_composition_emacs_mule.
3823 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
3824 (encode_coding_emacs_mule): Changed from macro to function.
3825 If a text contains compositions, encode them correctly.
3826 (setup_coding_system): Set coding->commong_flags for emacs-mule so
3827 that decoding and encoding are required.
3828
3829 2000-12-27 Gerd Moellmann <gerd@gnu.org>
3830
3831 * xfaces.c (PT_PER_INCH): New macro.
3832 (xlfd_point_size): Compute real point size from font's pixel size.
3833 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
3834 instead of 72.
3835
3836 * .gdbinit: Comment out the line pointing to the Lesstif source
3837 directory.
3838
3839 * window.c (Frecenter): Use displayed_window_lines instead
3840 of window_internal_height.
3841
3842 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3843 instead of x-toolkit-scroll-bars-p.
3844 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3845
3846 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3847 instead of x-toolkit-scroll-bars-p.
3848 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3849
3850 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
3851 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
3852 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
3853 New variables.
3854 (add_window_display_history, add_frame_display_history)
3855 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
3856 (build_frame_matrix_from_leaf_window): Remove unused code.
3857 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
3858 redisplay history.
3859 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
3860 (update_window) [GLYPH_DEBUG]: Likewise.
3861 (syms_of_display): Defsubr dump-redisplay-history.
3862
3863 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3864
3865 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
3866 the end of the prompt. Set echo_after_prompt to the offset
3867 of echoptr in echobuf.
3868
3869 * xdisp.c (init_from_display_pos): Pop until the iterator's
3870 stack is empty; there may be frames for stretch or images
3871 on the stack.
3872
3873 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
3874 (save_or_restore_current_matrix): New function for the same
3875 purpose, but more efficient.
3876 (adjust_frame_glyphs_for_frame_redisplay): Use it.
3877
3878 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
3879
3880 * xdisp.c (syms_of_xdisp): Fix last change.
3881
3882 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3883
3884 * xdisp.c (syms_of_xdisp): Doc fix.
3885
3886 * xdisp.c (redisplay_window): Remove label restore_buffers;
3887 use finish_scroll_bars instead to make sure that scroll bars
3888 are redeemed. If we don't do this, flickering can result from
3889 scroll bars being destroyed and recreated.
3890
3891 2000-12-22 Jason Rumney <jasonr@gnu.org>
3892
3893 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
3894 in the wrong colors when the foreground is not black.
3895 (expose_window): Don't redraw the window that's currently being
3896 updated.
3897
3898 2000-12-22 Gerd Moellmann <gerd@gnu.org>
3899
3900 * window.c (size_window): When setting the window's too_small_ok
3901 flag, compare old size with minimum size depending on WIDTH_P,
3902 don't compare with window_min_width.
3903
3904 * window.c (delete_window): Simplify somewhat.
3905 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
3906 freeing window matrices. The flag windows_or_buffers_changed is
3907 set, so the next redisplay will consider all windows; this should
3908 suffice.
3909
3910 2000-12-22 Kenichi Handa <handa@etl.go.jp>
3911
3912 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
3913
3914 * ccl.h (struct ccl_program): New member cr_consumed.
3915
3916 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
3917 (CCL_READ_CHAR): Handle EOL conversion here.
3918 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
3919
3920 2000-12-21 Gerd Moellmann <gerd@gnu.org>
3921
3922 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
3923
3924 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
3925 otherwise tabs of different size compare equal.
3926
3927 * callint.c (Fcall_interactively): Prevent a compiler warning.
3928
3929 * print.c (print_unwind): Return nil.
3930 (PRINTDECLARE): Initialize all local variables.
3931 (print_preprocess): Add a default case.
3932
3933 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
3934
3935 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
3936
3937 * window.c (delete_window, Fsplit_window)
3938 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
3939
3940 * dispextern.h (ensure_frame_matrix): Function declaration removed.
3941
3942 * dispnew.c (ensure_frame_matrix): Removed.
3943 (save_frame_matrix, restore_frame_matrix): New functions.
3944 (adjust_frame_glyphs_for_frame_redisplay): Use them.
3945
3946 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
3947 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
3948
3949 2000-12-21 Andrew Innes <andrewi@gnu.org>
3950
3951 * w32term.c (x_update_begin): Regenerate the palette here, rather
3952 than for each window.
3953
3954 * w32xfns.c (select_palette): Avoid calling SelectPalette if
3955 palette is NULL, since this corrupts memory! Also get
3956 display_info reference from frame.
3957
3958 2000-12-21 Jason Rumney <jasonr@gnu.org>
3959
3960 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
3961
3962 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
3963 to avoid returning without releasing it.
3964
3965 2000-12-21 Kenichi Handa <handa@etl.go.jp>
3966
3967 * keymap.c (push_key_description): Don't convert eight-bit-control
3968 and eight-bit-graphic to multibyte character.
3969
3970 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
3971 generic character and CODE1 is nil, return the smallest character
3972 in CHARSET.
3973
3974 2000-12-20 Dave Love <fx@gnu.org>
3975
3976 * s/osf5-0.h (NSIG): Don't redefine.
3977
3978 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
3979
3980 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
3981 excluding menu-bar and tool-bar.
3982 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
3983 (menu_item_p): Remove.
3984 (where_is_internal_1): Don't ignore menu-items.
3985
3986 2000-12-20 Gerd Moellmann <gerd@gnu.org>
3987
3988 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
3989 into account.
3990
3991 * window.c (make_window): Initialize window's min_hscroll.
3992 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
3993 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
3994 to zero.
3995 (struct saved_window): New member min_hscroll.
3996 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
3997 (Fset_window_configuration): Set window's min_hscroll.
3998 (save_window_save): Save window's min_hscroll.
3999 (compare_window_configurations): Compare min_hscroll values.
4000
4001 * window.h (struct window): New member min_hscroll.
4002
4003 * keyboard.c (echo_prompt): Prevent a compiler warning.
4004
4005 * xdisp.c (try_cursor_movement): Fix last change. The real
4006 condition is that PT is at the end of the row, and should
4007 be displayed at the start of the next row.
4008
4009 * xdisp.c (try_cursor_movement): If we end on a partially
4010 visible line, end we already decided to scroll, return -1.
4011
4012 * dispextern.h (ensure_frame_matrix): Add prototype.
4013
4014 * window.c (delete_window, Fsplit_window)
4015 (Fset_window_configuration): Call ensure_frame_matrix.
4016
4017 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
4018 New functions.
4019 (adjust_frame_glyphs_for_frame_redisplay): If display has been
4020 completed, call fake_current_matrices instead of marking frame
4021 garbaged.
4022
4023 2000-12-20 Jason Rumney <jasonr@gnu.org>
4024
4025 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
4026
4027 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
4028
4029 * fns.c (Frequire): Doc fix.
4030
4031 2000-12-19 Gerd Moellmann <gerd@gnu.org>
4032
4033 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
4034
4035 * dispnew.c (direct_output_for_insert): Fix check for mini-window
4036 currently displaying a message.
4037
4038 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
4039 xterm.h.
4040 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
4041
4042 2000-12-18 Andrew Innes <andrewi@gnu.org>
4043
4044 * w32.c (w32_strerror): New function.
4045
4046 * w32.h (w32_strerror): New extern.
4047
4048 * w32fns.c (Fw32_shell_execute): Use it.
4049
4050 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4051
4052 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
4053
4054 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4055
4056 * msdos.c (IT_set_face): Obey inverse_video.
4057
4058 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4059
4060 * dired.c (directory_files_internal): Always return decoded filenames.
4061
4062 2000-12-18 Gerd Moellmann <gerd@gnu.org>
4063
4064 * xterm.c (x_connection_closed): Prevent being called recursively
4065 because of an error condition in XtCloseDisplay.
4066
4067 * xdisp.c (init_iterator): If noninteractive, and the frame's
4068 face cache is null, make one.
4069
4070 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
4071
4072 * process.c (wait_reading_process_input): Check for pending
4073 input when running timers.
4074
4075 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
4076
4077 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
4078
4079 2000-12-18 Kenichi Handa <handa@etl.go.jp>
4080
4081 * process.c (read_process_output): Don't run a filter if the code
4082 decoder produces nothing but carryover.
4083
4084 2000-12-17 Andrew Innes <andrewi@gnu.org>
4085
4086 * w32.c (sys_rename): Only check errno against EEXIST, and not
4087 EACCES, when determining whether rename failed because the target
4088 exists. This was resulting in indefinite looping on Windows 9x if
4089 the source file was locked by another process.
4090
4091 * w32fns.c (Ffile_system_info): New function.
4092 (syms_of_w32fns): Defsubr it.
4093
4094 2000-12-17 Gerd Moellmann <gerd@gnu.org>
4095
4096 * window.c (coordinates_in_window): Fix computation for
4097 position on vertical line between mode lines.
4098
4099 * xfns.c (unwind_create_frame): Return t if frame was deleted.
4100 Don't alter tip_frame or tip_window.
4101 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4102 was deleted.
4103
4104 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
4105 Don't alter tip_frame or tip_window.
4106 (unwind_create_tip_frame): Set tip_frame to nil only if frame
4107 was deleted.
4108
4109 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
4110
4111 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
4112 be consistent with the doc string. Reported by NAKAJIMA Mikio
4113 <minakaji@osaka.email.ne.jp>.
4114
4115 2000-12-16 Kenichi Handa <handa@etl.go.jp>
4116
4117 * xfaces.c (Vface_ignored_fonts): New variable.
4118 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
4119 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
4120
4121 2000-12-15 Gerd Moellmann <gerd@gnu.org>
4122
4123 * dispnew.c (update_window): Detect pending input every nth line
4124 updated, i.e. do it depending on real work done, and not on the
4125 vpos of the line.
4126
4127 * xterm.c (expose_window): Don't redraw the window that's
4128 currently being updated.
4129
4130 * window.c (Fset_window_point): Remove test for
4131 cursor_in_non_selected_windows.
4132
4133 * lread.c (read1): Recognize end of file after `\\'.
4134
4135 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
4136 not unwind_create_frame.
4137
4138 2000-12-15 Dave Love <fx@gnu.org>
4139
4140 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
4141 bcopy & al.
4142
4143 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
4144
4145 2000-12-15 Kenichi Handa <handa@etl.go.jp>
4146
4147 * coding.c (setup_coding_system): Clear all members of the struct
4148 coding_system at first.
4149 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
4150 argument.
4151 (code_convert_region): Don't override coding->src_multibyte and
4152 coding->dst_multibyte.
4153
4154 * fns.c (Fmd5): Docstring improved.
4155
4156 2000-12-15 Miles Bader <miles@gnu.org>
4157
4158 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
4159 are actually marked as mode-lines; otherwise use
4160 estimate_mode_line_height.
4161
4162 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4163
4164 * editfns.c (Fformat): Prevent a buffer overrun when the format
4165 specifies a precision.
4166
4167 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
4168
4169 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
4170 argument is outside the range [2..3].
4171
4172 2000-12-14 Andrew Innes <andrewi@gnu.org>
4173
4174 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
4175 nothing to do. Bind inhibit-quit.
4176 (tip_frame): Make it a Lisp_Object.
4177 (x_create_tip_frame): Set tip_frame after it has been added to
4178 Vframe_list.
4179 (Fx_show_tip): Don't set tip_frame here.
4180 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
4181 (unwind_create_frame, unwind_create_tip_frame): New functions.
4182 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4183 while a frame is only partially constructed.
4184
4185 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4186 (x_free_frame_resources): New function.
4187 (x_destroy_window): Use it.
4188
4189 2000-12-14 Gerd Moellmann <gerd@gnu.org>
4190
4191 * xfns.c (Fx_backspace_delete_keys_p): New function.
4192 (syms_of_xfns): Defsubr it.
4193
4194 * config.in (HAVE_XKBGETKEYBOARD): Add.
4195
4196 2000-12-14 Kenichi Handa <handa@etl.go.jp>
4197
4198 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
4199 Always store string in multibyte representation in echobuf.
4200 (echo_char): Always store string in multibyte representation in
4201 echobuf.
4202 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
4203 (read_key_sequence): Adjusted for the change of echo_prompt.
4204
4205 * fns.c (Fmd5): Docstring improved.
4206
4207 * lisp.h (detect_coding_system): Prototype adjusted.
4208
4209 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
4210 (detect_coding_emacs_mule, detect_coding_iso2022,)
4211 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
4212 (detect_coding_utf_16, detect_coding_ccl): Make them static.
4213 New argument MULTIBYTEP. Callers changed.
4214 (detect_coding_mask, detect_coding_system): New argument
4215 MULTIBYTEP. Callers changed.
4216 (decode_coding_string): Set coding->src_multibyte and
4217 coding->dst_multibyte before calling detect_coding and detect_eol.
4218 Update them after some coding system is detected.
4219
4220 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
4221
4222 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
4223
4224 * keyboard.c (menu_bar_items, tool_bar_items):
4225 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
4226
4227 2000-12-13 Gerd Moellmann <gerd@gnu.org>
4228
4229 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
4230 New variables.
4231 (unwind_create_frame, unwind_create_tip_frame): New functions.
4232 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
4233 while a frame is only partially constructed.
4234
4235 * xterm.h (x_free_frame_resources): Declare.
4236
4237 * xterm.c (x_free_frame_resources): New function.
4238 (x_destroy_window): Use it.
4239
4240 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
4241 don't interrupt the update for pending input initially, i.e.
4242 update at least some lines.
4243
4244 * keyboard.c (do_mouse_tracking): Make externally visible.
4245
4246 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4247
4248 * xfns.c (gray_bitmap_bits): Declare `char *'.
4249
4250 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4251
4252 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4253 lines start with a relief line.
4254
4255 2000-12-12 Dave Love <fx@gnu.org>
4256
4257 * window.c (Fdisplay_buffer): Doc fix.
4258 (Fwindow_list): Remove unused var.
4259
4260 * buffer.h (mmap_set_vars): Declare.
4261
4262 * window.h (Fset_window_point): Declare.
4263
4264 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4265
4266 * msdos.c (fast_find_position): Don't overstep the last window row.
4267 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4268 variable `area'. When looking for a row under (X,Y), give up if some
4269 of the previous rows is not enabled.
4270
4271 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4272
4273 * window.c (Fset_window_point): If displaying cursors in windows
4274 other than the selected window, make sure redisplay updates
4275 other windows to show the new value of point in the window.
4276
4277 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4278
4279 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4280 the buffer is the sole visible buffer when in the mini-buffer.
4281
4282 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4283 Bind `inhibit-read-only' to t.
4284 (unwind_with_echo_area_buffer): Use AREF.
4285
4286 * xfns.c (Fx_hide_tip): Simplified.
4287
4288 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4289 instead of `1'.
4290
4291 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4292
4293 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4294
4295 * xfns.c (Fx_hide_tip): Fix last change.
4296
4297 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4298 nothing to do. Bind inhibit-quit.
4299 (tip_frame): Make it a Lisp_Object.
4300 (x_create_tip_frame): Set tip_frame after it has been added to
4301 Vframe_list.
4302 (Fx_show_tip): Don't set tip_frame here.
4303
4304 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4305
4306 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4307 Lisp_Object.
4308
4309 * dispextern.h: Change external declaration of tip_frame.
4310
4311 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4312 return an empty string.
4313
4314 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4315 of the window's update_mode_line flag, since the former is set by
4316 force-mode-line-update, not the latter. This makes
4317 column-number-mode slightly faster.
4318
4319 * xdisp.c (try_window_id) <all changes above window start>:
4320 Set the cursor.
4321
4322 2000-12-11 Paul Eggert <eggert@twinsun.com>
4323
4324 * config.in (HAVE_FTELLO): Remove.
4325 (HAVE_FSEEKO): Add.
4326 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4327 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4328 HAVE_FTELLO.
4329 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4330 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4331
4332 2000-12-11 Miles Bader <miles@gnu.org>
4333
4334 * window.c (displayed_window_lines): Don't round up when
4335 converting empty space at bottom to lines.
4336 Handle non-newline-terminated final lines properly.
4337 (Fwindow_text_height): New function (used to be in lisp).
4338 (syms_of_window): Initialize it.
4339
4340 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4341
4342 * syntax.c (scan_lists): Check that the right quote char has the
4343 right Sstring syntax when jumping over strings.
4344 (init_syntax_once): Use Smax rather than 13.
4345
4346 2000-12-09 Miles Bader <miles@gnu.org>
4347
4348 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4349 with PARTIALLY, inverting the sense.
4350 (window_scroll_pixel_based): Scroll partially visible lines into
4351 place if we hit the beginning or end of the buffer.
4352 (displayed_window_lines): Don't include partially visible lines.
4353 (Fmove_to_window_line): Skip past any partially visible first line.
4354
4355 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4356
4357 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4358
4359 * tparam.c (tparam1): Change the way buffers are reallocated to be
4360 portable and less obfuscated.
4361
4362 * termcap.c (tgetent): Change the way buffers are reallocated to
4363 be portable and less obfuscated.
4364
4365 * macros.c (store_kbd_macro_char): Change the way buffers are
4366 reallocated to be portable and less obfuscated.
4367
4368 * lread.c (read1): Change the way buffers are reallocated to be
4369 portable and less obfuscated.
4370
4371 * doc.c (Fsubstitute_command_keys): Change the way buffers
4372 are reallocated so that it is portable.
4373
4374 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4375
4376 * dosfns.c (Ffile_system_info): New function.
4377 (syms_of_dosfns): Defsubr it.
4378
4379 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4380
4381 * alloc.c (gc_sweep): Add comment.
4382
4383 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4384
4385 * sound.c (vox_configure): Change order of ioctls.
4386 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4387 Ignore errors when changing volume.
4388 (vox_close): Don't reset the device.
4389
4390 * process.c (read_process_output): Make sure the process marker's
4391 position is valid when the process buffer is changed in
4392 after-change functions. W3 does that.
4393
4394 * xfns.c (x_free_gcs): New function.
4395
4396 * xterm.h (x_free_gcs): Add prototype.
4397
4398 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4399 freeing GCs here.
4400
4401 * xterm.c (x_destroy_window): Call x_free_gcs so that
4402 resources of non-toolkit X windows will be freed.
4403
4404 2000-12-07 Andrew Innes <andrewi@gnu.org>
4405
4406 * w32fns.c (xlfd_charset_of_font): Fix last change.
4407
4408 2000-12-06 Dave Love <fx@gnu.org>
4409
4410 * md5.h (__P): Don't define -- it comes from config.h.
4411
4412 * strftime.c: Change some #if foo to #ifdef foo.
4413
4414 2000-12-06 Andrew Innes <andrewi@gnu.org>
4415
4416 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4417
4418 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4419 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4420 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4421
4422 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4423
4424 * alloc.c (gc_sweep): Prevent symbols read during loadup
4425 from being freed.
4426
4427 * xdisp.c (underlying_face_id): New function.
4428 (handle_face_prop, face_before_or_after_it_pos): Use it
4429 to determine the face ``under'' a string. Let strings inherit
4430 the face of the buffer under them.
4431
4432 * xfaces.c (face_at_string_position): Update function comment.
4433
4434 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4435 matrix if the window's left position has changed; we need to
4436 redraw it in this case.
4437
4438 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4439
4440 * window.c (coordinates_in_window): Check mouse on mode-line or
4441 header-line first.
4442
4443 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4444 advertized by the function documentation.
4445
4446 * window.c (syms_of_window): Doc fix.
4447
4448 * sound.c (vox_configure): Set volume for left and right channel.
4449 (sound_cleanup): Return nil.
4450
4451 * xdisp.c (move_it_by_lines): Fix paren typo.
4452
4453 * xterm.c (x_load_font): Don't use the font's max_bounds for
4454 computing the height of the font. If max_bounds' ascent or
4455 descent are greater than the font's ascent or descent, this means
4456 glyphs overlap, which should be handled now by redisplay.
4457
4458 * window.c (Veven_window_heights): New variable.
4459 (syms_of_window): DEFVAR_LISP it.
4460 (Fdisplay_buffer): Check Veven_window_heights before evening the
4461 window heights.
4462
4463 2000-12-06 Miles Bader <miles@gnu.org>
4464
4465 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4466 update `default-frame-alist' instead of setting no frame parameters.
4467
4468 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4469
4470 * composite.c (update_compositions): Fix typo (use the correct
4471 variable).
4472
4473 2000-12-05 Jason Rumney <jasonr@gnu.org>
4474
4475 * md5.h: Remove underscores from function declarations.
4476 (__attribute__, __alignof__) [!__GNUC__]: Define.
4477
4478 * md5.c: Delay include of md5.h until after namespace cleaning.
4479
4480 * makefile.w32-in (fns.o): Depend on md5.h
4481 (md5.o): New target.
4482 (sunfns.o): Remove.
4483
4484 * makefile.nt: Likewise.
4485
4486 2000-12-05 Jason Rumney <jasonr@altavista.net>
4487
4488 * w32term.c (expose_area): Complete last change.
4489
4490 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4491
4492 * minibuf.c: Include intervals.h.
4493
4494 2000-12-05 Jason Rumney <jasonr@gnu.org>
4495
4496 * w32term.c (x_produce_glyphs): If a font for a component of
4497 a composition is not found, use 1 pixel dot ascent and 0 dot
4498 descent value to avoid displaying terribly tall empty boxes.
4499 (expose_area): Pass x-coordinate relative to the exposed
4500 area to x_draw_glyphs instead of a window-relative coordinate.
4501
4502 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4503
4504 * xdisp.c (next_element_from_ellipsis): Save face before selective
4505 display in saved_face_id, and set face_before_selective_p.
4506 (reseat_1): Reset face_before_selective_p.
4507 (append_space, extend_face_to_end_of_line): If iterator's
4508 face_before_selective_p is set, use the face from saved_face_id.
4509 (extend_face_to_end_of_line): For tty frames, make sure to
4510 use the right face id when producing spaces at the end of
4511 the line.
4512
4513 * dispextern.h (struct it): Add face_before_selective_p.
4514
4515 * keyboard.c (record_char): Don't record identical help-echo
4516 events in recent_keys.
4517
4518 * xterm.c [USE_X_TOOLKIT]: Close the display.
4519 (xim_close_dpy): Handle case that the display has been closed.
4520
4521 * xterm.c (x_destroy_window): Reset the frame's X window after
4522 destroying it.
4523
4524 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4525 variable window_width.
4526 (line_draw_cost): Fix code skipping over spaces at the end of the
4527 line when must_write_spaces is not set.
4528 (scrolling_window): Fix code inserting runs in list of all runs.
4529
4530 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4531
4532 * coding.c (setup_coding_system): Be sure to initialize
4533 coding->category_idx.
4534
4535 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4536
4537 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4538
4539 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4540 area to x_draw_glyphs instead of a window-relative coordinate.
4541
4542 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4543 error in the message.
4544
4545 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4546 timer after having read a key. It's not good for code reading
4547 several keys in a loop, like an input method.
4548
4549 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4550 record undo information for format-decode.
4551
4552 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4553 current buffer is read-only, not if it isn't.
4554
4555 * keyboard.c (record_char): Record `help-echo' input events
4556 in recent_keys only if they display some help. Don't record
4557 `help-echo' events as macro char.
4558
4559 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4560
4561 * editfns.c (save_excursion_restore): Don't move point
4562 in another window if it is showing the wrong buffer.
4563 Avoid the call to Fwindow_live_p, for speed.
4564
4565 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4566
4567 * xfaces.c (struct font_name): New member registry_priority.
4568 (split_font_name): Initialize the above member to zero.
4569 (concat_font_list): New function.
4570 (font_list): Include fonts of all alternative registries.
4571 (FONT_POINT_SIZE_QUANTUM): New macro.
4572 (better_font_p): Ignore point size difference less than
4573 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4574
4575 * xterm.c (x_produce_glyphs): If a font for a component of
4576 a composition is not found, use 1 pixel dot ascent and 0 dot
4577 descent value to avoid displaying terribly tall empty boxes.
4578
4579 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4580
4581 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4582
4583 * coding.h (code_convert_string1): Declare.
4584
4585 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4586
4587 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4588
4589 2000-12-02 Jason Rumney <jasonr@gnu.org>
4590
4591 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4592 correctly for single byte character case.
4593 (w32_per_char_metric): Do not try to make any assumptions about
4594 the metrics of BDF fonts.
4595 (x_estimate_mode_line_height): If `mode-line' face
4596 hasn't a font, use that of the frame, as drawing glyphs does.
4597 (note_mouse_highlight): Change the cursor shape on the vertical
4598 border between windows [not enabled].
4599
4600 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4601
4602 * w32fns.c (Fx_create_frame): Reintroduce the call to
4603 face-set-after-frame-defaults.
4604 (Vx_window_horizontal_drag_shape): New variable.
4605 (syms_of_xfns): DEFVAR_LISP it.
4606 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4607 enabled].
4608
4609 2000-12-02 Simon Josefsson <simon@josefsson.org>
4610
4611 * fns.c (Fmd5): Use a different logic to decide the coding system
4612 to use.
4613
4614 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4615
4616 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4617
4618 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4619
4620 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4621
4622 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4623 height for YNegative.
4624 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4625 height; also see comment there.
4626
4627 * window.c (coordinates_in_window): Handle computations for
4628 positions on the vertical bar and fringes differently for
4629 window-system frames. Consider some pixels near the vertical bar
4630 as on the bar if the frame doesn't have vertical scroll bars.
4631 Associate positions between mode or header lines with the
4632 right window, the left one.
4633
4634 2000-12-01 Jason Rumney <jasonr@gnu.org>
4635
4636 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4637
4638 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4639 invalid frame.
4640
4641 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4642
4643 * window.c (struct saved_window): Add members orig_top and orig_height.
4644 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4645 (save_window_save, Fset_window_configuration): Save/restore
4646 window's orig_top and orig_height.
4647
4648 2000-12-01 Jason Rumney <jasonr@gnu.org>
4649
4650 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4651
4652 * w32fns.c (x_set_cursor_color): Fix last change.
4653
4654 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4655
4656 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4657 sure that the next redisplay displays the minibuffer, so that
4658 the cursor will be replaced with what the minibuffer wants.
4659
4660 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4661 #ifndef instead of using #if.
4662 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4663 USE_TOOLKIT_SCROLL_BARS is defined.
4664
4665 2000-11-30 Jason Rumney <jasonr@gnu.org>
4666
4667 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4668 x_display_cursor.
4669
4670 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4671
4672 * fns.c (Fmd5): Doc fix.
4673
4674 2000-11-30 Simon Josefsson <simon@josefsson.org>
4675
4676 * fns.c (Fmd5): New function.
4677 (syms_of_fns): Defsubr md5.
4678
4679 * Makefile.in (obj): Add md5.o
4680
4681 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4682
4683 * md5.h, md5.c: New files, taken from glibc.
4684
4685 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4686
4687 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4688 hasn't a font, use that of the frame, as drawing glyphs does.
4689
4690 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4691
4692 * eval.c (Frun_hooks): Allow 0 arguments.
4693
4694 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4695
4696 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4697 is over the menu bar widget, say it's not on the frame.
4698
4699 * xfns.c (Fx_create_frame): Reintroduce the call to
4700 face-set-after-frame-defaults.
4701
4702 * eval.c (Fsignal): Reset handling_signal.
4703
4704 2000-11-28 Jason Rumney <jasonr@gnu.org>
4705
4706 * w32menu.c (add_menu_item): Reset menu item text when changing
4707 type to radio button.
4708
4709 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4710
4711 * xselect.c: Update copyright.
4712
4713 * window.c (coordinates_in_window): If on a mode or header line,
4714 but sufficiently close to its start, return ``on vertical
4715 border''. This gives us a way to drag windows horizontally when
4716 using toolkit scroll bars.
4717
4718 * xterm.c (note_mouse_highlight): Change the cursor shape
4719 on the vertical border between windows.
4720
4721 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4722
4723 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4724 (syms_of_xfns): DEFVAR_LISP it.
4725 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4726
4727 * textprop.c (text_read_only): New function.
4728 (verify_interval_modification): Use it instead of signaling
4729 `text-read-only'. This makes it easier to catch this error
4730 with a breakpoint.:
4731
4732 * xdisp.c (forward_to_next_line_start): Check for newlines,
4733 not end of line, which includes CR.
4734
4735 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4736
4737 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4738 include no-conversion.
4739
4740 2000-11-27 Jason Rumney <jasonr@gnu.org>
4741
4742 * w32fns.c (w32_load_system_font): Always mark font as double byte
4743 if codepage is unicode.
4744
4745 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4746
4747 * xdisp.c (forward_to_next_line_start): If already on a newline,
4748 just consume it to avoid unintended skipping over invisible text below.
4749
4750 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
4751 `vertical-line', `mode-line' and `header-line' events.
4752
4753 * xdisp.c (try_window_id): Avoid starting to display in the middle
4754 of a character, a TAB for instance. This is easier than to set
4755 up the iterator exactly, and it's not a frequent case, so the
4756 additional effort wouldn't really pay off.
4757
4758 2000-11-26 Andrew Choi <akochoi@i-cable.com>
4759
4760 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
4761 init_window_once.
4762
4763 2000-11-25 Jason Rumney <jasonr@gnu.org>
4764
4765 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
4766 Args to window_from_coordinates should be pixel coordinates.
4767
4768 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
4769 redisplay handles them properly.
4770
4771 2000-11-25 Miles Bader <miles@gnu.org>
4772
4773 * indent.c (compute_motion): Keep pos_byte in sync with pos.
4774
4775 2000-11-24 Jason Rumney <jasonr@gnu.org>
4776
4777 * w32.c (init_environment): Set LANG environment variable based on
4778 locale settings, if not set.
4779
4780 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
4781 making tool bar smaller. When clearing the frame, also
4782 clear current matrices. Clear frame when tool bar disappears.
4783 Don't use more lines for the tool-bar than is available.
4784 (x_change_window_heights): New function.
4785
4786 2000-11-24 Gerd Moellmann <gerd@gnu.org>
4787
4788 * xdisp.c (init_from_display_pos): If POS says we're already after
4789 an overlay string ending at POS, make sure to pop the iterator
4790 because it will be in front of that overlay string. When POS is
4791 ZV, we've thereby also ``processed'' overlay strings at ZV.
4792
4793 * xfaces.c (lface_from_face_name): Function comment fix.
4794
4795 2000-11-24 Miles Bader <miles@gnu.org>
4796
4797 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
4798 apply `mode-line-inverse-video' -- zero means force display using
4799 the default face, non-zero means display using the specialized face.
4800 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
4801
4802 2000-11-23 Kenichi Handa <handa@etl.go.jp>
4803
4804 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
4805 hard coded `4'.
4806
4807 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
4808
4809 * coding.c (decode_coding_emacs_mule): Fix the case of
4810 CODING_EOL_LF, which used uninitialized value of c.
4811
4812 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
4813
4814 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
4815
4816 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4817
4818 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
4819 buffer object.
4820
4821 * frame.h (struct frame): Replace desired_tool_bar_items,
4822 current_tool_bar_items, n_desired_tool_bar_items,
4823 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
4824
4825 * frame.c (make_frame): Change initialization of tool bar
4826 items accordingly.
4827
4828 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
4829 Change references to members deleted from struct frame to use the
4830 new ones.
4831
4832 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
4833 references to members deleted from struct frame to use the new ones.
4834
4835 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
4836
4837 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
4838
4839 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
4840 (note_tool_bar_highlight): Change references to members deleted
4841 from struct frame to use the new ones.
4842
4843 2000-11-23 Miles Bader <miles@gnu.org>
4844
4845 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
4846 the face's inverse-video attribute, rather than overriding it.
4847
4848 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4849
4850 * xfns.c (x_set_tool_bar_lines): Clear internal border when
4851 making tool bar smaller.
4852
4853 2000-11-22 Dave Love <fx@gnu.org>
4854
4855 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
4856
4857 2000-11-22 Miles Bader <miles@gnu.org>
4858
4859 * keyboard.c (Vminibuffer_message_timeout): New variable.
4860 (command_loop_1): Use it to determine message timeout.
4861 (syms_of_keyboard): Initialize it.
4862
4863 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
4864
4865 2000-11-22 Kenichi Handa <handa@etl.go.jp>
4866
4867 * sysdep.c: Move the code for declaring h_errno after #include
4868 <netdb.h>.
4869
4870 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4871
4872 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
4873 the menu bar when the tooltip is unmapped.
4874
4875 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
4876 sole visible buffer when we're currently in the mini-buffer, and
4877 give up if so.
4878
4879 2000-11-21 Jason Rumney <jasonr@gnu.org>
4880
4881 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
4882 put on the clipboard.
4883 (Fw32_get_clipboard_data): Compare data on clipboard with saved
4884 copy of what Emacs last put there. If they are the same, do not
4885 use the clipboard copy to avoid losing data due to coding conversions.
4886
4887 2000-11-22 Miles Bader <miles@gnu.org>
4888
4889 * minibuf.c (Vminibuffer_prompt_properties): New variable.
4890 (syms_of_minibuf): Initialize it.
4891 (read_minibuf): Add properties from Vminibuffer_prompt_properties
4892 to prompt, don't make read-only.
4893
4894 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4895
4896 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
4897 Add BEFORE/AFTER_POTENTIAL_GC.
4898
4899 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
4900
4901 * buffer.c (mmap_free_1): Avoid a compiler warning.
4902
4903 * term.c, cm.c: Don't try to include termcap.h; see comment there.
4904
4905 2000-11-21 Kenichi Handa <handa@etl.go.jp>
4906
4907 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
4908 ... #endif scope.
4909
4910 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4911
4912 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
4913 screen supports it.
4914
4915 * s/gnu-linux.h: Don't use `#cpu'.
4916
4917 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
4918 not defined in mman.h.
4919
4920 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
4921 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
4922 and store an index in the XClientMessageEvent. Storing a
4923 Lisp_Object or pointer can fail on a 64 bit system, since X only
4924 transfers 32 bits.
4925 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
4926
4927 2000-11-20 Dave Love <fx@gnu.org>
4928
4929 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
4930
4931 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4932
4933 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
4934
4935 2000-11-20 Kenichi Handa <handa@etl.go.jp>
4936
4937 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
4938 by WIDTH.
4939
4940 * alloc.c (make_string): Fix previous change. Be sure to make
4941 unibyte string correctly.
4942
4943 2000-11-19 Gerd Moellmann <gerd@gnu.org>
4944
4945 * window.c (Fwindow_list): Change parameter list to be XEmacs
4946 compatible.
4947 (window_list_1): New function.
4948 (window_loop): Use it instead of Fwindow_list.
4949
4950 * sysdep.c (emacs_ospeed): New variable.
4951 (toplevel): Don't declare ospeed extern.
4952 (init_baud_rate): Use emacs_ospeed instead of ospeed.
4953
4954 * termcap.c (ospeed): Remove.
4955 (tputs) [!emacs]: Remove unused code.
4956 (tgetent): Avoid a compiler warning.
4957
4958 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
4959 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
4960 SCROLL_BAR_X_WIDGET with additional argument DPY.
4961
4962 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
4963 removed.
4964 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
4965 Take the X display as additional argument.
4966 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
4967 `Widget' is a pointer type that's not easily stored in Lisp_Object
4968 form in a portable way.
4969
4970 * dispnew.c (update_text_area): Fix last change.
4971
4972 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4973
4974 * xdisp.c: Use BINDING_STACK_SIZE throughout.
4975
4976 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
4977 clear current matrices.
4978
4979 * buffer.c (mmap_enlarge): Don't print a message on stderr
4980 if mapping new memory at the end of the existing region fails.
4981
4982 * dispnew.c (update_text_area): Don't skip over equal glyphs
4983 when the last current glyph overlaps the glyph to its right.
4984
4985 2000-11-18 Miles Bader <miles@gnu.org>
4986
4987 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
4988 lines that *end* with "..." too (that's the most common case!).
4989
4990 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4991
4992 * xdisp.c (resize_mini_window): Temporarily change to the
4993 mini-window's buffer if necessary.
4994
4995 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
4996 the tooltip obscures less text under it.
4997
4998 2000-11-17 Gerd Moellmann <gerd@gnu.org>
4999
5000 * puresize.h (BASE_PURESIZE): Increase to 700000.
5001
5002 2000-11-18 Jason Rumney <jasonr@gnu.org>
5003
5004 * w32term.c (w32_draw_bitmap): Use face to set colors.
5005
5006 2000-11-17 Dave Love <fx@gnu.org>
5007
5008 * lread.c (Fload): Fix #ifdef for pcc.
5009
5010 2000-11-17 Gerd Moellmann <gerd@gnu.org>
5011
5012 * xdisp.c (pos_visible_p): Compute the default character height
5013 differently.
5014
5015 2000-11-16 Gerd Moellmann <gerd@gnu.org>
5016
5017 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
5018 knowing the line's height; use the default font's height in that case.
5019
5020 * xfaces.c (weight_table): Add `demi' with the same meaning as
5021 `demibold'.
5022
5023 2000-11-16 Kenichi Handa <handa@etl.go.jp>
5024
5025 * dispnew.c (null_row): New global static variable.
5026 (clear_glyph_row): Delete local static variable null_row.
5027
5028 2000-11-15 Jason Rumney <jasonr@gnu.org>
5029
5030 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
5031 (w32_alloc_lighter_color): Use new brightness calculations from
5032 xterm.c. Scale delta to be in the range expected by W32.
5033 (w32_draw_relief_rect): Use frame relief colors.
5034
5035 2000-11-15 Gerd Moellmann <gerd@gnu.org>
5036
5037 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
5038 (Qinhibit_default_face_x_resources): New variable.
5039 (syms_of_frame): Initialize it.
5040 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
5041
5042 * xdisp.c (pos_visible_p): Improve function comment.
5043
5044 * lisp.h (BINDING_STACK_SIZE): New macro.
5045
5046 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
5047 reading the directory if readdir returns null and errno is EAGAIN
5048 or EINTR.
5049
5050 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
5051
5052 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
5053 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
5054 Set amount_to_scroll to max of dx and scroll_step so that
5055 scroll-conservatively doesn't defeat scroll-step>1.
5056 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
5057 scroll-conservatively for line-at-a-time scrolling.
5058
5059 2000-11-14 Gerd Moellmann <gerd@gnu.org>
5060
5061 * window.c (Fpos_visible_in_window_p): Call pos_visible with
5062 extra argument.
5063
5064 * xdisp.c (current_mode_line_height, current_header_line_height):
5065 New variables.
5066 (init_xdisp): Initialize them.
5067 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
5068 and use exact mode line heights if it is set.
5069
5070 * lisp.h (pos_visible_p): Change prototype.
5071
5072 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
5073 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
5074 and current_header_line_height first.
5075 (current_mode_line_height, current_header_line_height):
5076 Declare extern.
5077
5078 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
5079
5080 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
5081 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
5082 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
5083
5084 2000-11-14 Miles Bader <miles@gnu.org>
5085
5086 * xterm.c (x_alloc_lighter_color): Include an additive component
5087 too for dark colors, because FACTOR isn't enough.
5088 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
5089 New macros.
5090
5091 2000-11-13 Gerd Moellmann <gerd@gnu.org>
5092
5093 * keyboard.c (show_help_echo): Call message3_nolog with number of
5094 bytes in the help string as 2nd parameter, instead of the number
5095 of characters.
5096
5097 2000-11-13 Miles Bader <miles@gnu.org>
5098
5099 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
5100 (Fload): Use new openp return protocol.
5101 Don't try to use Vload_source_file_function to load .elc files.
5102 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
5103 openp return protocol.
5104 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
5105
5106 2000-11-11 Kenichi Handa <handa@etl.go.jp>
5107
5108 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
5109
5110 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
5111 Defined these macros.
5112 (NLIST_STRUCT): Avoid re-defining it.
5113
5114 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
5115 -I/usr/contrib/X11R6/include.
5116 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
5117
5118 2000-11-10 Jason Rumney <jasonr@gnu.org>
5119
5120 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
5121
5122 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
5123 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
5124
5125 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
5126 (Qw32_charset_vietnamese): New symbol.
5127 (xlfd_charset_of_font): New function.
5128 (w32_load_system_font): Use it.
5129 (x_to_w32_charset): Use Fassoc to find charset info. Special case
5130 when Vw32_charset_info_alist is nil to ensure default face always
5131 has font. Use Fcar and Fcdr for safety.
5132 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
5133 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
5134 pseudo-codepages for special cases.
5135 (w32_to_x_font): New parameter to allow charset portion to be
5136 specified where there is many to one mapping. Callers changed.
5137 (w32_list_fonts): Avoid listing fonts that won't display.
5138
5139 2000-11-10 Gerd Moellmann <gerd@gnu.org>
5140
5141 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
5142 (font_list_1): Renamed from font_list.
5143 (font_list): New function, trying alternative registries from
5144 Vface_alternative_font_registry_alist.
5145 (Finternal_set_alternative_font_registry_alist): New function.
5146 (syms_of_xfaces): Initialize and Staticpro
5147 Vface_alternative_font_registry_alist.
5148 Defsubr Finternal_set_alternative_font_registry_alist.
5149
5150 2000-11-09 Ken Raeburn <raeburn@gnu.org>
5151
5152 * lisp.h (Flooking_at): Declare.
5153
5154 2000-11-09 Gerd Moellmann <gerd@gnu.org>
5155
5156 * dired.c (directory_files_internal): Fix a braino.
5157
5158 * dired.c (directory_files_internal): Add missing GCPRO's.
5159 Some cleanup.
5160
5161 2000-11-08 Gerd Moellmann <gerd@gnu.org>
5162
5163 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
5164 (resize_mini_window): Return quickly if Vresize_mini_window is
5165 nil. Don't return if Vmax_mini_window_height is nil.
5166
5167 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
5168 (syms_of_xdisp): Initialize them.
5169 (resize_mini_window): Act according to the setting of
5170 Vresize_mini_window.
5171 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
5172
5173 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
5174 scroll bar widget after configuring it, so that it will appear at
5175 the right position from the start.
5176 (XTredeem_scroll_bar): Cleaned up.
5177
5178 2000-11-08 Kenichi Handa <handa@etl.go.jp>
5179
5180 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5181 font is taller than the frame line, we don't have to bias the
5182 division by two.
5183
5184 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
5185
5186 2000-11-07 Dave Love <fx@gnu.org>
5187
5188 * config.in (HAVE_MKSTEMP): Add.
5189
5190 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
5191
5192 2000-11-07 Gerd Moellmann <gerd@gnu.org>
5193
5194 * window.c (Fset_window_configuration): Don't try to preserve
5195 point in the current buffer, if that buffer is displayed in more
5196 than one window.
5197
5198 * xfaces.c (lookup_named_face): If default face isn't realized,
5199 try to realize it. Return -1 if not successful.
5200 (Fx_list_fonts): Handle case that face cannot be determined.
5201 (Fface_font): Likewise.
5202
5203 2000-11-06 Gerd Moellmann <gerd@gnu.org>
5204
5205 * window.c (displayed_window_lines): Detect partially
5206 visible lines at the bottom correctly.
5207
5208 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
5209
5210 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
5211 when ensuring we don't do visit in indirect buffer.
5212
5213 2000-11-06 Kenichi Handa <handa@etl.go.jp>
5214
5215 * composite.h (compose_chars_in_text): Add prototype.
5216
5217 * composite.c (Vcomposition_function_table): New variable.
5218 (Qcomposition_function_table): New variable.
5219 (run_composition_function): Call
5220 Vcompose_chars_after_function with three arguments.
5221 (compose_chars_in_text): New function.
5222 (syms_of_composite): Modified the doc-string of
5223 Vcompose_chars_after_function. Declare composition-function-table
5224 as a lisp variable, and initialize it.
5225
5226 * xfns.c (x_encode_text): Suppress producing escape sequences for
5227 composition.
5228
5229 * xselect.c: Include composite.h.
5230 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
5231
5232 2000-11-05 Andrew Innes <andrewi@gnu.org>
5233
5234 * w32term.c (x_produce_glyphs): Fix typo in enum name.
5235
5236 * sysdep.c (read_input_waiting): Remove extraneous argument to
5237 read_socket_hook.
5238
5239 * w32fns.c (Fx_server_version): Include w32_build_number in the
5240 return list.
5241
5242 * w32heap.c (w32_build_number): New variable.
5243 (cache_system_info): Set it.
5244
5245 * w32heap.h (w32_build_number): Add extern.
5246
5247 * emacs.c (syms_of_emacs): Update docstring for
5248 system-configuration, to reflect the actual usage on MS-Windows.
5249
5250 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5251
5252 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5253 process idle timers while waiting for another event.
5254
5255 * dispnew.c (update_frame_line): Handle case where spaces in
5256 the default face are colored.
5257
5258 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5259 window height hasn't changed.
5260
5261 2000-10-31 Jason Rumney <jasonr@gnu.org>
5262
5263 * w32term.c (x_produce_glyphs): Handle composite characters.
5264 (x_draw_glyph_string_foreground)
5265 (x_draw_composite_glyph_string_foreground): Restore old font.
5266
5267 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5268
5269 * minibuf.c (read_minibuf): Reset the undo history just before
5270 starting the recursive-edit.
5271
5272 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5273
5274 * xfaces.c (menu_face_change_count): New variable.
5275 (Finternal_set_lisp_face_attribute): Increment it for changes
5276 of the `menu' face.
5277 (realize_basic_faces): Reflect changes in the `menu' faces
5278 in menu bars.
5279
5280 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5281 dy obtained from the iterator's y-position after moving from
5282 scroll_margin_pos to PT; see comment there.
5283
5284 * xdisp.c (safe_eval_handler): Call add_to_log.
5285
5286 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5287 is not a symbol or string.
5288
5289 * xdisp.c (echo_area_display): Don't perform a display update from
5290 inside redisplay. The update will happen anyway at the end of
5291 redisplay, and it can confuse redisplay (GC messages while
5292 redisplaying, for instance.)
5293
5294 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5295
5296 * xrdb.c (x_load_resources): Use the class name in the defaults.
5297
5298 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5299 (regex_compile): Catch bogus \(\1\).
5300
5301 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5302
5303 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5304 RGB values.
5305
5306 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5307 we have a color cache, check that the cached color equals the
5308 allocated color. If not, clear the color cache.
5309
5310 * window.c (displayed_window_lines): Change buffers if necessary.
5311 Fix computation of displayed lines.
5312
5313 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5314 update_menu_bindings to DEFVAR_BOOL.
5315
5316 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5317
5318 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5319
5320 * puresize.h (BASE_PURESIZE): Increase to 680000.
5321
5322 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5323
5324 2000-10-29 Jason Rumney <jasonr@gnu.org>
5325
5326 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5327
5328 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5329 (w32_cache_char_metrics): Handle possibility that 'x' does not
5330 exist in a BDF font.
5331 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5332
5333 * w32bdf.h (bdffont): Add nchars.
5334
5335 * w32bdf.c (set_bdf_font_info): Set it.
5336 (w32_BDF_TextOut): Swap byte order of double byte characters.
5337 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5338
5339 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5340
5341 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5342 don't override the colors in frame's param_alist, unless they are
5343 unspecified.
5344
5345 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5346 reverse the effect of the highlight flag.
5347
5348 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5349
5350 * window.h (Fwindow_live_p): Declare.
5351
5352 * undo.c (record_delete): Check that last_undo_buffer is really a
5353 buffer before applying XBUFFER to it.
5354
5355 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5356 Faref.
5357
5358 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5359
5360 * lisp.h (KEYMAPP): New macro.
5361 (get_keymap): Remove.
5362 (get_keymap_1): Rename get_keymap.
5363
5364 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5365
5366 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5367
5368 * xmenu.c (single_submenu): Use KEYMAPP.
5369 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5370 Use KEYMAPP rather than Fkeymapp.
5371
5372 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5373
5374 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5375 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5376 Use KEYMAPP rather than Fkeymapp.
5377 (single_submenu): Use KEYMAPP.
5378 (w32_menu_show, w32_dialog_show): Use TRUE.
5379
5380 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5381
5382 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5383 (Fkeymapp): Use KEYMAPP.
5384 (get_keymap): Rename from get_keymap_1. Remove old def.
5385 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5386 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5387 (Fminor_mode_key_binding): Don't raise an error if the binding
5388 is not a keymap.
5389 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5390 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5391
5392 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5393 Allow Vspecial_event_map to be autoloaded.
5394 (menu_bar_items): Fetch the keymap rather than using keymapp.
5395 (menu_bar_one_keymap): No need to follow func-indirect any more.
5396 (parse_menu_item): get_keymap_1 -> get_keymap.
5397 (tool_bar_items): Fetch the keymap rather than using keymapp.
5398 (read_key_sequence): Use KEYMAPP.
5399
5400 * intervals.c (get_local_map): Use get_keymap rather than following
5401 function-indirections explicitly.
5402
5403 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5404
5405 2000-10-27 Jason Rumney <jasonr@gnu.org>
5406
5407 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5408 point, as Windows has oversized fonts.
5409
5410 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5411
5412 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5413
5414 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5415 (freehook, reallochook): Handle null pointer arguments.
5416 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5417
5418 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5419
5420 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5421 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5422 Giving in to popular pressure to shut up the compiler with casts.
5423
5424 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5425
5426 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5427 signed value, and use a default value computed from the font's
5428 maximum descent.
5429
5430 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5431
5432 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5433 that specify a negative underline position can still use underlines.
5434
5435 * window.c (Fpos_visible_in_window_p): Make POS default to
5436 WINDOW's point, not the current buffer's point.
5437
5438 2000-10-26 Dave Love <fx@gnu.org>
5439
5440 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5441 when it's necessary.
5442
5443 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5444
5445 * window.c (size_window): Compute size difference from sum of old
5446 child window sizes instead of from parent's size.
5447
5448 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5449 Handle obscured lines at the top of the window.
5450
5451 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5452 down after the last error condition check.
5453
5454 * frame.c (Fdelete_frame): Run delete-frame-hook.
5455
5456 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5457
5458 * coding.c (decode_coding): Fix previous change (check also
5459 CODING_MODE_LAST_BLOCK).
5460
5461 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5462
5463 * regex.c: More `unsigned char' -> `re_char' changes.
5464 Also change several `int' into `re_wchar_t'.
5465 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5466 (PUSH_FAILURE_POINTER): Don't cast any more.
5467 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5468 We want GCC to complain, since this piece of code makes
5469 re_match non-reentrant, which *should* be fixed.
5470 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5471 (EXTEND_BUFFER): Use RETALLOC.
5472 (SET_LIST_BIT): Don't cast.
5473 (re_wchar_t): New type.
5474 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5475 that those two functions will always properly return.
5476 (IMMEDIATE_QUIT_CHECK): Cast to void.
5477 (analyse_first): Use recursion rather than an explicit stack.
5478 (re_compile_fastmap): Can't fail anymore.
5479 (re_search_2): Don't check re_compile_fastmap for failure.
5480 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5481 Now also sets the new value (passed in a new argument).
5482 (re_match_2_internal): Use it.
5483 Also, use a new var `reg' of type size_t when looping through regs
5484 rather than reuse the inappropriate `mcnt'.
5485
5486 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5487 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5488 (where_is_internal): Renamed from Fwhere_is_internal.
5489 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5490 (Fwhere_is_internal): New function wrapping where_is_internal.
5491 (where_is_internal_1): Handle the case where we're filling the cache.
5492 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5493
5494 2000-10-25 Miles Bader <miles@gnu.org>
5495
5496 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5497
5498 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5499
5500 * window.c (pos_fully_visible_p): Removed.
5501 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5502 if position is visible and/or fully visible.
5503
5504 * lisp.h (pos_visible_p): Add prototype.
5505
5506 * xdisp.c (pos_visible_p): New function.
5507
5508 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5509
5510 * process.c (send_process): If OBJECT is t, it means that the data
5511 is from C string, but we should encode it. Before calling
5512 setup_raw_text_coding_system, be sure to flush out data by the
5513 previous coding system.
5514
5515 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5516
5517 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5518 assignment of startpos to prev when startpos == pos.
5519
5520 * editfns.c (find_field): Set the field stickiness correctly from
5521 overlay fields. Use renamed `text_property_stickiness'.
5522 (text_property_stickiness): Renamed from `char_property_stickiness'.
5523 Only check text properties, not overlays.
5524 * textprop.c (get_char_property_and_overlay): New function.
5525 (Fget_char_property): Use it.
5526 * intervals.h (get_char_property_and_overlay): Add declaration.
5527
5528 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5529
5530 * keymap.c: Use AREF, ASET and ASIZE macros.
5531 (Fmake_sparse_keymap): Docstring fix.
5532 (synkey): Remove.
5533 (shadow_lookup): Move up.
5534 Handle the case where lookup-key returns an integer.
5535 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5536 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5537 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5538 Simplify/rewrite the keymap-finding code.
5539 Add check for command shadowing, using shadow_lookup.
5540
5541 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5542
5543 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5544 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5545 a symbol.
5546
5547 2000-10-24 Andrew Innes <andrewi@gnu.org>
5548
5549 * dired.c (directory_files_internal_unwind): New function.
5550 (directory_files_internal): Use it to ensure closedir is called
5551 even if expand-file-name or file-attributes throw, eg. because of
5552 a user interrupt. Also enable immediate_quit while calling
5553 re_search, so that matching can be interrupted as well.
5554
5555 2000-10-24 Andrew Innes <andrewi@gnu.org>
5556
5557 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5558 NT-Emacs only.
5559 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5560 so that re_search functions only quit when callers expect them to.
5561
5562 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5563
5564 * regex.c (regex_compile): Change the way of handling a range from
5565 a char less than 256 to a char not less than 256.
5566
5567 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5568
5569 * window.c (size_window): Prevent setting window's width or
5570 height to a negative value (esp. with XSETFASTINT).
5571
5572 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5573 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5574 (protect_malloc_state) [GC_MALLOC_CHECK &&
5575 GC_PROTECT_MALLOC_STATE]: New function.
5576 (PROTECT_MALLOC_STATE): New macro.
5577 (__malloc_initialize, morecore, _malloc_internal)
5578 (_free_internal) _realloc_internal): Use it to make _heapinfo
5579 read-only outside of gmalloc.
5580
5581 * keymap.c: Update copyright.
5582
5583 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5584 a symbol.
5585
5586 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5587
5588 * filelock.c (unlock_all_files): Use unlock_file to expand each
5589 buffer's file_truename before trying remove its lock file.
5590
5591 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5592
5593 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5594 or CRLF, decode EOLs.
5595
5596 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5597
5598 * window.c (Fdisplay_buffer): Fix doc.
5599
5600 2000-10-23 Jason Rumney <jasonr@gnu.org>
5601
5602 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5603 ASCII font of default fontset on Windows.
5604
5605 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5606 xterm.c comment below).
5607
5608 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5609
5610 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5611
5612 * xterm.c (x_connection_closed): Reset handling_signal.
5613
5614 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5615
5616 2000-10-23 Miles Bader <miles@gnu.org>
5617
5618 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5619 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5620 maintain old behavior.
5621 * minibuf.c (Fminibuffer_complete): Likewise.
5622
5623 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5624
5625 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5626 that when a font can't be exactly centered, it errs up rather than
5627 down.
5628
5629 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5630
5631 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5632
5633 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5634
5635 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5636
5637 * dispnew.c [macintosh]: Include macterm.h.
5638 (init_display) [macintosh]: Initialization for window system.
5639
5640 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5641 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5642 syms_of_search, x_term_init, and init_keyboard before calling
5643 init_window_once. Also, call syms_of_xmenu.
5644
5645 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5646 default fontset to Monaco.
5647
5648 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5649 NewMacWindow and DisposeMacWindow.
5650 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5651 instead of calling NewMacWindow and setting fields of
5652 f->output_data.mac directly. Call init_frame_faces.
5653 (Fdelete_frame) [macintosh]: Remove unused code.
5654 (Fmodify_frame_parameters) [macintosh]: Call
5655 x_set_frame_parameters instead of mac_set_frame_parameters.
5656
5657 * frame.h [macintosh]: Define menu_bar_lines field in struct
5658 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5659
5660 * keyboard.c [macintosh]: Include macterm.h.
5661 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5662 and menu_bar_activate_event type events as for X and NT.
5663 (make_lispy_event) [macintosh]: Construct lisp events of type
5664 MENU_BAR_EVENT as for X and NT.
5665
5666 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5667 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5668 (sys_subshell) [macintosh]: Remove definition entirely.
5669 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5670 Vwindow_system_version here. Remove initialization of
5671 Vx_bitmap_file_path.
5672 (read_input_waiting): Correct the number of parameters passed to
5673 read_socket_hook.
5674 Move all Macintosh functions to mac/mac.c.
5675
5676 * term.c [macintosh]: Include macterm.h.
5677
5678 * window.c [macintosh]: Include macterm.h.
5679
5680 * xdisp.c [macintosh]: Include macterm.h. Declare
5681 set_frame_menubar and pending_menu_activation.
5682 (echo_area_display) [macintosh]: Do not return if terminal frame
5683 is the selected frame.
5684 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5685 Allow only the selected frame to set menu bar.
5686 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5687 calling FRAME_EXTERNAL_MENU_BAR (f).
5688 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5689
5690 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5691 and check_x. Declare XCreateGC. Define x_create_gc and
5692 x_free_gc. Initialize font_sort_order.
5693 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5694 but call x_list_fonts instead of w32_list_fonts.
5695 (Finternal_face_x_get_resource) [macintosh]: Do not call
5696 display_x_get_resource.
5697 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5698 (realize_x_face) [macintosh]: Load the font if it is specified in
5699 ATTRS.
5700 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5701
5702 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5703
5704 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5705 is nil: since we go to the end of submap anyway, we'd end up
5706 setting nil to nil.
5707 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5708 doesn't obey autoload.
5709
5710 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5711
5712 * msdos.c (dos_set_window_size): Update screen dimension variables.
5713
5714 2000-10-21 Jason Rumney <jasonr@gnu.org>
5715
5716 * w32term.c (w32_cache_char_metrics): Double check that font is
5717 really fixed pitch before trusting tmPitchAndFamily.
5718
5719 2000-10-21 Andrew Innes <andrewi@gnu.org>
5720
5721 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5722
5723 * w32term.h: Extern decl for w32_cache_char_metrics.
5724
5725 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5726
5727 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5728 (w32_unload_font): Free per_char array if present.
5729
5730 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5731 cached information in emulated XFontStruct to handle common cases
5732 quickly. Do not allocate XCharStruct for return.
5733 (w32_native_per_char_metric): New function.
5734 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5735 allocating one.
5736 (x_produce_glyphs): Don't get an HDC. Change calls to
5737 w32_per_char_metric to match arg change above. Remove calls to
5738 free results.
5739 (w32_get_glyph_overhangs): Ditto.
5740 (w32_cache_char_metrics): New function.
5741
5742 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5743 ($(BLD)/casefiddle.$(O)): Remove compile command.
5744 ($(BLD)/gmalloc.$(O)): Remove compile command.
5745 ($(BLD)/dispnew.obj):
5746 ($(BLD)/keyboard.obj):
5747 ($(BLD)/w32inevt.obj):
5748 ($(BLD)/w32bdf.obj):
5749 ($(BLD)/alloc.obj):
5750 ($(BLD)/buffer.obj):
5751 ($(BLD)/editfns.obj):
5752 ($(BLD)/emacs.obj):
5753 ($(BLD)/fileio.obj):
5754 ($(BLD)/fns.obj):
5755 ($(BLD)/indent.obj):
5756 ($(BLD)/insdel.obj):
5757 ($(BLD)/intervals.obj):
5758 ($(BLD)/minibuf.obj):
5759 ($(BLD)/print.obj):
5760 ($(BLD)/scroll.obj):
5761 ($(BLD)/sysdep.obj):
5762 ($(BLD)/textprop.obj):
5763 ($(BLD)/widget.obj):
5764 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
5765 ($(BLD)/term.obj): Add dependency on dispextern.h.
5766
5767 * makefile.nt ($(BLD)\dispnew.obj):
5768 ($(BLD)\keyboard.obj):
5769 ($(BLD)\w32inevt.obj):
5770 ($(BLD)\w32bdf.obj):
5771 ($(BLD)\alloc.obj):
5772 ($(BLD)\buffer.obj):
5773 ($(BLD)\editfns.obj):
5774 ($(BLD)\emacs.obj):
5775 ($(BLD)\fileio.obj):
5776 ($(BLD)\fns.obj):
5777 ($(BLD)\indent.obj):
5778 ($(BLD)\insdel.obj):
5779 ($(BLD)\intervals.obj):
5780 ($(BLD)\minibuf.obj):
5781 ($(BLD)\print.obj):
5782 ($(BLD)\scroll.obj):
5783 ($(BLD)\sysdep.obj):
5784 ($(BLD)\textprop.obj):
5785 ($(BLD)\widget.obj):
5786 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
5787 ($(BLD)\term.obj): Add dependency on dispextern.h
5788
5789 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5790
5791 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
5792 with an additional argument of Qt.
5793
5794 2000-10-21 Miles Bader <miles@gnu.org>
5795
5796 * window.c (pos_fully_visible_in_window_p): New function.
5797 (Fpos_visible_in_window_p): Add FULLY argument.
5798 Use pos_fully_visible_in_window_p.
5799 (window_scroll_pixel_based, window_scroll_line_based): Update
5800 calls to Fpos_visible_in_window_p.
5801 * lisp.h (Fpos_visible_in_window_p): Update prototype
5802
5803 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5804
5805 * alloc.c (toplevel): Conditionalize compilation of mem_*
5806 functions differently.
5807
5808 2000-10-20 Jason Rumney <jasonr@gnu.org>
5809
5810 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
5811 mem_init where it used to be. mem_z etc not defined otherwise.
5812
5813 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5814
5815 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
5816 GC_MALLOC_CHECK.
5817 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
5818 structure definition and related variabled to the top of the file.
5819 Include this code when GC_MALLOC_CHECK is defined.
5820 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
5821 register/unregister allocated region.
5822 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
5823 which isn't allocated.
5824 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
5825 something which is already in use.
5826 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
5827 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
5828 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
5829 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
5830
5831 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
5832 _malloc_internal instead of malloc.
5833 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
5834 of free.
5835
5836 2000-10-20 Andrew Innes <andrewi@gnu.org>
5837
5838 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
5839 Windows.
5840 (my_strftime) <macro>: Don't use macro arg list when redefining as
5841 _strftime_copytm.
5842 (my_strftime) <function>: Supply 0 as ut argument.
5843
5844 2000-10-19 Jason Rumney <jasonr@altavista.net>
5845
5846 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
5847 including dispextern.h, as it stops faces from working.
5848
5849 * w32fns.c (Fx_create_frame): Don't bother calling
5850 face-set-after-frame-default since the caller does it for us
5851 anyway. Clean up calls to x_get_arg to be consistent with X.
5852
5853 * w32term.c (x_produce_glyphs): Handle
5854 unibyte_display_via_language_environment correctly.
5855 (w32_draw_box_rect): Fix the calculation of width and height.
5856
5857 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
5858 as it has stopped working.
5859 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
5860 menu-bar.
5861
5862 2000-10-19 Gerd Moellmann <gerd@gnu.org>
5863
5864 * eval.c (skip_debugger): Prevent a compiler warning.
5865 (Fcondition_case): Likewise.
5866 (Fbacktrace_frame): Use a null interactive spec.
5867
5868 2000-10-19 Kenichi Handa <handa@etl.go.jp>
5869
5870 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
5871
5872 2000-10-18 Gerd Moellmann <gerd@gnu.org>
5873
5874 * strftime.c: Sync with glibc, file version 1.78.
5875 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
5876 should no longer be used according to ISO 8601.
5877
5878 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
5879 no map for meta_prefix_char, don't try to use it as a keymap.
5880 Instead, if T_OK is non-zero, look up a default binding, if any,
5881 otherwise, if T_OK is zero, return nil.
5882
5883 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
5884 (x_to_xcolors, png_load): Use x_query_color.
5885
5886 * xterm.c (x_color_cells, x_query_colors, x_query_color):
5887 New functions.
5888 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
5889 which can be slow.
5890 (x_copy_color, x_alloc_lighter_color): Likewise.
5891
5892 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
5893 (x_query_color, x_query_colors): Add prototype.
5894
5895 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
5896 check_string_bytes only if not noninteractive, increase count to 50.
5897
5898 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
5899
5900 * insdel.c (adjust_markers_for_delete): Handle before-insertion
5901 markers correctly.
5902
5903 2000-10-17 Gerd Moellmann <gerd@gnu.org>
5904
5905 * alloc.c (pure_bytes_used): Renamed from pureptr.
5906 (ALIGN): New macro.
5907 (pure_alloc): New function.
5908 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
5909 Use it.
5910 (Fpurecopy): Use PURE_POINTER_P.
5911
5912 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
5913 PT has moved backward.
5914
5915 * xdisp.c (cursor_row_p): Take continued lines into account.
5916
5917 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
5918 string's size_byte.
5919 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
5920 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
5921 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
5922 string allocated.
5923
5924 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
5925 of selective display off while searching for the next line start.
5926
5927 2000-10-17 Kenichi Handa <handa@etl.go.jp>
5928
5929 * Makefile.in (term.o): Depend on dispextern.h.
5930
5931 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
5932
5933 * keymap.c (keymap_memberp): Ensure that nil is not a member.
5934
5935 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5936
5937 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
5938 the iterator at the beginning, so that they can be set later on,
5939 for instance in reseat_at_next_visible_line_start, without being
5940 overwritten.
5941
5942 * xfns.c (pbm_format): Add :foreground and :background keywords.
5943 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
5944 (xbm_load): Recognize foreground and background color specifications.
5945
5946 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
5947
5948 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
5949
5950 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
5951
5952 * msdos.c (IT_set_face): Compare highlighted face with the default
5953 face, and invert colors if these faces' colors are identical.
5954 (Fmsdos_remember_default_colors): Don't swap foreground and
5955 background colors in initial_colors[].
5956 (IT_set_frame_parameters): Don't swap frame's foreground and
5957 background pixels. If ALIST includes "(reverse . t)", swap
5958 foreground-color and background-color properties in frame's
5959 param_alist. If the original frame's param_alist doesn't specify
5960 the colors, store unspecified-fg and unspecified-bg, reversed if
5961 required.
5962
5963 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
5964 the colors are unspecified and reversed, reverse fore- and back-
5965 ground in the returned value.
5966 (Fframe_parameter): Ditto.
5967
5968 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5969
5970 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
5971 get_last_unchanged_at_beg_row.
5972 (find_first_unchanged_at_end_row): Renamed from
5973 get_first_unchanged_at_end_row.
5974 (find_first_unchanged_at_end_row): Convert assertions to
5975 unconditional tests which abort. When looking for a row in
5976 unchanged text, don't go further back than first_text_row.
5977
5978 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
5979 Don't add in the last line's height when deciding if the new
5980 position is below the scroll margin.
5981
5982 2000-10-16 Miles Bader <miles@gnu.org>
5983
5984 * editfns.c (Fconstrain_to_field): Check carefully for field
5985 boundaries if either OLD_POS or NEW_POS has a non-nil field
5986 property, even if they're the same.
5987
5988 2000-10-16 Kenichi Handa <handa@etl.go.jp>
5989
5990 * xterm.c (x_draw_box_rect): Fix the calculation of width and
5991 height for XFillRectangle.
5992
5993 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
5994
5995 * syntax.c (Fstring_to_syntax): New function extracted from
5996 Fmodify_syntax_entry.
5997 (Fmodify_syntax_entry): Use it and document the ! and | fences.
5998 (skip_chars, Fforward_comment): Remove unused variables.
5999 (syms_of_syntax): Add defsubr for string-to-syntax.
6000 (describe_syntax): Add code for comment and string fences.
6001
6002 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
6003
6004 * keymap.c (access_keymap): Add AUTOLOAD parameter.
6005 Do the meta->esc mapping. Call get_keyelt before returning.
6006 Start scanning from the second element (the first is always `keymap')
6007 to make it easier to detect when we reach a parent map.
6008 Handle the case of inheriting from a symbol whose function is a map.
6009 (Fkeymap_parent): Also handle the `inherit from symbol' case.
6010 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
6011 (get_keyelt, Flookup_key): Update call to access_keymap.
6012 Remove the meta->esc mappings.
6013 (define_as_prefix): Delete old disabled code.
6014 (menu_item_p): New function.
6015 (where_is_internal_1): Skip over the few remaining menu items.
6016 * lisp.h (access_keymap): Update prototype.
6017 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
6018 Update call to access_keymap.
6019 (follow_key, read_key_sequence): Update calls to access_keymap.
6020 Remove the meta->esc mappings.
6021
6022 2000-10-13 Gerd Moellmann <gerd@gnu.org>
6023
6024 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
6025 with additional argument.
6026
6027 * xdisp.c (cursor_row_p): New function.
6028 (try_cursor_movement, display_line): Use it.
6029
6030 * xdisp.c (append_space): Also save/restore iterator's current
6031 character and its length.
6032
6033 * xdisp.c (init_from_display_pos): Add an assertion.
6034 (handle_stop): Don't set iterator's add_overlay_start.
6035 (handle_invisible_prop): Likewise.
6036 (load_overlay_strings): If text under an overlay is invisible,
6037 take both before- and after-strings into account when the iterator
6038 is positioned either at the start or at the end of the overlay.
6039 (forward_to_next_line_start): Rewritten.
6040 (reseat_at_next_visible_line_start): Rewritten.
6041 (set_iterator_to_next): Add parameter RESEAT_P.
6042
6043 * dispextern.h (struct it): Remove member add_overlay_start.
6044 (set_iterator_to_next): Change prototype.
6045
6046 2000-10-13 Kenichi Handa <handa@etl.go.jp>
6047
6048 * coding.c (code_convert_region): Be sure to initialize
6049 coding->category_idx.
6050 (decode_coding_string): Set coding->src_multibyte and
6051 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
6052 (encode_coding_string): Set coding->src_multibyte and
6053 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
6054
6055 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
6056
6057 * xfns.c (Fx_create_frame): Don't bother calling
6058 face-set-after-frame-default since the caller does it for us anyway.
6059
6060 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
6061
6062 * window.c (coordinates_in_window): Fix detection of vertical line
6063 on character terminals.
6064
6065 2000-10-12 Gerd Moellmann <gerd@gnu.org>
6066
6067 * editfns.c (save_excursion_save): Additionally record the
6068 selected window.
6069 (save_excursion_restore): If buffer was visible in a window, and a
6070 different window was selected, and the old selected window is
6071 still live, restore point in that window.
6072
6073 2000-10-12 Kenichi Handa <handa@etl.go.jp>
6074
6075 * xterm.c (x_produce_glyphs): Handle
6076 unibyte_display_via_language_environment correctly.
6077
6078 * regex.c (regex_compile): Change the way of handling a range from
6079 unibyte char to multibyte char.
6080
6081 * syntax.c (skip_chars): Change the way of handling a range from
6082 unibyte char to multibyte char.
6083
6084 * process.c (read_process_output): Cancel previous change.
6085
6086 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
6087
6088 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
6089
6090 * charset.c (Ffind_charset_string): Doc fix.
6091 (Ffind_charset_region): Doc fix.
6092
6093 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
6094
6095 * process.c (read_process_output): Fix previous change. Adjust
6096 multibyteness of text to insert in a buffer by
6097 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
6098
6099 2000-10-10 Andreas Schwab <schwab@suse.de>
6100
6101 * alloc.c (mark_object): Remove all workarounds installed on
6102 1993-08-08.
6103
6104 2000-10-10 Kenichi Handa <handa@etl.go.jp>
6105
6106 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
6107 (base64_encode_1): Make it work for a text of multibyte form.
6108 (Fbase64_decode_region): Allocate sufficient memory for multibyte
6109 case. Don't call str_to_multibyte because base64_decode_1
6110 produces correct multibyte form for eight-bit codes.
6111 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
6112 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
6113 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
6114 codes.
6115
6116 * charset.h (CHAR_STRING): Optimized for single byte characters.
6117
6118 2000-10-09 Andreas Schwab <schwab@suse.de>
6119
6120 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
6121 -1 after socket is closed, to fall through to error processing.
6122
6123 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
6124
6125 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
6126 variables. If ALIST includes foreground-color or
6127 background-color, change also the colors of the default face for
6128 this frame.
6129
6130 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
6131
6132 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
6133 them extern (they are defined on xfaces.c).
6134 (syms_of_msdos): Don't intern and don't staticpro
6135 Qbackground_color and Qforeground_color.
6136
6137 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
6138
6139 * frame.c (Fframe_parameter): For non-windowed frames, if
6140 f->param_alist says foreground or background color is unspecified,
6141 call tty_color_name to return the color name computed from the
6142 frame's current colors.
6143
6144 2000-10-06 Dave Love <fx@gnu.org>
6145
6146 * terminfo.c (ospeed): Don't declare.
6147
6148 * sysdep.c: Don't include string.h.
6149 (h_errno): Declare conditional also on TRY_AGAIN.
6150
6151 * charset.c (Ffind_charset_string): Doc fix.
6152
6153 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
6154 (Fbase64_decode_region, Fbase64_decode_string): More explicit
6155 error messages.
6156
6157 2000-10-05 Dave Love <fx@gnu.org>
6158
6159 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
6160 position like menu-bar.
6161
6162 2000-10-05 Gerd Moellmann <gerd@gnu.org>
6163
6164 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
6165
6166 * xdisp.c (handle_single_display_prop): Use safe_call1.
6167 (safe_call): Renamed from call_function.
6168 (safe_call1): New function.
6169 (handle_fontified_prop): Use safe_call1 instead of call1.
6170 (safe_eval): Renamed from eval_form.
6171 (safe_eval_handler): Renamed from eval_handler.
6172 (handle_single_display_prop, display_mode_element): Use safe_eval
6173 instead of eval_form.
6174
6175 * xfaces.c (merge_face_heights): Use safe_call instead of
6176 call_function.
6177
6178 * keyboard.c (show_help_echo): Use safe_call instead of
6179 call_function; use safe_eval instead of eval_form.
6180
6181 * lisp.h (safe_call): Renamed from call_function.
6182 (safe_eval): Renamed from eval_form.
6183 (safe_call1): Add prototype.
6184
6185 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
6186
6187 * xfns.c (image_ascent): Rearrange ascent calculation for the
6188 has-a-font case.
6189
6190 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
6191
6192 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
6193 (where_is_internal_1): Don't bother ignoring menu-items any more.
6194
6195 2000-10-04 Gerd Moellmann <gerd@gnu.org>
6196
6197 * keyboard.c (update_menu_bindings): New variable.
6198 (parse_menu_item): Use AREF. If update_menu_bindings
6199 is 0, don't update menu bindings.
6200 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
6201
6202 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
6203
6204 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
6205 to `mark_object'.
6206
6207 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
6208
6209 * syntax.c (forw_comment): Match nestedness of ender/starter.
6210 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
6211 (prev_char_comstart_first): Remove.
6212 (back_comment): Check two-char comment markers more carefully
6213 to better handle overlapping cases like *//* or /* */* */ ...
6214 Match nestedness of ender/starter.
6215
6216 2000-10-02 Dave Love <fx@gnu.org>
6217
6218 * config.in (HAVE_GAI_STRERROR): Add undef.
6219
6220 * process.c (Fopen_network_stream): Use it.
6221
6222 * m/alpha.h (NO_REMAP): Don't define.
6223
6224 2000-10-02 Gerd Moellmann <gerd@gnu.org>
6225
6226 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
6227 return with a string converted to an integer or vice versa when
6228 Vmocklisp_arguments is t.
6229 (Fsignal): Likewise. The function can return for `quit'.
6230 (struct gcpro): Declare member `var' to point to a volatile
6231 Lisp_Object.
6232
6233 * eval.c (error): Prevent compiler warning.
6234
6235 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
6236
6237 * keymap.c (keymap_memberp): New function.
6238 (Fset_keymap_parent): Use it.
6239 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
6240 Use keymap_memberp to avoid creating cycles.
6241 (access_keymap): Use KEYMAPP.
6242
6243 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6244
6245 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6246 gai_strerror. Make sure xerrno is set if connect fails. Improve
6247 error recovery.
6248
6249 2000-09-29 Jason Rumney <jasonr@gnu.org>
6250
6251 * w32term.c (w32_char_font_type, w32_encode_char)
6252 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6253 (w32_bdf_per_char_metric): New function.
6254 (w32_per_char_metric): Use it.
6255 (x_draw_glyph_string_background): Always draw background for BDF
6256 glyphs.
6257
6258 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6259 GDI object which is a scarce resource.
6260
6261 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6262 (get_quoted_string): Fix limit on memchr search.
6263 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6264 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6265 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6266 (get_cached_font_char, cache_char_offset): Use macro
6267 BDF_CODEPOINT_RANGE_COVER_P.
6268 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6269 (clear_cached_bitmap_slots): New function.
6270 (GET_HEX_VALUE): G-Z, g-z are not hex.
6271 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6272 (get_bitmap_with_cache): Use new cache implementation.
6273 (create_offscreen_bitmap): New function.
6274 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6275
6276 * w32term.c (x_produce_glyphs): If the distance from the current
6277 position to the next tab stop is less than a canonical character
6278 width, use the tab stop after that.
6279 (x_draw_glyphs): Handle case START and END are out of bounds more
6280 carefully.
6281 (x_clear_mouse_face): Block/unblock input.
6282 (x_display_and_set_cursor): Don't show a hollow box cursor for
6283 buffers whose cursor_type is nil.
6284
6285 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6286
6287 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6288
6289 * dispextern.h (updating_frame): Declare extern.
6290
6291 2000-09-29 Andreas Schwab <schwab@suse.de>
6292
6293 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6294
6295 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6296
6297 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6298 use its function definition.
6299 (tool_bar_items): Likewise.
6300
6301 * lisp.h (fatal): Declare NO_RETURN.
6302
6303 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6304
6305 * keymap.c: Remove the line "#undef NULL".
6306
6307 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6308
6309 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6310
6311 2000-09-28 Dave Love <fx@gnu.org>
6312
6313 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6314
6315 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6316
6317 * .gdbinit (xreload): Note its need on GNU/Linux.
6318
6319 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6320 r_alloc, r_alloc_free.
6321
6322 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6323
6324 * syntax.c (skip_chars): Handle negation correctly.
6325
6326 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6327
6328 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6329 with non-zero FORCE_P argument.
6330
6331 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6332 Add assertions.
6333
6334 * xdisp.c (window_box_height): Add an assertion.
6335
6336 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6337 tool-bar than is available.
6338 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6339
6340 2000-09-27 Dave Love <fx@gnu.org>
6341
6342 * s/irix6-5.h: Now works 64-bit. Tidied.
6343
6344 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6345
6346 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6347 instead of BITS_PER_INT.
6348 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6349 EMACS_UINT, respectively.
6350 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6351
6352 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6353
6354 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6355
6356 * window.c (freeze_window_starts): Construct last argument for
6357 foreach_window differently.
6358
6359 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6360
6361 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6362 EMACS_UINT instead of `int' and `unsigned int'.
6363 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6364
6365 * frame.h (struct frame): Make the `nothing' member of union
6366 output_data an EMACS_INT.
6367
6368 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6369 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6370 size in the sdata structure.
6371 (SDATA_NBYTES, SDATA_DATA): New macros.
6372 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6373 differently for the different layout of the sdata structure.
6374 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6375 in sdata.
6376 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6377 Check that size recorded in the string size and size recorded in
6378 the sdata structure agree.
6379
6380 2000-09-25 Dave Love <fx@gnu.org>
6381
6382 * buffer.c: Include stdio.h.
6383
6384 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6385
6386 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6387
6388 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6389 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6390 (__malloc_extra_blocks): Declare as __malloc_size_t.
6391
6392 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6393
6394 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6395
6396 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6397 (read_char): If help-echo is showing, preserve the echo area
6398 when redisplaying.
6399
6400 * xdisp.c (help_echo_showing_p): New variable.
6401 (set_message): Reset it to 0.
6402 (init_xdisp): Initialize help_echo_showing_p.
6403
6404 * dispextern.h (help_echo_showing_p): Declare extern.
6405
6406 * config.in: Fix typo in __GNUC_MINOR__.
6407
6408 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6409
6410 * s/freebsd.h (POSIX_SIGNALS): Define.
6411
6412 * xterm.c (x_clear_mouse_face): Block/unblock input.
6413
6414 2000-09-24 Dave Love <fx@gnu.org>
6415
6416 * fns.c (base64_encode_1): Fix last change.
6417
6418 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6419
6420 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6421
6422 * xdisp.c (try_window_reusing_current_matrix): More fixes
6423 for the case window has a header-line.
6424
6425 2000-09-22 Dave Love <fx@gnu.org>
6426
6427 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6428 a doc string.
6429
6430 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6431
6432 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6433
6434 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6435
6436 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6437 for GCC >= 2.5.
6438
6439 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6440 Declare NO_RETURN.
6441
6442 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6443 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6444 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6445 warnings.
6446
6447 * marker.c (byte_char_debug_check): Return void.
6448
6449 * xfns.c (Fx_create_frame): Set default frame parameter value
6450 for tool-bar-lines to 1.
6451
6452 * dispnew.c (scrolling_window): Compare y-positions of rows
6453 equal at the start. Some simplification.
6454
6455 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6456 reused rows' y-position in the case window has a header-line, and
6457 new window start is greater than old window start.
6458
6459 * process.c (process_sent_to): New variable.
6460 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6461 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6462 Declare more parameters volatile.
6463
6464 * lread.c (Vrecursive_load_depth_limit): New variable.
6465 (Fload): Check recursive loads whose recursion depth exceeds
6466 Vrecursive_load_depth_limit.
6467 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6468
6469 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6470
6471 * fileio.c (Fread_file_name): Doc fix.
6472
6473 * editfns.c (Fmessage_or_box): Doc fix.
6474
6475 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6476
6477 * xfns.c (xbm_scan): Allow C-style comments.
6478
6479 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6480 symbols are specified, add color translations to the cache.
6481 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6482 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6483 xpm_cache_color.
6484 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6485 structures to xpm_init_color_cache.
6486
6487 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6488
6489 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6490
6491 2000-09-19 Andrew Innes <andrewi@gnu.org>
6492
6493 * makefile.nt (bootstrap-emacs): Don't change directory.
6494
6495 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6496
6497 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6498
6499 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6500 If output buffer is too small, signal an appropriated error.
6501
6502 2000-09-18 Dave Love <fx@gnu.org>
6503
6504 * keyboard.c (menu_bar_items, tool_bar_items)
6505 (current_active_maps): Remove redundant get_local_map call.
6506
6507 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6508
6509 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6510 cursor for buffers whose cursor_type is nil.
6511
6512 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6513 a feature to implement that is already implemented.
6514 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6515 warnings.
6516
6517 * xfns.c (x_clear_image_1): New function.
6518 (x_clear_image): Use it.
6519 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6520
6521 * dispnew.c (update_window): Move test for invisible lines
6522 at the top to update_window_line.
6523 (update_window_line): Handle invisible lines here.
6524
6525 * xfns.c (clear_image_cache): Clear current matrices of all
6526 frames sharing an image cache. Block input while freeing
6527 images. Fix timestamp comparison.
6528 (x_clear_image): Also free the mask.
6529
6530 * xfns.c (lookup_image): Block input while loading the image so
6531 that we won't get interrupted in a state where the image isn't yet
6532 set up completely.
6533 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6534 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6535 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6536 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6537
6538 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6539
6540 * dispnew.c (update_window): Make sure to make desired rows
6541 current even if they are completely invisible at the top
6542 of a window.
6543
6544 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6545
6546 * xfns.c (lookup_image): Build mask before applying an algorithm.
6547 Recognize algorithm `disabled'.
6548 (cross_disabled_images): New variable.
6549 (COLOR_INTENSITY): New macro.
6550 (x_detect_edges): Use COLOR_INTENSITY.
6551 (x_disable_image): New function.
6552 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6553
6554 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6555 disabled state, don't apply an image transformation algorithm if
6556 the user specified an image for the disabled state. Use
6557 `:algorithm disabled' for creating a disabled item's image if the
6558 user hasn't specified an image.
6559
6560 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6561 allocation functions with the XPM lib.
6562 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6563 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6564 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6565 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6566 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6567 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6568 functions, if possible, because these handle color allocation
6569 failure more gracefully.
6570 (Fimage_mask_p): New function.
6571
6572 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6573 (Qedge_detection, Qheuristic): New symbols.
6574 (syms_of_xfns): Initialize new symbols.
6575 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6576 `algorithm (edge-detection ...)'.
6577 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6578 (tiff_format, gif_format, gs_format): Add `:mask'.
6579 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6580 (GIF_MASK, GS_MASK): New enumerators.
6581 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6582 (emboss_matrix, laplace_matrix): New variables.
6583 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6584 (x_edge_detection): New functions.
6585 (x_laplace): Rewritten in terms of x_detect_edges.
6586 (x_build_heuristic_mask): If image has a mask, free it.
6587
6588 2000-09-14 Andrew Innes <andrewi@gnu.org>
6589
6590 * makefile.w32-in: Revert to Unix line endings.
6591
6592 2000-09-14 Andrew Innes <andrewi@gnu.org>
6593
6594 * makefile.w32-in: Standardize indentation somewhat.
6595 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6596 cater for differences between shells.
6597
6598 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6599
6600 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6601
6602 * xterm.c (x_produce_glyphs): If the distance from the current
6603 position to the next tab stop is less than a canonical character
6604 width, use the tab stop after that.
6605
6606 2000-09-14 Dave Love <fx@gnu.org>
6607
6608 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6609
6610 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6611
6612 * xdisp.c (handle_fontified_prop): While running fontification
6613 functions, bind `fontification-functions' and
6614 `after-change-functions' to nil.
6615
6616 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6617 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6618
6619 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6620
6621 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6622 USE_MMAP_FOR_BUFFERS.
6623
6624 * insdel.c (make_gap): Use enlarge_buffer_text.
6625
6626 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6627 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6628 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6629 from former r_alloc_* functions in ralloc.c.
6630 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6631 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6632 (mmap_init) [REL_ALLOC_MMAP]: New function.
6633 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6634 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6635 BUFFER_FREE.
6636
6637 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6638 (enlarge_buffer_text): Add prototype.
6639
6640 * ralloc.c: Remove everything having to do with the use of mmap.
6641
6642 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6643
6644 * sound.c (Fplay_sound): Doc fix.
6645
6646 * keyboard.c: Avoid some more compiler warnings.
6647 (parse_tool_bar_item): Ignore cached key bindings.
6648
6649 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6650 and allocation of Lisp data.
6651
6652 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6653
6654 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6655 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6656 defaults first.
6657
6658 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6659
6660 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6661
6662 * ccl.c: Comment fixed.
6663 (MAX_MAP_SET_LEVEL): Increased to 30.
6664 (PUSH_MAPPING_STACK): Enclose with do-while block.
6665 (POP_MAPPING_STACK): Likewise.
6666 (stack_idx_of_map_multiple): New variable.
6667 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6668 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6669 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6670 (ccl_driver) <CCL_MapSingle>: Likewise.
6671 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6672 with the case where looking up process reaches to the end of
6673 map-set, and call CCL programs as the above change.
6674
6675 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6676
6677 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6678 that might be clobbered by longjmp.
6679 (check_x_display_info, x_decode_color, create_frame_xic)
6680 (Fx_display_backing_store, Fx_display_visual_class)
6681 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6682
6683 * lread.c (init_lread): Set Vloads_in_progress to nil.
6684 (Fload): Show list of recursively loaded files, when signaling an
6685 error.
6686
6687 * lread.c (Vloads_in_progress): New variable.
6688 (record_load_unwind): New function.
6689 (Fload): Check for recursive loads.
6690 (syms_of_lread): Initialize Vloads_in_progress.
6691 (read_integer, read1): Avoid some compiler warnings.
6692
6693 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6694 compiler warnings.
6695
6696 2000-09-11 Miles Bader <miles@gnu.org>
6697
6698 * editfns.c (Fbuffer_string): Doc fix.
6699
6700 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6701
6702 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6703
6704 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6705
6706 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6707 whether to include other header files.
6708
6709 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6710
6711 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6712 by Fmemq as a boolean.
6713
6714 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6715
6716 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6717
6718 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6719
6720 * ralloc.c (mmap_fd): Remove initializer which can make it
6721 read-only in a dumped Emacs.
6722 (mmap_fd_1): New variable.
6723 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6724 restore it from there.
6725 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6726 unconditionally so that mmap_fd can be initialized there.
6727 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6728 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6729 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6730
6731 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6732
6733 * xdisp.c (dump_glyph_row): Fix printf format string.
6734 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6735
6736 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6737
6738 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6739 inheritance.
6740
6741 * xdisp.c (try_window_id): When trying to locate cursor in
6742 unchanged rows at the top, handle the case that we can't find it.
6743
6744 * xterm.c (x_draw_glyphs): Handle case START and END are out
6745 of bounds more carefully.
6746
6747 2000-09-08 Dave Love <fx@gnu.org>
6748
6749 * s/sol2.h (REL_ALLOC_MMAP): Define.
6750 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
6751
6752 * ralloc.c: Don't include string.h (redundant).
6753 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
6754 [!MAP_ANON]: Include fcntl.h.
6755 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
6756 (r_alloc, r_re_alloc, r_alloc_free)
6757 (mmap_enlarge, mmap_set_vars): Use it.
6758 (r_alloc_init_fd): New function.
6759 (__morecore) [SYSTEM_MALLOC]: Don't declare.
6760 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
6761 malloc type.
6762
6763 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
6764 Remove vm-limit.o.
6765
6766 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
6767 change to __NetBSD__.
6768
6769 2000-09-08 Kenichi Handa <handa@etl.go.jp>
6770
6771 * search.c (compile_pattern): Check the multibyteness of cached
6772 string and PATTERN.
6773
6774 2000-09-08 Miles Bader <miles@gnu.org>
6775
6776 * xfaces.c (default_face_vector): Function removed.
6777 (Finternal_merge_in_global_face): Restore old global/local
6778 attribute override order. Use inline loop instead of calling
6779 default_face_vector.
6780
6781 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6782
6783 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
6784 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
6785 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
6786 where necessary, in case POINTER_TYPE is `void'.
6787
6788 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
6789
6790 * frame.c (make_terminal_frame): Initialize frame foreground and
6791 background colors to unspecified, for the initial instance of an
6792 MSDOS frame.
6793
6794 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6795
6796 * ralloc.c (mmap_find): Fix overlap computation.
6797 (mmap_enlarge): Compute nbytes before trying to find an
6798 overlapping region.
6799
6800 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
6801 instead of `!='.
6802
6803 * lread.c (syms_of_lread): Change value of regexp
6804 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
6805
6806 * xmenu.c (xdialog_show): When looking up the selection in
6807 menu_items, take `quote' boundaries into account; this corresponds
6808 to a nil ITEM in x-popup-dialog.
6809
6810 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6811
6812 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
6813 not 0x81.
6814 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
6815
6816 * coding.c (encode_coding_sjis_big5): Use translation table for
6817 encoding, not decoding. Fix the handling of latin-jisx0201.
6818 Check for the charset katakana-jisx0201 too.
6819 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
6820 (detect_coding_sjis): Check the byte sequence more rigidly.
6821
6822 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6823
6824 * xfaces.c (Vparam_value_alist): New variable.
6825 (syms_of_xfaces): Initialize it.
6826 (Finternal_set_lisp_face_attribute): Avoid more consing.
6827
6828 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
6829 specially.
6830 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
6831 (Qbackground_mode): New variable.
6832 (syms_of_frame_1): Initialize Qbackground_mode.
6833
6834 * lisp.h (Qdisplay): Declare extern.
6835
6836 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
6837 change face on all frames, and change the default for new frames.
6838
6839 2000-09-07 Dave Love <fx@gnu.org>
6840
6841 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
6842
6843 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6844
6845 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
6846
6847 * charset.c: Include composite.h
6848 (lisp_string_width): New function.
6849 (Fstring_width): Call lisp_string_width instead of strwidth.
6850
6851 * Makefile.in (charset.o): Depends on composite.h.
6852
6853 * process.c (read_process_output): Before inserting the decoded
6854 text in the buffer, adjust the multibyteness.
6855
6856 2000-09-06 Gerd Moellmann <gerd@gnu.org>
6857
6858 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
6859 buffer's text buffer is null, map new memory.
6860
6861 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
6862 POINTER_TYPE and size_t.
6863 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
6864 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
6865 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
6866 [REL_ALLOC_MMAP]: New macros.
6867 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
6868 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
6869 [REL_ALLOC_MMAP]: New functions.
6870
6871 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
6872 before and after unexec.
6873
6874 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
6875 text buffers if necessary.
6876
6877 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
6878 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
6879 in prototypes.
6880
6881 * config.in (HAVE_MMAP): Add #undef.
6882
6883 2000-09-05 Gerd Moellmann <gerd@gnu.org>
6884
6885 * frame.c (Qdisplay_type): New variable.
6886 (syms_of_frame_1): Initialize it.
6887 (Fframe_parameter): New function that avoids consing.
6888 (syms_of_frame): Defsubr it.
6889
6890 * buffer.c (Fother_buffer): Consider buffers as invisible when
6891 they are displayed in a window on an invisible frame.
6892
6893 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
6894 get-largest-window always return nil.
6895
6896 2000-09-04 Gerd Moellmann <gerd@gnu.org>
6897
6898 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
6899 variable; recognize Emacs 19 elc files.
6900
6901 2000-09-04 Miles Bader <miles@gnu.org>
6902
6903 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
6904 before initially popping up the menu, so the menu doesn't flash
6905 when the face settings are significantly different from the defaults.
6906
6907 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
6908
6909 * regex.c (WIDE_CHAR_SUPPORT): New macro.
6910 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
6911 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
6912 (BIT_UNIBYTE): Remove.
6913 (re_match_2_internal): Delete corresponding code and streamline the
6914 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
6915 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
6916 (re_wctype_t): New type.
6917 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
6918 (regex_compile): Use them and fix handling of overly long char classes.
6919
6920 2000-09-03 Andrew Innes <andrewi@gnu.org>
6921
6922 * makefile.w32-in: Change to DOS line endings.
6923
6924 * s/ms-w32.h (ORDINARY_LINK): New define.
6925
6926 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
6927 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
6928
6929 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
6930 (distclean): Delete them here instead.
6931
6932 * w32proc.c (compare_env): Convert to uppercase for comparison,
6933 not lowercase, to match how the native Windows shell works.
6934
6935 2000-09-03 Jason Rumney <jasonr@gnu.org>
6936
6937 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
6938 CVS changes the line-ends when checking in/out on DOS/Windows.
6939
6940 * makefile.nt (emacs): Do not change directory to run temacs, as
6941 the load-path is set relative to current directory.
6942
6943 2000-09-03 Miles Bader <miles@gnu.org>
6944
6945 * xterm.c (x_alloc_lighter_color_for_widget): New function.
6946
6947 2000-09-02 Gerd Moellmann <gerd@gnu.org>
6948
6949 * xdisp.c (redisplay_mode_lines): New function.
6950 (display_mode_lines): Return number of mode lines displayed.
6951 (echo_area_display): Use redisplay_mode_lines to draw garbaged
6952 mode lines. Don't temporarily bind redisplay-dont-pause to t.
6953
6954 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
6955 string.h and strings.h.
6956 (index) [HAVE_INDEX]: Add prototype.
6957
6958 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
6959 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
6960
6961 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
6962 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
6963
6964 2000-09-01 Gerd Moellmann <gerd@gnu.org>
6965
6966 * lread.c (read1): Accept `?' as symbol constituent, for
6967 compatiblity with XEmacs.
6968
6969 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
6970
6971 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
6972 (struct re_pattern_buffer): Remove newline_anchor.
6973 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
6974 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
6975 (re_max_failures, fail_stack): Use size_t rather than unsigned.
6976 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
6977 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
6978 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
6979 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
6980 Get rid of references to newline_anchor.
6981 (regcomp): Allocate and precompute a fastmap.
6982
6983 2000-08-31 Gerd Moellmann <gerd@gnu.org>
6984
6985 * lread.c (openp): GCPRO local variable `filename'.
6986
6987 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
6988
6989 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
6990
6991 * regex.c: Merge some changes from GNU libc. Add prototypes.
6992 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
6993 Use memcmp and memcpy instead of bcopy and bcmp.
6994 (init_syntax_once): Use ISALNUM.
6995 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
6996 (REG_UNSET_VALUE): Remove. Use NULL instead.
6997 (REG_UNSET, re_match_2_internal): Use NULL.
6998 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
6999 New macros.
7000 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
7001 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
7002 (regex_compile): In handle_interval, return an error rather than try to
7003 unfetch the interval if we can't find the closing brace.
7004 Obey the RE_NO_GNU_OPS syntax bit.
7005 (TOLOWER): New macro.
7006 (regcomp): Use it.
7007 (regexec): Allocate regs.start and regs.end as one block.
7008
7009 2000-08-30 Gerd Moellmann <gerd@gnu.org>
7010
7011 * xdisp.c (echo_area_display): Check display_completed instead
7012 of calling detect_input_pending.
7013
7014 * dispnew.c (update_frame): Only set display_completed here; move
7015 the update_begin and update_end calls here from update_frame_1.
7016 (update_frame_1): Don't set display_completed here, don't call
7017 update_begin/update_end.
7018
7019 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
7020 instead of store_frame_param.
7021
7022 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7023
7024 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
7025 desired window matrix hasn't been displayed, use the current row
7026 instead. Make sure that only those frame rows are updated for
7027 which there exists a corresponding enabled desired row.
7028
7029 2000-08-29 Miles Bader <miles@gnu.org>
7030
7031 * xfaces.c (default_face_vector): New function.
7032 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
7033
7034 2000-08-29 Gerd Moellmann <gerd@gnu.org>
7035
7036 * lread.c (openp): Prevent temporary string passed to
7037 Ffile_readable_p from being garbage collected.
7038
7039 2000-08-28 Dave Love <fx@gnu.org>
7040
7041 * keymap.c (store_in_keymap): Add `static' to declaration.
7042
7043 2000-08-28 Gerd Moellmann <gerd@gnu.org>
7044
7045 * emacs.c, callint.c, doc.c, editfns.c
7046 (toplevel) [HAVE_STRING_H]: Include string.h.
7047 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
7048 (index): Remove prototypes which might conflict with non-standard
7049 definitions of index/strchr.
7050
7051 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
7052 (rindex): Define only if !HAVE_RINDEX.
7053
7054 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
7055
7056 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
7057
7058 2000-08-28 Miles Bader <miles@gnu.org>
7059
7060 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
7061 made inconsistent by a font-related attribute in FROM.
7062 (merge_face_inheritance): Add function comment.
7063
7064 2000-08-28 Kenichi Handa <handa@etl.go.jp>
7065
7066 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
7067 the 4th arg (PREV_EVENT) Qt to suppress input method.
7068
7069 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
7070
7071 * regex.c: Indent cpp directives and remove parens after `defined'.
7072 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
7073 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
7074 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
7075 (re_compile_pattern): Use size_t for length.
7076 (init_syntax_once): Move to a better place.
7077 * regex.h: Merge changes from GNU libc. Indent cpp directives.
7078 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
7079
7080 * syntax.c (back_comment): Detect cases where a comment-starter is
7081 actually inside another comment as in: /* a // b */ c // d \n.
7082 Make it clear that `comstart_pos' is unused for nested comments.
7083
7084 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
7085 (KEYMAPP): New macro.
7086 (Fkeymap_parent, Fset_keymap_parent): Use it.
7087 (fix_submap_inheritance): Mark it static.
7088 (define_as_prefix, describe_buffer_bindings, describe_command)
7089 (describe_translation, describe_map): Complete prototypes.
7090
7091 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
7092
7093 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
7094 to better match the key-lookup behavior.
7095
7096 2000-08-27 Gerd Moellmann <gerd@gnu.org>
7097
7098 * xfaces.c (lface_fully_specified_p): Handle :inherit.
7099 (Finternal_set_lisp_face_attribute): Fix typo in error message.
7100
7101 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
7102
7103 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
7104 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
7105 (xterm.o): Depend on coding.h
7106
7107 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7108
7109 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
7110 the corresponding '#endif'.
7111
7112 2000-08-26 Miles Bader <miles@gnu.org>
7113
7114 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
7115 * xfaces.c (QCinherit): New variable.
7116 (syms_of_xfaces): Initialize it.
7117 (LFACE_INHERIT): New macro.
7118 (Finternal_get_lisp_face_attribute)
7119 (merge_face_vector_with_property)
7120 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
7121 (check_lface_attrs): Allow new types of face height. Check
7122 inherit attribute.
7123 (CYCLE_CHECK): New macro.
7124 (merge_face_inheritance): New function.
7125 (merge_face_vectors): Merge inherited faces too. Add F and
7126 CYCLE_CHECK arguments.
7127 (merge_face_vector_with_property, Finternal_merge_in_global_face)
7128 (lookup_named_face, lookup_derived_face, realize_named_face)
7129 (face_at_string_position, face_at_buffer_position): Supply
7130 new F and CYCLE_CHECK arguments to merge_face_vectors.
7131 (merge_face_heights): New function.
7132 (merge_face_vectors, merge_face_vector_with_property)
7133 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
7134 handle relative face heights.
7135 (lface_same_font_attributes_p): Compare heights using EQ.
7136
7137 2000-08-26 Kenichi Handa <handa@etl.go.jp>
7138
7139 * charset.c (char_to_string): Check the character validity.
7140 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
7141
7142 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
7143
7144 * regex.c (PUSH_FAILURE_COUNT): New macro.
7145 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
7146 Handle popping of a register's or a counter's data.
7147 (POP_FAILURE_POINT): Use the new name.
7148 (re_match_2_internal): Push counter data on the stack for succeed_n,
7149 jump_n and set_number_at and remove misleading dead code in succeed_n.
7150
7151 2000-08-25 Gerd Moellmann <gerd@gnu.org>
7152
7153 * xdisp.c (redisplay_internal): If considering all windows on all
7154 frames, update the display for each frame as soon as possible,
7155 instead of first building all desired matrices for all frames, and
7156 then updating them all.
7157 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
7158
7159 2000-08-24 Gerd Moellmann <gerd@gnu.org>
7160
7161 * bytecode.c (mark_byte_stack): Add a comment.
7162
7163 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
7164 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
7165 a graphical frame.
7166
7167 2000-08-24 Kenichi Handa <handa@etl.go.jp>
7168
7169 * minibuf.c (do_completion): Always use compare-string, not
7170 string-equal because the latter doesn't pay attention to
7171 multibyteness of strings.
7172
7173 * process.c (create_process): Don't setup raw-text coding here.
7174 (Fopen_network_stream): Don't set coding->src_multibyte and
7175 coding->dst_multibyte here.
7176 (read_process_output): For process filter, return unibyte string
7177 if default-enable-multibyte-characters is nil.
7178 (send_process): If OBJECT is multibyte text, be sure to encoded it
7179 by the specified coding system for the process. Otherwise, setup
7180 raw-text coding.
7181 (init_process): Don't initialize default-process-coding-system here.
7182
7183 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
7184
7185 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
7186 <scroll-down-aggressively>: Likewise.
7187
7188 2000-08-23 Kenichi Handa <handa@etl.go.jp>
7189
7190 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
7191 zero. Set coding->produced_char correctly.
7192
7193 2000-08-22 Andrew Innes <andrewi@gnu.org>
7194
7195 * makefile.w32-in: New file.
7196
7197 * unexw32.c (unexec): Ignore old_name, and use the actual location
7198 of the current executable instead. Base new_name on this.
7199
7200 * w32proc.c (create_child): Remove reference to security
7201 descriptor, which isn't needed and doesn't compile with mingw32.
7202
7203 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7204 up dllimport attributes.
7205 (x_update_window_end): Update prototype.
7206
7207 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
7208 extern, which screws up dllimport attributes.
7209
7210 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7211 up dllimport attributes.
7212
7213 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
7214 screws up dllimport attributes.
7215
7216 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7217 up dllimport attributes.
7218 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
7219 screws up dllimport attributes.
7220
7221 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7222 up dllimport attributes.
7223
7224 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
7225 screws up dllimport attributes.
7226
7227 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
7228 screws up dllimport attributes.
7229
7230 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7231 up dllimport attributes.
7232
7233 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
7234 unnecessary extern, which screws up dllimport attributes.
7235 (main): Ditto.
7236
7237 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7238 up dllimport attributes.
7239
7240 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
7241 unnecessary extern, which screws up dllimport attributes.
7242
7243 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7244 screws up dllimport attributes.
7245
7246 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7247 up dllimport attributes.
7248
7249 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7250
7251 * w32bdf.c (search_file_line):
7252 (set_bdf_font_info):
7253 (seek_char):
7254 (w32_get_bdf_glyph):
7255 (w32_BDF_to_x_font): Fix compile warnings.
7256
7257 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7258
7259 * w32select.c: Include keyboard.h before frame.h.
7260
7261 * w32fns.c (max): Define macro.
7262 (JOHAB_CHARSET): Define if not known.
7263 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7264 (Fx_show_tip): Synch with X version.
7265
7266 * w32xfns.c: Include keyboard.h before frame.h.
7267
7268 * w32fns.c: Include keyboard.h before frame.h.
7269
7270 * w32term.c: Include keyboard.h before frame.h.
7271
7272 * fontset.c: Include keyboard.h before frame.h.
7273
7274 * w32inevt.c: Include keyboard.h before frame.h.
7275 (MOUSE_MOVED): Define if not known.
7276
7277 * minibuf.c: Include keyboard.h before frame.h.
7278
7279 * keyboard.c: Include keyboard.h before frame.h.
7280
7281 * indent.c: Include keyboard.h before frame.h.
7282
7283 * dispnew.c: Include keyboard.h before frame.h.
7284
7285 * buffer.c: Include keyboard.h before frame.h.
7286
7287 * alloc.c: Include keyboard.h before frame.h.
7288
7289 * print.c: Include keyboard.h before frame.h.
7290
7291 * process.c: Include keyboard.h before frame.h.
7292
7293 * scroll.c: Include keyboard.h before frame.h.
7294
7295 * sysdep.c: Include keyboard.h before frame.h.
7296
7297 * term.c: Include keyboard.h before frame.h.
7298
7299 * window.c: Include keyboard.h before frame.h.
7300
7301 * xdisp.c: Include keyboard.h before frame.h.
7302 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7303
7304 * frame.c: Include keyboard.h before frame.h.
7305
7306 * w32heap.h: Undefine min, max.
7307
7308 * w32gui.h: Undefine min, max.
7309
7310 * unexw32.c: Change PUCHAR to PCHAR.
7311 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7312 (relocate_offset):
7313 (get_section_info):
7314 (copy_executable_and_dump_data): Remove unnecessary static defs.
7315 (copy_executable_and_dump_data): Fix compile warnings.
7316
7317 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7318
7319 * w32console.c (min): Define macro.
7320 (clear_frame, write_glyphs): Fix compile warning.
7321
7322 * w32proc.c (compare_env):
7323 (find_child_console): Fix compile warning.
7324
7325 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7326 sys_errlist instead of _sys_errlist.
7327 (get_emacs_configuration_options): New function.
7328
7329 * s/ms-w32.h (sys_nerr): Provide default definition.
7330 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7331 name with _ prepended.
7332 (NSIG): Define if not known.
7333 (get_emacs_configuration): Provide extern declaration.
7334 (get_emacs_configuration_options): Provide extern declaration.
7335 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7336
7337 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7338 (map_w32_filename):
7339 (read_unc_volume): Fix compile warning.
7340
7341 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7342 definitions from being used.
7343
7344 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7345
7346 * w32.c (unc_volume_file_attributes):
7347 (open_unc_volume): Make arg const.
7348
7349 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7350 (read_input_waiting): Remove excess parameter.
7351
7352 * w32.c (init_environment): Call _access.
7353 (check_windows_init_file): Call _close.
7354 (init_user_info): Call _putenv.
7355 (init_environment): Call _putenv and _strdup.
7356 (init_ntproc): Reset volume info cache on startup.
7357
7358 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7359 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7360 cannot override the CRT malloc.
7361
7362 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7363 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7364
7365 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7366 unless we are linking with a static CRT.
7367 (RVA_TO_PTR): Cast result to unsigned char*.
7368
7369 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7370 (add_volume_info): Use xstrdup.
7371
7372 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7373
7374 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7375 (do_completion, Fminibuffer_complete_word): Use it.
7376 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7377 var so it can take non-boolean values.
7378
7379 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7380
7381 * editfns.c (find_field): Formatting changes.
7382 (toplevel): Some old-style function forward declarations
7383 changed to prototypes, some new protypes added, some functions
7384 made static.
7385
7386 * lisp.h (set_time_zone_rule): Add prototype.
7387 (use_dialog_box): External declaration.
7388
7389 * keyboard.c (gen_help_event): Add parameter SIZE.
7390 (kbd_buffer_events_waiting): Slightly rewritten.
7391 (clear_event): New function.
7392 (kbd_buffer_get_event): Use it, and clear the input_events of
7393 HELP_EVENTs.
7394 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7395 don't fill the newly created array with nils.
7396 (toplevel): Convert some old-style function forward declarations
7397 to prototypes.
7398
7399 * keyboard.h (gen_help_event): Change prototype.
7400
7401 * xterm.c (XTread_socket): Change calls to gen_help_event.
7402
7403 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7404
7405 * eval.c (Fmacroexpand): Doc fix.
7406
7407 2000-08-20 Jason Rumney <jasonr@gnu.org>
7408
7409 * w32term.h (x_display_info_for_display): Remove as this function
7410 does not exist on W32.
7411
7412 * w32term.c (help_echo_window): New variable.
7413 (syms_of_w32term): staticpro it.
7414 (note_mode_line_highlight): Set it.
7415 (XTextExtents16): Removed as there is no equivalent on W32.
7416 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7417 the X way of doing this will not work for W32.
7418 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7419 (x_draw_image_foreground): Avoid drawing outside of the clip area
7420 when image doesn't have a mask.
7421 (note_mouse_highlight): Process overlays in the right order of
7422 priority. Set help_echo_window.
7423 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7424 because that's more visible for large images.
7425
7426 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7427 name to single_keymap_panes.
7428 (w32_menu_show): Set wv->title when dealing with titles.
7429 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7430
7431 2000-08-21 Miles Bader <miles@gnu.org>
7432
7433 * minibuf.c (do_completion): Try again if we rewrite the input
7434 string, but no completion was done, so that any completion message
7435 will be correct.
7436
7437 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7438
7439 * xfaces.c (lface_equal_p): Compare strings differently.
7440 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7441 (realize_tty_face): Use them.
7442 (syms_of_xfaces): Initialize new variables.
7443 (map_tty_color): New function, extracted from realize_tty_face.
7444 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7445 foreground or background color, store the new color name in the
7446 realized face; previous code trying to do this had no effect.
7447 (realize_tty_face): Use map_tty_color.
7448 (Fclear_face_cache): Set face_change_count and ensure thorough
7449 redisplay.
7450
7451 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7452
7453 * undo.c (record_first_change, record_marker_adjustment): Don't
7454 use XBUFFER on last_undo_buffer which might not be a buffer.
7455
7456 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7457
7458 * coding.c (decode_coding_string): Set members consumed,
7459 consumed_char, produced, produced_char of *coding correctly. If
7460 decode_coding doesn't consume any byte, don't try anymore.
7461 (encode_coding_string): Likewise.
7462
7463 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7464
7465 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7466 conditional have void type, for Standard C compilers.
7467
7468 * xdisp.c (redisplay_internal): Compare windows for equality with
7469 EQ, instead of applying XWINDOW to something that might not
7470 be a window.
7471
7472 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7473
7474 * fontset.c (Finternal_char_font): Search only the selected frame
7475 for a window of the current buffer.
7476
7477 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7478
7479 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7480 Lisp_Objects.
7481
7482 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7483 second half of a HELP_EVENT is found at the start of kbd_buffer.
7484
7485 2000-08-18 Miles Bader <miles@gnu.org>
7486
7487 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7488
7489 * editfns.c (save_restriction_save): Rewrite to use markers.
7490 (save_restriction_restore): Rewrite to understand new form of data
7491 saved by save_restriction_save.
7492 (Fsave_restriction): Remove cautionary note in doc-string.
7493
7494 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7495
7496 * fileio.c (build_annotations): Add a comment explaining the
7497 return value of format-annotate-function. Replace a spurious call
7498 to Flength with a CONSP test. Call format-annotate-function with
7499 a fifth arg specifying how many times the function is been called
7500 in a row, to let it choose temporary buffers appropriately.
7501
7502 2000-08-17 Dave Love <fx@gnu.org>
7503
7504 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7505 declare make_temp_name twice.
7506
7507 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7508 (unreadpure): Give it an arg.
7509
7510 * unexalpha.c: Prototype fatal_unexec, mark_x,
7511 update_dynamic_symbols. Declare unexec as void.
7512
7513 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7514 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7515
7516 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7517 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7518
7519 * alloca.c: Use #error.
7520 [POINTER_TYPE]: Use it.
7521
7522 * eval.c (Fdefvar): Doc fix.
7523
7524 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7525 INITIALIZE_INTERVAL.
7526
7527 * buffer.h: Avoid DECLARE_INTERVALS.
7528
7529 * config.in: Add size_t.
7530
7531 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7532
7533 * w16select.c (set_clipboard_data): If there's not enough memory
7534 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7535 expects. In case of other failures, return 3.
7536 (system_error_msg): New error message.
7537 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7538 system_error_msg.
7539
7540 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7541
7542 * term.c (write_glyphs): Also turn off inverse video after turning
7543 off other appearances in case TS_exit_attribute_mode is not equal
7544 to TS_end_standout_mode.
7545 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7546 with the same face.
7547 (turn_off_face): Reset standout_mode only if
7548 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7549 is equal to TS_end_standout_mode.
7550
7551 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7552
7553 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7554 sequence at the end of the source block.
7555
7556 * ccl.c (Fccl_program_p): Docstring modified.
7557 (Fccl_execute): Likewise.
7558 (Fccl_execute_on_string): Likewise.
7559
7560 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7561
7562 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7563
7564 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7565
7566 The following changes are mainly to fix bugs of
7567 encode/decode-coding-string failing if encoding/decoding return
7568 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7569 variable conversion_buffer.
7570
7571 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7572 decrement dst_end to avoid buffer overflow in the later call of
7573 string_as_multibyte
7574
7575 * coding.h (conversion_buffer_size, conversion_buffer)
7576 (get_conversion_buffer): Extern deleted.
7577
7578 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7579 (conversion_buffer, conversion_buffer_size): Variables deleted.
7580 (get_conversion_buffer): Function deleted.
7581 (struct conversion_buffer): New structure.
7582 (MAX_ALLOCA): New macro.
7583 (allocate_conversion_buffer): New macro.
7584 (extend_conversion_buffer, free_conversion_buffer): New functions.
7585 (ccl_coding_driver): Set coding->result.
7586 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7587 this is the last block of source.
7588 (encode_coding): Likewise. Handle the source block as the last
7589 one only when the whole source text is consumed.
7590 (decode_coding_string): Handle the case that the output buffer is
7591 too small to decode the whole source text. Use
7592 allocate_conversion_buffer, extend_conversion_buffer and
7593 free_conversion_buffer, not get_conversion_buffer.
7594 (encode_coding_string): Likewise.
7595 (init_coding): Function deleted.
7596 (init_coding_once): Delete code to initialize conversion_buffer_size.
7597
7598 * emacs.c (main): Don't call init_coding.
7599
7600 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7601
7602 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7603 (insert_glyphs): Likewise.
7604
7605 * w32console.c (write_glyphs): Use a locally declared
7606 conversion_buffer.
7607
7608 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7609
7610 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7611 member of display_info is NULL.
7612
7613 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7614
7615 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7616
7617 * term.c (turn_off_face): Reset standout_mode when resetting
7618 appearances with capability `me'.
7619 (write_glyphs): Switch on inverse video before each face change.
7620
7621 2000-08-14 Dave Love <fx@gnu.org>
7622
7623 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7624 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7625 (lisp_free): Declare and make static.
7626
7627 * window.c: Fix embedded comment.
7628 (syms_of_window): Fix doc string.
7629
7630 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7631
7632 * keymap.c (push_key_description): If C without modifiers is < 32,
7633 make sure to print `C-' before `M-', like in the manual.
7634
7635 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7636
7637 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7638 since they aren't relocated anymore.
7639 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7640
7641 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7642 partially visible line which is smaller than the window's height.
7643
7644 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7645
7646 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7647 the multibyte form of eight-bit-control characters.
7648 (Fccl_execute_on_string): Initialize ccl->multibyte.
7649
7650 * ccl.h (struct ccl_program): New member multibyte.
7651
7652 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7653
7654 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7655
7656 * regex.c (regex_compile) <normal_char>: Pay attention to
7657 multibyteness.
7658 (analyse_first) <exactn>: Setup fastmap correctly for
7659 eight-bit-control characters.
7660
7661 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7662
7663 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7664
7665 * keyboard.c (make_lispy_event): Handle the new event type
7666 multibyte_char_keystroke.
7667
7668 * xterm.c: Include coding.h.
7669 (XTread_socket): Work around a bug of XmbLookupString. If the
7670 input is from XIM, decode it according to the current locale. In
7671 that case, generate multibyte_char_keystroke events.
7672
7673 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7674
7675 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7676 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7677
7678 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7679
7680 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7681 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7682 (move_it_in_display_line_to): Record iterator's ascent and descent
7683 before producing glyphs, and restore them when we know the glyph
7684 doesn't fit on the line.
7685 (move_it_to): Restructured so that it's easier to debug. If
7686 moving to a vpos, and not moving to an x or character position,
7687 stop as soon as the specified vpos is reached; don't move further
7688 into that line because that might change the computed line height.
7689 (try_cursor_movement): New function, extracted from the cursor
7690 movement branch of redisplay_window. If ending on a partially
7691 visible line, don't try to scroll if the cursor line is taller
7692 than the window.
7693 (redisplay_window): Use try_cursor_movement.
7694
7695 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7696 because that function doesn't cope with variable-height lines.
7697
7698 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7699 box cursor because that's better visible for large images.
7700
7701 2000-08-10 Miles Bader <miles@gnu.org>
7702
7703 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7704
7705 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7706
7707 * xdisp.c (Vmessages_buffer_name): New variable.
7708 (message_dolog): Use it.
7709 (syms_of_xdisp): Initialize it.
7710
7711 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7712
7713 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7714 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7715 redundant now that keyboard.h is included.
7716
7717 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7718
7719 * keyboard.c (kbd_buffer_events_waiting): New function.
7720
7721 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7722
7723 * msdos.c: Include keyboard.h.
7724 (XMenuActivate): Empty no_event events from the event buffer. If
7725 no events are left after that, call clear_input_pending.
7726 (mouse_clear_clicks): New function, code moved from mouse_init.
7727 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7728 mouse driver to ``forget'' any past clicks.
7729
7730 * Makefile.in (msdos.o): Depend on keyboard.h.
7731
7732 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7733
7734 * lisp.h (input_pending): External declaration.
7735
7736 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7737
7738 * xdisp.c (echo_area_display): Display thoroughly if input is
7739 pending. Bind redisplay-dont-pause to t during the redisplay.
7740 in case input is pending.
7741
7742 * dispnew.c (Qredisplay_dont_pause): New variable.
7743 (syms_of_display): Initialize and staticpro it.
7744 (update_frame_1): Don't interrupt the display for pending input if
7745 redisplay_dont_pause is set.
7746
7747 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
7748
7749 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7750
7751 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
7752
7753 * callproc.c (Fcall_process): Terminate the unwind-protect around
7754 the post-read-conversion of coding system.
7755
7756 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
7757 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
7758 * buffer.h (overlays_at): Update prototype.
7759 * xdisp.c (next_overlay_change): Update call to overlays_at.
7760 * xfaces.c (face_at_buffer_position): Likewise.
7761 * textprop.c (Fget_char_property): Likewise.
7762 * xterm.c (note_mouse_highlight): Likewise.
7763
7764 * minibuf.c (do_completion): Don't consider a simple change of
7765 case as `completion'.
7766
7767 2000-08-08 Ken Raeburn <raeburn@gnu.org>
7768
7769 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
7770 * undo.c (record_delete): Make sure last_point_position_buffer is
7771 a buffer before comparing pointers.
7772
7773 * coding.h (decode_coding_string): Declare.
7774
7775 * intervals.h (Fprevious_single_char_property_change): Declare.
7776
7777 * textprop.c (Fprevious_single_char_property_change): Don't do
7778 arithmetic directly on lisp objects.
7779
7780 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
7781
7782 * keyboard.h (menu_item_eval_property): Declare.
7783
7784 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
7785 reuse as buffer name, instead of recreating (and discarding) every
7786 time a message is logged.
7787 (with_echo_area_buffer): Make callback arg A2 a lisp object.
7788 (current_message_1, truncate_message_1, set_message_1)
7789 (display_echo_area_1, resize_mini_window_1): Signatures changed.
7790 (current_message, truncate_echo_area, display_echo_area)
7791 (resize_echo_area_axactly): Changed calls.
7792
7793 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
7794 Lisp object.
7795 (Ffind_coding_systems_region_internal): First argument to Fappend
7796 must be an integer, not a Lisp object.
7797
7798 2000-08-08 Kenichi Handa <handa@etl.go.jp>
7799
7800 * charset.c (Fchar_width): Doc fix.
7801
7802 2000-08-08 Gerd Moellmann <gerd@gnu.org>
7803
7804 * charset.c (Fstring_width): Doc fix.
7805
7806 2000-08-07 Gerd Moellmann <gerd@gnu.org>
7807
7808 * xdisp.c (start_display): When starting display on a continuation
7809 line, clear ascent and descent members of the iterator structure;
7810 the height of the continued line does not affect the height of the
7811 continuation line.
7812 (make_cursor_line_fully_visible): Do nothing if cursor is on a
7813 line taller than the window.
7814 (redisplay_window) <forced window start>: Handle case that the
7815 middle of the window is not found in any row.
7816 (dump_glyph_row): Show more information.
7817 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
7818 first text line in a glyph matrix.
7819
7820 * xterm.c (x_draw_image_foreground): Avoid drawing outside
7821 of the clip area when image doesn't have a mask.
7822
7823 * fns.c (sweep_weak_table): Fix survival conditions for
7824 key-or-value and key-and-value weakness.
7825
7826 * .gdbinit (xhashtable): New command.
7827
7828 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
7829 tables out of the list of all weak hash tables.
7830
7831 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
7832 a new buffer is created, make sure echo_area_buffer[] references
7833 the new buffer.
7834
7835 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
7836
7837 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
7838 the doc string.
7839
7840 2000-08-07 Kenichi Handa <handa@etl.go.jp>
7841
7842 * syntax.c (skip_chars): Fix previous change. Make the handling
7843 of unibyte string consistent with that of regex search.
7844
7845 2000-08-05 Gerd Moellmann <gerd@gnu.org>
7846
7847 * xmenu.c (popup_get_selection): Use xfree instead of free.
7848
7849 * fileio.c (Finsert_file_contents): Use xfree instead of free.
7850
7851 * editfns.c (Ftranspose_regions): Use xfree instead of free.
7852
7853 * callproc.c (child_setup): Use xfree instead of free.
7854
7855 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
7856 instead of malloc.
7857 (run_mac_command, closedir): Use `xfree' instead of `free'.
7858
7859 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
7860
7861 * eval.c (error): Use xfree instead of free.
7862
7863 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
7864
7865 * fns.c: Replace `illegal' with `invalid'.
7866 (Fmake_hash_table, make_hash_table): Allow table size of 0.
7867
7868 2000-08-05 Kenichi Handa <handa@etl.go.jp>
7869
7870 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
7871 conversion.
7872
7873 2000-08-04 Noah Friedman <friedman@splode.com>
7874
7875 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
7876 docstring.
7877
7878 2000-08-04 Gerd Moellmann <gerd@gnu.org>
7879
7880 * syntax.c (skip_chars): Fix typo in error message.
7881
7882 2000-08-04 Andreas Schwab <schwab@suse.de>
7883
7884 * m/ia64.h: Moved from s/ia64.h.
7885
7886 2000-08-04 Kenichi Handa <handa@etl.go.jp>
7887
7888 * process.c (read_process_output): Big simplification. Handle
7889 composition and post-read-conversion of coding system correctly.
7890 (send_process): Handle composition correctly.
7891
7892 * callproc.c (Fcall_process): Handle post-read-conversion of
7893 coding system if any.
7894
7895 * coding.c (decode_coding_iso2022): More strict check for handling
7896 single shifting.
7897 (coding_restore_composition): Pay attention to the case that
7898 cmp_data is not set properly (because of invalid code in the
7899 source text).
7900 (run_pre_post_conversion_on_str): Include text properties in the
7901 resulting string.
7902 (decode_coding_string): Set members of coding correctly.
7903
7904 2000-08-03 Gerd Moellmann <gerd@gnu.org>
7905
7906 * s/ia64.h: New file.
7907
7908 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
7909 Use NULL instead of 0 at the end of variable argument list of
7910 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
7911 sizeof (int) < sizeof (void *).
7912
7913 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
7914 of variable argument lists of XtVaGetValues and XtVaSetValues.
7915
7916 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
7917 variable argument lists of XtVaGetValues and XtVaSetValues.
7918
7919 2000-08-02 Gerd Moellmann <gerd@gnu.org>
7920
7921 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
7922 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
7923
7924 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
7925 prototype.
7926
7927 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
7928 in call to Fsingle_key_description.
7929
7930 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
7931 Callers changed.
7932
7933 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
7934
7935 * window.c (display_buffer_reuse_frames): New variable.
7936 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
7937 frames displaying BUFFER.
7938 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
7939
7940 2000-08-01 Miles Bader <miles@gnu.org>
7941
7942 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
7943 when to constrain NEW_POS (they were pretty screwed up before).
7944
7945 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
7946
7947 * msdos.c (run_msdos_command): Save and restore the master
7948 environment, for the case that child_setup signals an error.
7949 When mirroring slashes in DOS shell commands, don't fail when
7950 argv[2] has embedded blanks.
7951 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
7952 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
7953 (dos_ttraw): Call mouse_setup_buttons.
7954
7955 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
7956 using alloca; free it after run_msdos_command returns.
7957
7958 2000-07-27 Dave Love <fx@gnu.org>
7959
7960 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
7961 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
7962
7963 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
7964
7965 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
7966
7967 * editfns.c (lisp_time_argument): Fix last change.
7968
7969 2000-07-27 Gerd Moellmann <gerd@gnu.org>
7970
7971 * fns.c (Fdelete): Make it work on vectors and strings in addition
7972 to lists.
7973
7974 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
7975 (syms_of_fns): Initialize new variables.
7976 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
7977 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
7978 weakness, with t meaning the same as `key-and-value'.
7979
7980 2000-07-27 Kenichi Handa <handa@etl.go.jp>
7981
7982 * coding.h (struct coding_system): Member safe_charset deleted.
7983
7984 * coding.c (Qsafe_charsets): This variable deleted.
7985 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
7986 New variables.
7987 (coding_safe_chars): New function.
7988 (CODING_SAFE_CHAR_P): New macro.
7989 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
7990 checking safe_charsets member of the coding system. Caller changed.
7991 (detect_coding_iso2022): New local variable safe_chars.
7992 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
7993 safe_charsets member of the coding system.
7994 (decode_coding_iso2022): New local variable safe_chars.
7995 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
7996 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
7997 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
7998 (ENCODE_UNSAFE_CHARACTER): New macro.
7999 (encode_coding_iso2022): New local variable safe_chars. Check
8000 unsafe chars.
8001 (setup_coding_system): Delete the code to initialize
8002 coding->safe_charses
8003 (intersection, find_safe_codings): New functions.
8004 (Ffind_coding_systems_region_internal): New function.
8005 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
8006 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
8007 variable and initialize it.
8008
8009 * fns.c (char_table_ref_and_index): New function.
8010
8011 * lisp.h (char_table_ref_and_index): Add prototype.
8012
8013 2000-07-26 Sam Steingold <sds@gnu.org>
8014
8015 * editfns.c (lisp_time_argument): Added third argument `usec'.
8016 (Ffloat_time): New built-in Lisp function.
8017
8018 2000-07-26 Gerd Moellmann <gerd@gnu.org>
8019
8020 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
8021 for the character code.
8022
8023 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
8024 GNU/Linux.
8025
8026 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
8027 if called for a popup menu.
8028 (xmenu_show): Store help string in widget values.
8029
8030 2000-07-26 Dave Love <fx@gnu.org>
8031
8032 * syswait.h: Move some definitions.
8033 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
8034 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
8035 perspicuous definitions.
8036 (WTERMSIG): Fix bit pattern used.
8037
8038 2000-07-26 Kenichi Handa <handa@etl.go.jp>
8039
8040 * print.c (print_object): If vector printing is truncated, print
8041 "..." to indicate it as well as the case of list printing.
8042
8043 2000-07-25 Gerd Moellmann <gerd@gnu.org>
8044
8045 * xdisp.c (next_element_from_display_vector): Improve comments.
8046
8047 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
8048 for the character code, and the rest for the face id as in 20.x.
8049 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
8050
8051 * window.c (window_display_table): Cleaned up.
8052
8053 * syntax.c (Fforward_word): Add last arg nil in call of
8054 Fconstrain_to_field.
8055
8056 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
8057
8058 * fileio.c (Frename_file) [DOS_NT]: If the file names are
8059 identical but for the letter-case, don't call
8060 barf_or_query_if_file_exists.
8061
8062 2000-07-25 Miles Bader <miles@gnu.org>
8063
8064 * editfns.c (find_field): Honor special `boundary' fields.
8065 (Qboundary): New variables.
8066 (syms_of_editfns): Initialize Qboundary.
8067 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
8068 Use scan_buffer instead of find_before_next_newline, because it
8069 allows us to detect the boundary case where there's a newline at
8070 the search limit.
8071 * lisp.h (Fconstrain_to_field): Update external declaration.
8072
8073 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8074
8075 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
8076 if that is nil.
8077
8078 2000-07-24 Dave Love <fx@gnu.org>
8079
8080 * s/sunos4-0.h, s/sol2.h:
8081 (LIBS_TERMCAP): Move from m/sparc.h.
8082
8083 * m/sparc.h (TERMINFO): Moved to system files (probably only
8084 relevant for sunos4 judging by its vintage).
8085 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
8086 __arch64__.
8087
8088 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
8089
8090 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
8091 name to single_keymap_panes.
8092
8093 2000-07-24 Andreas Schwab <schwab@suse.de>
8094
8095 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
8096
8097 2000-07-24 Gerd Moellmann <gerd@gnu.org>
8098
8099 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
8100 parameters instead of using int parameters. Expect FN to accept
8101 EMACS_INT parameters.
8102 (display_echo_area, resize_echo_area_axactly, current_message)
8103 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
8104 with new argument list.
8105 (resize_mini_window_1): New callback function.
8106 (current_message_1, truncate_message_1, set_message_1): Change
8107 parameter lists to the new format expected by with_echo_area_buffer.
8108
8109 2000-07-24 Kenichi Handa <handa@etl.go.jp>
8110
8111 * fontset.c (fontset_ref): Remove INLINE declaration.
8112 (fontset_ref_via_base): Likewise.
8113 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
8114 to downcase.
8115
8116 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
8117
8118 * msdos.c (IT_note_mouse_highlight): Process overlays in the
8119 correct order of priority. If help echo was found in an overlay,
8120 use that overlay as the object in which the help echo was found.
8121
8122 2000-07-22 Miles Bader <miles@gnu.org>
8123
8124 * textprop.c (Fprevious_single_char_property_change): The initial
8125 property value should be from the position preceding POSITION, not
8126 following it.
8127
8128 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
8129
8130 * coding.c (syms_of_coding): Doc fix for
8131 inhibit-iso-escape-detection.
8132
8133 2000-07-21 Gerd Moellmann <gerd@gnu.org>
8134
8135 * xterm.c (note_mouse_highlight): Process overlays in the right
8136 order of priority.
8137
8138 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
8139
8140 * xterm.c (note_mouse_highlight): If help-echo was found in an
8141 overlay, use that overlay as the object in which the help was found.
8142
8143 * window.c (foreach_window_1): Fix typo reversing an if-condition.
8144
8145 * window.c (foreach_window): Instead of a fake variable argument
8146 list, take one USER_DATA argument.
8147 (foreach_window_1): Likewise, and call callback functions with two
8148 args, the window and USER_DATA.
8149 (struct check_window_data): New struct.
8150 (check_window_containing): Use it.
8151 (window_from_coordinates): Set up a struct check_window_data for
8152 foreach_window.
8153 (add_window_to_list, freeze_window_start): Change parameters
8154 according to new calling convention.
8155
8156 * window.h (foreach_window): Change prototype.
8157
8158 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
8159
8160 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
8161
8162 * xmenu.c (menu_help_callback): Call show_help_echo with
8163 additional arguments OBJECT and POS.
8164
8165 2000-07-21 Kenichi Handa <handa@etl.go.jp>
8166
8167 * data.c (Faset): Allow storing any multibyte character in a
8168 string. Convert unibyte string to multibyte if necessary.
8169
8170 * xfns.c (x_encode_text): New function.
8171 (x_set_name): Use x_encode_text.
8172 (x_set_title): Likewise.
8173
8174 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
8175
8176 * xterm.h (x_encode_text): Add prototype.
8177
8178 2000-07-20 Dave Love <fx@gnu.org>
8179
8180 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
8181 xfree, not free.
8182
8183 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
8184
8185 * msdos.c (help_echo_window): New variable.
8186 (syms_of_msdos): Initialize and staticpro it.
8187 (IT_note_mode_line_highlight): Set help_echo_window.
8188 (IT_note_mouse_highlight): Ditto.
8189 (dos_rawgetc): Store help_echo_window in the second event produced
8190 for HELP_EVENTs.
8191
8192 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
8193 Record the object that generated the help echo and the position of
8194 that object in help_echo_object and help_echo_pos. Record that
8195 some glyphs in a row are displayed in mouse-face.
8196 (IT_update_begin): Don't clear mouse highlight unless one of the
8197 enabled glyph rows is marked as being displayed in mouse-face.
8198 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
8199 and position recorded in help_echo_object and help_echo_pos to the
8200 event queue.
8201 (IT_menu_display): Accept a new argument PN: the pane number of
8202 the current menu pane. Record the pane number and the item
8203 number of the item which has associated help string.
8204 (XMenuActivate): Update the prototype for help_callback in
8205 function declaration. Call IT_menu_display with the current menu
8206 pane number as an additional argument. Call help_callback with
8207 two additional arguments: the pane number and the item number of
8208 the menu item associated with the help text.
8209 (help_echo_object, help_echo_pos): New variables.
8210 (syms_of_msdos): Initialize them and staticpro help_echo_object.
8211
8212 * msdos.h (XMenuActivate): Update prototype.
8213
8214 2000-07-19 Gerd Moellmann <gerd@gnu.org>
8215
8216 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
8217 Add some more prototypes.
8218
8219 * xterm.c, xterm.h: Add some more prototypes.
8220
8221 * lisp.h (Fnext_single_char_property_change): Add prototype.
8222
8223 * dispnew.c (direct_output_for_insert): Remove confusing
8224 outer local variable mouse_face_overwritten_p.
8225 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
8226
8227 * alloc.c (allocate_string_data): Don't copy old string contents.
8228
8229 2000-07-19 Kenichi Handa <handa@etl.go.jp>
8230
8231 * coding.c (code_convert_region): Delete text properties before
8232 shrinking the conversion region.
8233
8234 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8235
8236 * dispnew.c (update_text_area): Write the whole row if it
8237 has mouse-face in it.
8238
8239 * xfaces.c (face-alternative-font-family-alist): Remove
8240 DEFVAR_LISP; staticpro instead.
8241
8242 * xmenu.c (menu_help_callback): Call show_help_echo with
8243 new arguments.
8244
8245 * keyboard.c (show_help_echo): Add parameter WINDOW.
8246 (read_char): Call show_help_echo with window extracted from Lisp
8247 help event.
8248 (gen_help_event): Add parameter WINDOW.
8249
8250 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8251
8252 * xterm.c (help_echo_window): New variable.
8253 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8254 (XTread_socket): Pass help_echo_window to gen_help_event.
8255 (syms_of_xterm): Initialize and staticpro help_echo_window.
8256
8257 2000-07-18 Dave Love <fx@gnu.org>
8258
8259 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8260
8261 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8262
8263 * alloc.c (allocate_string_data): If string had already data
8264 assigned, copy old contents to new string data.
8265
8266 * coding.c (syms_of_coding): Fix typo in spelling of variable
8267 `inhibit-iso-escape-detection'.
8268
8269 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8270
8271 * Makefile.in: Add dependencies on dispextern.h.
8272 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8273 `free'; both can conflict with system header files.
8274
8275 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8276
8277 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8278 undefined.
8279
8280 2000-07-18 Dave Love <fx@gnu.org>
8281
8282 * window.c (Fwindow_list): Declare arg `window'.
8283
8284 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8285
8286 * coding.c (setup_coding_system): Don't override the explicitly
8287 specified designations.
8288
8289 2000-07-15 Miles Bader <miles@gnu.org>
8290
8291 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8292 from `text_property_eq' and `text_property_stickiness', respectively.
8293 (find_field, Fconstrain_to_field, char_property_eq)
8294 (char_property_stickiness): Changed to call char-property functions
8295 instead of text-property-only ones.
8296
8297 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8298 `next_single_char_property_change'). Do more error checking, and
8299 cleanup limit behavior.
8300 (Fprevious_single_char_property_change): New function.
8301 (syms_of_textprop): Initialize new subrs.
8302
8303 * xdisp.c (display_prop_end, invisible_text_between_p):
8304 Call Fnext_single_char_property_change instead of
8305 next_single_char_property_change.
8306
8307 2000-07-15 Jason Rumney <jasonr@gnu.org>
8308
8309 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8310 after menu is finished with.
8311 (add_menu_item): Only consider wv->title as a menu title.
8312 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8313
8314 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8315 null title.
8316 (FONT_REGEXP): Remove unused macro, and its sub-components.
8317 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8318
8319 * w32term.c (help_echo_object, help_echo_pos): New variables.
8320 (note_mode_line_highlight): Store additional information about the
8321 help-echo in help_echo_object and help_echo_pos. Check both
8322 `local-map' and `keymap' properties for changing the cursor
8323 (note_mouse_highlight): Store additional information about the
8324 help-echo in help_echo_object and help_echo_pos.
8325 (note_tool_bar_highlight): Set help_echo_object to nil and
8326 help_echo_pos to -1.
8327 (w32_read_socket): Use gen_help_event instead of filling
8328 input_events manually.
8329 (syms_of_w32term): Staticpro help_echo_object.
8330 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8331 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8332 (x_clear_mouse_face): New function.
8333 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8334 (x_update_window_begin): No need to turn off the mouse
8335 highlight here.
8336 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8337 depending on whether they contain glyphs highlighted in mouse-face.
8338 (x_fill_stretch_glyph_string): Consume runs of stretch
8339 glyphs instead of a single one.
8340 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8341 with new argument list.
8342 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8343 (x_append_glyph, x_append_composite_glyph)
8344 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8345 changes in struct glyph starting 1999-12-27. See comments for
8346 xterm.c on 2000-07-05.
8347
8348 2000-07-14 Sam Steingold <sds@gnu.org>
8349
8350 * xfaces.c (realize_x_face): Fix the last patch:
8351 check `default_face' before dereferencing.
8352
8353 2000-07-14 Dave Love <fx@gnu.org>
8354
8355 * syntax.c (back_comment): Add null default in switch (for pcc).
8356
8357 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8358
8359 * xfaces.c (realize_x_face): Make fontset using the base of the
8360 default_face's fontset, not using the default fontset.
8361
8362 * coding.c (inhibit_iso_escape_detection): New variable.
8363 (syms_of_coding): Make it a Lisp variable.
8364 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8365 nonzero, ignore ISO2022's escape sequence.
8366
8367 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8368
8369 * alloca.c (malloc) [emacs]: Define as xmalloc.
8370
8371 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8372 use that instead of the mouse position. Add parameters DX and DY.
8373
8374 * dispextern.h (Fx_show_tip): Adjust number of parameters
8375 in prototype.
8376
8377 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8378 if HELP is a function, call it with OBJECT and POS as parameters
8379 to get the help to display.
8380 (gen_help_event, kbd_buffer_store_help_event): New functions.
8381 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8382 (read_char): Call show_help_echo with new parameters.
8383
8384 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8385 Add prototypes.
8386
8387 * xterm.c (help_echo_object, help_echo_pos): New variables.
8388 (note_mode_line_highlight): Store additional information about the
8389 help-echo in help_echo_object and help_echo_pos. Check both
8390 `local-map' and `keymap' properties for changing the cursor
8391 (note_mouse_highlight): Store additional information about the
8392 help-echo in help_echo_object and help_echo_pos.
8393 (note_tool_bar_highlight): Set help_echo_object to nil and
8394 help_echo_pos to -1.
8395 (XTread_socket): Use gen_help_event instead of filling
8396 input_events manually.
8397 (syms_of_xterm): Staticpro help_echo_object.
8398
8399 * xmenu.c (menu_highlight_callback): Use
8400 kbd_buffer_store_help_event instead of setting up and input_event
8401 structure manually.
8402
8403 * xdisp.c (eval_form): GCPRO argument sexpr.
8404 (call_function): New function.
8405 (handle_single_display_prop): Use call_function and FUNCTIONP
8406 instead of checking whether if font_height is a symbol and
8407 using eval_form.
8408
8409 * eval.c (internal_condition_case_2): New function.
8410
8411 * lisp.h (FUNCTIONP): New macro.
8412 (internal_condition_case_2, call_function): Add prototypes.
8413
8414 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8415 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8416 Always set `arg' member of input_events.
8417 (construct_menu_click): Unused function removed.
8418
8419 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8420
8421 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8422 (construct_drag_n_drop, x_scroll_bar_handle_click)
8423 (w32_read_socket): Always set `arg' member of input_events.
8424
8425 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8426
8427 * lisp.h (eval_form): Add prototype.
8428
8429 * xdisp.c (eval_form): Make it externally visible.
8430
8431 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8432
8433 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8434 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8435 consing. For prefix events, store the frame in the `arg' slot of
8436 the event, otherwise store the key there.
8437 (XTread_socket): Instead of consing, use the frame_or_window slot
8438 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8439
8440 * xmenu.c (menu_highlight_callback): Store help string in the
8441 `arg' member of the input event; don't cons.
8442 (menubar_selection_callback): Use the `arg' slot of input events
8443 to queue additional information, instead of consing.
8444
8445 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8446
8447 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8448 TOOL_BAR_EVENTs.
8449 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8450
8451 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8452 input events to queue additional information, instead of consing.
8453
8454 * keyboard.c (kbd_buffer_gcpro): Renamed from
8455 kbd_buffer_frame_or_window. Now used for all Lisp objects
8456 referenced from the input queue.
8457 (kbd_buffer_store_event): Always use structure assignment for
8458 copying input events. Record all Lisp objects referenced from
8459 events in kbd_buffer_gcpro.
8460 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8461 differently from input events. Test for prefix menu_bar_events
8462 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8463 event in kbd_buffer_gcpro to nil.
8464 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8465 frame_or_window is equal to its arg member as prefix events.
8466 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8467 used by an input event to nil.
8468 (init_keyboard): Use two times the size of the input queue
8469 for kbd_buffer_gcpro.
8470 (syms_of_keyboard): Likewise.
8471
8472 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8473 Use USER_SIGNAL_EVENT.
8474
8475 * termhooks.h (struct input_event): Add member `arg'.
8476 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8477 (USER_SIGNAL_EVENT): Renamed from user_signal.
8478
8479 * xfaces.c (ASET): Remove definition.
8480
8481 * lisp.h (AREF, ASET, ASIZE): New macros.
8482
8483 * fontset.c (AREF, ASIZE): Remove definitions.
8484
8485 * fns.c (AREF): Remove definition.
8486
8487 * composite.c (AREF): Remove definition.
8488
8489 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8490
8491 * dispnew.c (redraw_overlapped_rows): Add missing local.
8492 (scrolling_window): Remove debug code.
8493
8494 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8495 Before scrolling, turn off a mouse-highlight in the window
8496 being scrolled.
8497
8498 * xterm.c (x_update_window_end): Add parameter
8499 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8500 redisplay in XTframe_up_to_date.
8501 (x_clear_mouse_face): New function.
8502 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8503
8504 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8505 current glyph row.
8506 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8507 it when any row is written to that contains glyphs highlighted in
8508 mouse-face.
8509 (update_window): Call the window update end hook with new
8510 parameter MOUSE_FACE_OVERWRITTEN_P.
8511 (direct_output_for_insert): Give up if row contains mouse-face.
8512
8513 * dispextern.h (struct redisplay_interface): Add parameter
8514 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8515 (clear_mouse_face): New function pointer member.
8516
8517 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8518
8519 * syntax.c (back_comment): Use one switch rather than a few `if's.
8520 Obey open_paren_in_column_0_is_defun_start.
8521 When reverting to the `slow' method, try to nicely handle the case
8522 of nested comments by checking that the comment-starter we found
8523 does indeed match the comment-ender.
8524 (scan_sexps_forward, scan_sexps_forward):
8525 Ignore excessive opening parenthesis rather than throwing an error.
8526
8527 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8528
8529 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8530 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8531
8532 * dispnew.c (direct_output_forward_char): Give up if currently
8533 displaying a message instead of the minibuffer contents.
8534
8535 * xterm.c (x_update_window_begin): No need to turn off the mouse
8536 highlight here.
8537 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8538 depending on whether they contain glyphs highlighted in mouse-face.
8539
8540 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8541 compare the mouse_face_p flags of both rows.
8542
8543 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8544
8545 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8546
8547 * keyboard.c (show_help_echo): Accept additional parameter
8548 ok_to_overwrite_keystroke_echo.
8549 (read_char): Call show_help_echo with a zero
8550 ok_to_overwrite_keystroke_echo argument.
8551 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8552 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8553 ok_to_overwrite_keystroke_echo argument.
8554 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8555 non-zero ok_to_overwrite_keystroke_echo argument.
8556
8557 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8558
8559 * xdisp.c (try_window_id): If changes are all below what is
8560 displayed in the window, and point is in the window, we still
8561 might have to find point on the display.
8562
8563 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8564 glyphs instead of a single one.
8565 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8566 with new argument list.
8567 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8568
8569 * keymap.c (get_keymap_1): Add comment that this function can GC.
8570 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8571 comment that functions can GC.
8572 (Fset_keymap_parent): GCPRO arg KEYMAP.
8573
8574 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8575
8576 * msdos.c (XMenuActivate): After exiting the menu, restore the
8577 echo area message and erase it.
8578
8579 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8580
8581 * fontset.c (Ffontset_info): Make the return value more compatible
8582 with that of Emacs 20.
8583
8584 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8585
8586 * eval.c (Fsignal): Handle case that backtrace_list is null.
8587
8588 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8589
8590 * ccl.c (Fccl_execute): Typo fixed.
8591
8592 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8593
8594 * window.c (window_loop): Add missing gcpro1 local variable.
8595
8596 * window.c (Fwindow_list): Reverse list at the end.
8597 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8598 means allow windows on OWINDOW's frame, only.
8599 (window_loop): Simplified; use Fwindow_list.
8600
8601 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8602
8603 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8604
8605 * xterm.c (XTread_socket): Increment handling_signal at the start,
8606 decrement it at the end.
8607
8608 * eval.c (handling_signal): New variable.
8609 (Fsignal): Abort if handling_signal is non-zero.
8610
8611 * lisp.h (handling_signal): External declaration.
8612
8613 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8614
8615 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8616
8617 Sound support for NetBSD through "Linux emulation" support:
8618 * config.in (HAVE_SOUNDCARD_H): Undef.
8619 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8620 * Makefile.in (LIBSOUND): New variable.
8621 (LIBES): Include it.
8622 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8623 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8624 (vox_open): Use DEFAULT_SOUND_DEVICE.
8625 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8626
8627 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8628
8629 * print.c (print_error_message): If Vsignaling_function is set,
8630 show it in *Messages*.
8631
8632 * lisp.h (Vsignaling_function): External declaration.
8633
8634 * eval.c (Vsignaling_function): New variable.
8635 (Fsignal): Compute it.
8636 (syms_of_eval): Staticpro it.
8637
8638 2000-07-05 Dave Love <fx@gnu.org>
8639
8640 * syswait.h: Use the autoconf recommended approach. Old code
8641 #if'd out in case we need to revert.
8642
8643 * config.in (HAVE_SYS_WAIT_H): Added.
8644
8645 2000-07-05 Andrew Innes <andrewi@gnu.org>
8646
8647 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8648 when non-NULL instead of __morecore, to take account of buffer
8649 memory. This also solves a problem with spurious memory warnings
8650 on Windows.
8651
8652 * ralloc.c: Make real_morecore non-static.
8653
8654 * eval.c (internal_condition_case): Comment out abort if
8655 interrupt_input_blocked is not zero.
8656
8657 * makefile.nt: Add support for `bootstrap' and related targets.
8658 Include minimal debug info in emacs.exe in release build.
8659 Remove all dependencies on lisp.h, and fixup some others.
8660
8661 * w32.c (init_environment): Install code from 20.7 for providing
8662 default values for environment variables, based on the
8663 executable's own location.
8664 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8665 (sys_socket): Install socket inheritance bug fix from 20.7.
8666
8667 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8668 here via blockinput.h).
8669
8670 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8671
8672 * w32menu.c (w32_menu_display_help):
8673 * xmenu.c (menu_help_callback): Use show_help_echo.
8674
8675 * keyboard.h (show_help_echo): Declare.
8676
8677 * keyboard.c (show_help_echo): New function, extracted from read_char.
8678 Feval its `msg' argument if it's a cons cell.
8679 (read_char): Use it.
8680 (follow_key): Pass `autoload' to get_keyelt.
8681
8682 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8683 (note_tool_bar_highlight, XTread_socket):
8684 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8685 (dos_rawgetc):
8686 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8687 (note_tool_bar_highlight, w32_read_socket):
8688 Do not gratuitously ignore non-string `help-echo' properties.
8689
8690 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8691
8692 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8693
8694 * window.c (delete_all_subwindows): Reset Vwindow_list.
8695
8696 * xterm.c (x_append_glyph, x_append_composite_glyph)
8697 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8698 changes in struct glyph starting 1999-12-27. Some bit-fields of
8699 struct glyph were not set, which made glyphs unequal when compared
8700 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8701 effects were the result. This also depended on the contents of
8702 memory returned by xmalloc. If flickering happens again, activate
8703 the code in clear_glyph_row that's in #if 0. If the flickering is
8704 gone with that, chances are that it is caused by something similar.
8705
8706 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8707
8708 * dispextern.h: Add some comments.
8709
8710 * window.c (add_window_to_list): Add parameter LIST.
8711 (window_list): Order list so that, for each frame, windows are
8712 in canonical order, and so that frames appear in the list in
8713 the order given by Vframe_list.
8714 (next_window): Reverse the handling of NEXT_P.
8715
8716 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8717
8718 * window.c (Vwindow_list): New variable.
8719 (make_window, delete_window): Set Vwindow_list to nil.
8720 (check_window_containing): New function.
8721 (window_from_coordinates): Rewritten.
8722 (add_window_to_list, window_list, candidate_window_p)
8723 (decode_next_window_args, next_window): New functions.
8724 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8725 (Fwindow_list): New function.
8726 (Fother_window): Cleaned up.
8727 (foreach_window): Add a longer "variable argument list". Let
8728 callback function return 0 to indicate that cycling over windows
8729 should stop.
8730 (foreach_window_1): Likewise.
8731 (freeze_window_start): Return int.
8732 (init_window): New function.
8733 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8734
8735 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8736 input_event with bzero.
8737 (main): Call init_window.
8738
8739 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8740 a menu filter.
8741
8742 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8743
8744 * composite.h (make_composition_value_copy): Extern it.
8745
8746 * composite.c (make_composition_value_copy): New function.
8747
8748 * editfns.c (Fformat): While copying text properties, make each
8749 composition property value a copy.
8750
8751 * fns.c (concat): While copying text properties, make each
8752 composition property value a copy.
8753
8754 2000-07-03 Gerd Moellmann <gerd@gnu.org>
8755
8756 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
8757
8758 * fns.c (sweep_weak_table): Mark only objects that are not
8759 marked already.
8760
8761 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
8762 include those frames as candidates which have their focus
8763 redirected to the minibuffer frame.
8764
8765 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
8766
8767 * fns.c (Fputhash): Return `value' rather than nil.
8768
8769 2000-06-30 Gerd Moellmann <gerd@gnu.org>
8770
8771 * frame.c (next_frame): Don't check focus redirection in case
8772 MINIBUF is a window. Doing so excludes frames using MINIBUF
8773 unless their focus is redirected, which contradicts the
8774 specification of next-frame, and leads to infinite loops in
8775 certain situations when cycling through windows with next-window.
8776
8777 2000-06-30 Kenichi Handa <handa@etl.go.jp>
8778
8779 * coding.c (code_convert_region): Even if the length of text is
8780 zero, try to convert it if coding->type is coding_type_ccl.
8781 (decode_coding_string, encode_coding_string): Likewise.
8782
8783 2000-06-28 Gerd Moellmann <gerd@gnu.org>
8784
8785 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
8786 the display if windows_or_buffers_changed.
8787
8788 * dispnew.c (struct row_entry): New structure.
8789 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
8790 (row_table_size, old_lines, new_lines, old_lines_size)
8791 (new_lines_size, run_pool, runs_size, runs): New variables.
8792 (add_row_entry): New function.
8793 (scrolling_window): Use data structures allocated with xmalloc and
8794 held in global variables, instead of allocating them with alloca and
8795 holding them in local variables. Use a larger hash table whose
8796 size depends on glyph matrix sizes. Don't use bzero to clear the
8797 hash table; instead, clear used slots only.
8798
8799 * fns.c (next_almost_prime): Make it externally visible.
8800
8801 * lisp.h (next_almost_prime): Add prototype.
8802
8803 * s/isc4-0.h (sigunblock): Define.
8804
8805 * s/sco5.h (sigunblock): Define.
8806
8807 2000-06-27 Dave Love <fx@gnu.org>
8808
8809 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
8810 (moved to osf5-0.h).
8811 [!NOT_C_CODE]: Protect string.h stuff.
8812
8813 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
8814 (sys_siglist, NSIG): Definitions moved here from osf1.h.
8815
8816 2000-06-27 Gerd Moellmann <gerd@gnu.org>
8817
8818 * xdisp.c (resize_mini_window): Subtract the extra line spacing
8819 below the last line from the needed window height.
8820
8821 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
8822
8823 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
8824 (Fwidget_get): Use it.
8825 (syms_of_fns): Defsubr it.
8826
8827 2000-06-26 Gerd Moellmann <gerd@gnu.org>
8828
8829 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
8830 display info for XIM.
8831 (xim_open_dpy): Likewise.
8832 (xim_close_dpy): Don't free the display info's XIM.
8833
8834 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
8835
8836 * config.in (USE_XIM): New define.
8837
8838 * keymap.c (get_keyelt): For menu-items containing a `:filter
8839 FILTER', apply FILTER to the menu-item's definition to get the
8840 real definition to use.
8841
8842 * lisp.h (QCfilter): External declaration.
8843
8844 * xfns.c (Fimage_size): New function.
8845 (syms_of_xfns): Defsubr it.
8846
8847 2000-06-26 Andreas Schwab <schwab@suse.de>
8848
8849 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
8850 Fstring_as_unibyte.
8851
8852 2000-06-25 Dave Love <fx@gnu.org>
8853
8854 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
8855
8856 * Makefile.in (blockinput.h): Depend on atimer.h.
8857 (atimer.h): Depend on systime.h.
8858
8859 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
8860
8861 * atimer.h: Protect against multiple inclusion. Include systime.h.
8862
8863 * lisp.h (swap_in_global_binding): Declare.
8864
8865 2000-06-24 Ken Raeburn <raeburn@gnu.org>
8866
8867 * process.c (Fopen_network_stream): Turn off atimers for duration
8868 of call to connect. (Patch from Gerd.)
8869
8870 2000-06-23 Dave Love <fx@gnu.org>
8871
8872 * ralloc.c: Maybe include unistd.h
8873
8874 * emacs.c (setgrp): Undefine before defining.
8875 (malloc_warning, set_time_zone_rule, index): Prototype.
8876
8877 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
8878 HAVE_STRUCT_TIMEZONE.
8879
8880 * s/osf1.h: Move string.h hack here from alpha.h and make it
8881 conditional.
8882 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
8883 _XOPEN_SOURCE.
8884 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
8885 (SOCKLEN_TYPE): Don't define.
8886
8887 * m/alpha.h: Remove string.h hack.
8888
8889 * s/osf5-0.h: New file.
8890
8891 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
8892 include time.h, done by systime.h.
8893 [__FreeBSD__]: Remove redundant includes.
8894
8895 * callproc.c (setpgrp): Undefine before defining.
8896 (delete_temp_file): Return Qnil to avoid warning.
8897
8898 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
8899
8900 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
8901 HAVE_X_WINDOWS.
8902
8903 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
8904
8905 * composite.h (compose_text): Declare.
8906
8907 * xterm.c: Don't include sys/types.h unconditionally. Don't
8908 protect its inclusion with !USG (following xmenu.c).
8909
8910 2000-06-23 Gerd Moellmann <gerd@gnu.org>
8911
8912 * xfns.c (x_create_tip_frame): Initialize frame's colors like
8913 in x_create_frame.
8914
8915 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
8916
8917 * coding.c (decode_eol_post_ccl): Special handling for undecided
8918 and inconsistent EOL types.
8919
8920 2000-06-22 Gerd Moellmann <gerd@gnu.org>
8921
8922 * xrdb.c (x_load_resources): Add default resource for scroll bar's
8923 trough color and main window's background color.
8924
8925 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
8926
8927 * xterm.h (Xt_app_con): External declaration.
8928
8929 * widget.c (EmacsFrameRealize): Fix typo.
8930
8931 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
8932
8933 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
8934 (handle_invisible_prop): Record the start of invisible text in
8935 it->add_overlay_start.
8936 (struct overlay_entry): Add member `overlay'.
8937 (handle_overlay_change): Simplify.
8938 (next_overlay_string): After having processed overlay strings at the
8939 end of the buffer, record that fact in
8940 it->overlay_strings_at_end_processed_p.
8941 (compare_overlay_entries): If before- and after-strings come
8942 from the same overlay, let before-strings come first.
8943 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
8944 (load_overlay_strings): Take it->add_overlay_start into account
8945 when adding overlay strings.
8946
8947 * dispextern.h (struct it): Add member add_overlay_start.
8948
8949 2000-06-22 Dave Love <fx@gnu.org>
8950
8951 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
8952
8953 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
8954
8955 2000-06-22 Kenichi Handa <handa@etl.go.jp>
8956
8957 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
8958 is greater than 0.
8959
8960 2000-06-21 Dave Love <fx@gnu.org>
8961
8962 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
8963
8964 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
8965
8966 * syntax.c (back_comment): Simplify string-parity counting (with
8967 the added benefit of handling multiple string-styles as long as
8968 they are not intertwined).
8969 Jump to the slow code as soon as a comment starter is found in
8970 a "string_lossage" position. Fixes the case: " /* " /* " */.
8971
8972 2000-06-21 Dave Love <fx@gnu.org>
8973
8974 * Makefile.in: Use GETLOADAVG_LIBS.
8975
8976 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
8977 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
8978
8979 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8980
8981 * syntax.c (describe_syntax): Recognize the `n'estable bit.
8982 (Fforward_comment, scan_lists):
8983 Check the comstyle of single-char comment-starters.
8984 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
8985 we're just at the beginning of the comment (f.ex with (*) ... (*)).
8986 Check the comstyle of single-char comment-starters.
8987 Clarify control-flow around the Scomment case.
8988
8989 2000-06-20 Dave Love <fx@gnu.org>
8990
8991 * fns.c (make_hash_table, maybe_resize_hash_table):
8992 Cast arg of next_almost_prime.
8993
8994 * tparam.c [emacs]: Include lisp.h.
8995
8996 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
8997 and unistd.h.
8998
8999 2000-06-20 Gerd Moellmann <gerd@gnu.org>
9000
9001 * keyboard.c (adjust_point_for_property): Check if display
9002 property should be treated as intangible by looking at its value.
9003
9004 * xdisp.c (single_display_prop_intangible_p)
9005 (display_prop_intangible_p): New functions.
9006
9007 * dispextern.h (display_prop_intangible_p): Add prototype.
9008
9009 * xdisp.c (dump_glyph_row): Show type of glyph->object.
9010
9011 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
9012 argument to sigprocmask.
9013
9014 * s/sco5.h (sigblock): Redefined to pass a pointer as second
9015 argument to sigprocmask.
9016
9017 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
9018 sigprocmask_set, and pass a pointer to it to sigprocmask.
9019
9020 * sysdep.c (sigprocmask_set): New variable.
9021
9022 * fileio.c (make_temp_name): Don't use `%s' in string passed to
9023 report_file_error.
9024
9025 2000-06-20 Sam Steingold <sds@gnu.org>
9026
9027 * xrdb.c: Don't declare xmalloc, xrealloc.
9028
9029 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
9030
9031 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
9032 (re_comp): Cast gettext return value to avoid complaints when
9033 !HAVE_LIBINTL.
9034
9035 2000-06-20 Dave Love <fx@gnu.org>
9036
9037 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
9038
9039 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
9040
9041 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
9042
9043 * m/alpha.h: Don't declare xmalloc, xrealloc.
9044
9045 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
9046
9047 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
9048
9049 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
9050
9051 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
9052 HAVE_GETWD.
9053
9054 * keyboard.h (poll_for_input_1): Declare.
9055
9056 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
9057
9058 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
9059
9060 * doprnt.c: Don't declare xmalloc, xrealloc.
9061
9062 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
9063 (getenv, ctime, getwd): Removed.
9064 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
9065
9066 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
9067 x_set_tool_bar_lines.
9068
9069 * config.in: Add HAVE_GETWD. Move some definitions above
9070 machine/system includes.
9071
9072 2000-06-20 Kenichi Handa <handa@etl.go.jp>
9073
9074 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
9075
9076 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
9077 contain information about ENCODING.
9078
9079 * fontset.c (FONTSET_ASCII): Use the first element of char table
9080 for an ASCII font, not defalt slot.
9081 (fontset_ref_via_base): If FONTSET doesn't contain information for
9082 C, try the default fontset.
9083 (make_fontset): Don't copy the default fontset.
9084 (fontset_font_pattern): Likewise.
9085 (accumulate_font_info): If ELT is nil, use the corresponding
9086 element in the default fontset.
9087
9088 2000-06-19 Dave Love <fx@gnu.org>
9089
9090 * syntax.c (Fparse_partial_sexp): Doc fix.
9091
9092 * regex.h: Test PROTOTYPES as well as __STDC__.
9093
9094 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
9095 errno, strerror. Put text after #endif in comment.
9096
9097 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
9098
9099 * xterm.c (x_frame_of_widget): Likewise.
9100
9101 2000-06-19 Gerd Moellmann <gerd@gnu.org>
9102
9103 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
9104 to Vfundamental_mode_abbrev_table.
9105
9106 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
9107 bogus objects are marked. This slows down GC by ~80 percent, but
9108 it might be worth trying when debugging GC-related problems.
9109 This feature requires conservative stack marking to be enabled.
9110
9111 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
9112 returns XLookupChars, reset `modifiers' to zero.
9113
9114 2000-06-19 Dave Love <fx@gnu.org>
9115
9116 * mktime.c: Unprotoized.
9117
9118 2000-06-19 Richard Stallman <rms@gnu.org>
9119
9120 * data.c (set_internal): If variable is frame-local,
9121 store the new value immediately into the frame parameter alist.
9122
9123 2000-06-19 Ken Raeburn <raeburn@gnu.org>
9124
9125 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
9126 in the custom handler pointer.
9127
9128 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
9129 value, or checks for CHAR_META can fail when Lisp_Object is a
9130 union type.
9131 * keymap.c (get_keyelt): Likewise.
9132
9133 2000-06-19 Kenichi Handa <handa@etl.go.jp>
9134
9135 * ccl.h (struct ccl_program): New member eol_type.
9136 (struct ccl_spec): New member cr_carryover.
9137
9138 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
9139 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
9140
9141 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
9142 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
9143 (decode_eol_post_ccl): New function.
9144 (decode_coding): Don't detect EOL format here for CCL based coding
9145 systems.
9146 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
9147 decode_eol_post_ccl after running the CCL program.
9148 (code_convert_region): Don't detect EOL format here for CCL based
9149 coding systems.
9150 (decode_coding_string): Likewise.
9151
9152 2000-06-18 Ken Raeburn <raeburn@gnu.org>
9153
9154 * charset.c (update_charset_table): Use XINT on "iso_final_char"
9155 when treating it as an integer.
9156
9157 * coding.h (encode_coding_string): Declare.
9158
9159 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
9160 it as an integer.
9161
9162 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
9163 "xkeymap" to avoid shadowing the "enum map_type" value that needs
9164 to be passed to get_local_map.
9165
9166 * sound.c (Fplay_sound): Don't call make_number on
9167 Frun_hook_with_args count argument.
9168
9169 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
9170 for lisp objects in X event structure data field, when lisp
9171 objects are represented with unions.
9172 (x_scroll_bar_to_input_event): Ditto.
9173
9174 2000-06-16 Ken Raeburn <raeburn@gnu.org>
9175
9176 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
9177 termination of string. Fix sense of test whether
9178 Vline_number_display_limit is an integer.
9179
9180 2000-06-16 Gerd Moellmann <gerd@gnu.org>
9181
9182 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
9183 only if HAVE_X_WINDOWS.
9184
9185 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
9186 of titles.
9187
9188 * dispnew.c (update_frame_1): Handle case that cursor vpos is
9189 out of bounds.
9190
9191 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
9192
9193 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
9194 of its headers.
9195
9196 2000-06-15 Kenichi Handa <handa@etl.go.jp>
9197
9198 * coding.c (decode_coding_emacs_mule): Always set src_base at the
9199 start of the while loop.
9200
9201 2000-06-15 Gerd Moellmann <gerd@gnu.org>
9202
9203 * atimer.c (alarm_signal_handler): Add forward declaration.
9204
9205 * data.c (set_internal): Remove debug code.
9206
9207 2000-06-14 Gerd Moellmann <gerd@gnu.org>
9208
9209 * Makefile.in (bootstrap-temacs): Add `-I../src'.
9210
9211 * unexec.c (toplevel) [COFF]: Include coff.h.
9212
9213 * s/lynxos.h: New file.
9214
9215 * keymap.c (Fsingle_key_description): Enclose function key and
9216 event symbol names in angle brackets.
9217
9218 * xdisp.c (setup_echo_area_for_printing): Call
9219 message_log_maybe_newline if message_buf_print is not set.
9220
9221 * print.c (printchar, strout): Don't check message_buf_print
9222 before calling setup_echo_area_for_printing because that
9223 function does something useful even when message_buf_print is
9224 already set.
9225
9226 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
9227 New variables.
9228 (ensure_echo_area_buffers): Initialize echo buffer's
9229 truncate lines setting to nil.
9230 (with_echo_area_buffer): Don't set the echo buffer's truncate
9231 lines setting here.
9232 (set_message_1): Set it here instead, based on the value
9233 of message_truncate_lines.
9234 (resize_mini_window): Handle case that lines are truncated.
9235 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
9236 DEFVAR_BOOL message-truncate-lines.
9237
9238 * keyboard.c (read_char): Bind message-truncate-lines to t
9239 while displaying a help-echo.
9240
9241 * lisp.h (Qmessage_truncate_lines): External declaration.
9242
9243 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9244
9245 * xdisp.c (Vline_number_display_limit): Renamed from
9246 line_number_display_limit.
9247 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9248 Extend documentation string. Initialize
9249 Vline_number_display_limit to nil meaning no limit.
9250 (decode_mode_spec): Use Vline_number_display_limit with its new
9251 meaning.
9252
9253 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9254
9255 2000-06-13 Richard Stallman <rms@gnu.org>
9256
9257 * frame.c (Fmodify_frame_parameters): Doc fix.
9258
9259 * xfns.c (x_set_frame_parameters): Comment fix.
9260
9261 * frame.c (store_frame_param): Call swap_in_global_binding if the
9262 variable's current binding was chosen based on this frame.
9263
9264 * data.c (swap_in_global_binding): New function.
9265
9266 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9267
9268 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9269 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9270
9271 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9272
9273 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9274
9275 2000-06-12 Jason Rumney <jasonr@gnu.org>
9276
9277 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9278
9279 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9280
9281 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9282
9283 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9284
9285 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9286
9287 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9288 (syms_of_xfaces): Defsubr Sdump_colors.
9289 (x_free_colors): Don't treat b&w specially on default visual.
9290 (x_free_dpy_colors): New function.
9291 (free_face_colors): Don't check visual class; it's done
9292 in x_free_colors.
9293
9294 * xterm.c (x_frame_of_widget): New function.
9295 (x_alloc_nearest_color_for_widget): Use it.
9296 (x_copy_dpy_color): New function.
9297 (x_destroy_window): Free various colors.
9298
9299 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9300
9301 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9302
9303 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9304
9305 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9306
9307 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9308
9309 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9310
9311 2000-06-11 Dave Love <fx@gnu.org>
9312
9313 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9314
9315 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9316
9317 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9318
9319 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9320
9321 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9322 to `XEvent *'.
9323
9324 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9325
9326 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9327 (regex_compile): Fix the code for handling the case of single byte
9328 char and multibyte char being mixed in a range within [...].
9329
9330 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9331 and dst_multibyte members of coding.
9332
9333 * charset.c (update_charset_table): Update the table
9334 bytes_by_char_head.
9335 (init_charset_once): Initialize elements of bytes_by_char_head to
9336 1 except for leading codes for private charases.
9337
9338 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9339 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9340
9341 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9342
9343 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9344 access the data it doesn't point to.
9345
9346 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9347
9348 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9349 will be translated to a switch-frame event when reading the
9350 event queue. This is necessary because Emacs otherwise won't
9351 perform a switch-frame to a new frame until some other event, for
9352 example a keystroke event, forces it to do so. This has various
9353 effects, one visible being that the cursor of a frame created with
9354 C-x 5 2 or switched to with a window manager key binding like
9355 A-TAB stays hollow because selected_window isn't on the newly
9356 focused frame until the switch-frame is performed.
9357
9358 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9359 generating a switch-frame event if necessary.
9360
9361 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9362
9363 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9364 it's an integer.
9365
9366 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9367
9368 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9369
9370 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9371
9372 * window.c (displayed_window_lines): Take empty lines at
9373 the bottom of a window into account.
9374
9375 * window.c (displayed_window_lines): New function.
9376 (Fmove_to_window_line): Use displayed_window_lines to determine
9377 the number of lines to move, instead of using the window's height.
9378
9379 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9380 to stop reading, even if the form read sets point to a different
9381 value when evaluated.
9382
9383 * xdisp.c (display_line): Fix code deciding in which line to
9384 put the cursor.
9385
9386 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9387
9388 * fileio.c (e_write): Free composition data if stored in
9389 coding->cmp_data.
9390
9391 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9392
9393 * xdisp.c (display_line): Set row's and iterator's
9394 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9395 Set cursor even if row ends in the middle of a character.
9396 (dump_glyph_row): Print values of new flags.
9397 (redisplay_window) <cursor movement in unchanged window>: When
9398 point has been moved forward, and PT is at the end of the cursor
9399 row, don't place the cursor in the next row if the cursor row ends
9400 in the middle of a character or at ZV.
9401
9402 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9403 (struct glyph_row): Add starts_in_middle_of_char_p and
9404 ends_in_middle_of_char_p.
9405 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9406 ends_in_middle_of_char_p flag.
9407 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9408
9409 * term.c (append_glyph): Revert change of 2000-06-06.
9410
9411 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9412 padding glyph not fitting on line as whole character not
9413 fitting on line.
9414
9415 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9416 this isn't true for images with `:ascent 100'.
9417
9418 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9419
9420 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9421 as modified if it is originally unmodified.
9422
9423 * term.c (encode_terminal_code): Change the way to check if
9424 terminal coding does any conversion.
9425 (append_glyph): Set glyph->pixel_width correctly.
9426
9427 * xdisp.c (display_line): While checking line continuation, pay
9428 attention to a padding glyph.
9429
9430 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9431
9432 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9433
9434 2000-06-05 Dave Love <fx@gnu.org>
9435
9436 * xdisp.c: Include fontset.h.
9437
9438 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9439
9440 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9441
9442 * dispnew.c: Conditionally include term.h.
9443
9444 * coding.h: Declare code_convert_string_norecord.
9445
9446 * frame.h (struct frame): Use volatile unconditionally.
9447
9448 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9449
9450 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9451
9452 * systime.h: Protect against multiple inclusion.
9453 (timezone) [USG5_4]: Define as time_t.
9454
9455 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9456 (Foptimize_char_table, make_temp_name): Declare.
9457
9458 * Makefile.in (xdisp.o): Depend on fontset.h.
9459
9460 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9461
9462 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9463 (Foptimize_char_table, make_temp_name): Declare.
9464
9465 * s/irix4-0.h:
9466 * s/irix5-0.h:
9467 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9468
9469 2000-06-02 Dave Love <fx@gnu.org>
9470
9471 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9472
9473 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9474
9475 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9476 result face, set flags in that face indicating that colors may not
9477 be freed.
9478
9479 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9480 glyph, use the ASCII NUL character to determine the face.
9481
9482 2000-06-02 Dave Love <fx@gnu.org>
9483
9484 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9485 (VFORK_RETURN_TYPE): Remove.
9486
9487 * config.in: Add NO_MATHERR.
9488
9489 2000-06-01 Dave Love <fx@gnu.org>
9490
9491 * cmds.c (internal_self_insert): Don't check
9492 Vbefore_change_function, Vafter_change_function.
9493
9494 * insdel.c (signal_before_change, signal_after_change): Likewise.
9495
9496 * buffer.c (Vbefore_change_function, Vafter_change_function):
9497 Variables and their initializations deleted.
9498
9499 * callint.c (Fcall_interactively): Doc fix.
9500
9501 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9502
9503 2000-05-31 Dave Love <fx@gnu.org>
9504
9505 * textprop.c: Revert last change -- duplicated.
9506
9507 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9508
9509 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9510 in #if 0.
9511
9512 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9513
9514 2000-05-31 Jason Rumney <jasonr@gnu.org>
9515
9516 * search.c (Fre_search_forward, Fre_search_backward)
9517 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9518
9519 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9520
9521 2000-05-30 Jason Rumney <jasonr@gnu.org>
9522
9523 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9524 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9525
9526 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9527
9528 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9529 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9530 expand a nil default_filename.
9531
9532 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9533 pointer to glyph_to_pixel_coords, not a frame.
9534
9535 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9536 coding.h to dependencies.
9537
9538 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9539
9540 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9541 window pointer to be consistent with w32term.c and xterm.c.
9542
9543 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9544 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9545 (Qline_spacing, Qcenter): New variables.
9546 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9547 (x_set_line_spacing): New function.
9548 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9549 (x_specified_cursor_type): New function.
9550 (x_set_cursor_type): Use it.
9551 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9552 and icon strings.
9553 (validate_x_resource_name, x_get_resource_string): Measure lengths
9554 of external strings in bytes.
9555 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9556 GetTextExtentPoint32 with NULL title.
9557 (Fx_create_frame): Initialize Qline_spacing.
9558 (w32_load_system_font): Initialize font->double_byte_p.
9559 (x_to_w32_charset): Use Vw32_charset_info_alist.
9560 (Image, busy cursor, tooltip functions): Merged changes from
9561 xfns.c. Not yet functional on Windows.
9562
9563 * w32gui.h (W32FontStruct): Add double_byte_p member.
9564
9565 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9566 (emacs_button_translation): Use it.
9567 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9568 in `mask' to be set.
9569
9570 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9571 menu strings.
9572
9573 * w32term.c: Format and doc changes to bring closer to xterm.c.
9574 (w32_char_font_type): New enum.
9575 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9576 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9577 (w32_encode_char): New function.
9578 (x_encode_char): Removed.
9579 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9580 x_encode_char and w32_font_is_double_byte.
9581 (x_produce_image_glyph): Use image_ascent.
9582 (x_produce_glyphs): Use new version of w32_per_char_metric and
9583 handle NULL return value. Allow extra line spacing.
9584 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9585 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9586 w32_font_type member of glyph instead.
9587 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9588 (fast_find_position): Make sure not to consider rows not visible
9589 in the window.
9590 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9591 w32_menu_display_help with input blocked, as it can abort.
9592 (x_display_and_set_cursor): Choose cursor depending
9593 on buffer-local value of cursor_type.
9594 (x_draw_bar_cursor): Add parameter WIDTH.
9595
9596 * w32term.h (CP_DEFAULT): Define.
9597 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9598
9599 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9600
9601 * search.c (Fre_search_forward, Fre_search_backward)
9602 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9603
9604 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9605
9606 * coding.c (detect_coding_iso2022): Fix code for checking
9607 CODING_CATEGORY_MASK_ISO_8_2.
9608
9609 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9610
9611 * regex.c (PREFETCH_NOLIMIT): New function.
9612 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9613
9614 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9615
9616 * syntax.c (find_defun_start): Move test for
9617 open_paren_in_column_0_is_defun_start outside of the loop.
9618
9619 * xdisp.c (redisplay_window): Really switch buffers when
9620 displaying mode lines, and temporarily set selected_frame to the
9621 frame of the window that's redisplayed.
9622
9623 * xfaces.c (free_realized_faces): Block/unblock input.
9624 (free_realized_multibyte_face): Ditto.
9625
9626 2000-05-29 Dave Love <fx@gnu.org>
9627
9628 * textprop.c (Qkeymap): New variable.
9629 (syms_of_textprop): Intern it.
9630
9631 * keymap.c: Include intervals.h.
9632 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9633
9634 * Makefile.in (keymap.o): Depend on intervals.h.
9635
9636 * keyboard.c (menu_bar_items, tool_bar_items)
9637 (Fexecute_extended_command): Deal with `keymap' property.
9638 (read_key_sequence): Track map from `keymap' property as well as
9639 `local_map'.
9640
9641 * intervals.c (get_local_map): Extra arg to allow looking for
9642 `keymap' too.
9643
9644 * intervals.h (map_property): New enum.
9645 (get_local_map): Extra arg using it.
9646 (Qkeymap): Declare.
9647
9648 * lisp.h (get_local_map): Don't declare here.
9649
9650 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9651
9652 * Makefile.in (callproc.o): Depend on composite.h.
9653
9654 * callproc.c: Include composite.h.
9655 (Fcall_process): Handle composition correctly.
9656
9657 * coding.h (coding_allocate_composition_data): Extern it.
9658 (coding_restore_composition): Likewise.
9659
9660 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9661 yet allocated, finish decoding with result
9662 CODING_FINISH_INSUFFICIENT_CMP.
9663 (coding_allocate_composition_data): Make it non-static.
9664 (coding_restore_composition): Likewise.
9665
9666 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9667
9668 * charset.c (syms_of_charset): Revert last change.
9669
9670 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9671
9672 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9673 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9674 Handa.
9675
9676 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9677
9678 * charset.c (syms_of_charset): Set width of character sets
9679 eight-bit-control and eight-bit-graphic to 1 column.
9680
9681 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9682
9683 * config.in (HAVE_SPEED_T): New define.
9684
9685 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9686 `extern speed_t'.
9687
9688 2000-05-26 Dave Love <fx@gnu.org>
9689
9690 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9691
9692 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9693 (Fsubr_arity): New function.
9694 (syms_of_data): Install them.
9695
9696 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9697
9698 * charset.c (init_charset_once): Set the table bytes_by_char_head
9699 correctly.
9700
9701 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9702 the default fontset to what Emacs uses by default.
9703 (check_registry_encoding): This function deleted.
9704 (Fset_fontset_font): Remove the adhoc condition for the default
9705 fontset. Allow cons in FONTNAME.
9706
9707 * fns.c (map_char_table): Ignore char-table entries for
9708 charsets eight-bit-control and eight-bit-graphic.
9709
9710 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9711
9712 * emacs.c (main): Initialize keyboard syms before initializing
9713 window code, so face names are available.
9714
9715 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9716
9717 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9718 of an anchor at the beginning of a shy-group.
9719
9720 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9721
9722 * xdisp.c (handle_invisible_prop): Don't try to skip over
9723 invisible text if end of text is already reached.
9724
9725 2000-05-25 Dave Love <fx@gnu.org>
9726
9727 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9728
9729 * coding.c (encode_eol): Add null statement after label.
9730
9731 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9732
9733 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9734 2000-05-20.
9735
9736 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9737
9738 * ccl.c (ccl_driver): Fix previous change.
9739
9740 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9741
9742 * coding.c (run_pre_post_conversion_on_str): Set point to the
9743 beginning of buffer before calling coding->post_read_conversion.
9744 (decode_coding_string): Give correct args to
9745 run_pre_post_conversion_on_str.
9746 (encode_coding_string): Likewise.
9747
9748 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
9749 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
9750 eight-bit-graphic correctly.
9751
9752 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
9753
9754 * fileio.c (Finsert_file_contents): Even if a file is not found,
9755 execute codes for setting up coding system. Call
9756 after-insert-file-functions unconditionally.
9757
9758 2000-05-24 Gerd Moellmann <gerd@gnu.org>
9759
9760 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
9761 BSD_PGRPS are not defined.
9762
9763 2000-05-24 Kenichi Handa <handa@etl.go.jp>
9764
9765 * charset.c (update_charset_table): Accept nil in LONG_NAME and
9766 DESCRIPTION.
9767 (syms_of_charset): Avoid building same strings.
9768
9769 2000-05-23 Gerd Moellmann <gerd@gnu.org>
9770
9771 * lread.c (Fload): Add a comment about the meaning of
9772 Vuser_init_file being t.
9773
9774 * puresize.h (BASE_PURESIZE): Increase to 675000.
9775
9776 * s/gnu-linux.h (setpgrp): Don't define it here because this
9777 prevents compilation on GNU/Linux systems with glib 2.2.
9778
9779 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
9780 as setpgid.
9781
9782 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
9783
9784 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
9785 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
9786 version.
9787 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
9788
9789 2000-05-23 Kenichi Handa <handa@etl.go.jp>
9790
9791 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9792
9793 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
9794
9795 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
9796
9797 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
9798
9799 2000-05-22 Kenichi Handa <handa@etl.go.jp>
9800
9801 * keyboard.c (read_char): Allow character codes 128..255 to be
9802 handled by input-method-function.
9803
9804 * insdel.c (adjust_markers_for_replace): Fix previous change.
9805 (adjust_after_replace): If PREV_TEXT is nil, call
9806 adjust_markers_for_insert, not adjust_markers_for_replace.
9807
9808 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
9809
9810 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
9811 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
9812 [HAVE_GRANDPT]: Define.
9813 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
9814
9815 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
9816 like SYSV_PTYS.
9817
9818 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
9819
9820 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
9821
9822 2000-05-20 Kenichi Handa <handa@etl.go.jp>
9823
9824 The following changes are to handle 8-bit characters in a
9825 multibyte buffer/string without facing with byte combining
9826 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
9827 eight-bit-graphic (for 0xA0..0xFF) are introduced.
9828
9829 * Makefile.in (fns.o): Depend on charset.h.
9830
9831 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
9832 convert it to unibyte.
9833 (make_string): Use parse_str_as_multibyte, not chars_in_text.
9834
9835 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
9836 apparent char boundary.
9837 (Fset_buffer_multibyte): Convert 8-bit characters in the range
9838 0x80..0x9F to/from multibyte form.
9839
9840 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
9841 to unibyte.
9842
9843 * callproc.c (Fcall_process): Always encode an argument string if
9844 it is multibyte. Setup src_multibyte and dst_multibyte members of
9845 process_coding properly.
9846
9847 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
9848 SPLIT_NON_ASCII_CHAR.
9849
9850 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
9851 as is.
9852 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
9853
9854 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
9855 (SPLIT_CHARACTER_SEQ): This macro deleted.
9856 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
9857 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
9858 and eight-bit-graphic.
9859 (char_to_string): Likewise. Signal an error for too large
9860 character code.
9861 (char_printable_p): Return 0 for 8-bit characters.
9862 (update_charset_table): Update iso_charset_table only when a final
9863 character is non-negative.
9864 (find_charset_in_text): Renamed from find_charset_in_str.
9865 Arguments and return value changed. Callers changed.
9866 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
9867 be -1 if CHARSET is used only internally.
9868 (Fmake_char_internal): Handle new charsets; eight-bit-control and
9869 eight-bit-graphic.
9870 (Fcharset_after): Simplified.
9871 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
9872 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
9873 (multibyte_chars_in_text): Simplified by assuming there's no
9874 invalid multibyte sequence.
9875 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9876 (str_as_unibyte): New functions.
9877 (Fstring): Simpified by assuming that byte combining never happens.
9878 (init_charset_once): Initialization for
9879 LEADING_CODE_8_BIT_CONTROL.
9880 (syms_of_charset): Intern and staticpro Qeight_bit_control and
9881 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
9882 eight-bit-control and eight-bit-graphic.
9883
9884 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
9885 (CHARSET_8_BIT_GRAPHIC): New macros.
9886 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
9887 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
9888 (CHARSET_REVERSE_CHARSET): Likewise.
9889 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
9890 eight-bit-graphic.
9891 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
9892 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
9893 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
9894 encounter an invalid multibyte sequence.
9895 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
9896 sequence is always valid.
9897 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
9898 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
9899 (CHAR_STRING): For 8-bit characters, call char_to_string.
9900 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
9901 multibyte sequence is always valid.
9902 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
9903 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9904 (str_as_unibyte): Extern them.
9905 (BCOPY_SHORT): Fix a bug.
9906 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
9907 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
9908 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
9909 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
9910
9911 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
9912 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
9913 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
9914 (EMIT_BYTES): New macros.
9915 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
9916 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
9917 macros deleted.
9918 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
9919 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
9920 check the validity of multibyte sequence.
9921 (decode_coding_emacs_mule): New function.
9922 (encode_coding_emacs_mule): New macro.
9923 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
9924 the source.
9925 (DECODE_ISO_CHARACTER): Just return a character code.
9926 (DECODE_COMPOSITION_START): Set coding->result instead of result.
9927 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
9928 EMIT_CHAR to produced decoded characters. Exit the loop only by
9929 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
9930 block here.
9931 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
9932 only position codes for an invalid character.
9933 (encode_designation_at_bol): Return new destination pointer. 5th
9934 arg DSTP is changed to DST.
9935 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
9936 from the source by ONE_MORE_CHAR. Don't handle the case of last
9937 block here.
9938 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
9939 macros deleted.
9940 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
9941 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
9942 TWO_MORE_BYTES to fetch a byte from the source.
9943 (encode_eol): Pay attention to coding->src_multibyte.
9944 (detect_coding, detect_eol): Preserve members src_multibyte and
9945 dst_multibyte.
9946 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
9947 (encoding_buffer_size): Set magnification to 3 for all coding
9948 systems that require encoding.
9949 (ccl_coding_driver): For decoding, be sure that the result is
9950 valid multibyte sequence.
9951 (decode_coding): Initialize coding->errors and coding->result.
9952 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
9953 and raw-text, always call decode_eol. Handle the case of last
9954 block here. If not coding->dst_multibyte, convert the resulting
9955 sequence to unibyte.
9956 (encode_coding): Initialize coding->errors and coding->result.
9957 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
9958 and raw-text, always call encode_eol. Handle the case of last
9959 block here.
9960 (shrink_decoding_region, shrink_encoding_region): Detect cases
9961 that we can't skip data more rigidly.
9962 (code_convert_region): Setup src_multibyte and dst_multibyte
9963 members of coding. For decoding, if the buffer is multibyte,
9964 convert the source sequence to unibyte in advance. For encoding,
9965 if the buffer is multibyte, convert the resulting sequence to
9966 multibyte afterward.
9967 (run_pre_post_conversion_on_str): New function.
9968 (code_convert_string): Deleted and divided into the following two.
9969 (decode_coding_string, encode_coding_string): New functions.
9970 (code_convert_string1, code_convert_string_norecord): Call one of
9971 above.
9972 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
9973 MAKE_NON_ASCII_CHAR.
9974 (Fset_terminal_coding_system_internal)
9975 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
9976 and dst_multibyte members.
9977 (init_coding_once): Initialize iso_code_class with new enum
9978 ISO_control_0 and ISO_control_1.
9979
9980 * coding.h (enum iso_code_class_type): Member ISO_control_code is
9981 devided into ISO_control_0 and ISO_control_1.
9982 (struct coding_system): New members src_multibyte, dst_multibyte,
9983 errors, and result. Delete member fake_multibyte.
9984 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
9985 nonzero.
9986 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
9987 nonzero.
9988
9989 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
9990 (Faset): Likewise.
9991
9992 * editfns.c (Fformat): Be sure to convert 8-bit characters to
9993 multibyte form.
9994 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
9995 combining occurs.
9996 (Ftranspose_region): Delete codes for handling byte combining.
9997
9998 * fileio.c (Finsert_file_contents): Setup src_multibyte and
9999 dst_multibyte members of coding. On handling REPLACE on unibyte
10000 buffer, convert the result of decode_coding to unibyte. On
10001 inserting into a mutibyte buffer, always call code_convert_region.
10002 (e_write): Setup coding->src_multibyte according to the
10003 multibyteness of the source (buffer or string).
10004
10005 * fns.c (concat): Handle 8-bit characters correctly.
10006 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
10007 unibyte in the result.
10008 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
10009 valid multibyte form in the result.
10010 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10011 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
10012 return -1, signal an error.
10013 (base64_encode_1): New arg MULTIBYTE. Get each character by
10014 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
10015 character is found, return -1.
10016 (Fbase64_decode_region): Delete codes for handling byte-combining.
10017 Treat each decoded byte as a unibyte character.
10018 (Fbase64_decode_string): Return unibyte string.
10019 (Fcompare_strings, concat, string_byte_to_char): Use
10020 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
10021 FETCH_STRING_CHAR_ADVANCE.
10022 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10023 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
10024
10025 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
10026 SPLIT_NON_ASCII_CHAR.
10027 (fontset_ref_via_base, fontset_set): Likewise
10028
10029 * insdel.c (adjust_markers_for_record_delete): Deleted.
10030 (adjust_markers_for_insert): Argument changed. Caller changed.
10031 (adjust_markers_for_replace): Likewise.
10032 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
10033 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
10034 (copy_text): Delete unused local varialbe c_save. For converting
10035 to multibyte, be sure to make all 8-bit characters in valid
10036 multibyte form.
10037 (count_size_as_multibyte): Handle 8-bit characters correctly.
10038 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10039 (adjust_after_replace, replace_range, del_range_2)
10040 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
10041 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
10042 (adjust_after_replace, replace_range, del_range_2) Delete codes for
10043 handling byte combining.
10044 (adjust_before_replace): Deleted.
10045
10046 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
10047 SPLIT_NON_ASCII_CHAR.
10048 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
10049 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10050 (Fkey_description): Likewise.
10051
10052 * lread.c (read1): On reading multibyte string, be sure to make
10053 all 8-bit chararacters in valid multibyte form.
10054 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10055
10056 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
10057 unconditionally.
10058
10059 * process.c (Fstart_process): GCPRO current_dir before calling
10060 Ffind_operation_coding_system. Encode arguments here.
10061 (create_process): Don't encode arguments here. Setup
10062 src_multibyte and dst_multibyte members of struct coding.
10063 (read_process_output): Setup src_multibyte and dst_multibyte
10064 members of struct coding. If the output is to multibyte buffer,
10065 always decode the output of the process. Adjust the
10066 representation of 8-bit characters to the multibyteness of the output.
10067 (send_process): Setup coding->src_multibyte according to the
10068 multibyteness of the source.
10069
10070 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
10071 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
10072 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
10073
10074 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
10075
10076 * w16select.c (Fw16_set_clipboard_data): Setup members
10077 src_multibyte and dst_multibyte of coding. Adjusted for the
10078 change for find_charset_in_str.
10079 (Fw16_get_clipboard_data): Likewise.
10080
10081 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
10082 dst_multibyte of coding.
10083 (x_to_w32_font): Likewise.
10084
10085 * w32select.c (Fw32_set_clipboard_data): Setup members
10086 src_multibyte and dst_multibyte of coding. Adjusted for the
10087 change for find_charset_in_str.
10088 (Fw32_get_clipboard_data): Likewise.
10089
10090 * xdisp.c (get_next_display_element): Handle 8-bit characters
10091 correctly.
10092 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
10093 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
10094
10095 * xselect.c (selection_data_to_lisp_data): Setup members
10096 src_multibyte and dst_multibyte of coding. Adjusted for the
10097 change for find_charset_in_str.
10098 (lisp_data_to_selection_data): Likewise.
10099
10100 2000-05-19 Gerd Moellmann <gerd@gnu.org>
10101
10102 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
10103
10104 * dispextern.h (Vimage_types): Add extern declaration.
10105
10106 * xdisp.c (Vimage_types): Moved here from xfns.c.
10107 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
10108
10109 * xfns.c (Vimages_types): Moved to xdisp.c.
10110 (syms_of_xfns): Move `image-types' to xdisp.c.
10111
10112 * w32fns.c (Vimage_types): Removed.
10113 (syms_of_w32fns): Remove `image-types'.
10114
10115 2000-05-18 Kenichi Handa <handa@etl.go.jp>
10116
10117 * fns.c (map_char_table): Pay attention to character number of
10118 charset. Check the validity of charset at the first level. For
10119 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
10120 the default value.
10121
10122 * fontset.c: Include "buffer.h".
10123 (fs_load_font): If the face has fontset, record the face ID in
10124 that fontset.
10125 (Finternal_char_font): New function.
10126 (accumulate_font_info): New function.
10127 (Ffontset_info): Rewritten for the new fontset implementation.
10128 (syms_of_fontset): Register Vdefault_fontset in the first element
10129 of Vfontset_table. Include Vdefault_fontset in
10130 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
10131 function.
10132
10133 2000-05-16 Dave Love <fx@gnu.org>
10134
10135 * m/iris5d.h: Deleted -- unused.
10136
10137 2000-05-16 Gerd Moellmann <gerd@gnu.org>
10138
10139 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
10140 `invalid' instead of `illegal'.
10141
10142 * indent.c (Fmove_to_column): When ending within a tab, insert
10143 spaces first so that markers at the end of the tab get adjusted.
10144
10145 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
10146 buffer list that wasn't selected in that frame.
10147
10148 * filelock.c (get_boot_time): To obtain an 8 char file name, which
10149 is needed on mescaline, use a 2 char prefix, and call
10150 make_temp_name with second arg non-zero.
10151
10152 * fileio.c (make_temp_name): New function, extracted from
10153 Fmake_temp_name.
10154 (Fmake_temp_name): Use it.
10155
10156 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
10157
10158 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
10159
10160 2000-05-15 Gerd Moellmann <gerd@gnu.org>
10161
10162 * Makefile.in (lisp): Add env.elc.
10163
10164 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
10165
10166 2000-05-12 Gerd Moellmann <gerd@gnu.org>
10167
10168 * search.c (Freplace_match): Handle case of `\N' in the
10169 replacement when there's no group N.
10170
10171 2000-05-11 Gerd Moellmann <gerd@gnu.org>
10172
10173 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
10174 of the message to message_dolog.
10175
10176 * keyboard.c (read_char): Don't clear current message for help
10177 events; let the code handling help events handle this. Change
10178 code detecting help events that should be ignored.
10179
10180 * xdisp.c (handle_single_display_prop): Don't try to set PT if
10181 we're interating over a string.
10182
10183 2000-05-09 Dave Love <fx@gnu.org>
10184
10185 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
10186 that offset before writing. Move gcpro region past call of
10187 Ffile_regular_p.
10188
10189 2000-05-04 Dave Love <fx@gnu.org>
10190
10191 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
10192
10193 2000-05-04 Gerd Moellmann <gerd@gnu.org>
10194
10195 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
10196 of inserted characters when BUF equals the current buffer, and PT
10197 is in front of or equal to FROM.
10198
10199 2000-05-03 Gerd Moellmann <gerd@gnu.org>
10200
10201 * xdisp.c (handle_single_display_prop): If display property value
10202 is invalid, or something not supported on the frame, restore
10203 iterator's position to what it was initially. Make sure to return
10204 0 for invalid and unsupported property values.
10205
10206 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
10207 that x_per_char_metric returns null.
10208
10209 2000-05-02 Gerd Moellmann <gerd@gnu.org>
10210
10211 * xterm.h (struct face): Add forward declaration.
10212 (struct image): Ditto.
10213 (image_ascent): Add prototype.
10214
10215 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
10216 (x_draw_image_relief, x_draw_image_foreground_1): Call function
10217 image_ascent instead of using IMAGE_ASCENT.
10218
10219 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
10220 (IMAGE_ASCENT): Removed.
10221
10222 * xfns.c (Qcenter): New variable.
10223 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
10224 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
10225 (image_ascent): New function.
10226 (lookup_image): Recognize `:ascent center'.
10227 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
10228 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
10229 (xbm_load): Don't set image's ascent here.
10230 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
10231 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
10232 check ascent values here.
10233 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
10234 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
10235 (syms_of_xfns): Initialize Qcenter.
10236
10237 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
10238 to the limits, increase the limits.
10239
10240 2000-05-01 Kenichi Handa <handa@etl.go.jp>
10241
10242 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10243 Check Vfont_encoding_alist against the full name of the opened font.
10244
10245 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10246
10247 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10248 taller than the window.
10249
10250 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10251
10252 * xfaces.c (realize_x_face): Fix the argument of the second
10253 xassert. BASE_FACE may not be a face for ASCII.
10254
10255 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10256
10257 * print.c (print_object): Treat print-length < 0 as nil.
10258
10259 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10260
10261 * s/freebsd.h (TERMCAP_OBJ): Removed.
10262 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10263
10264 * lread.c (read1): Don't treat period followed by certain
10265 characters as symbol start.
10266
10267 * xfns.c (slurp_file): New function.
10268 (xbm_image_p): Handle case of in-memory XBM files.
10269 (xbm_scan): Rewritten to work on memory buffers instead of files.
10270 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10271 Work on memory buffers instead of files. If DATA is null test
10272 if buffer looks like an in-memory XBM file.
10273 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10274 memory buffers instead of files.
10275 (xbm_file_p): New function.
10276 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10277
10278 * lread.c (end_of_file_error): New function.
10279 (read1): Call it instead of signaling `end-of-file' directly.
10280
10281 * print.c (print_error_message): Print data of `end-of-file'
10282 with Fprinc instead of Fprin1.
10283
10284 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10285
10286 * window.c (freeze_window_start): Check that minibuffer scroll
10287 window isn't nil before extracting the window structure pointer
10288 from it.
10289
10290 * undo.c (record_delete): If we hit the end of the undo list, stop
10291 picking elements apart.
10292
10293 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10294
10295 * xdisp.c (display_line): If lines are continued, restore
10296 iterator's ascent/descent information to the values before the
10297 first glyph not fitting on the line.
10298
10299 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10300
10301 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10302 positions in glyph matrix. Don't compute new window end positions.
10303
10304 * dispnew.c (increment_matrix_positions): Renamed from
10305 increment_glyph_matrix_buffer_positions.
10306 (increment_row_positions): Renamed from
10307 increment_glyph_row_buffer_positions.
10308
10309 * dispextern.h: Change names of renamed functions from dispnew.c
10310 in prototypes.
10311
10312 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10313
10314 * fileio.c (Fdo_auto_save): Create directories for auto-save
10315 list file if necessary.
10316
10317 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10318 from buffer or frame.
10319 (automatic_hscrolling_p): New variable.
10320 (hscroll_windows): Scroll windows horizontally only if automatic
10321 hscrolling is allowed.
10322 (syms_of_xdisp): New variable `automatic-hscrolling'.
10323
10324 * frame.h (struct frame): Add member extra_line_spacing.
10325
10326 * xfns.c (x_set_line_spacing): New function.
10327 (Fx_create_frame): Set line spacing from resources.
10328 (Qline_spacing): New variable.
10329 (syms_of_xfns): Initialize Qline_spacing.
10330
10331 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10332
10333 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10334 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10335 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10336 extra_line_spacing from default value.
10337 (init_buffer_once): Initialize default value of extra_line_spacing.
10338
10339 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10340 and extra3.
10341
10342 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10343 prompt_width. Add extra line spacing.
10344
10345 * term.c (produce_glyphs): Remove reference to struct it's
10346 prompt_width.
10347
10348 * dispextern.h (struct it): Remove member prompt_width, add
10349 extra_line_spacing.
10350
10351 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10352
10353 * dispnew.c (update_frame_line): When writing a whole line, make
10354 sure cursor is in the right row afterwards, otherwise a use of
10355 capability `ch' in cmgoto might leave the cursor in the row below.
10356
10357 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10358
10359 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10360
10361 * keyboard.c (timer_check): Fix typo in comment.
10362
10363 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10364
10365 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10366 name change: ch -> character.
10367
10368 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10369
10370 * keyboard.c (echo_message_buffer): New variable.
10371 (echo_now): Set echo_message_buffer to the echo area buffer used
10372 to display the echo.
10373 (cancel_echoing): Reset echo_message_buffer to nil.
10374 (read_char): Code rewritten that handles canceling an echo or
10375 echoing a dash, respectively.
10376
10377 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10378 directory doesn't exist.
10379
10380 2000-04-19 Dave Love <fx@gnu.org>
10381
10382 * fns.c (syms_of_fns): Defsubr mapc.
10383 (concat): Don't allow numeric args.
10384 (Fconcat): Doc change.
10385
10386 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10387
10388 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10389 instead define end_match(1|2) more carefully.
10390 Use GET_CHAR_BEFORE_2 for `begline'.
10391
10392 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10393
10394 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10395 on 64-bit systems where NULL is defined as `0'.
10396
10397 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10398 the `variable argument list' to make it work on Alpha.
10399
10400 * m/alpha.h (_LP64) [!_LP64]: Define.
10401 (ORDINARY_LINK): Define for NetBSD.
10402
10403 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10404
10405 2000-04-19 Dave Love <fx@gnu.org>
10406
10407 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10408 change.
10409
10410 * Makefile.in (LIBS): Don't use.
10411 (GETLOADAVG_OBJ): Define again.
10412 (otherobj): Add GETLOADAVG_OBJ.
10413
10414 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10415
10416 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10417
10418 * lread.c (read_filtered_event): Cancel and start busy cursor.
10419
10420 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10421 that the per-character metrics may be null.
10422
10423 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10424
10425 * buffer.c (clone_per_buffer_values): New function.
10426 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10427 clone_per_buffer_values if CLONE is not nil.
10428
10429 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10430
10431 2000-04-16 Dave Love <fx@gnu.org>
10432
10433 * Makefile.in: Remove obsolete localcpp stuff.
10434 (GETLOADAVG_OBJ): Don't define.
10435 (obj): Move LIBOBJS...
10436 (otherobj): ... to here.
10437 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10438 whitespace-only lines after the continuation (Irix).
10439
10440 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10441
10442 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10443
10444 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10445
10446 2000-04-14 Dave Love <fx@gnu.org>
10447
10448 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10449 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10450 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10451 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10452 NLIST_STRUCT.
10453
10454 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10455 autoconfiscated HAVE_GETLOADAVG.
10456
10457 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10458 BROKEN_MKTIME.
10459
10460 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10461
10462 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10463 (fill_in_lock_file_name): Avoid existing files that aren't links.
10464
10465 2000-04-14 Dave Love <fx@gnu.org>
10466
10467 * Makefile.in (LIBS, LIBOBJS): New variable.
10468 (INTERVAL_SRC): Convert to make variable.
10469 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10470 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10471 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10472 add LIBOBJS.
10473 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10474 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10475 (shortlisp): Add facemenu, float-sup, frame.
10476 (SOME_MACHINE_LISP): Remove them from here.
10477 (LIBES): Change unused LDLIBS to autoconf LIBS.
10478
10479 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10480
10481 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10482
10483 * composite.c (update_compositions): If FROM and TO are not in a
10484 valid range, do nothing.
10485
10486 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10487
10488 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10489
10490 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10491
10492 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10493 as TERMCAP_OBJ.
10494
10495 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10496
10497 * fileio.c (a_write): Remove redundant semi-colons.
10498 (e_write): Return -1 if failed to write all the data.
10499 This fixes the changes made at 1999-12-15.
10500
10501 2000-04-12 Dave Love <fx@gnu.org>
10502
10503 * fns.c (mapcar1): Test for null vals to support mapc.
10504 (Fmapc): New function.
10505
10506 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10507
10508 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10509 (IT_frame_up_to_date): Support the buffer local value of
10510 cursor-type, if defined.
10511
10512 2000-04-10 Dave Love <fx@gnu.org>
10513
10514 * editfns.c (preceding-char, following-char): Doc fix.
10515
10516 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10517
10518 * Makefile.in (temacs): Revert 2000-03-12 change.
10519
10520 2000-04-10 Jason Rumney <jasonr@gnu.org>
10521
10522 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10523
10524 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10525
10526 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10527 area buffer, if it's not set up yet.
10528
10529 * indent.c (compute_motion): Set immediate_quit.
10530
10531 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10532
10533 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10534 (realize_tty_face): Suppress boldness if colors are the inverse of
10535 the default colors, and tty_suppress_bold_inverse_default_colors_p
10536 is set.
10537 (Ftty_suppress_bold_inverse_default_colors): New function.
10538 (syms_of_xfaces): Defsubr it.
10539
10540 * buffer.c (Frestore_buffer_modified_p): New function.
10541 (syms_of_buffer): Defsubr it.
10542
10543 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10544
10545 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10546 charset id (int) argument, not a charset (Lisp_Object).
10547
10548 * coding.h (code_convert_string): Declare.
10549 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10550 object, as the fourth argument to code_convert_string.
10551
10552 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10553 (Fset_fontset_font): Use EQ to compare lisp objects.
10554
10555 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10556
10557 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10558 a pointer that looks like a lisp object.
10559 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10560 zero, instead see whether it's an integer object, since they can't
10561 have intervals.
10562 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10563
10564 * dispnew.c (allocate_matrices_for_frame_redisplay)
10565 (direct_output_forward_char): Use X(U)INT and make_number as needed
10566 to convert between (unsigned) int values and lisp integers.
10567 * keyboard.c (read_key_sequence): Likewise.
10568 * lread.c (substitute_object_recurse): Likewise.
10569 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10570 * minibuf.c (do_completion, Fminibuffer_complete_word)
10571 (Fminibuffer_completion_help): Likewise.
10572 * term.c (produce_special_glyphs): Likewise.
10573
10574 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10575 * print.c (print_preprocess, print_object): Likewise.
10576
10577 * search.c (compile_pattern): Use NILP when checking for nil.
10578
10579 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10580 __OPTIMIZE__]: Provide a GNU C macro version that handles
10581 lisp-object unions.
10582 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10583 field, to better cope with ENABLE_CHECKING and calls that modify a
10584 Lisp_Object using its old value.
10585
10586 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10587
10588 * window.c (compare_window_configurations): Signal an error
10589 if parameters C1 or C2 aren't window configurations.
10590
10591 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10592 AFTER_POTENTIAL_GC calls around calls to functions that can
10593 signal an error and thus invoke the debugger.
10594
10595 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10596
10597 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10598 an error if decoding fails.
10599
10600 * keyboard.c (lispy_mouse_names): Variable removed.
10601 (Vlispy_mouse_stem): New variable.
10602 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10603 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10604 for any mouse button number. Increase size of mouse_syms and
10605 button_down_location as needed. Call modify_event_symbol with
10606 different arguments.
10607 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10608 Call modify_event_symbol with different arguments.
10609 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10610 for any button number. Call modify_event_symbol with different
10611 arguments.
10612 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10613 Accept a string for NAME_ALIST_OR_STEM.
10614
10615 * lisp.h (larger_vector): Add prototype.
10616
10617 * fns.c (larger_vector): Make externally visible.
10618
10619 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10620
10621 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10622
10623 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10624 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10625 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10626 we are between str1 and str2.
10627 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10628 (PATFETCH): Use `TRANSLATE'.
10629 (PATFETCH_RAW): Fetch multibyte char if applicable.
10630 (PATUNFETCH): Remove.
10631 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10632 When writing a char, write it directly into the pattern buffer rather
10633 than going needlessly through a temp char-array.
10634 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10635 multibyte magic and remove the useless `#ifdef emacs'.
10636 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10637 buffer.
10638
10639 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10640 conditional on `emacs'.
10641
10642 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10643
10644 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10645
10646 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10647 non-union-type versions of XMARK and friends here, because XMARK
10648 and friends won't work on an integer field if NO_UNION_TYPE is not
10649 defined.
10650 (make_number): Define as a function if it's not defined as a macro.
10651
10652 * composite.c (run_composite_function): Use NILP when checking for nil.
10653 (syms_of_composite): Delete local var NARGS, pass an int as first
10654 argument to Fmake_hash_table.
10655
10656 * editfns.c (text_property_stickiness): Use NILP to test
10657 Lisp_Object boolean value.
10658 (Fmessage_or_box): Don't use NILP to test int variable.
10659 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10660 problems reading from and changing the same lisp value in an
10661 XSETSTRING call.
10662
10663 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10664
10665 * term.c (TN_no_color_video): New variable.
10666 (term_init): Intitialize TN_no_color_video.
10667 (enum no_color_bit): New enumeration.
10668 (MAY_USE_WITH_COLORS_P): New macro.
10669 (turn_on_face): Use it to determine if attributes may be used
10670 combined with colors.
10671
10672 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10673
10674 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10675 with int lvalues via casts; instead, just yield lisp object lvalues.
10676 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10677 proper accessor macros.
10678 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10679 (grow_mini_window): Fix typo getting int value of root->height.
10680
10681 * xdisp.c (compute_string_pos): Fix order of arguments to
10682 string_pos_nchars_ahead.
10683 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10684 count arg to variable-arg routines like Frun_hook_with_args and
10685 Fformat.
10686 (back_to_previous_visible_line_start)
10687 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10688 fixed-arg routines like Fget_char_property and Fmake_string.
10689 (reconsider_clip_changes): Use XINT when comparing integer lisp
10690 objects, or passing them as int arguments.
10691 (mark_window_display_accurate, insert_left_trunc_glyphs)
10692 (append_space, extend_face_to_end_of_line): Use make_number when
10693 storing or passing integer values as lisp objects.
10694 (set_cursor_from_row, highlight_trailing_whitespace): Use
10695 INTEGERP, not implicit test against zero, for glyph object.
10696 (try_window_id): Don't use make_number when we want an int value.
10697
10698 * xfaces.c (xlfd_symbolic_value): Make last argument a
10699 Lisp_Object, to be consistent with callers.
10700 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10701 (lface_hash): Apply XFASTINT to lisp values before folding in.
10702
10703 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10704 fill in window width and height. Pass an int, not a lisp object,
10705 as first arg to Finsert.
10706
10707 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10708
10709 * xfaces.c (realize_basic_faces): Block input while realizing
10710 the faces.
10711
10712 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10713
10714 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10715
10716 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10717
10718 * xterm.c (x_produce_glyphs): When displaying unibyte text
10719 or ASCII, handle case that per-char metric is null.
10720
10721 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10722
10723 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10724
10725 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10726 (XSUBR, XBUFFER): Verify correct object type before returning
10727 pointer, using eassert.
10728 * frame.h (XFRAME): Likewise.
10729
10730 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10731 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10732 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10733 * data.c (set_internal): Likewise.
10734 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10735 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10736 * fileio.c (auto_save_1): Likewise.
10737 * insdel.c (check_markers): Likewise.
10738 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10739 * undo.c (record_insert): Likewise.
10740 * vmsproc.c (child_sig): Likewise.
10741 * window.c (unshow_buffer, window_loop): Likewise.
10742 * xterm.c (x_erase_phys_cursor): Likewise.
10743
10744 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10745
10746 * xfns.c (free_image_cache): Free the cache structure itself
10747 last, after all its members have been freed.
10748
10749 * lisp.h (xstrdup): Add prototype.
10750
10751 * alloc.c (xstrdup): Moved here from xfaces.c.
10752 (allocating_for_lisp): Variable removed.
10753 (lisp_malloc): Block input around the calls to malloc and mem_insert.
10754
10755 * xfaces.c (realize_tty_face): Use find_symbol_value instead
10756 of Fsymbol_value.
10757 (xstrdup): Moved to alloc.c.
10758
10759 2000-03-29 Ken Raeburn <raeburn@gnu.org>
10760
10761 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
10762
10763 * emacs.c (main): Fix sense of no-loadup test.
10764
10765 * config.in (ENABLE_CHECKING): Undef.
10766
10767 * lisp.h (struct interval): Replace "parent" field with a union of
10768 interval pointer and Lisp_Object; add new bitfield to use as
10769 discriminant. Change other flag fields to bitfields.
10770 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
10771 is defined and the supplied test fails, print a message and abort.
10772 (eassert): New macro. Use CHECK to provide an assert-like facility.
10773
10774 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
10775 pointers; abort if the value looks like a lisp object.
10776 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
10777 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
10778 Modify for new interval parent definition.
10779
10780 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
10781 (UNMARK_BALANCE_INTERVALS): Update references that need an
10782 addressable lisp object in the interval structure.
10783 (die): New function.
10784 (suppress_checking): New variable.
10785
10786 * intervals.c (interval_start_pos): Just return 0 if there's no
10787 parent object.
10788
10789 2000-03-29 Gerd Moellmann <gerd@gnu.org>
10790
10791 * lread.c (read1): Accept `.' (period) as symbol start like in CL
10792 and earlier Emacs versions.
10793
10794 * keyboard.c (Ftop_level): Cancel busy-cursor.
10795
10796 * eval.c (call_debugger): Cancel busy-cursor.
10797
10798 2000-03-29 Kenichi Handa <handa@etl.go.jp>
10799
10800 * search.c (Freplace_match): Adjust multibyteness of the current
10801 buffer and NEWTEXT. Free allocated memory before signaling an error.
10802
10803 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
10804
10805 * regex.c (analyse_first): New function obtained by ripping out most
10806 of re_compile_fastmap and generalizing it a little bit so that it
10807 can also just return whether a given (sub)pattern can match the empty
10808 string or not.
10809 (regex_compile): Use `analyse_first' to decide whether the loop-check
10810 needs to be done or not for *, +, *? and +? (the loop check is costly
10811 for non-greedy repetition).
10812 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
10813
10814 2000-03-28 Dave Love <fx@gnu.org>
10815
10816 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
10817
10818 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
10819
10820 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
10821
10822 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
10823 an expression.
10824 (enum re_opcode_t): Update description of succeed_n.
10825 (PATFETCH): Always define.
10826 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
10827 operators, char classes, shy-groups and intervals).
10828 Optimize special cases of intervals so as to only use succeed_n and
10829 jump_n when really needed.
10830 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
10831 that we don't have to handle the special cases any more.
10832 Simplify on_failure_jump handling as well.
10833
10834 2000-03-28 Jason Rumney <jasonr@gnu.org>
10835
10836 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
10837
10838 2000-03-27 Gerd Moellmann <gerd@gnu.org>
10839
10840 * s/freebsd.h (GC_SETJMP_WORKS): Define.
10841
10842 * s/msdos.h (GC_SETJMP_WORKS): Define.
10843
10844 * alloc.c (mark_maybe_object): New function.
10845 (mark_memory): Use it.
10846 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
10847 (setjmp_tested_p, longjmp_done): New variables.
10848 (test_setjmp): New function.
10849 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
10850 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
10851
10852 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
10853 to DEC_TEXT_POS and INC_TEXT_POS.
10854
10855 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
10856 with parameter MULTIBYTE_P.
10857
10858 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
10859
10860 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
10861 buffers because it looks for multibyte character byte sequences
10862 which don't exist in unibyte text.
10863
10864 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
10865
10866 * xfaces.c (register_color, unregister_color, unregister_colors)
10867 [DEBUG_X_COLORS]: New functions.
10868 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
10869
10870 * xfns.c (x_set_cursor_color): Get color reference counts right.
10871
10872 * xterm.c (x_copy_color): New function.
10873 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
10874
10875 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
10876 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
10877 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
10878 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
10879 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
10880 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
10881 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
10882 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
10883 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
10884 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
10885
10886 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
10887 names for handling per-buffer variables.
10888
10889 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
10890 instead of MAX_BUFFER_LOCAL_VARS.
10891 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
10892
10893 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
10894
10895 * xfns.c (x_specified_cursor_type): New function.
10896 (x_set_cursor_type): Use it.
10897
10898 * buffer.h (struct buffer): Add cursor_type.
10899
10900 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
10901
10902 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
10903 (print_partial_compiled_pattern, re_compile_fastmap):
10904 Handle new opcode.
10905 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
10906 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
10907 executing it as well as when popping it off the stack to find infinite
10908 loops in non-greedy repetition operators.
10909
10910 2000-03-26 Gerd Moellmann <gerd@gnu.org>
10911
10912 * doc.c (Qfunction_documentation): New variable.
10913 (syms_of_doc): Initialize Qfunction_documentation.
10914 (Fdocumentation): If FUNCTION is a symbol with non-nil
10915 `function-documentation' property, return a documentation derived
10916 from that.
10917
10918 * buffer.c (syms_of_buffer): Add default-cursor-type.
10919 (init_buffer_once): Don't let cursor_type have a local value
10920 in every buffer.
10921
10922 * xterm.c (x_display_and_set_cursor): Choose cursor depending
10923 on buffer-local value of cursor_type.
10924 (x_draw_bar_cursor): Add parameter WIDTH.
10925
10926 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
10927 (init_buffer_once): Set default cursor_type value to t.
10928 Mark cursor_type as local everywhere.
10929 (syms_of_buffer): New per-buffer variable cursor-type.
10930
10931 * buffer.h (struct buffer): Remove member local_var_flags,
10932 add local_flags.
10933 (MAX_BUFFER_LOCAL_VARS): New macro.
10934 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
10935 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
10936 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
10937 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
10938
10939 * print.c (print_object): Use new macros for per-buffer variables.
10940
10941 * category.c (Fset_category_table): Use new macros for per-buffer
10942 variables.
10943
10944 * buffer.c (buffer_permanent_local_flags): Make a char array.
10945 (max_buffer_local_idx): New variable.
10946 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
10947 for new handling of per-buffer variables.
10948 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
10949 (init_buffer_once): Initialize per-buffer vars differently.
10950 Set max_buffer_local_idx.
10951
10952 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
10953 variables.
10954
10955 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
10956
10957 * data.c (do_symval_forwarding, store_symval_forwarding)
10958 (find_symbol_value, set_internal, default_value, Fset_default)
10959 (Fkill_local_variable, Flocal_variable_p): Use new macros for
10960 per-buffer variables.
10961
10962 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
10963
10964 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10965
10966 * xterm.c (x_term_init): Unblock input around call1 of
10967 Qvendor_specific_keysyms.
10968
10969 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
10970 (find_defun_start): Consider an open parenthesis in column 0
10971 a defun start only if open_paren_in_column_0_is_defun_start is set.
10972 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
10973
10974 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
10975
10976 * eval.c (Fautoload): Add entry in load-history (if after dump).
10977 * lread.c (load-history): Update docstring.
10978
10979 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10980
10981 * indent.c (Fvertical_motion): Always use the current buffer.
10982 Temporarily change the window's buffer, if necessary.
10983
10984 2000-03-23 Gerd Moellmann <gerd@gnu.org>
10985
10986 * xterm.c (fast_find_position): Make sure not to consider rows
10987 not visible in the window.
10988
10989 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
10990
10991 * regex.c (enum syntaxcode): Provide default for non-Emacs.
10992 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
10993
10994 2000-03-22 Jason Rumney <jasonr@gnu.org>
10995
10996 * w32menu.c (single_submenu): Set help string to NULL if none.
10997 (w32_menu_show): Set help string correctly.
10998 (add-menu-item): Set help string in MIIM_DATA for menu item.
10999 Load SetMenuItemInfoA explicitly.
11000 (w32_menu_display_help): New function.
11001
11002 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
11003 (QCdata): Moved to xdisp.c.
11004
11005 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
11006 (Vw32_charset_to_codepage_alist): Removed.
11007 (Vw32_charset_info_alist): New variable.
11008 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
11009 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
11010 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
11011 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
11012 with TODO comment.
11013 (w32_codepage_for_font): Use Vw32_charset_info_alist.
11014 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
11015 Define Vw32_charset_info_alist and w32_charset symbols.
11016
11017 2000-03-22 Jason Rumney <jasonr@gnu.org>
11018
11019 * makefile.nt (w32bdf.obj): Update dependencies.
11020
11021 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
11022
11023 * w32fns.c: Include fontset.h after dispextern.h.
11024 (Fx_create_frame): Do not create fontset.
11025 (w32_load_system_font): Doc fix.
11026 (Fx_close_connection): Free full_name if it is not shared.
11027
11028 * w32term.c: Include fontset.h after dispextern.h.
11029 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
11030 Callers updated.
11031 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
11032 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
11033 (w32_font_is_double_byte): New function, needs body.
11034 (x_append_glyph): Set glyph->glyph_not_available_p.
11035 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11036 it->charset. If it->multibyte_p is zero and it->c is a multibyte
11037 character, convert it to a unibyte character.
11038 (struct glyph_string): Delete member `charset'.
11039 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
11040 calculating it is found.
11041 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11042 the case that per char metric is not available correctly.
11043 (x_fill_glyph_string): Handle the case that the specific glyph is
11044 not available correctly.
11045 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11046 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11047 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11048 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11049 fontset. Don't call FS_LOAD_FONT.
11050
11051 2000-03-22 Ken Raeburn <raeburn@gnu.org>
11052
11053 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
11054 (INT_LISPLIKE): New macro.
11055 (NULL_INTERVAL_P): Use it.
11056 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
11057 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
11058 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
11059
11060 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
11061 explicit references to "parent" field of struct interval and
11062 associated unclean type conversions.
11063 * intervals.c (create_root_interval, root_interval, rotate_right)
11064 (rotate_left, balance_possible_root_interval, split_interval_right)
11065 (split_interval_left, interval_start_pos, find_interval)
11066 (next_interval, previous_interval, update_interval)
11067 (adjust_intervals_for_insertion, delete_node, delete_interval)
11068 (adjust_intervals_for_deletion, merge_interval_right)
11069 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
11070 (copy_intervals_to_string): Likewise.
11071 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
11072 Likewise.
11073 * syntax.c (update_syntax_table): Likewise.
11074
11075 * intervals.c (reproduce_tree_obj): New function, like
11076 reproduce_tree but takes a Lisp_Object for the parent. Declare
11077 with prototype.
11078 (graft_intervals_into_buffer): Use it when appropriate.
11079 (reproduce_tree): Declare with prototype.
11080 (balance_possible_root_interval): Check that the parent is a lisp
11081 object before trying to examine its type.
11082
11083 2000-03-22 Gerd Moellmann <gerd@gnu.org>
11084
11085 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
11086 as strings only if both are known to be strings.
11087
11088 * s/openbsd.h (LIBS_TERMCAP): Undef.
11089
11090 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
11091
11092 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
11093 definitions for non-Emacs compilation.
11094 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
11095 outside of `#ifdef emacs'.
11096 (print_partial_compiled_pattern): Update.
11097 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
11098 (re_compile_fastmap): Merge handling of charset and charset_not (for
11099 emacs and non-emacs compilation as well).
11100 Similarly for (not)categoryspec and (not)syntaxspec.
11101 Don't use the fastmap when reaching `anychar' since the added
11102 complexity is not justified.
11103 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
11104 and (not)syntaxspec. Merge (not)categoryspec.
11105
11106 2000-03-22 Kenichi Handa <handa@etl.go.jp>
11107
11108 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
11109 (FACE_FOR_CHAR): Define them differently for the configuration of
11110 --without-x.
11111
11112 2000-03-21 Dave Love <fx@gnu.org>
11113
11114 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
11115 doc string.
11116
11117 2000-03-21 Gerd Moellmann <gerd@gnu.org>
11118
11119 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
11120 (lface_fully_specified_p): Don't check contents of
11121 LFACE_FONT_INDEX because that attribute is optional.
11122 (realize_x_face): Remove now unwarranted xassert.
11123
11124 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
11125
11126 The following changes are to make font selection based on
11127 characters, not charset. In addition, they recover fontset
11128 facilities while utilizing the new font selection mechanism.
11129
11130 * Makefile.in (fontset.o): Depend on dispextern.h.
11131
11132 * alloc.c (mark_face_cache): Don't mark face->registry.
11133
11134 * dispextern.h (struct glyph): New member glyph_not_available_p.
11135 Use 22 bits for face_id.
11136 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
11137 (struct face): Delete member registry, new member ascii_face.
11138 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
11139 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
11140 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
11141 (struct it): Delete member charset, new member glyph_not_available_p.
11142
11143 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
11144 (struct fontset_info, struct fontset_data): Structs removed.
11145 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
11146 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
11147 (fs_load_font, fs_query_fontset): Adjusted for new argument.
11148 (fs_free_face_fontset, fontset_font_pattern)
11149 (face_suitable_for_char_p, face_for_char)
11150 (make_fontset_for_ascii_face): Extern them.
11151 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
11152 (FS_LOAD_FACE_FONT): New macro.
11153
11154 * fontset.c: All codes rewritten or adjusted for the change of
11155 fontset implementation. Now fontset is represented by char table.
11156 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
11157 Variables removed.
11158 (my_strcasecmp): Function removed.
11159 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
11160 (AREF, ASIZE): New macros.
11161 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
11162 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
11163 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
11164 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
11165 (fontset_id_valid_p, font_family_registry, fontset_name)
11166 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
11167 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
11168 New functions.
11169 (fs_load_font): New arg FACE. Caller changed.
11170 (fs_query_fontset): Argument changed. Caller changed.
11171 (Fquery_fontset): call fs_query_fontset.
11172 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
11173 Functions removed.
11174 (clear_fontset_elements, check_registry_encoding)
11175 (check_fontset_name): New functions.
11176 (syms_of_fontset): Set char-table-extra-slots property of fontset
11177 to 3. Staticpro and initialize Vfontset_table and
11178 Vdefault_fontset. Defsubr fontset_font and fontset_list.
11179
11180 * frame.h (struct frame): Member `fontset_data' removed.
11181 (FRAME_FONTSET_DATA): Macro removed.
11182
11183 * frame.c (make_frame): Don't allocate f->fontset_data.
11184 (Fdelete_frame): Don't free f->fontset_data.
11185
11186 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
11187
11188 * xdisp.c (charset_at_position): Function removed.
11189 (init_iterator): Don't set member charset of struct `it'.
11190 (handle_face_prop, reseat_to_string, set_iterator_to_next)
11191 (next_element_from_display_vector, insert_left_trunc_glyphs):
11192 Likewise.
11193 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
11194 FACE_FOR_CHARSET.
11195 (get_next_display_element, append_space)
11196 (extend_face_to_end_of_line): Likewise.
11197
11198 * xfaces.c (Qx_charset_registry, Vface_default_registry):
11199 Variables removed.
11200 (clear_font_table, frame_update_line_height, load_face_font):
11201 Adjusted for the change of fontset implementation.
11202 (load_face_fontset_font): Function removed.
11203 (pixel_point_size): New function.
11204 (font_list): Argument type changed. Caller changed.
11205 (LFACE_FONT): New macro.
11206 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
11207 (set_lface_from_font_name): Type of arg FONTNAME is changed to
11208 Lisp_Object. Determine the font name by actually loading a font
11209 by the specified pattern. Set LFACE_FONT (lface) to the specified
11210 pattern. Even if a font is not found, don't try alternatives.
11211 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
11212 (set_font_frame_param): If `font' is specified in lface, use it.
11213 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
11214 (lface_same_font_attributes_p): Likewise.
11215 (make_realized_face): Arguent changed. Caller changed. Set
11216 face->ascii_face to face itself.
11217 (free_realized_face): Free face->fontset if face is for ASCII.
11218 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
11219 (deduce_unibyte_registry, x_charset_registry): Functions removed.
11220 (free_realized_multibyte_face): New function.
11221 (lookup_face, lookup_named_face, lookup_derived_face): Argument
11222 changed. Caller changed.
11223 (try_font_list): Argument type changed.
11224 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
11225 (choose_face_font): Argument changed. Handle fontset properly.
11226 (choose_face_fontset_font): Function removed.
11227 (realize_default_face, realize_named_face): Don't remove the
11228 former face here.
11229 (realize_face): Argument changed. Caller changed. Remove face
11230 with the arg former_face_id in advance. Load font for the new face.
11231 (realize_x_face): Argument changed. Caller changed. For a
11232 multibyte character, share fontset with base_face. For a single
11233 byte character, make a new realized fontset. Don't load a font here.
11234 (realize_tty_face): Argument changed. Caller changed.
11235 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
11236 (face_at_buffer_position): Don't check multibyte_p for returning
11237 DEFAULT_FACE_ID.
11238 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
11239 FACE_SUITABLE_FOR_CHARSET_P.
11240 (syms_of_xfaces): Remove code for Qx_charset_registry and
11241 Vface_default_registry.
11242
11243 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11244 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11245 (x_per_char_metric): Don't try FONT->default_char. Even if
11246 pcm->width is zero, glyph bits may exist.
11247 (x_encode_char): Always initialize char2b->byte1.
11248 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11249 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11250 (x_append_glyph): Set glyph->glyph_not_available_p.
11251 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11252 it->charset. Handle the case that per char metric is not
11253 available. If it->multibyte_p is zero and it->c is a multibyte
11254 character, convert it to a unibyte character.
11255 (struct glyph_string): Delete member `charset'.
11256 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11257 the case that per char metric is not available correctly.
11258 (x_fill_glyph_string): Handle the case that the specific glyph is
11259 not available correctly.
11260 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11261 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11262 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11263 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11264 fontset. Don't call FS_LOAD_FONT.
11265
11266 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11267 (x_create_tip_frame): Likewise.
11268 (Fx_close_connection): Free full_name of font_info.
11269
11270 * fns.c (optimize_sub_char_table): New function.
11271 (Foptimize_char_table): New function.
11272 (syms_of_fns): Defsubr Soptimize_char_table.
11273
11274 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11275
11276 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11277 only if buffer is displayed in some window.
11278
11279 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11280 (try_window_reusing_current_matrix): Don't call scroll run
11281 function if run's current and desired position are the same;
11282 this prevents cursor flickering.
11283
11284 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11285
11286 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11287
11288 * regex.c (RE_STRING_CHAR): New macro.
11289 (GET_CHAR_AFER_2): Remove.
11290 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11291 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11292 (print_partial_compiled_pattern, re_compile_fastmap)
11293 (re_match_2_internal): Remove on_failure_jump_exclusive.
11294 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11295 optimization only need to work for * (ie. can use of_keep_string_jump).
11296 Remove the special case for .*\n since it is now covered by the general
11297 optimization.
11298 (re_search_2): Don't bother with `room'.
11299 (skip_one_char): New function.
11300 (skip_noops): Simplify since `memory' is not needed any more.
11301 (mutually_exclusive_p): Restructure slightly to use `switch' and
11302 add handling for "all" remaining cases.
11303 (re_match_2_internal): Change on_failure_jump_smart to use
11304 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11305 rather than on_failure_jump_exclusive.
11306
11307 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11308
11309 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11310 number of bits per RGB because it's everywhere used as the depth
11311 of the visual.
11312
11313 * term.c (calculate_costs): Remove code dealing with X frames.
11314
11315 2000-03-19 Richard M. Stallman <rms@gnu.org>
11316
11317 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11318
11319 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11320
11321 * lread.c (read_integer): Unread the last char not consumed.
11322
11323 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11324
11325 * xterm.c (x_update_window_cursor): Don't update in frames
11326 which are in the process of being deleted.
11327
11328 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11329
11330 * Makefile.in (mostlyclean): Add `*.core'.
11331 (clean): Add `bootstrap-emacs'.
11332
11333 * lread.c (read_integer): New function.
11334 (read1): Support read syntax #o, #x, #b, #r.
11335
11336 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11337
11338 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11339 make sure POINTER_TO_OFFSET gives the same value before and after
11340 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11341 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11342 (debug): Now only active if > 0 rather than if != 0.
11343 (DEBUG_*): Update for the new meaning of `debug'.
11344 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11345 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11346 in `succeed_n', `jump_n' and `set_number_at'.
11347 (store_op1, store_op2, insert_op1, insert_op2)
11348 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11349 (group_in_compile_stack): Move to after its arg's types are
11350 declared and add a prototype.
11351 (PATFETCH): Define in terms of PATFETCH_RAW.
11352 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11353 (QUIT): Redefine as a nop except for NTemacs.
11354 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11355 indentation of the greedy-op and shy-group code.
11356 (at_(beg|end)line_loc_p): Fix argument's types.
11357 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11358 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11359 (MATCHING_IN_FIRST_STRING): Remove.
11360 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11361 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11362 QUIT unconditionally.
11363
11364 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11365
11366 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11367 a sole completion.
11368
11369 * process.c (send_process): Add a hint that the function
11370 can call Lisp code to its comment.
11371
11372 * lread.c (load_dangerous_libraries): New variable.
11373 (Vbytecomp_version_regexp): New variable.
11374 (safe_to_load_p): New function.
11375 (Fload): Handle files not compiled with Emacs specially.
11376 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11377
11378 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11379
11380 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11381
11382 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11383 support functions only if HAVE_X11R6_XIM is defined.
11384 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11385
11386 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11387
11388 * xfns.c (X_I18N_INHIBITED): Don't define.
11389 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11390 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11391
11392 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11393 (HAVE_X11R6_XIM): Define.
11394
11395 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11396
11397 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11398 If set, call XSynchronize.
11399
11400 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11401
11402 * regex.c: Declare a new type `re_char' used throughout the code
11403 for the string char type. It's `const unsigned char' to match the
11404 rest of Emacs. Consistently make sure all pointers to strings use
11405 it and make sure all pointers into the pattern use `unsigned char'.
11406 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11407 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11408 code duplication.
11409
11410 * charset.h (GET_CHAR_AFTER_2): Remove.
11411 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11412
11413 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11414
11415 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11416 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11417 of them try to use backquotes.
11418
11419 2000-03-12 Dave Love <fx@gnu.org>
11420
11421 * unexelf.c: Restore changes of 1999-10-19.
11422 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11423 fix its type and alignment; copy it from current process.
11424
11425 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11426
11427 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11428 has been found. Fix bug not computing timer's predecessor.
11429
11430 * fileio.c (Fread_file_name): Handle case that DIR contains a
11431 file name.
11432
11433 * window.c (Fsave_window_excursion): Doc fix.
11434
11435 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11436
11437 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11438
11439 * msdos.c (vga_installed): New function, code moved from
11440 dos_set_window_size.
11441 (Qbar, Qcursor_type, outside_cursor): New variables.
11442 (syms_of_msdos): Intern and staticpro them.
11443 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11444 shape used outside Emacs when called for the first time.
11445 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11446 cursor shape used outside Emacs.
11447 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11448 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11449 type has changed.
11450 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11451 parameters specify the cursor. Make qreverse a global
11452 variable (renamed to Qreverse).
11453
11454 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11455
11456 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11457
11458 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11459
11460 This is a big redesign of failure-stack and register handling, prompted
11461 by bugs revealed when trying to add shy-groups. Overall, what happened
11462 is that loops are now structured a little differently, groups can be
11463 shy and the code is a little simpler.
11464
11465 * regex.h: Update the copyright.
11466 (RE_SHY_GROUPS): New value.
11467 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11468 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11469
11470 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11471 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11472 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11473 for (start|stop)_memory since they now only take one argument (the
11474 second has becomes unnecessary).
11475 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11476 (print_compiled_pattern): Use %ld to printf long ints and flush to
11477 make debugging a little easier.
11478 (union fail_stack_elt): Make the integer unsigned.
11479 (struct fail_stack_type): Add a `frame' element.
11480 (INIT_FAIL_STACK): Init `frame' as well.
11481 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11482 (DEBUG_PUSH, DEBUG_POP): Remove.
11483 (NUM_REG_ITEMS): Remove.
11484 (NUM_NONREG_ITEMS): Adjust.
11485 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11486 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11487 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11488 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11489 New macros.
11490 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11491 address pushed is not the destination of the jump but the source
11492 of it instead.
11493 (NUM_FAILURE_ITEMS): Remove.
11494 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11495 registers before the actual failure point). Don't hardcode any
11496 meaning for str==NULL anymore.
11497 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11498 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11499 Remove.
11500 (REG_UNSET_VALUE): Use NULL (why not?).
11501 (compile_range): Remove declaration since it doesn't exist.
11502 (struct compile_stack_elt_t): Remove inner_group_offset.
11503 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11504 (regex_grow_registers): Remove dead code.
11505 (FIXUP_ALT_JUMP): New macro.
11506 (regex_compile): Add shy-groups Change loops to use
11507 on_failure_jump_smart&jump instead of
11508 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11509 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11510 variable to me). Use `jump' instead of `jump_past_alt' and don't
11511 bother with push_dummy_failure in alternatives since it is now
11512 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11513 emacs' for (re)allocating the stack.
11514 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11515 from loop when bufp->can_be_null rather than jumping to `done'.
11516 Avoid jumping backwards so as to ensure termination. Use
11517 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11518 backreferences. Remove dead code in handling of `anychar'.
11519 (skip_noops, mutually_exclusive_p): New functions taken from the
11520 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11521 improve mutually_exclusive_p to handle ".+\n".
11522 (lowest_active_reg, highest_active_reg)
11523 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11524 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11525 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11526 variables. Push register (in `start_memory') on the stack rather
11527 than storing it in old_reg(start|end). Remove the cycle detection
11528 from `stop_memory', replaced by the use of on_failure_jump_loop
11529 for greedy loops. Add code for the new on_failure_jump_<foo>.
11530 Remove ad-hoc code in `on_failure_jump' to push more registers in
11531 the case of a loop. Take out code from `maybe_pop_jump' into
11532 separate functions and adapt it to the semantics of
11533 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11534 and push_dummy_failure. Remove dummy_failure handling and
11535 handling of `failures to jump to on_failure_jump' (this last one
11536 was already dead code, it seems).
11537 (group_match_null_string_p, alt_match_null_string_p)
11538 (common_op_match_null_string_p): Remove.
11539
11540 2000-03-08 Dave Love <fx@gnu.org>
11541
11542 * config.in: Don't depend on __STDC__ for volatile.
11543 Add POINTER_TYPE, PTR, PROTOTYPES.
11544
11545 * hftctl.c, strftime.c: Use PROTOTYPES.
11546 * eval.c (find_handler_clause): Likewise.
11547
11548 * mem-limits.h: Use POINTER_TYPE.
11549
11550 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11551 (memory_warnings): Declare using POINTER_TYPE.
11552
11553 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11554
11555 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11556
11557 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11558
11559 * xfns.c: Remove obsolete code in #if 0.
11560 (Fx_focus_frame): New function.
11561
11562 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11563
11564 * coding.c (coding_category_name): Add coding-category-utf-8,
11565 coding-category-utf-16-be, coding-category-utf-16-le.
11566 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11567 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11568 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11569 (detect_coding_utf_8): New function.
11570 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11571 UTF_16_LOW_SURROGATE_P): New macros.
11572 (detect_coding_utf_16): New function
11573 (detect_coding_mask): When priorities are specified, skip any
11574 categories that have `nil' coding-system. Fix bug of returning
11575 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11576 returns a mask not set in PRIORITIES.
11577 (detect_eol_type_in_2_octet_form): New function.
11578 (detect_eol): selects detect_eol_type_XXX to call according to
11579 cooding->category_idx.
11580 (detect_coding_system): Remove `nil' coding-system in the result.
11581 (Fupdate_coding_systems_internal): Update all coding-categories.
11582
11583 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11584 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11585 New macros.
11586 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11587 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11588 (CODING_CATEGORY_IDX_UTF_16_LE)
11589 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11590 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11591 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11592 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11593
11594 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11595
11596 * doc.c (Fdocumentation_property): If value is not a string,
11597 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11598
11599 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11600 close the display with XtCloseDisplay. This caused a bus error
11601 on OpenWindows.
11602
11603 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11604 complete but not unique.
11605
11606 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11607
11608 * process.c (send_process): Remove local variable `procname' that
11609 might become invalid when a GC happens. Instead, access the
11610 process name slot directly.
11611
11612 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11613 orig_height if set.
11614
11615 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11616 orig_height if set.
11617
11618 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11619
11620 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11621 glyph matrices have been freed.
11622
11623 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11624
11625 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11626 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11627
11628 * xfns.c (QCdata): Moved to xdisp.c.
11629
11630 * xdisp.c (QCdata): Moved here from xfns.c.
11631 (syms_of_xdisp): Initialize QCdata.
11632
11633 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11634
11635 * window.c (coordinates_in_window): Use
11636 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11637 FRAME_INTERNAL_BORDER_WIDTH.
11638
11639 * xdisp.c (try_window_id): Recompute unchanged information if
11640 it is obviously invalid.
11641
11642 * xterm.c (x_term_init): Create a colormap if not using the
11643 default visual.
11644
11645 * xterm.h (select_visual): Change prototype.
11646
11647 * xfns.c (select_visual): Rewritten. Recognize user-specified
11648 visual classes.
11649 (visual_classes): New variable.
11650
11651 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11652
11653 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11654 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11655 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11656 (x_decode_color): Don't handle allocation of white and black specially.
11657 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11658 XtNcolormap resources.
11659 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11660 (Fx_create_frame): Initialize color members of x_output structure.
11661 (xpm_load): Pass colormap to XPM lib.
11662
11663 * xfaces.c (x_free_colors): Access colormap of frame using
11664 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11665 when default colormap is used.
11666
11667 * xterm.c (x_term_init): Set Colormap member of x_display_info
11668 structure. Copy colormap if resource `privateColormap' is
11669 specified (PseudoColor only).
11670 (x_setup_relief_color): Access colormap of frame using
11671 FRAME_X_COLORMAP.
11672
11673 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11674 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11675
11676 2000-03-04 Jason Rumney <jasonr@gnu.org>
11677
11678 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11679 other non-platform-specific equivalents.
11680 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11681 specific functions and macros as their w32 equivalents where
11682 non-platform-specifics are not available.
11683 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11684 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11685 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11686 (frame_update_line_height): Use macros to access f->output_data.
11687 (defined_color): Remove FIXME comments; fixed.
11688 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11689 into #ifdef blocks. Add WINDOWSNT blocks.
11690 (Fx_list_fonts): Use macros for accessing font data.
11691 (set_lface_from_font_name): Different default fonts for X and
11692 WINDOWSNT.
11693 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11694 scalable for backward compatibility.
11695 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11696 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11697
11698 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11699 syms_of_w32faces.
11700
11701 * makefile.nt (w32faces.obj): Remove.
11702 (xfaces.obj): Add.
11703
11704 2000-03-03 Jason Rumney <jasonr@gnu.org>
11705
11706 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11707 correct parameters.
11708
11709 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11710
11711 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11712 standard ELF definitions here if the system header does not.
11713
11714 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11715
11716 * xterm.c (PER_CHAR_METRIC): Removed.
11717 (x_per_char_metric_1, x_default_char): New functions.
11718 (x_per_char_metric): If font's default char is invalid, return
11719 metrics of a suitably chosen usable default char.
11720 (x_draw_glyph_string_foreground): If font has an invalid default
11721 char, replace occurrences of unprintable chars with a suitably
11722 chosen usable default char.
11723
11724 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11725
11726 * xterm.c (note_mouse_highlight): Return quickly if frame's
11727 glyph matrices have been freed.
11728
11729 * dispnew.c (free_glyphs): Block input while freeing matrices.
11730
11731 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11732
11733 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11734 Use x_free_colors.
11735
11736 * dispextern.h (x_free_colors): Add prototype.
11737
11738 * xfaces.c (x_free_colors): New function.
11739 (unload_color, free_face_colors): Use it.
11740
11741 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11742
11743 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11744
11745 * window.c [MSDOS]: Include msdos.h.
11746
11747 2000-03-02 Dave Love <fx@gnu.org>
11748
11749 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
11750
11751 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
11752 set C_OPTIMIZE_SWITCH for gcc.
11753
11754 2000-03-02 Kenichi Handa <handa@etl.go.jp>
11755
11756 * coding.c (coding_save_composition): Be sure to allocate
11757 composition data area in coding even if there's no composition in
11758 the current run.
11759
11760 2000-03-01 Jason Rumney <jasonr@gnu.org>
11761
11762 * w32term.c: Equivalent changes to those made to xterm.c on
11763 2000-02-25 and 2000-02-24.
11764
11765 * w32fns.c: Equivalent changes to those made to xfns.c on
11766 2000-02-25 and 2000-02-21.
11767
11768 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
11769 correct line-end convention is followed.
11770
11771 * w32menu.c [HAVE_BOXES]: Remove #undef.
11772 (single_keymap_panes): Remove code for simulating checkmarks.
11773 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
11774 Remove code for drawing simulated checkmarks.
11775 (w32_menu_show): make unibyte help string correctly.
11776 (add_menu_item): draw standard Windows checkmarks. Draw radio
11777 buttons as radio buttons if possible.
11778
11779 2000-03-01 Gerd Moellmann <gerd@gnu.org>
11780
11781 * sysdep.c (start_of_text): Don't define this function for NetBSD
11782 with ELF.
11783
11784 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
11785 Don't define.
11786 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
11787 (LINKER): Don't undef if __NetBSD__ is defined.
11788
11789 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
11790
11791 * fileio.c [__NetBSD__]: Define `unix'.
11792
11793 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
11794
11795 2000-02-29 Gerd Moellmann <gerd@gnu.org>
11796
11797 * atimer.c (start_atimer): Don't abort when timers are stopped.
11798 (append_atimer_lists): New function.
11799 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
11800 arbitrary lists of stopped and running atimers.
11801
11802 * atimer.c (cancel_atimer): Handle canceling an atimer when
11803 some timers are stopped.
11804
11805 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
11806 after canceling it.
11807
11808 * fns.c (maybe_resize_hash_table): Handle case of new size
11809 coming out as being the same as old size.
11810
11811 2000-02-27 Jason Rumney <jasonr@gnu.org>
11812
11813 * makefile.nt: Add atimer.h to dependencies.
11814 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
11815 * w32console.c: Only disable window system features for dispextern.h
11816 (initialize_w32_display): Build a display info for the console.
11817 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
11818 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
11819 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
11820 as 2 button mice.
11821 * w32gui.h (struct W32FontStruct): Revert last change after change
11822 to xdisp.c.
11823 * w32menu.c (single_submenu): Set up help string.
11824 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
11825 (w32_dialog_show): Set up help string.
11826 * w32term.c (w32_display_info_for_display): Remove unused function.
11827 (w32_draw_bitmap): Use pre-built bitmaps.
11828 (w32_initialize_display_info): New function to initialize parts of
11829 display info that are common to both GUI and console frames.
11830 (w32_term_init): Use w32_initialize_display_info. Do not set
11831 Vw32_num_mouse_buttons here, as it is not called for console
11832 frames. Build bitmaps for indicating truncated lines etc.
11833 (x_delete_display): Destroy pre-built bitmaps.
11834 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
11835 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
11836
11837 2000-02-27 Dave Love <fx@gnu.org>
11838
11839 * lisp.h: Add a bunch of prototypes.
11840
11841 2000-02-26 Kenichi Handa <handa@etl.go.jp>
11842
11843 * keyboard.c (read_char): Set `usec' correctly.
11844
11845 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11846
11847 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
11848 `lambda', set reg[RRR] to the map index.
11849 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
11850 reg[RRR] to 0. Otherwise, set it to -1.
11851
11852 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11853
11854 * emacs.c (main): Remove code snippet commented out with `//'.
11855
11856 2000-02-25 Richard M. Stallman <rms@gnu.org>
11857
11858 * fileio.c (Ffile_symlink_p): If result starts with a `/'
11859 and contains a `:', prepend `/:'.
11860
11861 * window.c (select_window_1): If selected_window is nil,
11862 don't "swap out" the buffer's point.
11863 (Fset_window_configuration): Set selected_window to nil
11864 before calling Fselect_window.
11865 (unshow_buffer): Don't set point in buffer from window's point
11866 if another more recently selected window also shows the buffer.
11867
11868 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11869
11870 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
11871
11872 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
11873 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
11874 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
11875 New variables.
11876 (DEFAULT_BUSY_CURSOR_DELAY): New define.
11877 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
11878 (hide_busy_cursor): New functions.
11879 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
11880
11881 * minibuf.c (read_minibuf): Cancel busy-cursor.
11882
11883 * keyboard.c (command_loop_1): Call start_busy_cursor before
11884 Fcommand_execute and cancel_busy_cursor after it.
11885 (timer_check): Remove busy-cursor code.
11886 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
11887 cursor timer.
11888
11889 * process.c (wait_reading_process_input): Remove busy-cursor code.
11890
11891 * eval.c (Fsignal): Call cancel_busy_cursor instead of
11892 Fx_hide_busy_cursor.
11893
11894 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
11895 Remove prototyoes.
11896 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
11897
11898 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
11899
11900 * xterm.c (XTread_socket): Remove busy-cursor code.
11901
11902 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
11903 (build_frame_matrix_from_leaf_window): Put code handling
11904 glyph row's not being a slice of a frame row in #if 0.
11905 (sync_window_with_frame_matrix_rows): New function.
11906 (frame_row_to_window): New function.
11907 (mirror_line_dance): Handle copies between windows.
11908
11909 * lread.c (Fload): Use `xfree' instead of `free'.
11910 (init_obarray): Use `xmalloc' instead of `malloc'.
11911
11912 * window.c (Fset_window_buffer): Set WINDOW to the window
11913 after decoding.
11914 (coordinates_in_window): Take frame's internal border width
11915 into account.
11916
11917 2000-02-24 Gerd Moellmann <gerd@gnu.org>
11918
11919 * xterm.c (x_display_and_set_cursor): Display cursor of
11920 non-selected windows depending on the setting of
11921 cursor_in_non_selected_windows.
11922
11923 * xdisp.c (cursor_in_non_selected_windows): New variable.
11924 (syms_of_xdisp): DEFVAR_BOOL it.
11925
11926 2000-02-23 Gerd Moellmann <gerd@gnu.org>
11927
11928 * data.c (Fstring_to_number): If number is greater than what
11929 fits into an integer, return a float.
11930
11931 * eval.c (specbind): Remove references to
11932 keyword_symbols_constant_flag.
11933
11934 * data.c (keyword_symbols_constant_flag): Removed.
11935 (Fmakunbound, set_internal, syms_of_data): Remove references to
11936 keyword_symbols_constant_flag.
11937
11938 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
11939
11940 2000-02-23 Kenichi Handa <handa@etl.go.jp>
11941
11942 * syntax.c (multibyte_syntax_as_symbol): New variable.
11943 (syms_of_syntax): Declare it as a Lisp variable.
11944 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
11945 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
11946 nonzero, treat all multibyte characters as symbol.
11947 (init_syntax_once): Give syntax `word' to all multibyte characters.
11948
11949 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
11950
11951 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
11952 a deleted frame.
11953
11954 2000-02-21 Gerd Moellmann <gerd@gnu.org>
11955
11956 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
11957
11958 * xfns.c (x_window_to_frame, x_any_window_to_frame)
11959 (x_non_menubar_window_to_frame): Check the busy-cursor window.
11960
11961 2000-02-21 Dave Love <fx@gnu.org>
11962
11963 * frame.c (Vmouse_position_function): New variable.
11964 (Fmouse_position): Use it.
11965 (syms_of_frame): Install it.
11966
11967 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
11968
11969 2000-02-20 Gerd Moellmann <gerd@gnu.org>
11970
11971 * fileio.c (Finsert_file_contents): Unbind the binding of
11972 standard-output done by temp_output_buffer_setup.
11973
11974 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
11975 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
11976 (specbind, unbind_to): Handle most common case of non-constant
11977 symbol with trivial value specially.
11978
11979 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
11980
11981 2000-02-20 Richard M. Stallman <rms@gnu.org>
11982
11983 * data.c (Fmake_variable_buffer_local): Doc fix.
11984 Init found_for_buffer to 0.
11985 (Fmake_variable_frame_local): If the variable has already
11986 been buffer-local, set the check_frame field.
11987
11988 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
11989
11990 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
11991 produced for CODING_MODE_LAST_BLOCK requires.
11992
11993 2000-02-18 Dave Love <fx@gnu.org>
11994
11995 * keyboard.c (echo_keystrokes): Remove declaration.
11996 (Vecho_keystrokes) New variable.
11997 (read_char, record_menu_key, read_key_sequence): Use it to allow
11998 use of float value.
11999 (syms_of_keyboard): Change Vecho_keystrokes declaration.
12000
12001 * lread.c: Undef feature selection macros before defining.
12002
12003 2000-02-18 Gerd Moellmann <gerd@gnu.org>
12004
12005 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
12006 for symbols other than the symbol in question.
12007
12008 2000-02-17 Dave Love <fx@gnu.org>
12009
12010 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
12011
12012 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12013
12014 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
12015
12016 * alloc.c (enum mem_type): Compile unconditionally.
12017
12018 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
12019
12020 * xfaces.c (tty_defined_color): Don't return faulire indication
12021 for unspecified-fg and unspecified-bg pseudo-colors.
12022
12023 2000-02-17 Gerd Moellmann <gerd@gnu.org>
12024
12025 * alloc.c (mark_object): Don't mark symbol names in pure space.
12026 (gc_sweep): Don't unmark symbol names in pure space.
12027
12028 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
12029 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
12030 [GC_MARK_STACK]: New defines.
12031 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
12032 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
12033
12034 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
12035
12036 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
12037 allocate_buffer instead of xmalloc.
12038
12039 * alloc.c (toplevel): Include setjmp.h.
12040 (PURE_POINTER_P): New define.
12041 (enum mem_type) [GC_MARK_STACK]: New enumeration.
12042 (Vdead) [GC_MARK_STACK]: New variable.
12043 (lisp_malloc): Add parameter TYPE, call mem_insert if
12044 GC_MARK_STACK is defined.
12045 (allocate_buffer): New function.
12046 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
12047 (free_float) [GC_MARK_STACK]: Set type to Vdead.
12048 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
12049 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
12050 (MEM_NIL) [GC_MARK_STACK]: New define.
12051 (struct mem_node) [GC_MARK_STACK]: New structure.
12052 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
12053 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
12054 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
12055 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
12056 (mark_stack) [GC_MARK_STACK]: New functions.
12057 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
12058 (clear_marks): Removed.
12059 (gc_sweep): Set free conses' car, free floats' type, free
12060 symbols' function to Vdead. Use lisp_free to free buffers.
12061 (init_alloc_once): Initialize Vdead.
12062 (survives_gc_p): Return non-zero for pure objects.
12063
12064 * alloc.c: Add comments throughout the file.
12065
12066 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
12067 that unblocks alarms.
12068
12069 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
12070 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
12071 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
12072
12073 * frame.c (make_frame): Set frame initiallly to `garbaged'.
12074
12075 2000-02-17 Kenichi Handa <handa@etl.go.jp>
12076
12077 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
12078 avoid infinite error signaling. Allocate sufficient memory for
12079 eol_str in the case that eoltype is Lisp_Int.
12080
12081 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
12082
12083 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
12084 depends on the previous behavior.
12085
12086 2000-02-16 Gerd Moellmann <gerd@gnu.org>
12087
12088 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
12089
12090 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12091
12092 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
12093
12094 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
12095 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
12096 write(2).
12097
12098 2000-02-15 Richard M. Stallman <rms@gnu.org>
12099
12100 * data.c (set_internal): Don't make variable buffer-local
12101 if within a let-binding for the same buffer.
12102 (let_shadows_buffer_binding_p): New function.
12103
12104 * eval.c (specbind): For buffer-local value,
12105 record the current buffer also.
12106 (unbind_to): Cope with that change.
12107
12108 2000-02-15 Gerd Moellmann <gerd@gnu.org>
12109
12110 * window.c (Fsave_window_excursion): Doc fix.
12111
12112 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
12113
12114 * syntax.c (back_comment): Make sure we only consider comment-starters
12115 of the relevant style and return -1 in case of a failure to find the
12116 beginning of the comment.
12117 (Fforward_comment): If back_comment fails, go back to the position just
12118 after the comment-end.
12119 (scan_lists): Add comment describing a very minor bug.
12120
12121 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12122
12123 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
12124 `completion-regexp-list' in the docstring.
12125
12126 2000-02-14 Dave Love <fx@gnu.org>
12127
12128 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
12129
12130 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
12131
12132 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
12133 to Emacs' syntax. Also fix the comment about set/not-set meanings
12134 since Emacs syntax is not the value 0 any more.
12135 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
12136 since it's now part of RE_SYNTAX_EMACS.
12137
12138 2000-02-12 Dave Love <fx@gnu.org>
12139
12140 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
12141
12142 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12143
12144 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
12145
12146 2000-02-12 Dave Love <fx@gnu.org>
12147
12148 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
12149
12150 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
12151 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
12152 * s/hpux.h: Don't define HAVE_VFORK.
12153
12154 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
12155
12156 * s/nextstep.h: Don't define HAVE_ALLOCA.
12157
12158 * config.in: Add vfork bits.
12159
12160 2000-02-12 Gerd Moellmann <gerd@gnu.org>
12161
12162 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
12163 unwind function to undo the effect of stopping atimers.
12164
12165 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
12166
12167 * atimer.c (stopped_atimers): New variable.
12168 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
12169 New functions.
12170
12171 * atimer.h (stop_other_atimers, run_all_atimers)
12172 (unwind_stop_other_atimers): Add function prototypes.
12173
12174 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
12175
12176 2000-02-11 Ken Raeburn <raeburn@gnu.org>
12177
12178 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
12179 library may depend on jpeg.
12180 (atimer.o): Depends on atimer.c.
12181
12182 2000-02-11 Kenichi Handa <handa@etl.go.jp>
12183
12184 * insdel.c (del_range_1): Call update_compositions.
12185 (del_range_both): Call update_compositions just once..
12186
12187 2000-02-10 Dave Love <fx@gnu.org>
12188
12189 * xfns.c (create_frame_xic): Fix initialization of automatic
12190 aggregates for pcc.
12191
12192 2000-02-09 Kenichi Handa <handa@etl.go.jp>
12193
12194 * ccl.c (CCL_MAKE_CHAR): New macro.
12195 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
12196 registers by CCL_MAKE_CHAR before calling translate_char.
12197 <CCL_TranslateCharacterConstTbl> Likewise.
12198
12199 2000-02-08 Dave Love <fx@gnu.org>
12200
12201 * lread.c (__EXTENSIONS__): Define.
12202
12203 2000-02-08 Gerd Moellmann <gerd@gnu.org>
12204
12205 * puresize.h (BASE_PURESIZE): Increase to 650000.
12206
12207 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12208
12209 * msdos.c (XMenuActivate): Turn off the cursor after displaying
12210 the help message.
12211
12212 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
12213
12214 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
12215 md, mh, mb, mr, and me to the fake termcap entry.
12216
12217 2000-02-06 Ken Raeburn <raeburn@gnu.org>
12218
12219 * sound.c (sound_cleanup): Don't call device close routine if the
12220 function pointer is null.
12221
12222 2000-02-06 Andrew Innes <andrewi@gnu.org>
12223
12224 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
12225 around image definitions and prototypes.
12226 (gamma_correct) [WINDOWSNT]: New prototype.
12227
12228 * w32term.c (x_make_frame_visible): Replace call to
12229 input_poll_signal with poll_for_input.
12230
12231 * window.c [WINDOWSNT]: Include w32term.h.
12232
12233 * xdisp.c [WINDOWSNT]: Include w32term.h.
12234
12235 * makefile.nt: Add dependencies on w32gui.h.
12236 (OBJ1): Include atimer.obj.
12237 ($(BLD)\atimer.obj): New dependency rule.
12238
12239 * w32.c (sigmask): New function (does nothing).
12240 (sigunblock): Ditto.
12241
12242 * frame.c [WINDOWSNT]: Include w32term.h.
12243
12244 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12245
12246 * lread.c (syms_of_lread): Fix literal newlines.
12247
12248 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12249 the string constant limit (2048 bytes) in MSVC.
12250 (main): Ditto.
12251
12252 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12253
12254 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12255 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12256 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12257 dispatch the event.
12258
12259 2000-02-04 Dave Love <fx@gnu.org>
12260
12261 * fileio.c: Remove some unused vars.
12262 (_GNU_SOURCE): Define (for euidaccess).
12263
12264 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12265
12266 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12267 gcpro1, gcpro2.
12268 (read_minibuf): Deal with allow_props correctly.
12269
12270 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12271
12272 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12273
12274 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12275
12276 * search.c (compile_pattern): If a cache entry has a nil regexp,
12277 fill in that entry instead of clobbering a previously cached
12278 string regexp.
12279
12280 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12281
12282 * puresize.h (BASE_PURESIZE): Increase to 610000.
12283
12284 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12285
12286 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12287 can GC.
12288
12289 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12290
12291 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12292 instead of incrementing ic directly.
12293 <CCL_WriteExprConst> Likewise.
12294 <ccl_set_expr>: Set ic to jump_address.
12295
12296 * fileio.c (e_write): Fix the handling of
12297 CODING_FINISH_INSUFFICIENT_SRC.
12298
12299 2000-02-01 Dave Love <fx@gnu.org>
12300
12301 * editfns.c (Fpropertize): Doc fix.
12302
12303 * process.c (Fstart_process): Doc fix.
12304
12305 * eval.c: Fix various doc strings not to duplicate information
12306 from help-manyarg-func-alist.
12307
12308 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12309
12310 * doc.c (Vhelp_manyarg_func_alist): New variable.
12311 (Fdocumentation): Use it.
12312 (syms_of_doc): Define it.
12313
12314 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12315
12316 * xterm.c (xim_open_dpy): Remove unused local variable.
12317
12318 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12319
12320 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12321 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12322
12323 * fns.c (sweep_weak_table): New function.
12324 (sweep_weak_hash_tables): Use it. Keep on marking until there
12325 is no more change.
12326
12327 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12328
12329 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12330 that XTread_socket does not crash by trying to call XNoOp on a
12331 closed display.
12332
12333 2000-01-30 Jason Rumney <jasonr@gnu.org>
12334
12335 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12336 Change selected_frame to SELECTED_FRAME ().
12337 (w32_console_mouse_position): Remove #ifndef MULE from around
12338 `insist' parameter.
12339
12340 * makefile.nt: Remove dosfns.obj.
12341
12342 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12343
12344 * w32fns.c (w32_defined_color): Check for valid frame before
12345 applying gamma correction. Eliminate dependency on frame elsewhere.
12346 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12347 (w32_to_x_font): Use resx and resy not height_in and width_in.
12348 (x_to_w32_font): Doc fix.
12349 (xlfd_strip_height): New function to strip and return font height.
12350 (w32_font_match): Compare height separately from rest of xlfd
12351 spec, using xlfd_strip_height.
12352
12353 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12354 width_in. Use w32_defined_color in place of defined_color.
12355
12356 * w32faces.c: Merge more of DOS and X specifics in preparation for
12357 merge with xfaces.c.
12358 (defined_color): Remove FIXME comment.
12359 (tty_color_name): Provide w32-specific function.
12360 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12361
12362 * w32console.c (turn_on_face, turn_off_face): Removed.
12363 (w32_face_attributes): New function.
12364 (Global_variables): Reduce scope where possible.
12365 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12366 fill attribute.
12367 (hl_mode): Don't modify text attributes.
12368 (write_glyphs): Don't do anything if len <= 0. Use
12369 w32_face_attributes to get attributes for drawing. Write
12370 terminating codes using char_attr_normal.
12371 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12372 (update_begin, update_end): Likewise.
12373 (vga_stdcolor_name): New function.
12374 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12375 (Fset_screen_color): Remove char_attr_reverse.
12376
12377 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12378
12379 * xfns.c (xic_set_preeditarea): Take window parameter and
12380 window-relative pixel-positions.
12381
12382 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12383 is its frame's selected window.
12384 (xim_instantiate_callback): Likewise.
12385
12386 * xfns.c (x_create_im): Removed.
12387 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12388 (supported_xim_styles): Renamed from supported_styles.
12389 (best_xim_style): Renamed from best_style.
12390 (create_frame_xic): Renamed from xic_create_frame.
12391 (free_frame_xic): Renamed from xic_destroy_frame.
12392
12393 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12394
12395 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12396 our frames, call XFilterEvent with 2nd parameter `None'.
12397 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12398 returning XBufferOverflow.
12399 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12400 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12401 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12402 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12403 (xim_initialize, xim_close)
12404 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12405 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12406 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12407 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12408
12409 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12410 and `xim_styles'.
12411 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12412 `xic_style' and `xic_xfs'.
12413 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12414 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12415 (FRAME_XIM): Removed.
12416
12417 * xfns.c (supported_styles): New variable.
12418 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12419 (xic_create_xfontset, best_style, xic_create_frame)
12420 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12421 (xic_set_xfontset): New functions.
12422
12423 2000-01-28 Dave Love <fx@gnu.org>
12424
12425 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12426
12427 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12428
12429 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12430
12431 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12432 for *scratch* if it already existed.
12433
12434 * emacs.c (USAGE): New macro.
12435 (main): Use it to display usage information.
12436
12437 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12438
12439 Support for the menu-help feature:
12440
12441 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12442
12443 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12444 part of the line to the termscript file.
12445 (IT_clear_to_end): Clear the entire line, not just its beginning.
12446 (menu_help_message, prev_menu_help_message): New variables.
12447 (IT_menu_make_room): Make room for the help_text member.
12448 (IT_menu_display): New argument disp_help; all callers changed.
12449 If disp_help is non-zero, store the help text of the active menu
12450 item in menu_help_message.
12451 (XMenuAddPane): Initialize the help_text member to NULL.
12452 (XMenuAddSelection): New argument help_text. Store it in the
12453 XMenu structure.
12454 (XMenuActivate): New argument help_callback. If the value of
12455 menu_help_message has changed since the last time, display the
12456 menu help message text while waiting for the mouse to move. Clear
12457 the echo area before exiting.
12458 (XMenuDestroy): Free the help_text member.
12459
12460 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12461
12462 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12463 XMenuAddSelection. Pass help callback to XMenuActivate.
12464 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12465
12466 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12467
12468 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12469 and EMACS_SET_USECS.
12470
12471 2000-01-26 Dave Love <fx@gnu.org>
12472
12473 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12474
12475 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12476 an error may be signalled.
12477
12478 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12479
12480 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12481 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12482
12483 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12484
12485 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12486
12487 * charset.c (Fstring): If there is a multibyte char among
12488 the args, always return a multibyte string.
12489
12490 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12491
12492 * sysdep.c (sys_select): Turn atimers off and on instead of
12493 recording and restoring old alarm handler
12494
12495 * process.c (toplevel): Include atimer.h.
12496 (create_process_1): Rewritten.
12497 (create_process): Use atimers instead of alarm.
12498 (wait_reading_process_input) [hpux]: Turn atimers off instead
12499 of turning off SIGALRM.
12500 (wait_reading_process_input): Turn off atimers instead off
12501 calling stop_polling.
12502
12503 * emacs.c (main): Call init_atimer.
12504
12505 * keyboard.c (toplevel): Include systime.h and atimer.h.
12506 (polling_for_input): Removed because unused.
12507 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12508 (poll_timer): New variable.
12509 (poll_for_input, poll_for_input_1): New functions.
12510 (start_polling, stop_polling): Rewritten.
12511
12512 * keyboard.h (polling_for_input): Removed.
12513
12514 * atimer.h, atimer.c: New files.
12515
12516 * Makefile.in (obj): Add atimer.o.
12517 (atimer.o): New target.
12518
12519 * blockinput.h (pending_atimers): Add extern declaration.
12520 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12521
12522 * lisp.h (popup_activated_flag): Add extern declaration.
12523
12524 * xmenu.c (popup_activated_flag): Make externally visible.
12525 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12526 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12527
12528 * xterm.c (toplevel): Include atimer.h.
12529 (toolkit_scroll_bar_interaction): New variable.
12530 (Fxt_process_timeouts): Removed.
12531 (x_process_timeouts): New function.
12532 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12533 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12534 (x_make_frame_visible): Call poll_for_input_1 instead of
12535 input_poll_signal. Don't call alarm.
12536 (x_initialize): Install timer calling x_process_timeouts.
12537
12538 2000-01-24 Dave Love <fx@gnu.org>
12539
12540 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12541 Don't use -cckr -- apparently not now necessary.
12542
12543 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12544
12545 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12546 screen boundary.
12547
12548 2000-01-23 Jason Rumney <jasonr@gnu.org>
12549
12550 * w32fns.c (w32_defined_color): Apply gamma correction before
12551 trying to map to the palette.
12552 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12553 to w32_clear_rect.
12554
12555 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12556 here. Callers changed to always pass real device context.
12557 (w32_draw_bitmap): Likewise.
12558 (w32_get_glyph_overhangs): Likewise.
12559 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12560 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12561 pfnSetScrollInfo and SetScrollRange.
12562 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12563 back into MULE characters after decoding them.
12564 (x_get_glyph_face_and_encoding): Likewise.
12565 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12566 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12567 (x_produce_glyphs): Calculate per char metrics for a character
12568 that we know exists in default font when font_not_found_p is true.
12569
12570 2000-01-22 Jason Rumney <jasonr@gnu.org>
12571
12572 * makefile.nt (intervals.obj, composite.obj): New modules.
12573 (composite.h): Added as dependency where appropriate.
12574
12575 * w32gui.h (XGCValue): New struct for emulating X GCs.
12576
12577 * w32term.h (XCharStruct): New struct for emulating X.
12578
12579 * w32console.c (turn_on_face, turn_off_face): New functions.
12580 (change_line_highlight): New prototype for new redisplay.
12581 (write_glyphs): Support multibyte text. Support faces.
12582
12583 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12584
12585 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12586 throughout. struct frame * in place of FRAME_PTR.
12587 Skeleton support for images, toolbars, tooltips from xfns.c.
12588 (Fx_create_frame): Use system default for default scroll bar width.
12589 (w32_get_arg): Renamed from x_get_arg.
12590 (Fx_file_dialog): New function.
12591 (w32_list_fonts): Check cache before asking system.
12592 (Vw32_enable_synthesized_fonts): New variable.
12593 (Vw32_enable_italics): Obsolete, removed.
12594
12595 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12596 Use SELECTED_FRAME macro.
12597
12598 * w32menu.c: Add skeleton support for help strings on menus.
12599 (add_menu_item): Native checkbox and radio support added, but not
12600 yet enabled due to bugs.
12601 (push_menu_item): Add parameters type, selection and help.
12602 Callers updated.
12603 Formatting changes to reduce unnecessary diffs with xmenu.c.
12604
12605 * w32select.c (Fw32_set_clipboard_data): Update call to
12606 find_charset_in_str.
12607
12608 * w32term.c: Complete rewrite for new redisplay based on new
12609 xterm.c with necessary sections merged back in from old w32term.c.
12610
12611 2000-01-21 Richard M. Stallman <rms@gnu.org>
12612
12613 * data.c (set_internal): Further fix in same criterion.
12614
12615 2000-01-20 Richard M. Stallman <rms@gnu.org>
12616
12617 * data.c (set_internal): Fix the criteria for whether
12618 to swap out the old cached binding.
12619
12620 2000-01-19 Dave Love <fx@gnu.org>
12621
12622 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12623
12624 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12625
12626 * regex.c (re_compile_fastmap): While checking a range table for
12627 `charset', skip flag bits for a character class correctly.
12628
12629 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12630
12631 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12632
12633 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12634
12635 * widget.c (EmacsFrameSetCharSize): Change size of children first
12636 because of problems with main window geometry management under Lesstif.
12637
12638 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12639 MENU_ITEMS_ITEM_.*.
12640 (MENU_ITEMS_ITEM_HELP): New enumerator.
12641 (push_menu_item): Add parameter HELP. Record help in menu_items.
12642 (single_menu_item, single_submenu, list_of_items): Call
12643 push_menu_item with new parameter.
12644 (single_submenu): Set help string in widget value.
12645 (menu_highlight_callback): New function.
12646 (set_frame_menubar): Call lw_create_widget with new
12647 parameter list.
12648 (xmenu_show, xdialog_show): Ditto.
12649
12650 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12651
12652 * sound.c (Fplay_sound): Improve doc string.
12653
12654 2000-01-11 Richard M. Stallman <rms@gnu.org>
12655
12656 * lisp.h (set_internal): Enter the new arg.
12657
12658 * eval.c (specbind): Record buffer-local variables specially,
12659 indicating which buffer's binding was saved.
12660 (unbind_to): Restore buffer-local variables specially
12661 in the proper buffer.
12662
12663 * data.c (set_internal): New arg BUF.
12664
12665 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12666 * data.c (Fset): Pass new arg to set_internal.
12667 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12668
12669 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12670
12671 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12672
12673 2000-01-11 Richard M. Stallman <rms@gnu.org>
12674
12675 * minibuf.c (Ftry_completion): Doc fix.
12676
12677 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12678
12679 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12680 vector, too.
12681
12682 2000-01-11 Andreas Schwab <schwab@suse.de>
12683
12684 * coding.c (code_convert_region): Initialize total_skip.
12685
12686 2000-01-08 Dave Love <fx@gnu.org>
12687
12688 * eval.c (Fuser_variable_p): Check customizability too.
12689
12690 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12691
12692 * minibuf.c (Fcompleting_read): Doc fix.
12693
12694 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12695
12696 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12697 -L /usr/local/lib.
12698
12699 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12700 Check that input style is supported before trying to create an
12701 IC for it.
12702 (x_window): Call x_create_im.
12703
12704 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12705
12706 * xfns.c (current_gif_memory_src): New variable.
12707 (gif_load): Record the address of the current memory source
12708 in current_gif_memory_src.
12709 (gif_read_from_memory): Use current_gif_memory_src.
12710
12711 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12712 macros statement form.
12713
12714 * sound.c (struct sound): Renamed from struct sound_file.
12715 (struct sound): Add members `data' and `header_size'.
12716 (enum sound_attr): Add SOUND_DATA.
12717 (current_sound, current_sound_device): Variables renamed from
12718 sound_file and sound_device.
12719 (parse_sound): Parse :data.
12720 (parse_sound): Handle sound data in strings.
12721 (find_sound_type): Function renamed from find_sound_file_type.
12722 (wav_init, au_init): Fail if sound's header_size is smaller than
12723 needed header size.
12724 (wav_play, au_play): Play sounds from string data.
12725
12726 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12727
12728 * lisp.h: Add prototype for allocate_string_data.
12729
12730 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12731
12732 * alloc.c (mark_buffer): Remove code in #if 0.
12733 (gc_sweep): Ditto.
12734 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12735 (strings_consed): New variable.
12736 (allocate_string): Set it.
12737 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12738 (Fmemory_use_counts): Return strings_consed. Use Flist.
12739
12740 * alloc.c: General cleanup in comments etc. Remove conditional
12741 compilation for `standalone'.
12742
12743 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12744
12745 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12746 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
12747 (DONT_COPY_FLAG): Removed.
12748 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
12749 (struct sdata, struct sblock): New
12750 (struct string_block): Rewritten.
12751 (STRINGS_IN_STRING_BLOCK): New macro.
12752 (oldest_sblock, current_sblock, total_strings, total_free_strings)
12753 (large_sblocks, string_blocks, string_free_list): New variables.
12754 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
12755 (init_strings): Rewritten.
12756 (allocate_string, allocate_string_data, compact_small_strings)
12757 (free_large_strings, sweep_strings): New functions.
12758 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
12759 (struct string_block_head, current_string_block)
12760 (first_string_block, large_string_blocks, STRING_FULLSIZE)
12761 (STRING_PAD): Removed.
12762 (make_uninit_multibyte_string, make_pure_string): Rewritten.
12763 (Fgarbage_collect): Don't set mark bit in large strings.
12764 (mark_object): Mark strings differently. Mark symbol names
12765 differently.
12766 (survives_gc_p): Test marked strings differently.
12767 (gc_sweep): Sweep strings differently, unmark strings in
12768 symbol names.
12769 (compact_strings): Removed.
12770
12771 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
12772
12773 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
12774 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
12775
12776 2000-01-04 Kenichi Handa <handa@etl.go.jp>
12777
12778 * fileio.c (Finsert_file_contents): Signal error if visiting file
12779 in a non-empty buffer.
12780
12781 * term.c (encode_terminal_code): Fix the previous change.
12782
12783 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12784
12785 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
12786 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
12787
12788 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
12789
12790 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12791
12792 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
12793 need to test for MSDOS frames.
12794
12795 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12796
12797 * dosfns.c (unspecified_colors): Remove.
12798 (msdos_stdcolor_idx): Use global variables unspecified_fg and
12799 unspecified_bg.
12800 (msdos_stdcolor_name): Return strings for unspecified fore- and
12801 back-ground colors.
12802
12803 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
12804 (syms_of_xfaces): Remove their staticpro's.
12805 (tty_color_name): Return Lisp strings for unspecified fore- and
12806 back-ground colors.
12807 (Finternal_set_lisp_face_attribute): Remove the special treatment
12808 for Qunspecified_{f,b}g.
12809 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
12810
12811 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12812
12813 * xdisp.c (reseat_at_next_visible_line_start): Position before
12814 newline only if ending up on a newline.
12815 (next_element_from_ellipsis): Return success. Handle case of
12816 displaying no ellipsis. Fix case of ellipsis defined in display table.
12817 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
12818 returns 0.
12819
12820 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12821
12822 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
12823 (Fcolor_supported_p): Renamed from face-color-supported-p.
12824
12825 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12826
12827 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
12828 list of colors renamed to tty-defined-color-alist.
12829 (tty_color_name): Pass the frame to tty-color-by-index.
12830 (realize_tty_face): tty-color-alist is now a function which
12831 accepts the frame as argument.
12832
12833 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
12834
12835 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12836
12837 * term.c (insert_glyphs): Pass glyph, not &glyph, to
12838 encode_terminal_code.
12839
12840 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12841
12842 * dispnew.c (mode_line_string): Support termcap frames as well.
12843
12844 2000-01-01 Gerd Moellmann <gerd@gnu.org>
12845
12846 * syntax.c (Fforward_word): Undo previous change.
12847
12848 * editfns.c (Fconstrain_to_field): Don't constrain if
12849 inhibit-field-text-motion is non-nil.
12850 (Fline_beginning_position): Undo previous change.
12851 (Fline_end_position): Ditto.
12852
12853 * syntax.c (Fforward_word): Notice field boundaries only if
12854 inhibit-field-text-motion is nil.
12855
12856 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
12857
12858 * editfns.c (Vinhibit_field_text_motion): New variable.
12859 (inhibit-field-text-motion): New DEFVAR_LISP.
12860 (Fline_beginning_position, Fline_end_position): Notice field
12861 boundaries only if inhibit-field-text-motion is nil.
12862
12863 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
12864 All calls adjusted.
12865 (x_build_heuristic_mask): Likewise.
12866 (xbm_load_image_from_file): Change error output.
12867 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
12868 (gif_load, gs_load, x_kill_gs_process): Ditto.
12869
12870 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
12871 color indices when accessing raster pixels.
12872 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
12873 one of :file or :data.
12874 (enum pbm_keyword_index): Add PBM_DATA.
12875 (pbm_format): Add :data.
12876 (pbm_image_p): Allow either :file or :data.
12877 (pbm_read_file): New function.
12878 (pbm_scan_number): Rewritten to read from string.
12879 (pbm_load): Support :data.
12880
12881 See ChangeLog.8 for earlier changes.
12882
12883 ;; Local Variables:
12884 ;; coding: iso-2022-7bit
12885 ;; End:
12886
12887 Copyright (C) 2001 Free Software Foundation, Inc.
12888 Copying and distribution of this file, with or without modification,
12889 are permitted provided the copyright notice and this notice are preserved.