*** empty log message ***
[bpt/emacs.git] / src / ChangeLog
1 2001-10-06 Miles Bader <miles@gnu.org>
2
3 * xterm.h (struct x_output): Add scroll_bar_top_shadow_pixel and
4 scroll_bar_bottom_shadow_pixel fields.
5 * xterm.c (x_create_toolkit_scroll_bar): Try to allocate colors
6 for the shadows, and tell the toolkit about them if we succeed.
7 (x_destroy_window) [USE_TOOLKIT_SCROLL_BARS]:
8 Free scroll-bar shadow colors.
9 * xfns.c (x_set_scroll_bar_background) [USE_TOOLKIT_SCROLL_BARS]:
10 Free scroll-bar shadow colors when the background color changes.
11 (Fx_create_frame, x_create_tip_frame) [USE_TOOLKIT_SCROLL_BARS]:
12 Initialize scroll-bar shadow-color fields.
13
14 2001-10-05 Gerd Moellmann <gerd@gnu.org>
15
16 * fileio.c (Fcopy_file): If NEWNAME is a directory copy FILE there.
17
18 2001-10-05 Miles Bader <miles@gnu.org>
19
20 * minibuf.c (Fminibuffer_prompt_end, Fminibuffer_contents)
21 (Fminibuffer_contents_no_properties, Fdelete_minibuffer_contents):
22 New functions (were in simple.el).
23 (Fminibuffer_complete_and_exit, Fminibuffer_complete_word)
24 (read_minibuf, do_completion, Fminibuffer_completion_help): Use them.
25 (syms_of_minibuf): Initialize them.
26
27 2001-10-05 Gerd Moellmann <gerd@gnu.org>
28
29 * xfns.c (tiff_error_handler, tiff_warning_handler): New functions.
30 (tiff_load): Install them as error and warning handler.
31
32 2001-10-04 Andrew Innes <andrewi@gnu.org>
33
34 * w32fns.c (x_to_w32_color): Fix argument to alloca.
35 (w32_load_system_font): Don't believe what GetLanguageFontInfo
36 says; query codepage info directly to determine if font is double
37 byte.
38 (x_to_w32_charset): Handle private format for unknown charsets.
39 Handle wildcards in charset spec, by ignoring them.
40 (w32_codepage_for_font): Fix argument to alloca. Don't remove
41 "*-" prefix from charset.
42 (x_to_w32_font): Enlarge remainder array for safety. Specifically
43 handle the truncated font spec form constructed by font_list_1, so
44 that we correctly identify the charset fields. Don't remove "*-"
45 prefix from charset.
46 (w32_list_synthesized_fonts): Fix argument to alloca.
47
48 2001-10-04 Stefan Monnier <monnier@cs.yale.edu>
49
50 * window.h (MINI_WINDOW_P): Use NILP.
51
52 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM): Define also for non-NT.
53
54 * termhooks.h (struct input_event): Use proper type for `kind'.
55
56 2001-10-04 Gerd Moellmann <gerd@gnu.org>
57
58 This handles unknown keysyms better than before. For example,
59 after `xmodmap -e 'keysym F5 = ccaron' in a Latin-1 environment,
60 Emacs formerly completely ignored F5. With the change, it derives
61 a key symbol from the name of the X keysym, `ccaron' in this case.
62 Reported by Martin Buchholz.
63
64 * xterm.c (XTread_socket): Return a non_ascii_keystroke for
65 unknown keysyms.
66
67 * keyboard.c (make_lispy_event) [HAVE_X_WINDOWS]: If we know
68 that EVENT->code isn't a function key, use the keysym's name.
69
70 2001-10-04 Gerd Moellmann <gerd@gnu.org>
71
72 FOREACH is a macro that should make it easier to loop over Lisp
73 lists with checks for cycles and proper lists.
74
75 * lisp.h (LIST_END_P, FOREACH): New macros.
76
77 2001-10-04 Gerd Moellmann <gerd@gnu.org>
78
79 On some systems, XtCloseDisplay seems to cause a SIGSEGV when
80 called for a lost connection. Prevent dumping core in this case.
81 Instead print the X error, and exit. On user request.
82
83 * xterm.c (error_msg): New variable.
84 (x_fatal_error_signal): New function.
85 (x_connection_closed): Set error_msg. Install x_fatal_error_signal
86 as fatal_error_signal_hook around the call to XtCloseDisplay.
87
88 * emacs.c (fatal_error_signal_hook): New variable.
89 (fatal_error_signal): Call that function.
90
91 2001-10-04 Gerd Moellmann <gerd@gnu.org>
92
93 With this, Emacs prints how much pure storage it will
94 approximately need in case pure storage overflows while dumping.
95
96 * alloc.c (purebeg, pure_size, pure_bytes_used_before_overflow):
97 New variables.
98 (init_alloc_once): Initialize new variables.
99 (PURE_POINTER_P): Use new variables.
100 (pure_alloc): If pure storage overflows, allocate from the heap.
101 (check_pure_size): New function.
102 (Fgarbage_collect): Don't GC if pure storage has overflowed.
103
104 * lisp.h (pure_size) [HAVE_SHM]: Declare extern size_t.
105 (check_pure_size): Add prototype.
106
107 * emacs.c (Fdump_emacs_data, Fdump_emacs): Call check_pure_size.
108
109 2001-10-04 Gerd Moellmann <gerd@gnu.org>
110
111 This adds a post-gc-hook that's run with GC inhibited.
112 Requested by Francois Pinard. XEmacs has it. Added to NEWS.
113
114 * alloc.c (Vpost_gc_hook, Qpost_gc_hook): New variables.
115 (syms_of_alloc): DEFVAR_LISP post-gc-hook, initialize Qpost_gc_hook.
116 (Fgarbage_collect): Run post-gc-hook.
117
118 2001-10-04 Gerd Moellmann <gerd@gnu.org>
119
120 This adds `defvaralias' and `indirect-variable'. Changes not
121 directly related to this feature are there to gain the same
122 performance again as before variable aliases.
123
124 You must use the SYMBOL_VALUE and SET_SYMBOL_VALUE macros in C
125 code to get and set symbol values, to take defvaralias into account.
126
127 (Note: the new `constant' bit-flag in symbols would make it
128 possible to define arbitrary read-only variables, e.g. with
129 `defconst'.)
130
131 Documentation is in lispref/variables.texi. Added to NEWS.
132
133 * lisp.h (enum symbol_interned): New enumeration.
134 (struct Lisp_Symbol): Remove member `obarray', add
135 `indirect_variable', `constant', and `interned'.
136 (SYMBOL_INTERNED_P, SYMBOL_INTERNED_IN_INITIAL_OBARRAY_P)
137 (SYMBOL_CONSTANT_P, SYMBOL_VALUE, SET_SYMBOL_VALUE): New macros.
138 (indirect_variable): Add prototype.
139
140 * print.c (print_preprocess, print_object): Test internedness of
141 symbols differently.
142
143 * lread.c (Fintern, Funintern): Set symbol's interned and constant
144 bit-fields.
145 (init_obarray): Likewise for t and nil.
146
147 * eval.c Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
148 (Fdefvaralias): New function.
149 (specbind): Simplify the test if symbol is a constant.
150 (syms_of_eval): Defsubr Fdefvaralias.
151
152 * data.c: Use SYMBOL_VALUE/SET_SYMBOL_VALUE.
153 (Qcyclic_variable_indirection): New variable.
154 (Fkeywordp): Check for internedness differently.
155 (Fmakunbound): Simplify the test if symbol is a constant.
156 (indirect_variable, Findirect_variable): New functions.
157 (swap_in_symval_forwarding): If SYMBOL is an alias, use the
158 aliased symbol.
159 (let_shadows_buffer_binding_p): Check for variable aliases.
160 (set_internal): Simplify the test if SYMBOL is a constant.
161 If SYMBOL has a buffer-local value and is an alias, use the aliased
162 symbol instead.
163 (syms_of_data): Initialize Qcyclic_variable_indirection and defsubr
164 Sindirect_variable.
165
166 * bytecode.c (Fbyte_code) <varref>: Use SYMBOL_VALUE.
167 (Fbyte_code) <varset>: Simplify the test if symbol's value can be
168 set directly.
169
170 * alloc.c (Fmake_symbol): Adapt to changes of struct Lisp_Symbol.
171
172 * abbrev.c, buffer.c, coding.c, fns.c, frame.c, keyboard.c:
173 * minibuf.c, sunfns.c, w16select.c: Use SYMBOL_VALUE/
174 SET_SYMBOL_VALUE macros instead of accessing symbol values directly.
175
176 2001-10-03 Miles Bader <miles@gnu.org>
177
178 * callproc.c (syms_of_callproc): Explicitly state in the
179 documentation for `process-environment' that earlier entries take
180 precedence over later ones.
181
182 2001-10-02 Miles Bader <miles@gnu.org>
183
184 * textprop.c (Fnext_char_property_change)
185 (Fprevious_char_property_change): Remove reference to non-existant
186 argument OBJECT from doc-string.
187
188 2001-10-01 Gerd Moellmann <gerd@gnu.org>
189
190 * xdisp.c (display_line): Set row's ends_in_newline_from_string_p.
191 (try_window_id): Skip back over lines ending in a newline from a
192 string.
193
194 * dispextern.h (struct glyph_row) <ends_in_newline_from_string_p>:
195 New bit flag
196
197 2001-10-01 Richard M. Stallman <rms@gnu.org>
198
199 * search.c (Freplace_match): Doc fix.
200
201 2001-09-28 Andrew Innes <andrewi@gnu.org>
202
203 * w32menu.c (set_frame_menubar): Take into account that
204 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
205 <raeburn@gnu.org>.
206
207 2001-09-30 Eli Zaretskii <eliz@is.elta.co.il>
208
209 * frame.c (syms_of_frame) <default-minibuffer-frame>: Doc fix.
210
211 2001-09-28 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
212
213 * s/gnu-linux.h: Fix a typo in comment.
214
215 2001-09-28 Andreas Schwab <schwab@suse.de>
216
217 * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Link temacs with -z
218 nocombreloc, in case -z combreloc is the default.
219
220 2001-09-28 Gerd Moellmann <gerd@gnu.org>
221
222 * m/macppc.h [DATA_SEG_BITS]: Put in #if 0 until we know what's
223 really going on here.
224
225 2001-09-27 Stefan Monnier <monnier@cs.yale.edu>
226
227 * search.c (trivial_regexp_p): Catch \{N,M\} as well.
228
229 2001-09-27 Eli Zaretskii <eliz@is.elta.co.il>
230
231 * Makefile.in (shortlisp): Resync with loadup.el: add backquote,
232 utf-8, menu-bar, and latin-N.
233 (SOME_MACHINE_LISP): Remove menu-bar, since it's loaded
234 unconditionally now.
235 (lisp): Add latin-N, since they are preloaded.
236
237 2001-09-27 Gerd Moellmann <gerd@gnu.org>
238
239 * xterm.c (x_draw_relief_rect): Draw bottom relief 1 pixel more
240 to the left. Some cleanup.
241
242 * xdisp.c (display_mode_element): One more case where a string's
243 multibyteness should be used for display.
244
245 2001-09-26 Gerd Moellmann <gerd@gnu.org>
246
247 * fileio.c (Finsert_file_contents): If REPLACE is non-nil, stop
248 reading at EOF.
249
250 * xdisp.c (with_echo_area_buffer): Use echo_kboard instead
251 of the only temporarily set echoing flag for deciding when
252 the cancel echoing.
253
254 * keyboard.c (echo_kboard): Make externally visible.
255
256 * lisp.h (echo_kboard): Declare extern.
257
258 * xdisp.c (make_cursor_line_fully_visible): Return 0 and set
259 fonts_changed_p if we need larger matrices due to vscrolling.
260 (try_scrolling, try_cursor_movement, redisplay_window): Give up on
261 this round of redisplay if make_cursor_line_fully_visible fails.
262 (CURSOR_MOVEMENT_*, SCROLLING_*): New enumerators.
263 (try_cursor_movement, try_scrolling): Use them instead of integers.
264
265 * dispextern.h (required_matrix_width, required_matrix_height):
266 Add prototypes.
267
268 * dispnew.c (required_matrix_width, required_matrix_height):
269 New functions.
270 (allocate_matrices_for_window_redisplay)
271 (allocate_matrices_for_frame_redisplay: Use them.
272 Remove parameters CH_DIM.
273
274 * xdisp.c (display_mode_lines): Temporarily set selected_frame
275 and selected_window to the frame of the window whose mode-lines
276 are displayed, and to the window itself.
277 (redisplay_window, redisplay_mode_lines): Don't set selected_frame
278 here.
279
280 2001-09-25 Gerd Moellmann <gerd@gnu.org>
281
282 * xfns.c (x_kill_gs_process): Recognize if someone has cleared
283 the image cache under us.
284
285 * xdisp.c (display_mode_element): If the mode element is a symbol
286 with a string value, use that string's multibyteness for displaying.
287
288 * keyboard.c (read_char): Don't clear a message for a switch-frame
289 event. From Stefan Monnier <monnier@cs.yale.edu>.
290
291 * xterm.c (fast_find_position) [0]: Add a presumably more correct
292 version for after 21.1.
293
294 * xdisp.c (row_containing_pos): Make externally visible.
295
296 * dispextern.h (row_containing_pos): Add prototype.
297
298 * process.c (send_process): Disable composition if from_byte < 0.
299 From Kenichi Handa <handa@etl.go.jp>.
300
301 2001-09-24 Gerd Moellmann <gerd@gnu.org>
302
303 * xterm.c (refreshicon): Function removed.
304
305 * Makefile.in (xterm.o): Remove references to sink.h and sinkmask.h.
306
307 * sink11.h, sink11mask.h, sink.h, sinkmask.h: Removed.
308
309 * xterm.c (toplevel): Remove includes in #if 0.
310
311 * process.c (sigchld_handler) [LINUX]: Don't return from
312 the signal handler at the end of the loop.
313
314 2001-09-21 Gerd Moellmann <gerd@gnu.org>
315
316 * sysdep.c (wait_for_termination) [POSIX_SIGNALS]:
317 Terminate only if kill returns -1, and errno is ESRCH.
318
319 2001-09-21 Markus Rost <rost@math.ohio-state.edu>
320
321 * Makefile.in (shortlisp): Add ../lisp/env.elc.
322
323 2001-09-20 Gerd Moellmann <gerd@gnu.org>
324
325 * process.c (sigchld_handler): Use GC_CONSP, GC_INTEGERP, GC_EQ
326 since this function can be called during GC.
327
328 * callproc.c (Fcall_process): Handle errors from pipe(2).
329 (child_setup): Delete code in #ifdef vipc.
330
331 2001-09-19 Gerd Moellmann <gerd@gnu.org>
332
333 * xdisp.c (decode_mode_spec): Add parameter MULTIBYTE.
334 (display_mode_element): Display the string from decode_mode_spec
335 depending on its multibyteness.
336
337 * s/netbsd.h (LD_SWITCH_SYSTEM, C_SWITCH_SYSTEM): Add /usr/pkg.
338
339 * m/macppc.h (DATA_SEG_BITS): Also define for GCC 3.
340
341 2001-09-18 Gerd Moellmann <gerd@gnu.org>
342
343 * keyboard.c (Frecursive_edit): Pass (BUFFER . SINGLE-KBOARD) to
344 recursive_edit_unwind.
345 (recursive_edit_unwind): Set kboard state according to
346 SINGLE-KBOARD.
347
348 * buffer.c (modify_overlay): Don't do nothing if START == END;
349 This can still be a modification, for example when an overlay has
350 a before-string or after-string.
351 (Fdelete_overlay): Prevent redisplay optimizations when deleting
352 an overlay with before-string or after-string.
353
354 * s/netbsd.h (C_SWITCH_SYSTEM): Add.
355 (LD_SWITCH_SYSTEM): Include /usr/local/lib.
356
357 * xdisp.c (try_window_id) [!GLYPH_DEBUG]: Give up if
358 first_unchanged_at_end_row is in front of
359 last_unchanged_at_beg_row. This code should be removed after the
360 release of 21.1.
361
362 2001-09-17 Gerd Moellmann <gerd@gnu.org>
363
364 * buffer.h (BUF_COMPUTE_UNCHANGED): Use BUF_MODIFF and
365 BUF_OVERLAY_MODIFF instead of MODIFF and OVERLAY_MODIFF.
366
367 * m/macppc.h (DATA_SEG_BITS) [__linux__]: Define for GCC
368 versions >= 2.95.
369
370 2001-09-14 Eli Zaretskii <eliz@is.elta.co.il>
371
372 * dired.c (Ffile_attributes): Doc fix.
373
374 2001-09-14 Gerd Moellmann <gerd@gnu.org>
375
376 * fileio.c (Ffile_symlink_p): Fix last change.
377
378 * filelock.c (current_lock_owner): Fix last change.
379
380 2001-09-13 Gerd Moellmann <gerd@gnu.org>
381
382 * filelock.c (current_lock_owner): If readlink returns ERANGE,
383 take that to mean that the buffer is too small.
384
385 * fileio.c (Ffile_symlink_p): If readlink returns ERANGE, take
386 that to mean that the buffer is too small.
387
388 * xdisp.c (reseat_1): Set IT's multibyte_p flag according to the
389 current buffer's multibyteness when discarding the iterator's
390 stack.
391
392 * xfns.c (Fx_window_property): Handle case that property gets
393 deleted between the two calls to XGetWindowProperty.
394
395 2001-09-11 Gerd Moellmann <gerd@gnu.org>
396
397 * minibuf.c (read_minibuf_unwind): Bind inhibit-modification-hooks.
398
399 * minibuf.c (read_minibuf): Bind inhibit-modification-hooks to t,
400 in addition to read-only.
401
402 * xdisp.c (with_echo_area_buffer): Bind inhibit-modification-hooks
403 to t in addition to read-only.
404
405 * lisp.h (Qinhibit_modification_hooks): Declare.
406
407 * insdel.c (Qinhibit_modification_hooks): New variable.
408 (syms_of_insdel): Initialize and staticpro it.
409
410 * textprop.c (verify_interval_modification): Don't run
411 modification-hooks if inhibit_modification_hooks.
412
413 * dispnew.c (set_window_cursor_after_update): Fix code
414 finding glyph row containing cursor when cursor_in_echo_area
415 is >= 0.
416
417 * xdisp.c (init_from_display_pos): Put some code in #if 0.
418 (add_to_log): Use bcopy instead of strcpy.
419 (init_from_display_pos): Use an explicit loop over bytes in
420 overlay strings instead of calling index.
421
422 2001-09-10 Gerd Moellmann <gerd@gnu.org>
423
424 * alloc.c (allocate_buffer): Call VALIDATE_LISP_STORAGE.
425
426 * dispnew.c (direct_output_for_insert): Don't change IT's
427 stop_charpos to something in front of its current position.
428
429 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: Take args like
430 `format'.
431
432 2001-09-10 Richard M. Stallman <rms@gnu.org>
433
434 * frame.c (Fmouse_position): Doc fix.
435
436 2001-09-07 Gerd Moellmann <gerd@gnu.org>
437
438 * xdisp.c (init_from_display_pos): Don't compare the result
439 of calling index with NULL.
440
441 2001-09-06 Gerd Moellmann <gerd@gnu.org>
442
443 * xfns.c (x_set_background_color): Don't change the colors
444 of the X window of scroll bar widgets.
445
446 2001-09-05 Andrew Innes <andrewi@gnu.org>
447
448 * w32fns.c (w32_createwindow): Undo last change.
449
450 2001-09-05 Gerd Moellmann <gerd@gnu.org>
451
452 * macros.c (store_kbd_macro_char): Fix computation of kbd_macro_end.
453
454 * xdisp.c (string_buffer_position): Use *single_char_property*
455 functions instead of the *single_property* functions.
456
457 2001-09-04 Andrew Innes <andrewi@gnu.org>
458
459 * w32term.c (w32_read_socket): Add more information to debugging
460 output.
461
462 * w32fns.c (w32_createwindow): Remove the WS_CLIPCHILDREN style
463 from Emacs frames, so that calls to GetClipBox in w32term.c
464 correctly report when part of a frame is visible (including
465 scrollbars, etc). This prevents repeated redrawing of frames when
466 only a scrollbar is visible.
467 (w32_wnd_proc): Add more frame information to debugging output.
468
469 2001-09-03 Stefan Monnier <monnier@cs.yale.edu>
470
471 * xdisp.c (handle_single_display_prop): Fix for int/Lisp_Object mixup.
472
473 2001-09-03 Gerd Moellmann <gerd@gnu.org>
474
475 * xterm.c (note_mouse_highlight) <help-echo>: When looking for
476 help-echo for a string which doesn't have help-echo itself, use
477 get-char-property to obtain the help-echo from the string's buffer
478 (note_mouse_highlight) <mouse-face>: When on a string that doesn't
479 have mouse-face, look ``under'' the string for mouse-face from an
480 overlay.
481 (fast_find_position): Add parameter STOP. In the final row, stop
482 before glyphs having STOP as object. Don't consider glyphs that
483 are not from a buffer.
484
485 * buffer.c (syms_of_buffer) <default-directory>: Doc fix.
486
487 2001-09-01 Eli Zaretskii <eliz@is.elta.co.il>
488
489 * fns.c (Fmd5): Doc fix.
490
491 2001-08-31 Gerd Moellmann <gerd@gnu.org>
492
493 * composite.c (update_compositions): Do nothing if
494 inhibit-modification-hooks is set.
495
496 2001-08-30 Gerd Moellmann <gerd@gnu.org>
497
498 * emacs.c (shut_down_emacs): Don't call check_glyph_memory
499 and check_message_stack if terminating abnormally. We want
500 glyph matrices etc. in a core dump.
501
502 * xdisp.c (Qbuffer_position, Qposition, Qobject): New variables.
503 (syms_of_xdisp): Initialize them.
504 (handle_single_display_prop): Don't change point, bind `object',
505 `position', and `buffer-position' instead to the object having the
506 `display' property, position in the object and position in the buffer.
507
508 * fileio.c (Finsert_file_contents): Don't change the multibyteness
509 of the buffer if REPLACE is non-nil.
510
511 2001-08-29 Gerd Moellmann <gerd@gnu.org>
512
513 * fileio.c (Finsert_file_contents): Undo change of 2001-08-27.
514
515 2001-08-28 Eli Zaretskii <eliz@is.elta.co.il>
516
517 * w32term.c (x_set_glyph_string_background_width)
518 (show_mouse_face): Track the last changes in xterm.c.
519
520 2001-08-28 Gerd Moellmann <gerd@gnu.org>
521
522 * xterm.c (x_set_glyph_string_background_width): Set the glyph
523 string's background width so that multi-line mouse-face is drawn
524 to the right edge of the window.
525 (show_mouse_face): Set the row's mouse_face_p flag after drawing
526 glyphs.
527
528 * dispnew.c (direct_output_for_insert): Set updated_area
529 before inserting/writing glyphs.
530
531 * xdisp.c (display_mode_element): Use string_byte_to_char to
532 determine character positions in strings, use chars_in_text
533 instead of strwidth.
534 (dump_glyph_row) [GLYPH_DEBUG]: Take a glyph row instead of
535 a matrix as parameter; this is easier to use from GDB.
536
537 2001-08-28 Miles Bader <miles@gnu.org>
538
539 * textprop.c (Fprevious_single_char_property_change)
540 (Fnext_single_char_property_change): Doc fixes.
541
542 2001-08-27 Gerd Moellmann <gerd@gnu.org>
543
544 * fileio.c (Finsert_file_contents): Allocate, restore, and
545 free composition data in the case of REPLACE not being nil.
546
547 * xdisp.c (init_from_display_pos, init_to_row_end): Return 0 if
548 there exist overlay strings with newlines at POS.
549 (text_outside_line_unchanged_p): Return 0 if changes start at
550 START and overlays exist at START. Likewise for END.
551 (try_window_id): Give up if init_to_row_end returns 0.
552
553 * fileio.c (Finsert_file_contents): Call Fset_buffer_multibyte
554 unconditionally.
555
556 2001-08-24 Gerd Moellmann <gerd@gnu.org>
557
558 * keymap.c (access_keymap): Return the cdr of the binding of
559 a generic character instead of its definition (KEY . BINDING).
560
561 * fileio.c (Finsert_file_contents): Set coding's dest_multibyte
562 to 0 also in the REPLACE case.
563
564 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
565
566 * fileio.c (Ffile_readable_p) [macintosh]: Call access instead of
567 open to determine whether file is readable (as for DOS_NT).
568
569 2001-08-23 Gerd Moellmann <gerd@gnu.org>
570
571 * fileio.c (Finsert_file_contents): If VISIT is non-nil, and
572 coding.type is coding_type_no_conversion or coding_type_raw_text,
573 use Fset_buffer_multibyte to make the buffer unibyte if REPLACE is
574 non-nil instead of just setting enable_multibyte_characters in the
575 buffer to nil.
576
577 2001-08-22 Gerd Moellmann <gerd@gnu.org>
578
579 * dispextern.h (struct face_cache): Add member
580 menu_face_changed_p.
581
582 * xfaces.c (menu_face_changed_default): New variable.
583 (menu_face_changed_count): Variable removed.
584 (Finternal_set_lisp_face_attribute): Doc fix. If FRAME is t, set
585 the menu_face_changed_default flag, otherwise set the FRAME's
586 menu_face_changed_p flag if the `menu' face has been changed.
587 Prevent calling set_font_frame_param if FRAME is t.
588 (make_face_cache): Initialize cache's menu_face_changed_p
589 from menu_face_changed_default.
590 (realize_basic_faces): Look into the frame's face cache to
591 determine if the menu appearance needs updating.
592
593 * keymap.c (access_keymap): Fix last change to not consider
594 IDX when it has modifiers.
595
596 2001-08-21 Gerd Moellmann <gerd@gnu.org>
597
598 * keymap.c (access_keymap): If a binding of the form (GENERIC-CHAR
599 . BINDING) exists, where GENERIC-CHAR is the generic character of
600 the charset of IDX, return BINDING unless there exists a binding
601 for IDX itself.
602
603 2001-08-16 Gerd Moellmann <gerd@gnu.org>
604
605 * xrdb.c (SYSV): Don't define on Solaris 2.
606 From Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>.
607
608 * xdisp.c (move_it_by_lines) <DVPOS < 0>: Start at the beginning
609 of the screen line, not text line, containing IT's current position.
610
611 2001-08-15 Gerd Moellmann <gerd@gnu.org>
612
613 * window.c (window_scroll_pixel_based): Don't recenter if
614 PT is partially visible in the window.
615
616 * xterm.c (expose_window_tree, expose_window, expose_line):
617 Return 1 when overwriting mouse-face.
618 (expose_frame): If mouse-face was overwritten, redo it.
619
620 * xfaces.c (x_update_menu_appearance): Don't call
621 set_frame_menubar, let the next redisplay do it.
622
623 2001-08-14 Andrew Innes <andrewi@gnu.org>
624
625 * w32term.c (x_draw_glyph_string): Draw relief (if any) before
626 drawing glyph string.
627
628 2001-08-14 Eli Zaretskii <eliz@is.elta.co.il>
629
630 * s/hiuxwe2.h: New file, for the HITACHI SR2001/SR2201 series
631 running HI-UX/MPP.
632
633 2001-08-14 Gerd Moellmann <gerd@gnu.org>
634
635 * xfaces.c (x_update_menu_appearance): Save and restore value of
636 interrupt_input_blocked.
637
638 2001-08-13 Gerd Moellmann <gerd@gnu.org>
639
640 * xdisp.c (move_it_by_lines) <DVPOS < 0>: If not already on
641 a line start, move back to the line start.
642
643 * xdisp.c (resize_echo_area_exactly): Don't resize the mini-window
644 exactly when a mini-buffer is active.
645
646 * keyboard.c (make_lispy_event): Interpret double_click_fuzz
647 in units of 1/8 character on non window-system frames.
648 (syms_of_keyboard) <double-click-fuzz>: Doc fix.
649
650 2001-08-10 Eli Zaretskii <eliz@is.elta.co.il>
651
652 * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Fix a typo in
653 a doc string.
654
655 2001-08-09 Gerd Moellmann <gerd@gnu.org>
656
657 * keyboard.c (Vpre_help_message): New variable.
658 (syms_of_keyboard): Initialize and staticpro it.
659 (show_help_echo): Record current message before displaying a
660 help-echo, and restore that message when clearing the help.
661
662 * xfns.c (x_create_im): Remove prototype.
663
664 * xdisp.c (mark_window_display_accurate_1): Remove an assertion.
665
666 * dispnew.c (adjust_glyph_matrix): Undo last change.
667
668 2001-08-08 Gerd Moellmann <gerd@gnu.org>
669
670 * dispnew.c (adjust_glyph_matrix): In the optimization for
671 windows whose height has changed, disable partially visible lines.
672
673 2001-08-07 Gerd Moellmann <gerd@gnu.org>
674
675 * window.c (Frecenter): If ARG < 0, and on a window system
676 frame, count in some empty lines when we can't move -ARG lines down.
677
678 * xdisp.c (start_display): Don't try to determine the continuation
679 lines width if lines are truncated. It's superfluous and leads to
680 incorrect results if POS is not visible in the window after
681 reseating the iterator at the previous line start.
682
683 2001-08-06 Gerd Moellmann <gerd@gnu.org>
684
685 * xterm.c (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
686
687 2001-08-06 Pavel Jan\e,Bm\e(Bk <Pavel@Janik.cz>
688
689 * alloc.c (init_stack): Remove declaration.
690
691 2001-08-03 Gerd Moellmann <gerd@gnu.org>
692
693 * keyboard.c (read_key_sequence): Check that key is an integer
694 before comparing it with quit_char.
695 (add_command_key): Use larger_vector.
696 (read_char_x_menu_prompt): Instead of converting symbol and
697 integer events into conses (EVENT . nil), use (EVENT . disabled)
698 which cannot be confused with valid events.
699 (read_char): When reading from Vunread_command_events, check for
700 events of the form (EVENT . disabled) instead of
701 (EVENT . nil).
702
703 * xdisp.c (resize_mini_window): If Vmax_mini_window_height is
704 a float, determine the max height from the frame's height.
705
706 2001-08-02 Gerd Moellmann <gerd@gnu.org>
707
708 * xdisp.c (redisplay_internal): Take message_cleared_p into
709 account only if minibuf_level == 0.
710
711 2001-08-01 Gerd Moellmann <gerd@gnu.org>
712
713 * xdisp.c (redisplay_internal): Add a check for the last
714 displayed message.
715
716 * xdisp.c (message_cleared_p): New variable.
717 (clear_message): Set message_cleared_p when clearing the current
718 message.
719 (redisplay_internal): Look at message_cleared_p to capture
720 the case that the echo area should be cleared.
721
722 * keyboard.c (command_loop_1): Fix spelling of
723 resize_echo_area_exactly.
724
725 * dispextern.h (resize_echo_area_exactly): Fix typo in function name.
726
727 * xdisp.c (resize_echo_area_exactly): Fix typo in function name.
728
729 * xfns.c (x_set_tool_bar_lines): Clear the tool bar window's
730 current matrix when the window gets smaller.
731
732 2001-08-01 Eli Zaretskii <eliz@is.elta.co.il>
733
734 * print.c (strout): Cast the character passed to insert_char to
735 unsigned char, to avoid sign extension when it is promoted to int.
736
737 2001-07-31 Gerd Moellmann <gerd@gnu.org>
738
739 * fileio.c (Finsert_file_contents): Don't treat a return value
740 of 0 from emacs_read as an IO error.
741
742 2001-07-30 Gerd Moellmann <gerd@gnu.org>
743
744 * keyboard.c (abs): New macro.
745 (double_click_fuzz): New variable.
746 (make_lispy_event): Use it to determine what makes a double-click.
747 (syms_of_keyboard): DEFVAR_INT it.
748
749 * xmenu.c (set_frame_menubar): Take into account that
750 f->menu_bar_vector can be nil, and not a vector. From Ken Raeburn
751 <raeburn@gnu.org>.
752
753 2001-07-27 Gerd Moellmann <gerd@gnu.org>
754
755 * xterm.c (x_get_glyph_string_clip_rect): Minor cleanup.
756
757 * dispnew.c (shift_glyph_matrix, blank_row): Fix computation
758 of row's visible height.
759
760 * xdisp.c (init_from_display_pos): If POS is in an overlay string,
761 deal with the first overlay string having an image `display' property.
762 (try_window_reusing_current_matrix, compute_line_metrics):
763 Fix computation of row's visible height for the case that part of the
764 row is invisible above and part of the row is at the same time
765 invisible below the window.
766
767 2001-07-26 Gerd Moellmann <gerd@gnu.org>
768
769 * xfns.c (x-show-tip): Doc fix.
770
771 * xfns.c (Vx_max_tooltip_size): New variable.
772 (syms_of_xfns): DEFVAR_LISP it.
773 (Fx_show_tip): Set frame's window_width to the width of the
774 window. Use a maximum tooltip size specified by
775 Vx_max_tooltip_size, if that has valid contents.
776 (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
777
778 2001-07-26 Andrew Innes <andrewi@gnu.org>
779
780 * w32term.c (x_display_list): New variable.
781 (w32_term_init): Set it.
782
783 * w32term.h (x_display_list): New extern.
784
785 2001-07-26 Gerd Moellmann <gerd@gnu.org>
786
787 * xdisp.c (resize_mini_window): Give up when inhibit-redisplay
788 is non-nil, instead of when redisplaying_p is non-zero.
789 See comment there.
790 (mark_window_display_accurate_1): Add an assertion.
791
792 2001-07-25 Gerd Moellmann <gerd@gnu.org>
793
794 * dispextern.h (struct it): Increase size of ctl_chars to 16.
795
796 * xfns.c (Fx_file_dialog): Block/unblock input while processing
797 events so that we get a chance of processing expose events.
798
799 * xdisp.c (resize_mini_window): Don't resize while redisplaying.
800
801 2001-07-24 Gerd Moellmann <gerd@gnu.org>
802
803 * xfns.c (valid_image_p): Protect better against invalid image
804 specifications. Previous code could signal an error.
805
806 2001-07-23 Gerd Moellmann <gerd@gnu.org>
807
808 * indent.c (current_column): Fix column computation in the
809 presence of display table entries.
810 (current_column_1, Fmove_to_column, compute_motion): Likewise.
811
812 * dispnew.c (adjust_glyph_matrix): In the optimization for
813 windows whose height has changed, use the new window height
814 to compute which rows to invalidate.
815
816 * editfns.c (toplevel) [STDC_HEADERS]: Include float.h.
817 (MAX_10_EXP): New macro.
818 (Fformat): Use it.
819
820 * coding.c (code_convert_region): Handle the multibyte case if
821 decoding ends with CODING_FINISH_INSUFFICIENT_SRC.
822
823 2001-07-20 Gerd Moellmann <gerd@gnu.org>
824
825 * dispextern.h (struct face): Change type of `stipple' to
826 int; it's an ID.
827
828 * xterm.c (x_fill_stretch_glyph_string): Remove an assertion.
829
830 2001-07-19 Gerd Moellmann <gerd@gnu.org>
831
832 * dispnew.c (update_window): Don't set the cursor at the end
833 of the update if display update has been paused.
834
835 * composite.h (syms_of_composite): Renamed from syms_of_composition.
836
837 2001-07-18 Ken Raeburn <raeburn@gnu.org>
838
839 * fns.c (Fset_char_table_default): Check that a charset is defined
840 before checking its dimension.
841
842 2001-07-17 Ken Raeburn <raeburn@gnu.org>
843
844 * coding.c (setup_coding_system): Don't do any designation based
845 on reg_bits if charset is not yet defined.
846
847 * lisp.h (XVECTOR): Verify correct object type before returning a
848 pointer, using eassert.
849
850 2001-07-17 Gerd Moellmann <gerd@gnu.org>
851
852 * keyboard.c (KBD_BUFFER_SIZE) [!HAVE_WINDOW_SYSTEM]:
853 Increase to 4096 because of paste problems reported on GNU/Linux.
854
855 2001-07-17 Jan Nieuwenhuizen <janneke@gnu.org>
856
857 * emacs.c (USAGE1): Add +LINE:COLUMN option help.
858
859 2001-07-16 Gerd Moellmann <gerd@gnu.org>
860
861 * fileio.c (unwind_read): Function removed.
862 (read_non_regular, read_non_regular_quit): New functions.
863 (Finsert_file_contents): When reading from non-regular files,
864 arrange to catch a `quit' and terminate the loop. Rearrange
865 code so that a `quit' when reading from a regular file doesn't
866 insert text in the buffer.
867
868 * xfaces.c (clear_face_cache): Clear fonts on a display basis.
869 Clear faces afterwards.
870 (clear_font_table): Take a x_display_info parameter. Don't free
871 fonts being the default font of any frame on the given display.
872
873 2001-07-13 Gerd Moellmann <gerd@gnu.org>
874
875 * xdisp.c (get_next_display_element): Use CHAR_STRING_NO_SIGNAL
876 instead of CHAR_STRING which can signal an error.
877
878 * charset.c (char_to_string_1): Extracted from char_to_string.
879 Return -1 instead of signaling an error.
880 (char_to_string): Use it.
881
882 * charset.h (CHAR_STRING_NO_SIGNAL): New macro.
883
884 2001-07-12 Stefan Monnier <monnier@cs.yale.edu>
885
886 * coding.c (Ffind_coding_systems_region_internal): If safe_codings
887 is t, don't try to append anything to it.
888
889 2001-07-12 Eli Zaretskii <eliz@is.elta.co.il>
890
891 * dired.c (file_name_completion): Pass dp->d_name to
892 Fstring_match, not elt, which is always nil here.
893
894 2001-07-12 Gerd Moellmann <gerd@gnu.org>
895
896 * xselect.c (x_decline_selection_request): Handle errors
897 caused by receivers that have vanished.
898
899 * xterm.c (XTread_socket) <PropertyNotify>: Put the code
900 ignoring events on foreign windows in #if 0. Always dispatch
901 the event after checking it with x_handle_property_notify.
902
903 * xselect.c (TRACE0, TRACE1, TRACE2): New macros, defined
904 depending on TRACE_SELECTION. Replace fprintfs in #if 0 with
905 TRACE macros to facilitate debugging. Add additional trace statements.
906 (toplevel): Add prototypes for file-local functions.
907 (x_atom_to_symbol): Remove DPYINFO parameter.
908
909 2001-07-11 Stefan Monnier <monnier@cs.yale.edu>
910
911 * w32menu.c (menubar_selection_callback, w32_menu_show):
912 Initialize `entry' to nil.
913 (w32_dialog_show): Remove unused `save_wv' variable.
914 (name_is_separator): Recognize "--:foo" and "--foo-bar".
915
916 2001-07-11 Gerd Moellmann <gerd@gnu.org>
917
918 * xdisp.c (try_cursor_movement): Prevent a warning from GCC 3.0.
919
920 * fileio.c (unwind_read): Print a message when discarding inserted
921 text or switching the buffer to unibyte. Change parameter.
922 (Finsert_file_contents): Don't pass VISIT to unwind_read.
923
924 * fileio.c (unwind_read): New function.
925 (Finsert_file_contents): Record it as unwind-function for
926 the case that reading is interrupted by C-g.
927
928 2001-07-10 Gerd Moellmann <gerd@gnu.org>
929
930 * dispnew.c (update_window): Don't skip the header-line
931 update when scrolling_window returns 0.
932
933 * xfaces.c (unload_color): Do nothing if PIXEL is -1.
934
935 * xfns.c (Fx_create_frame): Initialize frame colors to -1,
936 for the case that x_decode_color signals an error.
937
938 * xdisp.c (add_to_log): Do nothing if called asynchronously.
939
940 2001-07-09 Gerd Moellmann <gerd@gnu.org>
941
942 * sound.c (toplevel): Include <signal.h> and "syssignal.h".
943 (vox_configure, vox_close) [SIGIO]: Block/unblock SIGIO
944 around ioctls.
945
946 2001-07-06 Eli Zaretskii <eliz@is.elta.co.il>
947
948 * dosfns.c (syms_of_dosfns): Add \n\ at the end of a line in the
949 doc string line for dos-timezone-offset.
950
951 * msdos.c (do_visible_bell): Add \n\ at the end of each line of
952 inline assembly, to avoid compiler warnings.
953 (syms_of_msdos): Add \n\ at the end of a line in the doc string
954 line for dos-unsupported-char-glyph.
955
956 * buffer.c (syms_of_buffer) [if 0]: Avoid a warning from GCC 3.0.
957
958 2001-07-05 Gerd Moellmann <gerd@gnu.org>
959
960 * sound.c: Include Emacs' header files with #include "...".
961
962 * eval.c (specbind): Additionally record the buffer that was
963 current when a buffer-local or frame-local variable was bound.
964
965 2001-07-04 Gerd Moellmann <gerd@gnu.org>
966
967 * xterm.c (x_produce_glyphs): Don't convert multibyte characters
968 to unibyte characters in unibyte buffers.
969
970 2001-07-03 Gerd Moellmann <gerd@gnu.org>
971
972 * eval.c (specbind): If SYMBOL has a frame-local binding, record
973 the frame on the binding stack. Change format of entries for
974 local bindings on the binding stack to '(SYMBOL . WHERE)'.
975 (unbind_to): Handle unbinding a frame-local variable.
976
977 * xdisp.c (compute_line_metrics): On ttys, subtract continuation
978 glyphs and truncation glyphs at the end of a row from its pixel width.
979 (dump_glyph_row): Print row's continuation_lines_width.
980 (try_window_id): Take the shortcut if ZV is visible in the
981 window, but there are actually no changes at ZV.
982
983 2001-07-02 Gerd Moellmann <gerd@gnu.org>
984
985 * xterm.h (x_free_dpy_colors): Add prototype.
986
987 * xterm.c (cvt_pixel_dtor): Call x_free_dpy_colors with the
988 right number of arguments.
989
990 * Makefile.in (tags): Depend on $(lwlibdir)/TAGS.
991 ($(lwlibdir)TAGS): New target.
992 (TAGS): Fix dependency list.
993
994 * xterm.c (x_list_fonts): Make sure XFreeFont is called
995 with input blocked.
996
997 2001-06-30 Gerd Moellmann <gerd@gnu.org>
998
999 * emacs.c (main): Remove extern declaration for sys_nerr, which
1000 isn't used and causes a compilation error with GCC 3.0 on
1001 FreeBSD 4.3.
1002
1003 2001-06-27 Gerd Moellmann <gerd@gnu.org>
1004
1005 * widget.c (EmacsFrameSetCharSize): Turn off atimers and block
1006 SIGIO around the code where Xt might wait for a ConfigureNotifyEvent.
1007 (toplevel): Include <signal.h> and syssignal.h.
1008
1009 * sound.c (vox_configure, vox_close): Turn off atimers
1010 around ioctls.
1011
1012 2001-06-26 Gerd Moellmann <gerd@gnu.org>
1013
1014 * keyboard.c (read_char) <non_reread>: Record the previous idle
1015 start time before calling timer_stop_idle.
1016 (read_char) <reread_first>: After processing a help-echo event,
1017 restore the previous idle start time.
1018
1019 * xdisp.c (handle_invisible_prop): Deal with overlay strings at
1020 the start of invisible text.
1021 (setup_for_ellipsis): New function.
1022 (next_overlay_string): After all overlay strings have been
1023 processed, display an ellipsis if necessary.
1024 (load_overlay_strings, get_overlay_strings): Add parameter CHARPOS.
1025 (push_it): Initialize display_ellipsis_p on the iterator's stack.
1026
1027 * dispextern.h (struct iterator_stack_entry): Add member
1028 display_ellipsis_p.
1029
1030 2001-06-25 Gerd Moellmann <gerd@gnu.org>
1031
1032 * widget.c (EmacsFrameSetCharSize): Set XtNwaitForWm depending
1033 on the value of the wait-for-wm frame parameter.
1034
1035 * xterm.h (struct x_output): Add member wait_for_wm.
1036
1037 * xfns.c (Qwait_for_wm): New variable.
1038 (x_frame_parms): Add entry for `wait-for-wm".
1039 (x_set_wait_for_wm): New function.
1040 (Fx_create_frame): Call x_default_parameter for wait-for-wm.
1041 (syms_of_xfns): Initialize and staticpro Qwait_for_wm.
1042
1043 * xdisp.c (try_window_id) <all changes below window end>: Don't
1044 take this shortcut if ZV is visible in the window.
1045 (try_window_id): When checking for window start being in changed
1046 text, don't check that the buffer's size has changed.
1047
1048 2001-06-23 Richard M. Stallman <rms@gnu.org>
1049
1050 * minibuf.c (Fcompleting_read): Doc fix.
1051
1052 2001-06-19 Gerd Moellmann <gerd@gnu.org>
1053
1054 * composite.c (Ffind_composition_internal): Accept ZV
1055 and a string's end position as POS.
1056
1057 2001-06-18 Gerd Moellmann <gerd@gnu.org>
1058
1059 * composite.c (Ffind_composition_internal): Check POS
1060 for validity.
1061
1062 2001-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1063
1064 * editfns.c (Fmessage_box): If the frame is not under a window
1065 system, output the message in the echo area.
1066
1067 2001-06-14 Richard M. Stallman <rms@gnu.org>
1068
1069 * xdisp.c (try_window_id): When EOB is visible, don't treat
1070 insertion at EOB as if it were "off the bottom of the screen."
1071
1072 2001-06-11 Andrew Innes <andrewi@gnu.org>
1073
1074 * w32proc.c (create_child): Add new parameter is_gui_app.
1075 (w32_executable_type): Add new parameter is_gui_app.
1076 (sys_spawnve): Use it.
1077 (sys_kill): Fake ^C for SIGINT, and ^Break (if possible) for
1078 SIGQUIT. This matches better how the signals are interpreted by
1079 MSVC compiled programs.
1080 (syms_of_ntproc): Update docstring.
1081
1082 2001-06-02 Stefan Monnier <monnier@cs.yale.edu>
1083
1084 * xterm.c (clear_mouse_face): Reset dpyinfo->mouse_face_overlay as
1085 well otherwise note_mouse_highlight might optimize away highlighting
1086 if we pass over that same overlay again.
1087
1088 2001-06-02 Eli Zaretskii <eliz@is.elta.co.il>
1089
1090 * lread.c (Fload): Document that the argument is run via
1091 substitute-in-file-name.
1092
1093 2001-05-31 Gerd Moellmann <gerd@gnu.org>
1094
1095 * Makefile.in (bootstrap-doc): New target.
1096 (bootstrap-emacs): Depend on it.
1097
1098 * fileio.c (Fdo_auto_save): Don't try to create the directory of
1099 auto-save-list-file-name when shutting down Emacs, because
1100 creating the directory might signal an error, and leaves
1101 Emacs in a strange state.
1102
1103 * term.c: (tty_cursor_hidden): New variable.
1104 (update_begin): Don't call tty_hide_cursor. Clean up.
1105 (update_end, set_terminal_window, set_scroll_region): Clean up.
1106 (ring_bell, reset_terminal_modes): Clean up.
1107 (tty_hide_cursor, tty_show_cursor): Hide/show cursor depending
1108 on tty_cursor_hidden.
1109 (write_glyphs): Call tty_hide_cursor.
1110
1111 2001-05-30 Stefan Monnier <monnier@cs.yale.edu>
1112
1113 * buffer.c (copy_overlays): Make ENABLE_CHECKING happy.
1114
1115 2001-05-30 Gerd Moellmann <gerd@gnu.org>
1116
1117 * xfns.c (enum image_value_type): New enumerator
1118 IMAGE_STRING_OR_NIL_VALUE.
1119 (parse_image_spec): Handle it.
1120 (xbm_format, pbm_format): Use it for :foreground and :background.
1121 (xbm_load, pbm_load): Check for nil color names.
1122
1123 * xterm.c (note_mouse_highlight): If an overlapping overlay
1124 exists, but we find that we highlight the same overlay as before,
1125 don't do the highlighting again.
1126
1127 2001-05-29 Gerd Moellmann <gerd@gnu.org>
1128
1129 * xmenu.c (single_submenu, xmenu_show) [!HAVE_MULTILINGUAL_MENU]:
1130 Protect unibyte strings created by replacing their multibyte
1131 equivalents in menu_items.
1132
1133 * keymap.c (Fsingle_key_description): NUL-terminate the string
1134 buffer before calling build_string.
1135
1136 * callproc.c (Fcall_process): Deal with decode_coding returning
1137 CODING_FINISH_INCONSISTENT_EOL.
1138
1139 2001-05-28 Gerd Moellmann <gerd@gnu.org>
1140
1141 * xmenu.c (xmenu_show) [!HAVE_MULTILINGUAL_MENU]: Don't overwrite
1142 an item's name with its key description in case the description
1143 is a multibyte string.
1144
1145 * keymap.c (Fsingle_key_description): Create a multibyte string
1146 only if necessary.
1147
1148 * macros.c (Fstart_kbd_macro): Doc fix.
1149
1150 * xterm.c (cursor_in_mouse_face_p): New function.
1151 (x_draw_stretch_glyph_string): Use it to choose a different GC
1152 when drawing a cursor within highlighted text.
1153
1154 * editfns.c (char_property_eq): Put in #if 0.
1155
1156 * indent.c (string_display_width): Put in #if 0.
1157
1158 * lread.c (Fload): Remove unused label.
1159
1160 * termcap.c (speeds): Put in #if 0.
1161
1162 2001-05-18 Gerd Moellmann <gerd@gnu.org>
1163
1164 * eval.c (call_debugger): Don't bind inhibit-eval-during-redisplay.
1165
1166 * xfaces.c (xlfd_point_size): Don't divide pixel size from
1167 transformation matrix by 10.
1168
1169 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1170
1171 * xfns.c (x_set_foreground_color): Change frame's cursor_pixel
1172 only if it's equal to the former foreground pixel color.
1173 (x_set_foreground_color, x_set_background_color)
1174 (x_set_mouse_color, x_set_cursor_color): Cleaned up.
1175
1176 2001-05-16 Dave Love <fx@gnu.org>
1177
1178 * insdel.c (signal_before_change, signal_after_change): Consider a
1179 local change hook which changes the buffer.
1180
1181 * process.c (read_process_output): Don't call signal_after_change
1182 and update_compositions after insert_from_string_before_markers.
1183
1184 2001-05-16 Gerd Moellmann <gerd@gnu.org>
1185
1186 * xfaces.c (split_font_name): Use the right field when
1187 checking for `[...]' syntax.
1188
1189 * buffer.c (copy_overlays): New function.
1190 (clone_per_buffer_values): Use it.
1191
1192 * buffer.h (OVERLAY_PLIST): New macro.
1193
1194 * keymap.c (Fsingle_key_description): Replace a build_string with
1195 a make_multibyte_string. From Kenichi Handa <handa@etl.go.jp>.
1196
1197 * fontset.c (Ffontset_info): Check that face is non-null
1198 before accessing its fields.
1199
1200 2001-05-15 Gerd Moellmann <gerd@gnu.org>
1201
1202 * keyboard.c (read_key_sequence): Prevent generating a fake
1203 prefix key twice.
1204
1205 * xfaces.c (split_font_name): Handle `[...]' for the right
1206 font name fields.
1207
1208 * ccl.c (ccl_driver): Don't copy remaining bytes in case
1209 of CCL_STAT_INVALID_CMD.
1210
1211 2001-05-14 Stefan Monnier <monnier@cs.yale.edu>
1212
1213 * eval.c (Fdefvar): Only record (defvar <var>) in the load-history
1214 in <var> has no default value yet.
1215
1216 * xfaces.c (try_alternative_families): First try the FAMILY.
1217 And if nothing is found in the end, try again with scalable fonts.
1218 (try_font_list): Let try_alternative_families do a bit more of
1219 the work. Only use FAMILY if it is not nil.
1220 (syms_of_xfaces) <scalable-fonts-allowed>: Fix docstring.
1221
1222 2001-05-14 Gerd Moellmann <gerd@gnu.org>
1223
1224 * xterm.c (note_mouse_highlight): Avoid changing the mouse
1225 pointer shape when show_mouse_face has already done it.
1226
1227 * xterm.c (x_draw_glyphs): Fix computation of rightmost x for
1228 full-width rows.
1229
1230 * xfaces.c (split_font_name): Make sure to leave the loop
1231 with the right value of `i'.
1232
1233 * xfaces.c (split_font_name): Handle matrix transformations
1234 in the pixel and point size fields of XLFD font names.
1235 (xlfd_point_size): Likewise.
1236
1237 2001-05-12 Eli Zaretskii <eliz@is.elta.co.il>
1238
1239 * w32fns.c (w32_to_x_font): Change prototype to fit the declaration.
1240 (x_to_w32_font): Add prototype.
1241
1242 * regex.c (malloc, realloc, free) [emacs]: Undefine before
1243 redefining, to avoid compiler warnings.
1244
1245 * w32proc.c: Include syssignal.h, to avoid compiler warnings.
1246
1247 * w32bdf.c (search_file_line, set_bdf_font_info, seek_char)
1248 (w32_get_bdf_glyph): Cast between unsigned char and char when
1249 passing arguments to subroutines, to shut up compiler warnings.
1250 (w32_get_bdf_glyph): Don't mix signed and unsigned when calling
1251 GET_HEX_VAL.
1252
1253 * xfaces.c: Include keyboard.h before frame.h, not after it.
1254
1255 * widget.c: Include keyboard.h before frame.h.
1256
1257 * w32term.h (struct image, struct face): Forward declaration, to
1258 avoid compiler warnings.
1259
1260 2001-05-11 Gerd Moellmann <gerd@gnu.org>
1261
1262 * keyboard.c (read_key_sequence): Don't modify events when
1263 generating fake prefix keys (mode-line, scroll-bar, ...) since
1264 this prevents proper processing of such events when pushed back
1265 into unread-command-events.
1266
1267 * xterm.c (clear_mouse_face): Return 1 if text with mouse face was
1268 actually redrawn. Make the function static.
1269 (note_mouse_highlight): Fix a case where the mouse cursor
1270 was changed back to the text cursor.
1271
1272 * xterm.h (clear_mouse_face): Remove prototype.
1273
1274 * xdisp.c (try_window_id): Fix the fix and set the right
1275 window_end_vpos.
1276
1277 * xdisp.c (try_window_id): Fix computation of window end in the
1278 case that lines were deleted at the end of the window. Add some
1279 more debug_method_adds.
1280
1281 * xfaces.c (try_alternative_families): New function.
1282 (try_font_list): Use it. If ATTRS specifies a family, check
1283 fonts from that family first.
1284 (choose_face_font): Remove code setting the family part of
1285 the pattern to nil.
1286
1287 2001-05-10 Gerd Moellmann <gerd@gnu.org>
1288
1289 * xdisp.c (try_window_id): Fix case of all changes before
1290 the window start.
1291
1292 * xdisp.c (try_window_id): Add some xasserts.
1293
1294 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1295
1296 * lisp.h (GLYPH_CHAR_VALID_P): Use CHAR_VALID_P.
1297
1298 2001-05-09 Dave Love <fx@gnu.org>
1299
1300 * xdisp.c (GIVE_UP): Fix for K&R C.
1301
1302 2001-05-09 Gerd Moellmann <gerd@gnu.org>
1303
1304 * print.c (syms_of_print) <print-length, print-level>: Doc fix.
1305
1306 * xterm.c (note_mouse_highlight): Don't change the mouse cursor
1307 back to the text cursor shape without need.
1308
1309 2001-05-07 Gerd Moellmann <gerd@gnu.org>
1310
1311 * xfns.c (x_set_foreground_color): Set frame's cursor_pixel.
1312
1313 * dispextern.h (inverse_video): Declare extern.
1314
1315 * keyboard.c (delete_kboard): Handle the case that selected_frame
1316 has been deleted in the course of x_connection_closed.
1317
1318 2001-05-03 Eli Zaretskii <eliz@is.elta.co.il>
1319
1320 * xterm.c (XTread_socket) <Expose> [!USE_TOOLKIT_SCROLL_BARS]:
1321 Fix the change from 2001-04-30.
1322
1323 2001-05-03 Gerd Moellmann <gerd@gnu.org>
1324
1325 * xfns.c (file_dialog_unmap_cb): New function.
1326 (Fx_file_dialog): Use it as XmNunmapCallback to capture the case
1327 where a dialog is closed via the window manager.
1328
1329 * xdisp.c (try_window_id): Cases of changes all in front of
1330 the window start or all below the window end mostly rewritten.
1331 (redisplay_window): Move the tests if try_window_id is
1332 applicable to try_window_id.
1333 (GIVE_UP): New macro.
1334
1335 2001-05-02 Gerd Moellmann <gerd@gnu.org>
1336
1337 * xterm.c (expose_window): Return int. If W is the window
1338 currently being updated, mark the frame garbaged.
1339 Fix computation of rows intersecting the exposed rectangle.
1340 (expose_window_tree): Stop when expose_window returns 0.
1341
1342 * xterm.c (x_draw_stretch_glyph_string): Don't draw background
1343 again if it has already been drawn.
1344
1345 2001-05-01 Stefan Monnier <monnier@cs.yale.edu>
1346
1347 * syntax.c (update_syntax_table): Check that oldi has the same
1348 properties as old_prop before deciding not to invalidate.
1349
1350 2001-04-30 Gerd Moellmann <gerd@gnu.org>
1351
1352 * undo.c (Fprimitive_undo): In a writable buffer, enable undoing
1353 read-only text that is so because of text properties.
1354
1355 * xterm.c (x_window_to_menu_bar) [USE_LUCID]: New function.
1356 (XTread_socket) <Expose> [USE_LUCID]: Handle events for
1357 windows that are components of a Lucid menu bar.
1358
1359 2001-04-27 Gerd Moellmann <gerd@gnu.org>
1360
1361 * term.c (turn_on_face): Fix reverse video handling on terminals
1362 that don't support colors.
1363
1364 2001-04-26 Gerd Moellmann <gerd@gnu.org>
1365
1366 * editfns.c (save_excursion_restore): Don't use XBUFFER on
1367 a non-buffer.
1368
1369 2001-04-25 Gerd Moellmann <gerd@gnu.org>
1370
1371 * term.c (toggle_highlight): New function.
1372 (turn_on_face): Change handling of reverse video.
1373
1374 * process.c (wait_reading_process_input):
1375 Call record_asynch_buffer_change only if a timer really changed buffers.
1376
1377 * buffer.c (mouse_face_overlay_overlaps): Fix the computation
1378 of the number of overlays to check.
1379
1380 * keyboard.c (command_loop_1): Redo change of 2001-03-12.
1381
1382 * xdisp.c (try_window_id): Fix a case where window_end_pos
1383 and window_end_bytepos were not adjusted.
1384
1385 2001-04-23 Gerd Moellmann <gerd@gnu.org>
1386
1387 * xfaces.c (compute_char_face): If buffer is unibyte, set CH to
1388 zero instead of -1.
1389
1390 2001-04-21 Eli Zaretskii <eliz@is.elta.co.il>
1391
1392 * process.c (wait_reading_process_input) [!subprocesses]:
1393 Don't reference waiting_for_user_input_p, it's not defined in the
1394 branch without async subprocesses support.
1395
1396 2001-04-19 Gerd Moellmann <gerd@gnu.org>
1397
1398 * keyboard.c (delete_kboard): Prevent a dangling reference
1399 from current_kboard to KB, which is freed.
1400
1401 * process.c (wait_reading_process_input):
1402 Call record_asynch_buffer_change after running timers, to make
1403 read_key_sequence aware of buffer changes from under it.
1404
1405 2001-04-18 Gerd Moellmann <gerd@gnu.org>
1406
1407 * xfaces.c (Qscalable_fonts_allowed): New variable.
1408 (realizing_basic_faces_p): Removed.
1409 (x_face_list_fonts): Special handling for realizing_basic_faces_p
1410 removed.
1411 (realize_basic_faces): Specbind Qscalable_fonts_allowed to t.
1412 (syms_of_xfaces): Initialize Qscalable_fonts_allowed. Change default
1413 for scalable-fonts-allowed to t.
1414
1415 * fileio.c (Finsert_file_contents): If the file size returned from
1416 stat is zero, set END to READ_BUF_SIZE. This makes sure we can
1417 read from files on a procfs whose contents are generated dynamically.
1418
1419 2001-04-18 Eli Zaretskii <eliz@is.elta.co.il>
1420
1421 * gmalloc.c (__malloc_size_t) [__GNUC__]: If STDC_HEADERS is not
1422 defined, include stddef.h and use __SIZE_TYPE__ instead of size_t.
1423 (__memalign_hook): Make the two prototypes consistent.
1424
1425 2001-04-17 Gerd Moellmann <gerd@gnu.org>
1426
1427 * xdisp.c (redisplay_window): Make sure to clear the desired glyph
1428 matrix of mini-windows.
1429
1430 2001-04-12 Stefan Monnier <monnier@cs.yale.edu>
1431
1432 * intervals.c (find_interval): Don't rebalance during signal handling.
1433
1434 2001-04-11 Gerd Moellmann <gerd@gnu.org>
1435
1436 * fns.c: Include blockinput.h.
1437
1438 * fns.c (Fplist_get): Don't QUIT if interrupt_input_blocked.
1439
1440 2001-04-10 Gerd Moellmann <gerd@gnu.org>
1441
1442 * fns.c (Fcompare_strings): Fix return values.
1443
1444 * window.c (window_scroll): Change the meaning of N to mean
1445 N screen-fulls or N lines.
1446 (window_scroll_pixel_based, window_scroll_line_based)
1447 (scroll_command, Fscroll_other_window): Change accordingly.
1448
1449 * window.c (window_scroll_pixel_based, Frecenter):
1450 Call window_box_height instead of using it.last_visible_y for the
1451 height of the window.
1452
1453 * xdisp.c (redisplay_window) <recenter>: Call window_box_height
1454 instead of using it.last_visible_y for the height of the window.
1455
1456 * w32proc.c (sys_spawnve): Quote more chars for Cygwin.
1457 From Dan Holmsand <dan@eyebee.com>.
1458
1459 * w32.c (sys_open): Try to open file without _O_CREAT first, to be
1460 able to write to hidden and system files. From Dan Holmsand
1461 <dan@eyebee.com>.
1462
1463 * fileio.c (Fcopy_file) [WINDOWSNT]: Use CopyFile. From Dan
1464 Holmsand <dan@eyebee.com>.
1465
1466 2001-04-09 Gerd Moellmann <gerd@gnu.org>
1467
1468 * fns.c (Fplist_get, Fplist_put): Add QUITs.
1469
1470 * window.c (window_internal_height): Return 1 less if the
1471 window has a header line.
1472
1473 * xdisp.c (try_window_id): When scrolling on a terminal, take
1474 the change of window_internal_height into account.
1475
1476 2001-04-09 Eli Zaretskii <eliz@is.elta.co.il>
1477
1478 * gmalloc.c (align): If the argument SIZE would overflow
1479 __malloc_ptrdiff_t, fail right away.
1480
1481 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1482
1483 * xfns.c (compute_tip_xy): Add parameters WIDTH and HEIGHT.
1484 Make sure the tooltip is completely visible.
1485 (x_make_gc): Use FRAME_X_SCREEN_NUMBER.
1486
1487 * xterm.h (FRAME_X_SCREEN_NUMBER): New macro.
1488
1489 * xmenu.c (xmenu_show): Use FRAME_X_SCREEN_NUMBER.
1490
1491 2001-04-06 Dave Love <fx@gnu.org>
1492
1493 * composite.c (update_compositions) <check_mask & CHECK_HEAD>:
1494 Fix test of `from'.
1495
1496 2001-04-06 Gerd Moellmann <gerd@gnu.org>
1497
1498 * composite.h (COMPOSITION_VALID_P): Allow integers as cdrs of PROP.
1499
1500 * xdisp.c (Qinhibit_eval_during_redisplay): Make it a Lisp_Object.
1501
1502 2001-04-05 Gerd Moellmann <gerd@gnu.org>
1503
1504 * sysdep.c (getwd) [!HAVE_GETWD]: Unblock input before returning.
1505
1506 * editfns.c (Fcurrent_time_zone): Accept spaces in timezone names.
1507
1508 * xfns.c (Vmotif_version_string) [USE_MOTIF]: New variable.
1509 (syms_of_xfns): DEFVAR_LISP it. Initialize from XmVERSION_STRING.
1510
1511 * xmenu.c (free_frame_menubar) [USE_MOTIF]: Preserve the
1512 shell widget's position only if it is non-null.
1513
1514 * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]:
1515 Set f->output_data.x->widget to null after destroying it.
1516
1517 * fns.c (Frequire): Doc fix. Rename parameter FILE_NAME to
1518 FILENAME to bring it in synch with the documentation.
1519
1520 * xfaces.c (realizing_basic_faces_p): Renamed from
1521 realize_default_face_p.
1522 (realize_basic_faces): Set/clear realizing_basic_faces_p.
1523 (realize_default_face): Don't set the flag.
1524
1525 2001-04-04 Gerd Moellmann <gerd@gnu.org>
1526
1527 * lisp.h (echoing, echo_message_buffer, cancel_echoing): Declare.
1528
1529 * keyboard.c (echoing, echo_message_buffer): Make externally visible.
1530
1531 * xdisp.c (with_echo_area_buffer): Avoid confusion from reusing
1532 the buffer that was used for echoing.
1533
1534 * xfaces.c (best_matching_font): Remove unused parameter PATTERN.
1535 (first_font_matching): Removed unused function.
1536 (x_face_list_fonts): Remove unused parameter SCALABLE_P.
1537 (may_use_scalable_font_p): Remove parameter FONT; rename
1538 parameter NAME to FONT.
1539 (x_face_list_fonts): Fix missing bounds check.
1540 (realizing_default_face_p): New variable.
1541 (realize_default_face): Set and clear that flag.
1542 (x_face_list_fonts): When called during the realization of the
1543 default face, and no matching fonts are found when ignoring
1544 scalable fonts and fonts matching a regexp from
1545 face-ignored-fonts, try without ignoring fonts.
1546
1547 2001-04-03 Gerd Moellmann <gerd@gnu.org>
1548
1549 * xfns.c (postprocess_image): New function.
1550 (lookup_image): Call it for all image types except PostScript.
1551 (x_kill_gs_process): Call postprocess_image.
1552
1553 * xterm.c (x_use_underline_position_properties): New variable.
1554 (x_draw_glyph_string): Use it.
1555 (syms_of_xterm): DEFVAR_BOOL it.
1556
1557 2001-04-02 Gerd Moellmann <gerd@gnu.org>
1558
1559 * xterm.c (x_alloc_nearest_color_1): New function.
1560 (x_alloc_nearest_color): Use it.
1561 (x_color_cells): Take a Display as argument, instead of a frame.
1562 (cvt_string_to_pixel_args, cvt_string_to_pixel_value): New variables.
1563 (cvt_string_to_pixel, cvt_pixel_dtor): New functions.
1564 (x_initialize): Register cvt_string_to_pixel as resource converter
1565 string -> Pixel and cvt_pixel_dtor as pixel resource destructor.
1566
1567 2001-03-30 Gerd Moellmann <gerd@gnu.org>
1568
1569 * xdisp.c (get_overlay_strings): Set iterator's end_charpos.
1570 (set_iterator_to_next): If a string from a display property ends,
1571 consider the case that this might also be the end of an
1572 overlay string having the display property.
1573
1574 * xdisp.c (handle_display_prop): Fix recognition of subproperty lists.
1575
1576 * xdisp.c (reseat_to_string): Undo last change.
1577
1578 * dispnew.c (adjust_glyph_matrix): Don't try to reuse the current
1579 matrix of a window when the header line changes, when
1580 new rows are allocated, or when the width changes.
1581
1582 2001-03-30 Eli Zaretskii <eliz@is.elta.co.il>
1583
1584 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Fix last change.
1585
1586 2001-03-29 Eli Zaretskii <eliz@is.elta.co.il>
1587
1588 * fileio.c (syms_of_fileio) <directory-sep-char>: Warn that it is
1589 deprecated.
1590
1591 2001-03-29 Gerd Moellmann <gerd@gnu.org>
1592
1593 * data.c (Fsubr_interactive_form): New function.
1594 (syms_of_data): Defsubr it.
1595
1596 * alloc.c (live_string_p, live_cons_p, live_symbol_p)
1597 (live_float_p, live_misc_p): Return 1 only if the offset of the
1598 pointer in its block is >= 0.
1599
1600 2001-03-28 Paul Eggert <eggert@twinsun.com>
1601
1602 * editfns.c (Ffloat_time): Fix off-by-factor-of-10 bug in the
1603 microseconds calcuation. Avoid double-rounding problem.
1604 In doc string, warn that the result is approximate.
1605
1606 2001-03-28 Gerd Moellmann <gerd@gnu.org>
1607
1608 * eval.c (call_debugger): Bind `inhibit-redisplay' to nil, and
1609 bind `inhibit-eval-during-redisplay' to t.
1610
1611 * lisp.h (Qinhibit_eval_during_redisplay): Declare extern.
1612
1613 * xdisp.c (inhibit_eval_during_redisplay)
1614 (Qinhibit_eval_during_redisplay): New variables.
1615 (safe_eval, safe_call): If inhibit_eval_during_redisplay is set,
1616 don't eval, return nil instead.
1617 (syms_of_xdisp): DEFVAR_BOOL inhibit-eval-during-redisplay.
1618 Initialize Qinhibit_eval_during_redisplay.
1619
1620 * xdisp.c (reseat_to_string): If STRING is multibyte, set
1621 the iterator's multibyte_p flag.
1622
1623 * xfaces.c (realize_basic_faces): Decrement menu_face_change_count
1624 instead of setting it to zero; it's incremented for each frame
1625 where the menu face is changed.
1626
1627 * xterm.c (x_draw_relief_rect): Extend left shadow to the bottom;
1628 change bottom shadow accordingly.
1629
1630 * xterm.c (expose_window_tree, expose_frame): Don't compute
1631 intersections here.
1632 (expose_window): Do it here instead.
1633 (x_draw_glyph_string): Fix a computation of the underline position.
1634
1635 * bytecode.c (BYTE_CODE_QUIT): New macro.
1636 (Fbyte_code): Use BYTE_CODE_QUIT instead of QUIT.
1637
1638 2001-03-27 Gerd Moellmann <gerd@gnu.org>
1639
1640 * xdisp.c (try_window_reusing_current_matrix) <scrolling up>:
1641 Give up if matrix starts in an ellipsis.
1642 (init_from_display_pos): Do nothing if POS doesn't specify
1643 a dpvec_index but the iterator has such a position.
1644
1645 * xdisp.c (init_from_display_pos): Remove unwarranted assertion.
1646
1647 * xmenu.c (free_frame_menubar) [USE_MOTIF]: If the shell widget's
1648 x/y position is (0, 0) after destroying the menu bar, restore
1649 its original position.
1650
1651 * xdisp.c (in_ellipses_for_invisible_text_p): New function.
1652 (init_from_display_pos): Use it.
1653 (try_window_reusing_current_matrix): Don't use cursor_row_p.
1654
1655 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1656
1657 * xdisp.c (try_window_id): Undo last change.
1658
1659 2001-03-26 Eli Zaretskii <eliz@is.elta.co.il>
1660
1661 * print.c (Fprin1, Fprin1_to_string, Fprinc, Fprint): Doc fix.
1662
1663 * buffer.c (syms_of_buffer): Doc fix.
1664
1665 2001-03-26 Gerd Moellmann <gerd@gnu.org>
1666
1667 * xfaces.c (x_update_menu_appearance): Use local variable
1668 popup_path for setting font resources.
1669
1670 2001-03-25 Eli Zaretskii <eliz@is.elta.co.il>
1671
1672 * frame.c (Fframe_list): Don't reference tip_frame if
1673 HAVE_WINDOW_SYSTEM is not defined.
1674
1675 * emacs.c (main): Update the copyright year. From Werner LEMBERG
1676 <wl@gnu.org>.
1677
1678 2001-03-25 Gerd Moellmann <gerd@gnu.org>
1679
1680 * xdisp.c (init_from_display_pos): Test invisible property
1681 with TEXT_PROP_MEANS_INVISIBLE instead of NILP.
1682
1683 * xdisp.c (redisplay_internal) <update one window>: Make sure
1684 last_arrow_position and last_arrow_string are set.
1685
1686 * frame.c (Fframe_list): Don't return a tooltip frame.
1687
1688 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1689
1690 * xdisp.c (mark_window_display_accurate_1): New function,
1691 extracted from mark_window_display_accurate.
1692 Compute BUF_UNCHANGED_MODIFIED, BUF_OVERLAY_UNCHANGED_MODIFIED,
1693 BUF_BEG_UNCHANGED, BUF_END_UNCHANGED.
1694 (mark_window_display_accurate): Use it.
1695 (redisplay_internal): Use it for the selected window.
1696 (redisplay_internal): Avoid duplicate mark_window_display_accurate
1697 for the selected frame.
1698
1699 * xdisp.c Use make_number, for readability.
1700 (try_window_id): Disable rows below the window end.
1701 (try_window_reusing_current_matrix): Use cursor_row_p.
1702 (try_window_reusing_current_matrix) <scrolling up>: Fix disabling
1703 of rows.
1704 (init_from_display_pos): If POS specifies a position in a display
1705 vector, maybe get the iterator set up for that ellipsis.
1706
1707 * xdisp.c (dump_glyph_row): Fix output for NGLYPHS == 2.
1708
1709 2001-03-23 Eli Zaretskii <eliz@is.elta.co.il>
1710
1711 * xmenu.c: Include widget.h only if USE_X_TOOLKIT is defined.
1712
1713 2001-03-23 Gerd Moellmann <gerd@gnu.org>
1714
1715 * xfaces.c (x_update_menu_appearance): Use a different path
1716 for Lucid popup menus.
1717
1718 2001-03-22 Stefan Monnier <monnier@cs.yale.edu>
1719
1720 * xterm.c (note_mouse_highlight): Dec the int, not the Lisp_Object.
1721
1722 * xdisp.c (init_iterator): Check WINDOWP before using XWINDOW.
1723 (string_buffer_position): Use `make_number'.
1724
1725 2001-03-22 Gerd Moellmann <gerd@gnu.org>
1726
1727 * xfaces.c (x_update_menu_appearance): Renamed from
1728 x_set_menu_face_resources. Use different resources for popups.
1729
1730 * lisp.h (Vx_resource_name) [HAVE_X_WINDOWS]: Declare extern.
1731 (GC_CHECK_STRING_BYTES): Don't define.
1732
1733 * xfaces.c (x_set_menu_resources_from_menu_face) [USE_X_TOOLKIT]:
1734 Removed, together with subroutines.
1735 (x_set_menu_face_resources) [USE_X_TOOLKIT]: New function.
1736 (realize_basic_faces) [USE_X_TOOLKIT]: Call x_set_menu_face_resources.
1737
1738 * dispextern.h (x_set_menu_resources_from_menu_face):
1739 Remove prototype.
1740
1741 * xmenu.c (update_frame_menubar, set_frame_menubar, xmenu_show):
1742 Remove calls to x_set_menu_resources_from_menu_face.
1743
1744 * xfaces.c (xm_set_menu_resources_from_menu_face):
1745 Remove #ifndef LESSTIF_VERSION.
1746
1747 * xmenu.c: Include widget.h.
1748 (single_submenu): Return int. Some cleanup.
1749 (set_frame_menubar): Call x_set_menu_resources_from_menu_face.
1750
1751 2001-03-21 Gerd Moellmann <gerd@gnu.org>
1752
1753 * xterm.c (x_update_window_end): Handle overwritten mouse face
1754 also for tool bar windows.
1755 (show_mouse_face): Set the glyph row's mouse_face_p flag also when
1756 DRAW is DRAW_IMAGE_RAISED.
1757
1758 2001-03-20 Gerd Moellmann <gerd@gnu.org>
1759
1760 * print.c (syms_of_print): Doc fixes.
1761
1762 * fns.c (Fmd5): Doc fix.
1763
1764 2001-03-19 Gerd Moellmann <gerd@gnu.org>
1765
1766 * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
1767 Clear area of the frame not occupied by the scroll bar.
1768
1769 * xfns.c (x_create_tip_frame): Add parameter TEXT. Set the
1770 tip frame's root window buffer to *tip* right after creating
1771 the frame.
1772
1773 * xdisp.c (highlight_trailing_whitespace): Glyphs whose object
1774 is an integer don't have to be for space characters.
1775
1776 2001-03-16 Gerd Moellmann <gerd@gnu.org>
1777
1778 * indent.c (current_column, current_column_1, Fmove_to_column)
1779 (compute_motion): Handle characters from display vectors differently.
1780
1781 2001-03-15 Kenichi Handa <handa@etl.go.jp>
1782
1783 * xterm.c (x_draw_glyph_string): Draw relief (if any) before
1784 drawing glyph string.
1785
1786 2001-03-15 Gerd Moellmann <gerd@gnu.org>
1787
1788 * keyboard.c (timer_check): Preserve the value of deactivate-mark.
1789 (command_loop_1): Undo last change.
1790
1791 * xterm.c (fast_find_position): Return the correct vpos.
1792
1793 * data.c (store_symval_forwarding): Add parameter BUF. If BUF is
1794 non-null, set a per-buffer value in BUF instead of the current buffer.
1795 (swap_in_global_binding, swap_in_symval_forwarding, Fset_default):
1796 Call store_symval_forwarding with BUF null.
1797 (set_internal): Call store_symval_forwarding with the BUF
1798 parameter passed to set_internal. Formerly, the value was always
1799 set in the current buffer; the buffer recorded in specbind for
1800 this case wasn't used.
1801 (arith_driver): Reindent.
1802
1803 * buffer.c (swap_out_buffer_local_variables):
1804 Call store_symval_forwarding with BUF null.
1805
1806 * lisp.h (store_symval_forwarding): Change prototype.
1807
1808 * eval.c (specbind): Call store_symval_forwarding with BUF null.
1809
1810 2001-03-14 Gerd Moellmann <gerd@gnu.org>
1811
1812 * frame.c (do_switch_frame): Remove unused parameter NO_EVENT, add
1813 FOR_DELETION. Avoid resizing the mini-window of the selected
1814 frame if FOR_DELETION is set.
1815 (Fselect_frame, Fhandle_switch_frame, Fdelete_frame)
1816 (Fmake_frame_invisible): Change calls to do_switch_frame for new
1817 signature.
1818
1819 * window.c (Fset_window_configuration): Change call to
1820 do_switch_frame to new format.
1821
1822 * keyboard.c (quit_throw_to_read_char): Change call to
1823 do_switch_frame to new format.
1824
1825 * lisp.h (do_switch_frame): Change prototype.
1826
1827 * frame.c (Fframe_parameters): In the `buffer-list' frame
1828 parameter, store the buffer list of FRAME, not the list of the
1829 selected frame.
1830
1831 * xterm.c (x_draw_glyph_string_box): Don't draw a full-width
1832 box just because the glyph row's full_width_p flag is set.
1833
1834 2001-03-14 Eli Zaretskii <eliz@is.elta.co.il>
1835
1836 * xdisp.c (highlight_trailing_whitespace): On character terminals,
1837 skip the padding blanks inserted in extend_face_to_end_of_line,
1838 before checking for trailing whitespace.
1839
1840 2001-03-13 Gerd Moellmann <gerd@gnu.org>
1841
1842 * xmenu.c (popup_activate_callback, popup_deactivate_callback):
1843 Remove special handling for LessTif/Motif.
1844 (toplevel): Don't include Xm/Xm.h.
1845
1846 * xterm.c (XTread_socket) <LeaveNotify, EnterNotify>:
1847 Remove workaround code for LessTif; it doesn't work anymore.
1848
1849 * xterm.c [USE_TOOLKIT_SCROLL_BARS && USE_MOTIF]: Don't include
1850 Xm/ScrollBarP.h.
1851
1852 * xterm.c (x_set_toolkit_scroll_bar_thumb) [USE_MOTIF]:
1853 Don't access private scroll bar data; it's no longer necessary with
1854 contemporary LessTif.
1855
1856 * xfaces.c (xm_set_menu_resources_from_menu_face):
1857 Change #if 0 to #ifndef LESSTIF_VERSION.
1858
1859 * xmenu.c (xmenu_show) [LESSTIF_VERSION]: Take out the code
1860 removing button grabs.
1861
1862 2001-03-13 Kenichi Handa <handa@etl.go.jp>
1863
1864 * fontset.c (syms_of_fontset): Describe highlight-wrong-size-font
1865 and clip-large-size-font as obsolete.
1866
1867 * lread.c (read_multibyte): Check the validity of multibyte
1868 sequence. If invalid, return the first byte.
1869
1870 2001-03-12 Gerd Moellmann <gerd@gnu.org>
1871
1872 * keyboard.c (command_loop_1): Set Vdeactivate_mark to nil
1873 before running the command; timer functions or process
1874 filters may have set it.
1875
1876 2001-03-12 Eli Zaretskii <eliz@is.elta.co.il>
1877
1878 * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
1879 Doc fix.
1880
1881 2001-03-12 Gerd Moellmann <gerd@gnu.org>
1882
1883 * xrdb.c (x_load_resources) [USE_MOTIF]: Remove extraneous arg
1884 to sprintf.
1885
1886 2001-03-09 Gerd Moellmann <gerd@gnu.org>
1887
1888 * dispextern.h (string_buffer_position): Add prototype.
1889
1890 * xdisp.c (string_buffer_position, display_prop_string_p)
1891 (single_display_prop_string_p): New functions.
1892
1893 * xterm.c (note_mouse_highlight): If there's no help-echo on
1894 a string, look at the buffer text ``under'' it.
1895
1896 * keyboard.c (make_lispy_event): Add string info to the event,
1897 analogous to what's done on mode lines.
1898 (read_key_sequence): For a click on a string, consider `local-map'
1899 and `keymap' of that string.
1900
1901 * keyboard.c (make_lispy_event, make_lispy_movement):
1902 Adjust calls to buffer_posn_from_coords to new format.
1903
1904 * dispextern.h (buffer_posn_from_coords): Adjust prototype.
1905
1906 * dispnew.c (buffer_posn_from_coords): Add parameters OBJECT and
1907 POS; return void.
1908
1909 * fileio.c (Fwrite_region) [DOS_NT]: Remove O_TRUNC from open
1910 flags argument to emacs_open; it seems to conflict with O_EXCL.
1911
1912 2001-03-09 Kenichi Handa <handa@etl.go.jp>
1913
1914 * composite.h (struct composition): Change types of members;
1915 glyph_len to unsigned, width to unsigned short.
1916
1917 2001-03-08 Andrew Innes <andrewi@gnu.org>
1918
1919 * w32menu.c (add_menu_item): Fix problems with using ownerdraw for
1920 menu titles.
1921
1922 2001-03-08 Gerd Moellmann <gerd@gnu.org>
1923
1924 * xdisp.c (handle_display_prop): Use it->w->buffer as object,
1925 instead of nil.
1926
1927 * xterm.c (note_mouse_highlight): Handle mouse-face and
1928 help-echo in strings.
1929 (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
1930 (fast_find_string_pos): New function.
1931
1932 * xdisp.c (handle_face_prop, face_before_or_after_it_pos)
1933 (display_string): Call face_at_string_position with new parameter.
1934
1935 * xfaces.c (face_at_string_position): Add parameter MOUSE_P.
1936 Handle `mouse-face'.
1937
1938 * dispextern.h (face_at_string_position): Change prototype.
1939
1940 * dired.c (directory_files_internal): Handle EAGAIN more efficiently.
1941
1942 * keyboard.c (make_lispy_event): Avoid generating drag events
1943 if the mouse hasn't actually moved to another buffer position.
1944
1945 2001-03-08 Dave Love <fx@gnu.org>
1946
1947 * eval.c (syms_of_eval) <debug-on-error>: Doc fix.
1948
1949 2001-03-08 Gerd Moellmann <gerd@gnu.org>
1950
1951 * process.c (Fset_process_window_size): Fix a typo.
1952
1953 2001-03-08 Kenichi Handa <handa@etl.go.jp>
1954
1955 * coding.c (detect_coding_sjis): Do more rigid check.
1956 (detect_coding_big5): Likewise.
1957 (decode_coding_sjis_big5): Likewise.
1958 (Fdetect_coding_region): Call detect_coding_system with tailing
1959 anchor byte `\0' for more rigid detection.
1960 (detect_coding_mask): Fix the incorrect handling of arg MULTIBYTEP.
1961 (Fdetect_coding_string): Likewise.
1962
1963 2001-03-07 Stefan Monnier <monnier@cs.yale.edu>
1964
1965 * bytecode.c (Fbyte_code) <Btemp_output_buffer_setup>: Check the arg is
1966 a string before extracting its data.
1967
1968 2001-03-07 Gerd Moellmann <gerd@gnu.org>
1969
1970 * window.c (Frecenter): Rewrite code handling negative values
1971 of ARG on graphical frames.
1972
1973 2001-03-07 Eli Zaretskii <a34785@is.elta.co.il>
1974
1975 * window.c (displayed_window_lines): If W->start is outside the
1976 accessible portion of the buffer, call start_display with BEGV or
1977 ZV instead of W->start.
1978
1979 2001-03-07 Gerd Moellmann <gerd@gnu.org>
1980
1981 * buffer.c (syms_of_buffer) <header-line-format>: Doc fix.
1982
1983 * process.c (Fset_process_filter): Don't crash if the input
1984 file descriptor of PROCESS is closed.
1985 (Fset_process_window_size): Likewise.
1986
1987 2001-03-06 Kenichi Handa <handa@etl.go.jp>
1988
1989 * xterm.c (XTflash): Make the timeout of select shorter, and call
1990 select repeatedly until the desired time expires.
1991
1992 2001-03-06 Gerd Moellmann <gerd@gnu.org>
1993
1994 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
1995
1996 * xfns.c (Fx_create_frame): Clear Vwindow_list.
1997
1998 * lisp.h (Vwindow_list): Declare extern.
1999
2000 2001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
2001
2002 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
2003
2004 2001-03-06 Gerd Moellmann <gerd@gnu.org>
2005
2006 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
2007 to detect a case where we have to highlight a different region
2008 despite not having left the currently highlighted region.
2009 Set mouse_face_overlay in the x_display_info.
2010 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
2011
2012 * xterm.h (struct x_display_info): Add mouse_face_overlay.
2013
2014 * buffer.c (mouse_face_overlay_overlaps): New function.
2015
2016 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
2017 (Qmouse_face): Declare extern.
2018
2019 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
2020 if face_change_count is non-zero.
2021
2022 2001-03-06 Kenichi Handa <handa@etl.go.jp>
2023
2024 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
2025 that the source is unibyte.
2026
2027 2001-03-05 Dave Love <fx@gnu.org>
2028
2029 * xterm.c (XTmouse_position): Fix typo.
2030
2031 2001-03-05 Gerd Moellmann <gerd@gnu.org>
2032
2033 * minibuf.c (read_minibuf): Clean up the binding stack if
2034 called noninteractively.
2035
2036 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2037
2038 * coding.c (syms_of_coding): Docstring modified.
2039
2040 2001-03-05 Kenichi Handa <handa@etl.go.jp>
2041
2042 * charset.c (char_to_string): If a single byte char has modifier
2043 bits that can't be reflected to the character code, ignore them
2044 instead of signaling an error.
2045
2046 2001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
2047
2048 * s/msdos.h: Update copyright notice.
2049
2050 * dosfns.h: Update copyright notice.
2051
2052 * dosfns.c: Update copyright notice.
2053
2054 * msdos.c: Update copyright notice.
2055
2056 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2057
2058 * xterm.c (glyph_rect): New function.
2059 (XTmouse_position): Use it to raise the threshold for mouse
2060 movement event generation.
2061
2062 2001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
2063
2064 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
2065 specifies (reverse . t), reverse the initial screen colors.
2066 (IT_set_frame_parameters): If the property is foreground-color,
2067 but we are reversing the colors, set bg_set, not fg_set.
2068 Likewise for setting background-color and reversing: set fg_set.
2069 Set unspecified-fg and unspecified-bg correctly when (reverse . t) is
2070 in effect.
2071
2072 * xfaces.c (Finternal_set_lisp_face_attribute)
2073 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
2074 parameters alist.
2075
2076 2001-03-02 Gerd Moellmann <gerd@gnu.org>
2077
2078 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
2079 to a single slash in the middle of file names.
2080
2081 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
2082 Accept only alphanumeric time zone names.
2083
2084 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
2085 or width area.
2086 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
2087 a widget to zero height.
2088
2089 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2090
2091 * window.c (Fwindow_end): Call move_it_past_eol only if
2092 ending up on a partially visible line.
2093
2094 2001-03-01 Dave Love <fx@gnu.org>
2095
2096 * ccl.c (Fccl_execute): Doc fix.
2097
2098 2001-03-01 Gerd Moellmann <gerd@gnu.org>
2099
2100 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
2101 of the tool bar before calling x_figure_window_size.
2102
2103 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
2104 NULL after destroying it, otherwise XTread_socket can access a
2105 destroyed widget when input is unblocked.
2106
2107 * xfns.c (x_set_foreground_color): Set the background of the cursor GC.
2108
2109 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
2110 same name as before, although there was a change in fontsets.
2111
2112 2001-02-28 Ken Raeburn <raeburn@gnu.org>
2113
2114 * lisp.h (Fframe_parameter): Declare.
2115
2116 * window.c (set_window_buffer): Field vscroll is an int, not a
2117 Lisp_Object.
2118
2119 2001-02-28 Gerd Moellmann <gerd@gnu.org>
2120
2121 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
2122 NULL instead.
2123
2124 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
2125 NULL instead.
2126
2127 * alloc.c (toplevel): Include process.h.
2128 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
2129 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
2130 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
2131 (allocate_vector, allocate_hash_table, allocate_window)
2132 (allocate_frame, allocate_process, allocate_other_vector):
2133 New functions.
2134 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
2135 (mark_maybe_pointer): New function.
2136 (mark_memory): Also mark Lisp data to which only pointers
2137 remain and not Lisp_Objects.
2138 (min_heap_address, max_heap_address): New variables.
2139 (mem_find): Return MEM_NIL if START is below min_heap_address or
2140 above max_heap_address.
2141 (mem_insert): Compute min_heap_address and max_heap_address.
2142
2143 * process.c (make_process): Use allocate_process.
2144
2145 * frame.c (make_frame): Use allocate_frame.
2146
2147 * window.c (make_window, make_dummy_parent): Use allocate_window.
2148 (Fcurrent_window_configuration): Use allocate_other_vector.
2149
2150 * lisp.h (allocate_vectorlike): Remove prototype.
2151 (allocate_vector, allocate_other_vector, allocate_frame)
2152 (allocate_window, allocate_process, allocate_hash_table):
2153 Add prototypes.
2154
2155 * fns.c (Fdelete, larger_vector): Use allocate_vector.
2156 (make_hash_table, copy_hash_table): Use allocate_hash_table.
2157
2158 2001-02-27 Kenichi Handa <handa@etl.go.jp>
2159
2160 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
2161 treat the produced bytes as a valid multibyte sequence.
2162
2163 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
2164 (ccl_driver) <CCL_WriteMultibyteChar2>:
2165 Use CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
2166 <ccl_finish>: Set ccl->eight_bit_control properly.
2167
2168 * ccl.h (struct ccl_program): New member eight_bit_control.
2169
2170 2001-02-26 Stefan Monnier <monnier@cs.yale.edu>
2171
2172 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
2173 accessible_keymaps_char_table.
2174 (accessible_keymaps_char_table): Obey `is_metized'.
2175 (where_is_internal, Fwhere_is_internal): Don't confuse int and
2176 Lisp_Object.
2177
2178 2001-02-26 Gerd Moellmann <gerd@gnu.org>
2179
2180 * dispnew.c: Check HAVE_TERM_H before including term.h.
2181
2182 2001-02-24 Andrew Innes <andrewi@gnu.org>
2183
2184 * makefile.w32-in: Update copyright notice.
2185
2186 2001-02-24 Stefan Monnier <monnier@cs.yale.edu>
2187
2188 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
2189
2190 2001-02-24 Kenichi Handa <handa@etl.go.jp>
2191
2192 * Makefile.in (lisp): Add international/utf-8.elc.
2193
2194 * fontset.c (Fnew_fontset): Fix handling of the case that an
2195 element of FONTLIST is a cons of family and registry.
2196
2197 2001-02-23 Jason Rumney <jasonr@gnu.org>
2198
2199 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
2200 to height unconditionally.
2201
2202 * w32term.c (x_set_glyph_string_background_width): Extend the
2203 background face to the end of the drawing area in the text area, only.
2204 (x_insert_glyphs): Call window_box_left to obtain the left
2205 x-coordinate of the area to shift.
2206
2207 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
2208 safe_run_hooks.
2209
2210 2001-02-22 Andrew Innes <andrewi@gnu.org>
2211
2212 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header files.
2213 ($(BLD)\dispnew.obj):
2214 ($(BLD)\editfns.obj):
2215 ($(BLD)\fileio.obj):
2216 ($(BLD)\filelock.obj):
2217 ($(BLD)\keyboard.obj):
2218 ($(BLD)\w32proc.obj):
2219 ($(BLD)\process.obj):
2220 ($(BLD)\sysdep.obj): Ditto.
2221
2222 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
2223 header files.
2224 ($(BLD)/dispnew.$(O)):
2225 ($(BLD)/editfns.$(O)):
2226 ($(BLD)/fileio.$(O)):
2227 ($(BLD)/filelock.$(O)):
2228 ($(BLD)/keyboard.$(O)):
2229 ($(BLD)/w32proc.$(O)):
2230 ($(BLD)/process.$(O)):
2231 ($(BLD)/sysdep.$(O)): Ditto.
2232
2233 2001-02-22 Gerd Moellmann <gerd@gnu.org>
2234
2235 * xdisp.c (forward_to_next_line_start): When taking the shortcut
2236 at the start of the function, check that the \n in it->c is
2237 from the iterator's current position.
2238
2239 * xdisp.c (handle_single_display_prop): Add parameter
2240 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
2241 properties which replace the display of text with something else.
2242 (handle_display_prop): Call handle_single_display_prop with
2243 additional argument saying if we already replaced text display
2244 with something else. Use AREF.
2245 (with_echo_area_buffer_unwind_data, display_menu_bar)
2246 (decode_mode_spec_coding): Use AREF and ASIZE.
2247
2248 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
2249 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
2250 * vmstime.h: Files removed.
2251
2252 * unexencap.c, unexfx2800.c: Files removed.
2253
2254 * dispnew.c (direct_output_for_insert): Give up if we are showing
2255 a message or just cleared the message because we might need to
2256 resize the echo area window or display an empty echo area.
2257
2258 2001-02-21 Gerd Moellmann <gerd@gnu.org>
2259
2260 * xdisp.c (redisplay_internal): Do the
2261 mark_window_display_accurate after all windows have been
2262 redisplayed because this call resets flags in buffers which are
2263 needed for proper redisplay.
2264
2265 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c:
2266 Use display_hourglass_p, start_hourglass, cancel_hourglass instead of
2267 the old names.
2268
2269 * w32term.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2270 busy_window to hourglass_window, busy_p to hourglass_p.
2271
2272 * msdos.h (struct x_output): Rename busy_window to
2273 hourglass_window, busy_p to hourglass_p.
2274
2275 * xterm.h (struct x_output): Rename busy_cursor to hourglass_cursor,
2276 busy_window to hourglass_window, busy_p to hourglass_p.
2277
2278 * xfns.c: Rename everything containing *busy_cursor* and similar
2279 to *hourglass*.
2280 (syms_of_w32fns): Rename x-busy-pointer-shape to
2281 x-hourglass-pointer-shape, display-busy-cursor to
2282 display-hourglass, busy-cursor-delay to hourglass-delay.
2283
2284 * w32fns.c: Rename everything containing *busy_cursor* and similar
2285 to *hourglass*.
2286 (syms_of_w32fns): Rename x-busy-pointer-shape to
2287 x-hourglass-pointer-shape, display-busy-cursor to
2288 display-hourglass, busy-cursor-delay to hourglass-delay.
2289
2290 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
2291 of its busy_p flag.
2292
2293 * dispextern.h (start_hourglass, cancel_hourglass)
2294 (display_hourglass_p): Renamed from *busy_cursor*.
2295
2296 2001-02-20 Gerd Moellmann <gerd@gnu.org>
2297
2298 * keyboard.c (read_char): When an event from unread-command-events
2299 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
2300
2301 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
2302 equal to the current buffer.
2303
2304 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
2305 nil, otherwise we're left with truncate_lines t when a message
2306 is printed with message-truncate-lines bound to t.
2307
2308 2001-02-19 Gerd Moellmann <gerd@gnu.org>
2309
2310 * window.c (Fmove_to_window_line): Undo last change.
2311 (displayed_window_lines): Call line_bottom_y to determine
2312 the line's bottom position.
2313
2314 * dispextern.h (line_bottom_y): Add prototype.
2315
2316 * xdisp.c (line_bottom_y): New function extracted from pos_visible_p.
2317 (pos_visible_p): Use it.
2318
2319 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
2320 set redisplaying_p to 0 here instead of in Frecursive_edit.
2321 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
2322 set redisplaying_p.
2323
2324 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
2325 New variables.
2326 (syms_of_xdisp): Initialize new variables.
2327 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
2328 Specbind `inhibit-menubar-update' when updating the menu bar.
2329
2330 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
2331 safe_run_hooks.
2332
2333 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
2334 safe_run_hooks.
2335
2336 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
2337 is null.
2338
2339 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
2340 to the start of the file.
2341
2342 2001-02-16 Gerd Moellmann <gerd@gnu.org>
2343
2344 * window.c (set_window_buffer): Fix last change.
2345
2346 * window.c (set_window_buffer): Set window's vscroll to 0.
2347
2348 * window.c (coordinates_in_window): Increase width of area
2349 where the vertical line can be dragged.
2350
2351 * xterm.c (x_set_glyph_string_background_width): Extend the
2352 background face to the end of the drawing area in the text
2353 area, only.
2354
2355 * xdisp.c (handle_single_display_prop): Set iterator's position
2356 to where the `display' property starts, like for images.
2357 (dump_glyph): New function.
2358 (dump_glyph_row): Use it. Dump info about marginal areas.
2359
2360 * dispnew.c (direct_output_for_insert): Recognize more cases where
2361 glyphs can be written instead of being inserted.
2362
2363 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
2364 the left x-coordinate of the area to shift.
2365
2366 * dired.c (directory_files_internal): Set result list to nil
2367 before retrying.
2368
2369 2001-02-15 Kenichi Handa <handa@etl.go.jp>
2370
2371 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
2372 invalid multibyte sequence, treat *SRC as a character of
2373 eight-bit-graphic.
2374
2375 2001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
2376
2377 * textprop.c (Fset_text_properties): Doc fix.
2378
2379 2001-02-15 Gerd Moellmann <gerd@gnu.org>
2380
2381 * dispnew.c (update_text_area): Undo change of 2001-01-12.
2382
2383 2001-02-14 Dave Love <fx@gnu.org>
2384
2385 * coding.c: Doc and message fixes.
2386
2387 2001-02-14 Andrew Innes <andrewi@gnu.org>
2388
2389 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
2390 Emacs frame above the screen size.
2391
2392 2001-02-14 Gerd Moellmann <gerd@gnu.org>
2393
2394 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
2395
2396 2001-02-13 Gerd Moellmann <gerd@gnu.org>
2397
2398 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
2399 case that TO ends up beyond ZV after running before-change-functions.
2400
2401 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
2402 the selected window if it is showing the buffer in question.
2403
2404 * dired.c (directory_files_internal): Initialize errno.
2405 (toplevel): Include errno.h.
2406
2407 2001-02-13 Kenichi Handa <handa@etl.go.jp>
2408
2409 * xfaces.c (best_matching_font): New parameter width_ratio.
2410 Multiply avgwidth by width_ratio.
2411 (choose_face_font): Call best_matching_font with width_ratio
2412 calculated from the column width of C.
2413
2414 2001-02-12 Andrew Innes <andrewi@gnu.org>
2415
2416 The following changes are to draw box lines inside characters area
2417 if line-width is negative.
2418
2419 * w32term.c (x_produce_image_glyph): Pay attention to the case that
2420 face->box_line_width is negative.
2421 (x_produce_stretch_glyph): Likewise.
2422 (x_produce_glyphs): Likewise.
2423 (x_estimate_mode_line_height): Likewise.
2424 (x_draw_glyph_string_background): Likewise.
2425 (x_draw_glyph_string_foreground): Likewise.
2426 (x_draw_composite_glyph_string_foreground): Likewise.
2427 (x_draw_glyph_string_box): Likewise.
2428 (x_draw_image_foreground): Likewise.
2429 (x_draw_image_relief): Likewise.
2430 (x_draw_image_foreground_1): Likewise.
2431 (x_draw_image_glyph_string): Likewise.
2432
2433 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2434
2435 The following changes are to draw box lines inside characters area
2436 if line-width is negative.
2437
2438 * xterm.c (x_produce_image_glyph): Pay attention to the case that
2439 face->box_line_width is negative.
2440 (x_produce_stretch_glyph): Likewise.
2441 (x_produce_glyphs): Likewise.
2442 (x_estimate_mode_line_height): Likewise.
2443 (x_draw_glyph_string_background): Likewise.
2444 (x_draw_glyph_string_foreground): Likewise.
2445 (x_draw_composite_glyph_string_foreground): Likewise.
2446 (x_draw_glyph_string_box): Likewise.
2447 (x_draw_image_foreground): Likewise.
2448 (x_draw_image_relief): Likewise.
2449 (x_draw_image_foreground_1): Likewise.
2450 (x_draw_image_glyph_string): Likewise.
2451
2452 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
2453 and :line-width can be negative.
2454 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be negative.
2455
2456 2001-02-09 Jason Rumney <jasonr@gnu.org>
2457
2458 * w32term.c (w32_encode_char): Treat eight bit graphic and control
2459 characters the same as ASCII and latin-1.
2460 (x_display_and_set_cursor): Check for the focus frame's selected
2461 window instead of selected_window.
2462 (x_after_update_window_line): Don't clear if frame's internal
2463 border width is zero.
2464 (x_new_font): Don't change a tooltip's size.
2465 (w32_initialize): Set char_ins_del_ok to 1.
2466
2467 * w32fns.c (Fx_show_tip): Fix calls to make_number.
2468 (x_set_font): If font hasn't changed, avoid recomputing
2469 faces and other things.
2470 (x_set_tool_bar_lines): Do nothing if frame is minibuffer-only,
2471 (Fx_create_frame): Add the tool bar height to the frame height.
2472 (x_create_tip_frame): Prevent changing the tooltip's
2473 background color by specifying a color for the default font
2474 in .Xdefaults.
2475 (Qcancel_timer): New variable.
2476 (syms_of_w32fns): Initialize and staticpro it.
2477 (Fx_hide_tip, Fx_show_tip): Use it.
2478 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2479 the timer.
2480 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
2481
2482 * w32.c (init_environment): Duplicate local string before putenv.
2483
2484 2001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
2485
2486 * charset.c (Fstring): A typo.
2487
2488 2001-02-09 Kenichi Handa <handa@etl.go.jp>
2489
2490 * charset.c (Fstring): If all arguments are less than 256, return
2491 a unibyte string.
2492
2493 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
2494 return a unibyte string.
2495
2496 * coding.c (code_convert_region): After detecting a coding, if
2497 nothing found, set coding->composing to COMPOSITION_NO.
2498 (decode_coding_string): Likewise.
2499
2500 2001-02-08 Stefan Monnier <monnier@cs.yale.edu>
2501
2502 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
2503 to avoid overflow.
2504
2505 2001-02-07 Kenichi Handa <handa@etl.go.jp>
2506
2507 * charset.c (parse_str_to_multibyte): New function.
2508
2509 * charset.h (parse_str_to_multibyte): Extern it.
2510
2511 * print.c (print_string): If we are going to print a unibyte
2512 string into a multibyte buffer, convert the string to multibyte by
2513 str_to_multibyte.
2514
2515 2001-02-06 Andrew Innes <andrewi@gnu.org>
2516
2517 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
2518 been created. It seems we can get sent window messages such as
2519 WM_ERASEBKGND before we properly update a frame.
2520
2521 2001-02-06 Gerd Moellmann <gerd@gnu.org>
2522
2523 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
2524 Avoid some unnecessary cursor positioning.
2525
2526 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2527
2528 * xfaces.c (split_font_name): Compute numeric value of XLFD_AVGWIDTH.
2529 (LFACE_AVGWIDTH): New macro.
2530 (LFACEP): Use AREF.
2531 (check_lface_attrs): Check LFACE_AVGWIDTH.
2532 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
2533 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
2534 (merge_face_vectors): Check LFACE_AVGWIDTH.
2535 (Finternal_make_lisp_face): Use AREF.
2536 (xm_set_menu_resources_from_menu_face)
2537 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
2538 (Finternal_lisp_face_empty_p): Use AREF.
2539 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
2540 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
2541 Compare average widths..
2542 (best_matching_font): Arrange for comparing average widths.
2543
2544 * dispextern.h (enum lface_attribute_index):
2545 Add LFACE_AVGWIDTH_INDEX (invisible from Lisp).
2546
2547 2001-02-05 Dave Love <fx@gnu.org>
2548
2549 * puresize.h: Revert last change following loadup.el change.
2550
2551 2001-02-05 Andrew Innes <andrewi@gnu.org>
2552
2553 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
2554 invocation of temacs, to work with Windows 2000.
2555 (bootstrap-emacs): Ditto.
2556
2557 2001-02-05 Gerd Moellmann <gerd@gnu.org>
2558
2559 * xterm.c (x_display_and_set_cursor): Check for the focus
2560 frame's selected window instead of selected_window.
2561
2562 * xdisp.c (try_scrolling): If point is in the line below the
2563 window, make sure to move the iterator at least a canonical
2564 char height down.
2565
2566 * window.c (Fmove_to_window_line): Don't add 1 if window is vscrolled.
2567
2568 2001-02-05 Kenichi Handa <handa@etl.go.jp>
2569
2570 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not.
2571 If invalid, execute CCL_INVALID_CMD.
2572 (ccl_driver): If the CCL program is terminated because of
2573 CCL_STAT_INVALID_CMD, copy the remaining source data to the
2574 destination instead of throwing them away.
2575
2576 2001-02-02 Gerd Moellmann <gerd@gnu.org>
2577
2578 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
2579 faces and other things.
2580
2581 * xdisp.c (get_next_display_element): Fix case of empty
2582 display table entry.
2583
2584 2001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
2585
2586 * editfns.c (Fconstrain_to_field): Doc fix.
2587
2588 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
2589 into `thoroughly', to make it consistent with the doc string.
2590
2591 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
2592
2593 2001-02-01 Gerd Moellmann <gerd@gnu.org>
2594
2595 * search.c (search_buffer): Call set_search_regs with a byte
2596 position, not a character position.
2597
2598 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
2599 minibuffer-only,
2600
2601 2001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
2602
2603 * frame.c (Fmodify_frame_parameters): Doc fix.
2604
2605 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2606
2607 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
2608 identifier which is not reserved by Standard C.
2609
2610 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
2611
2612 * window.c (enum window_part): New enumeration.
2613 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
2614 Qright_bitmap_area.
2615 (coordinates_in_window): Return an enumerator from enum
2616 window_part. Fix handling of right scroll bar.
2617 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
2618 `right-fringe' instead of `left-bitmap-area' and
2619 `right-bitmap-area'. Use enumerators from enum window_part
2620 instead of hard-coded integers.
2621 (check_window_containing, window_from_coordinates):
2622 Use enumerators from enum window_part instead of hard-coded integers.
2623 (syms_of_window): Replace Qleft_bitmap_area and
2624 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
2625
2626 2001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
2627
2628 * editfns.c (Fformat_time_string): Doc fix.
2629
2630 2001-01-31 Stefan Monnier <monnier@cs.yale.edu>
2631
2632 * keymap.c (Fwhere_is_internal): Use the first valid binding
2633 if no ascii binding is found (when firstonly is t).
2634
2635 2001-01-31 Gerd Moellmann <gerd@gnu.org>
2636
2637 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
2638 instead of Finteractive_p.
2639
2640 * lisp.h (interactive_p): Add prototype.
2641
2642 * eval.c (interactive_p): New function.
2643 (Finteractive_p): Use it.
2644
2645 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
2646
2647 2001-01-31 Dave Love <fx@gnu.org>
2648
2649 * .gdbinit (hook-run): Define to run xreload.
2650
2651 * textprop.c (Fset_text_properties): Fix newline in doc string.
2652
2653 2001-01-30 Gerd Moellmann <gerd@gnu.org>
2654
2655 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp):
2656 Use DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
2657
2658 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
2659 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
2660 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
2661
2662 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
2663 height.
2664
2665 2001-01-30 Dave Love <fx@gnu.org>
2666
2667 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
2668 AFTER_POTENTIAL_GC.
2669
2670 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2671
2672 * bytecode.c (Fbyte_code) <Bcurrent_column>:
2673 Add BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
2674
2675 2001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
2676
2677 * textprop.c (Fset_text_properties): Doc fix.
2678
2679 2001-01-29 Gerd Moellmann <gerd@gnu.org>
2680
2681 * xdisp.c (forward_to_next_line_start): Remove xassert.
2682
2683 2001-01-29 Jason Rumney <jasonr@gnu.org>
2684
2685 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
2686 returning without releasing it.
2687
2688 2001-01-29 Kenichi Handa <handa@etl.go.jp>
2689
2690 * w32fns.c (w32_font_match): Allocate three more bytes to regex
2691 for '^', '$', and '\0'.
2692
2693 2001-01-28 Andrew Choi <akochoi@i-cable.com>
2694
2695 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
2696 regex for '^', '$', and '\0'.
2697
2698 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
2699 only if current_sblock has been initialized.
2700
2701 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
2702 terminal frame even if it is the only visible frame.
2703
2704 2001-01-28 Kenichi Handa <handa@etl.go.jp>
2705
2706 * fontset.c (font_family_registry): Even if FONTNAME conform to
2707 XLFD, if it specifies other fields than family and registry,
2708 return FONTANME. New argument FORCE if nonzero cancel that feature.
2709 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
2710 a signle byte character. Don't set FAMILY part to nil here.
2711 It is handled by the caller choose_face_font.
2712 (Fnew_fontset): Call font_family_registry with FORCE 0.
2713 (Fset_fontset_font): Likewise.
2714
2715 2001-01-27 Gerd Moellmann <gerd@gnu.org>
2716
2717 * xdisp.c (display_line): Don't treat a newline as fitting
2718 on the line.
2719
2720 2001-01-26 Gerd Moellmann <gerd@gnu.org>
2721
2722 * window.c (size_window): Set the window's orig_top to nil when
2723 changing heights, so that a future shrink_mini_window won't
2724 restore a bogus height.
2725
2726 * frame.c (do_switch_frame): If selected frame has a mini-window,
2727 resize that to exact size.
2728
2729 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
2730
2731 * xdisp.c (display_line): Simplify check for glyphs fitting
2732 entirely in the line.
2733
2734 * xfns.c (xic_style): New variable.
2735 (create_frame_xic): Move static variable to global scope for
2736 the case that `static' gets defined away.
2737
2738 2001-01-26 Kenichi Handa <handa@etl.go.jp>
2739
2740 * coding.c (decode_coding): Set a flag for inhibiting
2741 inconsistent eol.
2742 (code_convert_region): Always set saved_coding_symbol.
2743 (decode_coding_string): Likewise. Update coding->symbol when we
2744 encounter a inconsistent eol by the same way as code_convert_region.
2745
2746 2001-01-25 Gerd Moellmann <gerd@gnu.org>
2747
2748 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
2749 XClearArea.
2750
2751 * xterm.c (x_after_update_window_line): Don't clear if frame's
2752 internal border width is zero.
2753 (x_clear_area): New function.
2754 (x_after_update_window_line, x_clear_end_of_line)
2755 (x_scroll_bar_create, x_scroll_bar_set_handle)
2756 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
2757 instead of XClearArea.
2758
2759 * xterm.h (x_clear_area): Add prototype.
2760
2761 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
2762 which doesn't seem necessary anymore with Lesstif 0.92.
2763
2764 2001-01-25 Dave Love <fx@gnu.org>
2765
2766 * puresize.h (BASE_PURESIZE): Up to 720000.
2767
2768 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
2769
2770 2001-01-25 Gerd Moellmann <gerd@gnu.org>
2771
2772 * xdisp.c (echo_area_display): Don't call redisplay_internal
2773 when Emacs is shutting down. We can't run hooks etc. that
2774 would be necessary to do a redisplay.
2775
2776 * lread.c (read_integer): Use type EMACS_INT instead of int.
2777
2778 2001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
2779
2780 * ccl.c (ccl_driver): Fix last change.
2781
2782 2001-01-25 Kenichi Handa <handa@etl.go.jp>
2783
2784 * ccl.h (sturct ccl_program): New member suppress_error.
2785
2786 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
2787 insert error message to the output.
2788 (setup_ccl_program): Initialize ccl->suppress_error to 0.
2789
2790 * coding.h (struct coding_system): New member suppress_error.
2791
2792 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
2793 (Fset_terminal_coding_system_internal): Set the member
2794 suppress_error to 1.
2795 (Fset_safe_terminal_coding_system_internal): Likewise.
2796
2797 2001-01-24 Stefan Monnier <monnier@cs.yale.edu>
2798
2799 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
2800 as if it was a `charset'.
2801
2802 2001-01-24 Gerd Moellmann <gerd@gnu.org>
2803
2804 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
2805 value in where_is_cache; the next lookup in the cache returns
2806 something bogus if we do.
2807
2808 2001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
2809
2810 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
2811 if HAVE_WINDOW_SYSTEM isn't defined.
2812
2813 2001-01-24 Gerd Moellmann <gerd@gnu.org>
2814
2815 * fns.c (sweep_weak_table): Fix code taking items out of
2816 the hash collision chain. Some cleanup.
2817
2818 * xterm.c (x_new_font): Don't change a tooltip's size.
2819
2820 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
2821 background color by specifying a color for the default font
2822 in .Xdefaults.
2823
2824 2001-01-24 Kenichi Handa <handa@etl.go.jp>
2825
2826 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
2827 a workaround for SunOS 4's cc.
2828 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
2829 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
2830 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
2831 statement.
2832
2833 2001-01-23 Gerd Moellmann <gerd@gnu.org>
2834
2835 * xterm.c (x_set_window_size_1): New function extracted from
2836 x_set_window_size.
2837 (x_set_window_size): Use it.
2838 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
2839 doesn't have a widget, like tooltips.
2840
2841 2001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
2842
2843 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
2844
2845 2001-01-23 Kenichi Handa <handa@etl.go.jp>
2846
2847 * fns.c (Fset_char_table_default): Fix to make sub char-table
2848 correctly.
2849
2850 2001-01-22 Gerd Moellmann <gerd@gnu.org>
2851
2852 * xdisp.c (build_desired_tool_bar_string): Make sure we have
2853 a desired tool bar string, even if there are no tool bar items.
2854
2855 * xdisp.c (Ftool_bar_lines_needed): New function.
2856 (syms_of_xdisp): Defsubr it.
2857
2858 * editfns.c (Fformat): Don't extend text properties from arguments
2859 to padding chars in the result.
2860
2861 2001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
2862
2863 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
2864
2865 2001-01-20 Andrew Innes <andrewi@gnu.org>
2866
2867 * w32term.c (w32_ring_bell): Only support visible bell on w32 frames.
2868 (w32_initialize): Don't set term hooks that aren't actually needed
2869 in windowed mode.
2870
2871 * xfaces.c (realize_default_face):
2872 (realize_face):
2873 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
2874
2875 * xdisp.c (handle_single_display_prop): Remove references to
2876 FRAME_W32_CONSOLE_P.
2877
2878 * dispnew.c (Fredraw_frame): Remove reference to FRAME_W32_CONSOLE_P.
2879
2880 * frame.h (output_method): Remove output_w32_console method.
2881 (FRAME_W32_CONSOLE_P): Remove macro.
2882
2883 * frame.c (Qw32_console): Remove variable.
2884 (Fframep): Remove references to it.
2885 (syms_of_frame): Ditto.
2886 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
2887
2888 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
2889 redefinition.
2890
2891 2001-01-20 Kenichi Handa <handa@etl.go.jp>
2892
2893 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
2894
2895 2001-01-19 Andrew Innes <andrewi@gnu.org>
2896
2897 * w32.c (init_environment): Add a version-independent site-lisp
2898 directory to EMACSLOADPATH, after the version dependent one.
2899
2900 2001-01-19 Gerd Moellmann <gerd@gnu.org>
2901
2902 * editfns.c (Fbuffer_substring): Doc fix.
2903
2904 * xdisp.c (message_dolog, message2, message2_nolog):
2905 Rename parameter LEN to NBYTES.
2906
2907 2001-01-19 Kenichi Handa <handa@etl.go.jp>
2908
2909 * charset.c (strwidth): Use c_string_width.
2910 (c_string_width): New function.
2911 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
2912 Caller changed.
2913
2914 * charset.h (c_string_width, lisp_string_width): Extern them.
2915
2916 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
2917
2918 * indent.c (check_composition): Check validity of composition.
2919
2920 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
2921 characters by calling c_string_width.
2922 (x_consider_frame_title): Get byte length of frame tile string
2923 correctly.
2924 (display_mode_element): Pay attention to width of non-ASCII
2925 characters by calling strwidth.
2926
2927 2001-01-18 Gerd Moellmann <gerd@gnu.org>
2928
2929 * xfns.c (Qcancel_timer): New variable.
2930 (syms_of_xfns): Initialize and staticpro it.
2931 (Fx_hide_tip, Fx_show_tip): Use it.
2932 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
2933 the timer.
2934 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
2935
2936 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
2937
2938 * window.h (WINDOW_LIVE_P): New macro.
2939
2940 * window.c (window_size_fixed): New variable.
2941 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
2942 the doc string.
2943
2944 * eval.c (specbind): If binding a per-buffer variable which
2945 doesn't have a buffer-local value in the current buffer, change
2946 the global value by changing the value of the symbol bound in all
2947 buffers not having their own value, to make it consistent with
2948 what happens with other buffer-local variables.
2949
2950 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
2951
2952 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
2953 when searching for a newline.
2954
2955 2001-01-18 Kenichi Handa <handa@etl.go.jp>
2956
2957 * xdisp.c (display_string): Fix previous change.
2958
2959 2001-01-18 Jason Rumney <jasonr@gnu.org>
2960
2961 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
2962 GLYPH_DEBUG is defined.
2963 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
2964 true for images with `:ascent 100'.
2965 (x_set_mouse_face_gc): If the last used mouse face has gone in the
2966 meantime, use face MOUSE_FACE_ID.
2967 If first glyph isn't a character glyph, use the ASCII NUL
2968 character to determine the face.
2969 (expose_area): Do not treat left margin specially.
2970 (note_mode_line_highlight): If no local_map, check global keymap.
2971 (note_mouse_highlight): Initialize overlay.
2972 (clear_mouse_face): Don't return if tip_frame is non-nil.
2973 (show_scroll_bars): Remove unused function.
2974 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
2975 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
2976 Clip to row.
2977 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be nil.
2978 (x_free_frame_resources): Unload relief colors.
2979
2980 2001-01-17 Gerd Moellmann <gerd@gnu.org>
2981
2982 * xdisp.c (forward_to_next_line_start): Avoid calling
2983 get_next_display_element when the newline is already found.
2984 This may change the iterator's position, when its current position is
2985 equal to the iterator's stop_charpos.
2986
2987 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
2988 zero, use this method only at the end of a line.
2989
2990 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
2991 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
2992 if SCALABLE_FONTS_P is set.
2993
2994 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
2995 so that scalable fonts are included.
2996
2997 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
2998 In the cache, use a key containing the information if scalable
2999 fonts are included.
3000 (x_load_font): Adapt to change of keys in the font cache.
3001
3002 2001-01-17 Kim F. Storm <storm@filanet.dk>
3003
3004 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
3005 XListFonts to take advantage of font caching.
3006
3007 * xterm.c (x_list_fonts): Ensure caching font information when
3008 called for a null frame, which is the case frequently when Emacs
3009 starts.
3010
3011 2001-01-17 Gerd Moellmann <gerd@gnu.org>
3012
3013 * xfns.c (QCconversion): Replaces QCalgorithm.
3014
3015 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
3016
3017 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
3018 of :algorithm.
3019
3020 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
3021 not everything could be displayed.
3022
3023 * line.h, x-list-font.c: Files removed because unused.
3024
3025 2001-01-17 Andrew Innes <andrewi@gnu.org>
3026
3027 * dired.c (directory_files_internal): Convert result from readdir
3028 to a unibyte string initially, to avoid possible misinterpretation
3029 of some bytes as the internal form of Emacs characters.
3030
3031 2001-01-17 Kenichi Handa <handa@etl.go.jp>
3032
3033 * fns.c (concat): Be sure to avoid putting the same `composition'
3034 property on the adjacent regions.
3035
3036 2001-01-16 Gerd Moellmann <gerd@gnu.org>
3037
3038 * window.c (Fset_window_hscroll): Don't set window's min_hscroll here.
3039 (Fscroll_right, Fscroll_left): Set it here instead, if called
3040 interactively.
3041
3042 * buffer.c (Fset_buffer_modified_p): Set buffer's
3043 prevent_redisplay_optimizations_p flag.
3044
3045 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
3046 * sysdep.c, vmsproc.c, xselect.c: Call redisplay_preserve_echo_area
3047 with additional arg.
3048
3049 * dispextern.h, lisp.h (redisplay_preserve_echo_area):
3050 Change prototype.
3051
3052 * xdisp.c (redisplay_preserve_echo_area): Add parameter
3053 FROM_WHERE, for debugging.
3054
3055 2001-01-16 Kenichi Handa <handa@etl.go.jp>
3056
3057 * ccl.c (Fregister_ccl_program): Handle the return value of
3058 resolve_symbol_ccl_program correctly.
3059 (CCL_Extension): Fix typo (originally CCL_Extention). Caller changed.
3060
3061 2001-01-15 Gerd Moellmann <gerd@gnu.org>
3062
3063 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
3064 has gone in the meantime, use face MOUSE_FACE_ID.
3065
3066 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]:
3067 If x_display_info_for_display returns null, don't try to close
3068 the display; we didn't open it.
3069
3070 * dispnew.c (save_or_restore_current_matrices): Function removed.
3071 (save_current_matrix, restore_current_matrix): New functions.
3072 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
3073 restore the frame's current matrix. Due to the glyph pointer
3074 setup done in adjust_glyph_matrix, there is no easy way to make
3075 saving the current matrix in the desired matrix generally correct,
3076 so don't try it.
3077
3078 2001-01-15 Kenichi Handa <handa@etl.go.jp>
3079
3080 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
3081 truncation glyphs.
3082 (display_line): Optimize for wide characters.
3083 (display_string): Don't try to display a multi-column character
3084 partially. On ttys, produce more than one truncation glyph for
3085 multi-column characters that don't fit on the line.
3086
3087 2001-01-13 Kenichi Handa <handa@etl.go.jp>
3088
3089 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]:
3090 Define it instead of WORDS_BIGENDIAN. Caller changed.
3091
3092 2001-01-13 Jason Rumney <jasonr@gnu.org>
3093
3094 * w32fns.c (Fimage_size, image_ascent, lookup_image)
3095 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
3096 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3097 (tiff_format, gif_format, gs_format): Adapt to change of image margins.
3098
3099 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
3100 (x_draw_image_relief, x_draw_image_foreground_1)
3101 (x_draw_image_glyph_string): Adapt to change of image margins.
3102
3103 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
3104 variables.
3105
3106 * w32bdf.c (search_file_line, get_cached_font_char)
3107 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
3108
3109 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
3110
3111 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
3112 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
3113 (Fw32_send_sys_command): Remove unused variables.
3114 (w32_msg_pump): Add parentheses.
3115
3116 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
3117 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
3118 Add parentheses.
3119
3120 2001-01-12 Gerd Moellmann <gerd@gnu.org>
3121
3122 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
3123 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
3124 being a pair of margins.
3125 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
3126 to DEFVAR_LISP. Extend doc.
3127
3128 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
3129 margins.
3130 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
3131 pair of integers `(X . Y)', use X for the horizontal and Y for the
3132 vertical margin.
3133 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
3134 (parse_image_spec): Check it.
3135 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
3136 (tiff_format, gif_format, gs_format):
3137 Use IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
3138
3139 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
3140 (x_draw_image_relief, x_draw_image_foreground_1)
3141 (x_draw_image_glyph_string): Adapt to the change of image margins.
3142
3143 * dispextern.h (struct image): Replace member `margin' with
3144 `hmargin' and `vmargin'.
3145
3146 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
3147 and GLYPHS.
3148
3149 * dispnew.c (update_text_area): Put code which decrements the
3150 stop position when the row's face extends to the end of the
3151 line in #if 0.
3152
3153 * xfns.c (x_set_mouse_color): Fix color allocation.
3154
3155 * keyboard.c: Call get_local_map with new argument list.
3156
3157 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
3158
3159 * intervals.h (enum map_property): Removed.
3160 (get_local_map): Change prototype.
3161
3162 * keymap.c: Call get_local_map with new argument list.
3163 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
3164
3165 2001-01-11 Gerd Moellmann <gerd@gnu.org>
3166
3167 * xdisp.c (build_desired_tool_bar_string): Correct the computation
3168 of the size needed for the tool bar string. For the last image,
3169 use a `display' property that reaches to the end of the string.
3170
3171 * xselect.c (selection_request_dpyinfo): New variable.
3172 (x_handle_selection_request): Set it.
3173 (x_selection_request_lisp_error): Don't call
3174 x_decline_selection_request if selection request's display has
3175 been closed.
3176
3177 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]:
3178 Do the unregister_colors before calling XFreeColors.
3179
3180 2001-01-10 Dave Love <fx@gnu.org>
3181
3182 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
3183 ${SOME_MACHINE_LISP}, not ${lisp}.
3184
3185 2001-01-10 Gerd Moellmann <gerd@gnu.org>
3186
3187 * xdisp.c (display_line): On ttys, produce more than one truncation
3188 glyph for multi-column characters that don't fit on the line.
3189
3190 * xselect.c (x_reply_selection_request): Add a comment.
3191
3192 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
3193 XkbGetNames instead of XkbGetKeyboard.
3194
3195 2001-01-10 Dave Love <fx@gnu.org>
3196
3197 * sysdep.c (random): Revert the declaration.
3198
3199 2001-01-09 Gerd Moellmann <gerd@gnu.org>
3200
3201 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]:
3202 Call function string_bytes.
3203 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
3204
3205 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
3206 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
3207 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
3208 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
3209 the current sblock.
3210 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
3211 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
3212 after sweeping strings, and at the end.
3213 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
3214
3215 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
3216 ensure that pop_message is called.
3217
3218 * keyboard.c (Fexecute_extended_command): Use a
3219 record_unwind_protect to ensure that pop_message is called.
3220
3221 * lisp.h (push_message_unwind): Add prototype.
3222
3223 * xdisp.c (push_message_unwind): New function.
3224
3225 * fileio.c (do_auto_save_unwind): Do the pop_message here
3226 instead of in Fdo_auto_save.
3227 (Fdo_auto_save): Don't call pop_message.
3228
3229 2001-01-08 Ken Raeburn <raeburn@gnu.org>
3230
3231 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
3232 in inner block.
3233
3234 2001-01-08 Gerd Moellmann <gerd@gnu.org>
3235
3236 * window.c (window_scroll_pixel_based): Adjust glyph matrices
3237 when increasing window's vscroll.
3238
3239 * macros.c (Qkbd_macro_termination_hook): New variable.
3240 (syms_of_macros): Initialize and staticpro it.
3241 (pop_kbd_macro): Run kbd-macro-termination-hook.
3242
3243 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
3244
3245 2001-01-07 Dave Love <fx@gnu.org>
3246
3247 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
3248 arglist, for documentation's sake.
3249
3250 2001-01-06 Andrew Innes <andrewi@gnu.org>
3251
3252 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
3253 of *.pdb.
3254
3255 2001-01-05 Andrew Innes <andrewi@gnu.org>
3256
3257 * term.c (update_end): Don't check updating_frame; for some reason
3258 this can be 0 sometimes, such as after dismissing a popup menu,
3259 and isn't necessary given the explicit frame argument.
3260
3261 2001-01-05 Gerd Moellmann <gerd@gnu.org>
3262
3263 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
3264 on some systems, and an unsigned long on others, like FreeBSD 4.1.
3265
3266 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3267
3268 * xterm.c (clear_mouse_face): Don't return if tip_frame is non-nil.
3269
3270 * xfns.c (x_create_tip_frame): Preserve the value of
3271 face_change_count around the creation of the tip frame.
3272
3273 * xfns.c (last_show_tip_args): New variable.
3274 (compute_tip_xy): New function.
3275 (Fx_show_tip): Reuse an existing tip frame, if possible.
3276 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
3277
3278 2001-01-04 Dave Love <fx@gnu.org>
3279
3280 * editfns.c (Fformat): Doc fix.
3281
3282 * systime.h (set_file_times): Prototype.
3283
3284 * widget.h (EmacsFrameSetCharSize_): Prototype.
3285
3286 * sysdep.c (random, srandom): Declare explicitly.
3287
3288 * dispextern.h (move_it_vertically_backward): Declare.
3289
3290 2001-01-04 Gerd Moellmann <gerd@gnu.org>
3291
3292 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
3293 like in Fx_create_frame.
3294
3295 * xfaces.c (set_font_frame_param): Don't do anything for
3296 non-graphical frames.
3297
3298 * window.c (Fdelete_other_windows): Set window's window_end_valid
3299 to nil when changing the window's start. Don't change the
3300 window's start when its top position hasn't changed. If we do,
3301 this will set the window's optional_new_start, which act's like a
3302 force_start during redisplay with C-x 1 M-> under particular
3303 circumstances (see report from Per Starback to emacs-pretest-bug
3304 from 2000-12-13.).
3305
3306 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3307
3308 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
3309 short cut at the start of the function. Add an assertion.
3310 (reseat_at_next_visible_line_start): Add an assertion.
3311
3312 * window.c (Frecenter): When changing the window start, set the
3313 window's window_end_valid to nil.
3314 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
3315
3316 * dispextern.h (move_it_past_eol): Add prototype.
3317
3318 * xdisp.c (move_it_past_eol): New function.
3319
3320 * window.c (Fwindow_end): Doc fix.
3321
3322 2001-01-03 Dave Love <fx@gnu.org>
3323
3324 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3 kluge.
3325
3326 2001-01-03 Gerd Moellmann <gerd@gnu.org>
3327
3328 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
3329 the enabled_p flag of the glyph row at window_end_vpos to 0.
3330 (handle_single_display_prop): Fix last change.
3331
3332 2001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
3333
3334 * window.c (Frecenter): Doc fix.
3335
3336 2001-01-02 Andrew Innes <andrewi@gnu.org>
3337
3338 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
3339
3340 * frame.h (output_method): Add output_w32_console method.
3341 (FRAME_W32_CONSOLE_P): New macro.
3342
3343 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
3344 use output_w32_console method.
3345 (Qw32_console): New Lisp_Object.
3346 (Fframep): Return it.
3347 (syms_of_frame): Init it.
3348 (Fframe_parameters): Report w32console as font for w32_console frames.
3349
3350 * xfaces.c (realize_default_face): Set face foreground and
3351 background to unspecified for w32_console frames.
3352 (realize_face): Realize face cache for w32_console frames.
3353 (realize_tty_face): Accept w32_console frames.
3354
3355 * xdisp.c (handle_single_display_prop): Return if frame is w32_console.
3356 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
3357 necessary, even if running interactively.
3358
3359 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
3360 w32_console frames.
3361
3362 * w32term.c (x_update_begin):
3363 (x_update_end):
3364 (x_clear_frame):
3365 (x_ins_del_lines):
3366 (x_change_line_highlight):
3367 (x_delete_glyphs):
3368 (w32_ring_bell):
3369 (x_update_begin):
3370 (x_update_end):
3371 (w32_reassert_line_highlight):
3372 (w32_frame_rehighlight):
3373 (w32_frame_raise_lower): Do nothing if not w32 frame.
3374
3375 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
3376
3377 * w32fns.c (Fx_display_color_cells): Determine correct value, when
3378 system doesn't tell us directly.
3379 (Fx_display_visual_class): Implement properly.
3380
3381 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3382
3383 * window.c (Frecenter): Handle centering in graphical frames
3384 specially. Centering on the basis of line counts doesn't work
3385 reliably with variable-height lines.
3386
3387 2001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
3388
3389 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
3390 and al[].
3391
3392 * composite.c (run_composition_function): Remove unused var `val'.
3393 (update_compositions): Remove unused variable `hook'.
3394
3395 * intervals.c (get_local_map): Remove unused variable `tem'.
3396
3397 * doprnt.c (doprnt1): Remove unused variable `size'.
3398
3399 * fns.c (Flength): Remove unused variable `tail'.
3400 (Fdelete): Remove unused variable `size'.
3401
3402 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
3403 and `gcpro2'.
3404
3405 * doc.c (Fsnarf_documentation): Remove unused vars `fun' and `tem'.
3406
3407 * data.c (find_symbol_value): Remove extra 3rd argument in the
3408 call to swap_in_symval_forwarding.
3409
3410 * undo.c (Fprimitive_undo): Remove unused block-scope variable `end'.
3411
3412 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
3413 (trivial_regexp_p): Remove unused variable `c'.
3414 (boyer_moore): Remove unused variable `k'.
3415
3416 * indent.c (current_column): Remove unused variable `stopchar'.
3417 (Fcompute_motion): Remove unused variable `contin'.
3418
3419 * casefiddle.c (casify_object): Remove unused variable `tolen'.
3420
3421 * dired.c (directory_files_internal): Fix a typo in a comment.
3422 Remove an unused variable `handler'.
3423 (file_name_completion): Remove unused function-scope variable `dp'.
3424 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
3425 on BSD4_2.
3426
3427 * fileio.c (e_write): Remove unused variable `require_encoding_p'.
3428
3429 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
3430 and `buf'.
3431 (Fmarker_insertion_type): Remove unused variable `buf'.
3432
3433 * insdel.c (make_gap): Remove unused variable `result'.
3434
3435 * keyboard.c (record_char): Remove unused function-scope var `help'.
3436 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
3437 (menu_bar_items): Remove unused function-scope variable `tem'.
3438
3439 * fontset.c (fontset_ref): Remove unused variable `i'.
3440 (fontset_set): Remove unused variables `j' and `tmp'.
3441 (make_fontset): Remove unused variables `i', `j', `elt' and `base_elt'.
3442 (make_fontset_for_ascii_face): Remove unused variable `name'.
3443 (fs_load_font): Remove unused variable `font_idx'.
3444 (fs_query_fontset): Remove unused function-local variable `fontset'.
3445 (list_fontsets): Remove unused variable `tail'.
3446 (Fnew_fontset): Remove unused variables `family' and `registry'.
3447 (accumulate_font_info): Remove unused variable `tmp'.
3448 (Ffontset_font): Remove unused variable `id'.
3449 (syms_of_fontset): Remove unused variable `i'.
3450
3451 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
3452 to x_term_init.
3453 (lookup_image): Remove unused variable `file'.
3454 (xbm_load): Remove unused variables `bitmap_data', `height', and
3455 `width'. Remove function-local variable `i', leave the
3456 block-local one.
3457 (gif_load): Remove unused variable `inc'.
3458
3459 * xterm.c (XTread_socket): Remove unused variables `p' and `pend'.
3460 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
3461 leave only the one in the inner block.
3462
3463 * xfaces.c (face_fontset, realize_default_face): Remove unused
3464 variable `fontset'.
3465 (face_at_buffer_position): Remove unused variable `multibyte_p'.
3466
3467 * term.c (encode_terminal_code): Remove unused variable `c'.
3468
3469 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
3470 char *' instead of `char *'.
3471
3472 * category.c (Fcategory_docstring): Remove unused variable `doc'.
3473 (Fget_unused_category): Remove unused variable `docstring_vector'.
3474 (Fchar_category_set): Remove unused variables `val', `charset',
3475 `c1' and `c2'.
3476
3477 * coding.c (detect_coding_iso2022, setup_coding_system):
3478 Remove unused variable `i'.
3479 (detect_coding_mask): Remove unused variable `idx'.
3480 (detect_coding): Remove unused variable `i'.
3481 (ccl_coding_driver): Remove unused variable `result'.
3482 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
3483 (decode_coding_string): Remove unused variables `to' and `gcpro1'.
3484 (encode_coding_string): Remove unused variables `gcpro1' and
3485 `saved_coding_symbol'.
3486 (Ffind_coding_systems_region_internal): Remove function-local
3487 variable args[], leave only the block-local one.
3488 (code_convert_region1): Remove unused variable `len'.
3489
3490 * charset.c (char_printable_p): Remove unused variable `chars'.
3491 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
3492 (str_to_multibyte): Remove unused variable `c'.
3493
3494 * window.c (size_window): Remove block-local variable `min_size'.
3495
3496 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
3497 `header_line_height'.
3498 (append_space, extend_face_to_end_of_line): Declare `saved_what'
3499 enum display_element_type.
3500
3501 2001-01-02 Gerd Moellmann <gerd@gnu.org>
3502
3503 * xterm.c (x_connection_closed): Catch X errors around all
3504 statements that call X. Save away the error message in a local copy.
3505
3506 * xterm.c (x_connection_closed): Set handling_signal to 0 at
3507 the start.
3508
3509 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
3510 in or at the start of invisible text.
3511
3512 * dispnew.c (update_window): Don't check_current_matrix_flags.
3513
3514 2001-01-01 Jason Rumney <jasonr@gnu.org>
3515
3516 * w32fns.c (x_figure_window_size): Do not allow new_height and
3517 new_width of frame to override specified values.
3518
3519 2000-12-30 Kenichi Handa <handa@etl.go.jp>
3520
3521 * composite.c (find_composition): Fix a code for searching backward.
3522
3523 2000-12-29 Gerd Moellmann <gerd@gnu.org>
3524
3525 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New function.
3526 (update_window) [GLYPH_DEBUG]: Call it.
3527 (scrolling_window): Prevent including current rows which are below
3528 what's displayed in the window.
3529
3530 * xdisp.c (try_window_reusing_current_matrix)
3531 <new start <= old start>: Disable rows in the current matrix
3532 which are below the window after scrolling.
3533
3534 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
3535 is zero. It's not worth the complexity.
3536 (invisible_text_between_p): Put in #if 0 because unused.
3537
3538 2000-12-28 Gerd Moellmann <gerd@gnu.org>
3539
3540 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
3541 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
3542
3543 * keyboard.c (echo_char): If C is an integer, always call
3544 push_key_description. Former code could signal an invalid
3545 character error.
3546
3547 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
3548 If set, print multibyte text.
3549 (Fsingle_key_description): Call push_key_description with
3550 FORCE_MULTIBYTE set.
3551 (describe_buffer_bindings): Likewise.
3552
3553 * lisp.h (push_key_description): Add prototype.
3554
3555 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
3556 around the call to redisplay_internal.
3557
3558 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3559
3560 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
3561
3562 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3563
3564 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
3565 (ccl_driver): New local variable `extra_bytes'.
3566
3567 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
3568
3569 * coding.c (setup_coding_system):
3570 Initialize coding->spec.ccl.eight_bit_carryover.
3571 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
3572
3573 2000-12-28 Kenichi Handa <handa@etl.go.jp>
3574
3575 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
3576 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
3577 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
3578 (decode_composition_emacs_mule): New function.
3579 (decode_coding_emacs_mule): Decode composition sequence by calling
3580 decode_composition_emacs_mule.
3581 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
3582 (encode_coding_emacs_mule): Changed from macro to function.
3583 If a text contains compositions, encode them correctly.
3584 (setup_coding_system): Set coding->commong_flags for emacs-mule so
3585 that decoding and encoding are required.
3586
3587 2000-12-27 Gerd Moellmann <gerd@gnu.org>
3588
3589 * xfaces.c (PT_PER_INCH): New macro.
3590 (xlfd_point_size): Compute real point size from font's pixel size.
3591 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
3592 instead of 72.
3593
3594 * .gdbinit: Comment out the line pointing to the Lesstif source
3595 directory.
3596
3597 * window.c (Frecenter): Use displayed_window_lines instead
3598 of window_internal_height.
3599
3600 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3601 instead of x-toolkit-scroll-bars-p.
3602 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3603
3604 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
3605 instead of x-toolkit-scroll-bars-p.
3606 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
3607
3608 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
3609 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
3610 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]:
3611 New variables.
3612 (add_window_display_history, add_frame_display_history)
3613 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
3614 (build_frame_matrix_from_leaf_window): Remove unused code.
3615 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
3616 redisplay history.
3617 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
3618 (update_window) [GLYPH_DEBUG]: Likewise.
3619 (syms_of_display): Defsubr dump-redisplay-history.
3620
3621 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3622
3623 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
3624 the end of the prompt. Set echo_after_prompt to the offset
3625 of echoptr in echobuf.
3626
3627 * xdisp.c (init_from_display_pos): Pop until the iterator's
3628 stack is empty; there may be frames for stretch or images
3629 on the stack.
3630
3631 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
3632 (save_or_restore_current_matrix): New function for the same
3633 purpose, but more efficient.
3634 (adjust_frame_glyphs_for_frame_redisplay): Use it.
3635
3636 2000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
3637
3638 * xdisp.c (syms_of_xdisp): Fix last change.
3639
3640 2000-12-23 Gerd Moellmann <gerd@gnu.org>
3641
3642 * xdisp.c (syms_of_xdisp): Doc fix.
3643
3644 * xdisp.c (redisplay_window): Remove label restore_buffers;
3645 use finish_scroll_bars instead to make sure that scroll bars
3646 are redeemed. If we don't do this, flickering can result from
3647 scroll bars being destroyed and recreated.
3648
3649 2000-12-22 Jason Rumney <jasonr@gnu.org>
3650
3651 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
3652 in the wrong colors when the foreground is not black.
3653 (expose_window): Don't redraw the window that's currently being
3654 updated.
3655
3656 2000-12-22 Gerd Moellmann <gerd@gnu.org>
3657
3658 * window.c (size_window): When setting the window's too_small_ok
3659 flag, compare old size with minimum size depending on WIDTH_P,
3660 don't compare with window_min_width.
3661
3662 * window.c (delete_window): Simplify somewhat.
3663 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
3664 freeing window matrices. The flag windows_or_buffers_changed is
3665 set, so the next redisplay will consider all windows; this should
3666 suffice.
3667
3668 2000-12-22 Kenichi Handa <handa@etl.go.jp>
3669
3670 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
3671
3672 * ccl.h (struct ccl_program): New member cr_consumed.
3673
3674 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
3675 (CCL_READ_CHAR): Handle EOL conversion here.
3676 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
3677
3678 2000-12-21 Gerd Moellmann <gerd@gnu.org>
3679
3680 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg GLYPHS.
3681
3682 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
3683 otherwise tabs of different size compare equal.
3684
3685 * callint.c (Fcall_interactively): Prevent a compiler warning.
3686
3687 * print.c (print_unwind): Return nil.
3688 (PRINTDECLARE): Initialize all local variables.
3689 (print_preprocess): Add a default case.
3690
3691 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
3692
3693 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
3694
3695 * window.c (delete_window, Fsplit_window)
3696 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
3697
3698 * dispextern.h (ensure_frame_matrix): Function declaration removed.
3699
3700 * dispnew.c (ensure_frame_matrix): Removed.
3701 (save_frame_matrix, restore_frame_matrix): New functions.
3702 (adjust_frame_glyphs_for_frame_redisplay): Use them.
3703
3704 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
3705 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
3706
3707 2000-12-21 Andrew Innes <andrewi@gnu.org>
3708
3709 * w32term.c (x_update_begin): Regenerate the palette here, rather
3710 than for each window.
3711
3712 * w32xfns.c (select_palette): Avoid calling SelectPalette if
3713 palette is NULL, since this corrupts memory! Also get
3714 display_info reference from frame.
3715
3716 2000-12-21 Jason Rumney <jasonr@gnu.org>
3717
3718 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
3719
3720 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
3721 to avoid returning without releasing it.
3722
3723 2000-12-21 Kenichi Handa <handa@etl.go.jp>
3724
3725 * keymap.c (push_key_description): Don't convert eight-bit-control
3726 and eight-bit-graphic to multibyte character.
3727
3728 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
3729 generic character and CODE1 is nil, return the smallest character
3730 in CHARSET.
3731
3732 2000-12-20 Dave Love <fx@gnu.org>
3733
3734 * s/osf5-0.h (NSIG): Don't redefine.
3735
3736 2000-12-20 Stefan Monnier <monnier@cs.yale.edu>
3737
3738 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
3739 excluding menu-bar and tool-bar.
3740 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
3741 (menu_item_p): Remove.
3742 (where_is_internal_1): Don't ignore menu-items.
3743
3744 2000-12-20 Gerd Moellmann <gerd@gnu.org>
3745
3746 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
3747 into account.
3748
3749 * window.c (make_window): Initialize window's min_hscroll.
3750 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
3751 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
3752 to zero.
3753 (struct saved_window): New member min_hscroll.
3754 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
3755 (Fset_window_configuration): Set window's min_hscroll.
3756 (save_window_save): Save window's min_hscroll.
3757 (compare_window_configurations): Compare min_hscroll values.
3758
3759 * window.h (struct window): New member min_hscroll.
3760
3761 * keyboard.c (echo_prompt): Prevent a compiler warning.
3762
3763 * xdisp.c (try_cursor_movement): Fix last change. The real
3764 condition is that PT is at the end of the row, and should
3765 be displayed at the start of the next row.
3766
3767 * xdisp.c (try_cursor_movement): If we end on a partially
3768 visible line, end we already decided to scroll, return -1.
3769
3770 * dispextern.h (ensure_frame_matrix): Add prototype.
3771
3772 * window.c (delete_window, Fsplit_window)
3773 (Fset_window_configuration): Call ensure_frame_matrix.
3774
3775 * dispnew.c (fake_current_matrices, ensure_frame_matrix):
3776 New functions.
3777 (adjust_frame_glyphs_for_frame_redisplay): If display has been
3778 completed, call fake_current_matrices instead of marking frame
3779 garbaged.
3780
3781 2000-12-20 Jason Rumney <jasonr@gnu.org>
3782
3783 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
3784
3785 2000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
3786
3787 * fns.c (Frequire): Doc fix.
3788
3789 2000-12-19 Gerd Moellmann <gerd@gnu.org>
3790
3791 * window.c (window_scroll_pixel_based): Don't use move_it_vertically.
3792
3793 * dispnew.c (direct_output_for_insert): Fix check for mini-window
3794 currently displaying a message.
3795
3796 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
3797 xterm.h.
3798 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
3799
3800 2000-12-18 Andrew Innes <andrewi@gnu.org>
3801
3802 * w32.c (w32_strerror): New function.
3803
3804 * w32.h (w32_strerror): New extern.
3805
3806 * w32fns.c (Fw32_shell_execute): Use it.
3807
3808 2000-12-18 Gerd Moellmann <gerd@gnu.org>
3809
3810 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
3811
3812 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
3813
3814 * msdos.c (IT_set_face): Obey inverse_video.
3815
3816 2000-12-18 Kenichi Handa <handa@etl.go.jp>
3817
3818 * dired.c (directory_files_internal): Always return decoded filenames.
3819
3820 2000-12-18 Gerd Moellmann <gerd@gnu.org>
3821
3822 * xterm.c (x_connection_closed): Prevent being called recursively
3823 because of an error condition in XtCloseDisplay.
3824
3825 * xdisp.c (init_iterator): If noninteractive, and the frame's
3826 face cache is null, make one.
3827
3828 * xfns.c (show_busy_cursor): Check for live frames more thoroughly.
3829
3830 * process.c (wait_reading_process_input): Check for pending
3831 input when running timers.
3832
3833 2000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
3834
3835 * msdos.c (IT_write_glyphs): Compute the glyph face from str->face_id.
3836
3837 2000-12-18 Kenichi Handa <handa@etl.go.jp>
3838
3839 * process.c (read_process_output): Don't run a filter if the code
3840 decoder produces nothing but carryover.
3841
3842 2000-12-17 Andrew Innes <andrewi@gnu.org>
3843
3844 * w32.c (sys_rename): Only check errno against EEXIST, and not
3845 EACCES, when determining whether rename failed because the target
3846 exists. This was resulting in indefinite looping on Windows 9x if
3847 the source file was locked by another process.
3848
3849 * w32fns.c (Ffile_system_info): New function.
3850 (syms_of_w32fns): Defsubr it.
3851
3852 2000-12-17 Gerd Moellmann <gerd@gnu.org>
3853
3854 * window.c (coordinates_in_window): Fix computation for
3855 position on vertical line between mode lines.
3856
3857 * xfns.c (unwind_create_frame): Return t if frame was deleted.
3858 Don't alter tip_frame or tip_window.
3859 (unwind_create_tip_frame): Set tip_frame to nil only if frame
3860 was deleted.
3861
3862 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
3863 Don't alter tip_frame or tip_window.
3864 (unwind_create_tip_frame): Set tip_frame to nil only if frame
3865 was deleted.
3866
3867 2000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
3868
3869 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
3870 be consistent with the doc string. Reported by NAKAJIMA Mikio
3871 <minakaji@osaka.email.ne.jp>.
3872
3873 2000-12-16 Kenichi Handa <handa@etl.go.jp>
3874
3875 * xfaces.c (Vface_ignored_fonts): New variable.
3876 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
3877 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
3878
3879 2000-12-15 Gerd Moellmann <gerd@gnu.org>
3880
3881 * dispnew.c (update_window): Detect pending input every nth line
3882 updated, i.e. do it depending on real work done, and not on the
3883 vpos of the line.
3884
3885 * xterm.c (expose_window): Don't redraw the window that's
3886 currently being updated.
3887
3888 * window.c (Fset_window_point): Remove test for
3889 cursor_in_non_selected_windows.
3890
3891 * lread.c (read1): Recognize end of file after `\\'.
3892
3893 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
3894 not unwind_create_frame.
3895
3896 2000-12-15 Dave Love <fx@gnu.org>
3897
3898 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
3899 bcopy & al.
3900
3901 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
3902
3903 2000-12-15 Kenichi Handa <handa@etl.go.jp>
3904
3905 * coding.c (setup_coding_system): Clear all members of the struct
3906 coding_system at first.
3907 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
3908 argument.
3909 (code_convert_region): Don't override coding->src_multibyte and
3910 coding->dst_multibyte.
3911
3912 * fns.c (Fmd5): Docstring improved.
3913
3914 2000-12-15 Miles Bader <miles@gnu.org>
3915
3916 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
3917 are actually marked as mode-lines; otherwise use
3918 estimate_mode_line_height.
3919
3920 2000-12-14 Gerd Moellmann <gerd@gnu.org>
3921
3922 * editfns.c (Fformat): Prevent a buffer overrun when the format
3923 specifies a precision.
3924
3925 2000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
3926
3927 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
3928 argument is outside the range [2..3].
3929
3930 2000-12-14 Andrew Innes <andrewi@gnu.org>
3931
3932 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
3933 nothing to do. Bind inhibit-quit.
3934 (tip_frame): Make it a Lisp_Object.
3935 (x_create_tip_frame): Set tip_frame after it has been added to
3936 Vframe_list.
3937 (Fx_show_tip): Don't set tip_frame here.
3938 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New variables.
3939 (unwind_create_frame, unwind_create_tip_frame): New functions.
3940 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3941 while a frame is only partially constructed.
3942
3943 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
3944 (x_free_frame_resources): New function.
3945 (x_destroy_window): Use it.
3946
3947 2000-12-14 Gerd Moellmann <gerd@gnu.org>
3948
3949 * xfns.c (Fx_backspace_delete_keys_p): New function.
3950 (syms_of_xfns): Defsubr it.
3951
3952 * config.in (HAVE_XKBGETKEYBOARD): Add.
3953
3954 2000-12-14 Kenichi Handa <handa@etl.go.jp>
3955
3956 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
3957 Always store string in multibyte representation in echobuf.
3958 (echo_char): Always store string in multibyte representation in
3959 echobuf.
3960 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
3961 (read_key_sequence): Adjusted for the change of echo_prompt.
3962
3963 * fns.c (Fmd5): Docstring improved.
3964
3965 * lisp.h (detect_coding_system): Prototype adjusted.
3966
3967 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
3968 (detect_coding_emacs_mule, detect_coding_iso2022,)
3969 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
3970 (detect_coding_utf_16, detect_coding_ccl): Make them static.
3971 New argument MULTIBYTEP. Callers changed.
3972 (detect_coding_mask, detect_coding_system): New argument
3973 MULTIBYTEP. Callers changed.
3974 (decode_coding_string): Set coding->src_multibyte and
3975 coding->dst_multibyte before calling detect_coding and detect_eol.
3976 Update them after some coding system is detected.
3977
3978 2000-12-13 Stefan Monnier <monnier@cs.yale.edu>
3979
3980 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
3981
3982 * keyboard.c (menu_bar_items, tool_bar_items):
3983 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
3984
3985 2000-12-13 Gerd Moellmann <gerd@gnu.org>
3986
3987 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
3988 New variables.
3989 (unwind_create_frame, unwind_create_tip_frame): New functions.
3990 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
3991 while a frame is only partially constructed.
3992
3993 * xterm.h (x_free_frame_resources): Declare.
3994
3995 * xterm.c (x_free_frame_resources): New function.
3996 (x_destroy_window): Use it.
3997
3998 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
3999 don't interrupt the update for pending input initially, i.e.
4000 update at least some lines.
4001
4002 * keyboard.c (do_mouse_tracking): Make externally visible.
4003
4004 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
4005
4006 * xfns.c (gray_bitmap_bits): Declare `char *'.
4007
4008 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4009
4010 * xdisp.c (display_tool_bar_line): Make sure that tool bar
4011 lines start with a relief line.
4012
4013 2000-12-12 Dave Love <fx@gnu.org>
4014
4015 * window.c (Fdisplay_buffer): Doc fix.
4016 (Fwindow_list): Remove unused var.
4017
4018 * buffer.h (mmap_set_vars): Declare.
4019
4020 * window.h (Fset_window_point): Declare.
4021
4022 2000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
4023
4024 * msdos.c (fast_find_position): Don't overstep the last window row.
4025 (IT_note_mouse_highlight): Initialize portion to -1. Remove unused
4026 variable `area'. When looking for a row under (X,Y), give up if some
4027 of the previous rows is not enabled.
4028
4029 2000-12-12 Gerd Moellmann <gerd@gnu.org>
4030
4031 * window.c (Fset_window_point): If displaying cursors in windows
4032 other than the selected window, make sure redisplay updates
4033 other windows to show the new value of point in the window.
4034
4035 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
4036
4037 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
4038 the buffer is the sole visible buffer when in the mini-buffer.
4039
4040 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
4041 Bind `inhibit-read-only' to t.
4042 (unwind_with_echo_area_buffer): Use AREF.
4043
4044 * xfns.c (Fx_hide_tip): Simplified.
4045
4046 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use GC_MAKE_GCPROS_NOOPS
4047 instead of `1'.
4048
4049 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
4050
4051 2000-12-11 Gerd Moellmann <gerd@gnu.org>
4052
4053 * xfns.c (Fx_hide_tip): Fix last change.
4054
4055 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
4056 nothing to do. Bind inhibit-quit.
4057 (tip_frame): Make it a Lisp_Object.
4058 (x_create_tip_frame): Set tip_frame after it has been added to
4059 Vframe_list.
4060 (Fx_show_tip): Don't set tip_frame here.
4061
4062 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
4063
4064 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
4065 Lisp_Object.
4066
4067 * dispextern.h: Change external declaration of tip_frame.
4068
4069 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
4070 return an empty string.
4071
4072 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
4073 of the window's update_mode_line flag, since the former is set by
4074 force-mode-line-update, not the latter. This makes
4075 column-number-mode slightly faster.
4076
4077 * xdisp.c (try_window_id) <all changes above window start>:
4078 Set the cursor.
4079
4080 2000-12-11 Paul Eggert <eggert@twinsun.com>
4081
4082 * config.in (HAVE_FTELLO): Remove.
4083 (HAVE_FSEEKO): Add.
4084 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
4085 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
4086 HAVE_FTELLO.
4087 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
4088 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
4089
4090 2000-12-11 Miles Bader <miles@gnu.org>
4091
4092 * window.c (displayed_window_lines): Don't round up when
4093 converting empty space at bottom to lines.
4094 Handle non-newline-terminated final lines properly.
4095 (Fwindow_text_height): New function (used to be in lisp).
4096 (syms_of_window): Initialize it.
4097
4098 2000-12-09 Stefan Monnier <monnier@cs.yale.edu>
4099
4100 * syntax.c (scan_lists): Check that the right quote char has the
4101 right Sstring syntax when jumping over strings.
4102 (init_syntax_once): Use Smax rather than 13.
4103
4104 2000-12-09 Miles Bader <miles@gnu.org>
4105
4106 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
4107 with PARTIALLY, inverting the sense.
4108 (window_scroll_pixel_based): Scroll partially visible lines into
4109 place if we hit the beginning or end of the buffer.
4110 (displayed_window_lines): Don't include partially visible lines.
4111 (Fmove_to_window_line): Skip past any partially visible first line.
4112
4113 2000-12-08 Gerd Moellmann <gerd@gnu.org>
4114
4115 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
4116
4117 * tparam.c (tparam1): Change the way buffers are reallocated to be
4118 portable and less obfuscated.
4119
4120 * termcap.c (tgetent): Change the way buffers are reallocated to
4121 be portable and less obfuscated.
4122
4123 * macros.c (store_kbd_macro_char): Change the way buffers are
4124 reallocated to be portable and less obfuscated.
4125
4126 * lread.c (read1): Change the way buffers are reallocated to be
4127 portable and less obfuscated.
4128
4129 * doc.c (Fsubstitute_command_keys): Change the way buffers
4130 are reallocated so that it is portable.
4131
4132 2000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
4133
4134 * dosfns.c (Ffile_system_info): New function.
4135 (syms_of_dosfns): Defsubr it.
4136
4137 2000-12-07 Stefan Monnier <monnier@cs.yale.edu>
4138
4139 * alloc.c (gc_sweep): Add comment.
4140
4141 2000-12-07 Gerd Moellmann <gerd@gnu.org>
4142
4143 * sound.c (vox_configure): Change order of ioctls.
4144 Don't set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
4145 Ignore errors when changing volume.
4146 (vox_close): Don't reset the device.
4147
4148 * process.c (read_process_output): Make sure the process marker's
4149 position is valid when the process buffer is changed in
4150 after-change functions. W3 does that.
4151
4152 * xfns.c (x_free_gcs): New function.
4153
4154 * xterm.h (x_free_gcs): Add prototype.
4155
4156 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
4157 freeing GCs here.
4158
4159 * xterm.c (x_destroy_window): Call x_free_gcs so that
4160 resources of non-toolkit X windows will be freed.
4161
4162 2000-12-07 Andrew Innes <andrewi@gnu.org>
4163
4164 * w32fns.c (xlfd_charset_of_font): Fix last change.
4165
4166 2000-12-06 Dave Love <fx@gnu.org>
4167
4168 * md5.h (__P): Don't define -- it comes from config.h.
4169
4170 * strftime.c: Change some #if foo to #ifdef foo.
4171
4172 2000-12-06 Andrew Innes <andrewi@gnu.org>
4173
4174 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
4175
4176 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname argument.
4177 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
4178 (w32_list_fonts): Don't choke if pattern doesn't specify a codepage.
4179
4180 2000-12-06 Gerd Moellmann <gerd@gnu.org>
4181
4182 * alloc.c (gc_sweep): Prevent symbols read during loadup
4183 from being freed.
4184
4185 * xdisp.c (underlying_face_id): New function.
4186 (handle_face_prop, face_before_or_after_it_pos): Use it
4187 to determine the face ``under'' a string. Let strings inherit
4188 the face of the buffer under them.
4189
4190 * xfaces.c (face_at_string_position): Update function comment.
4191
4192 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
4193 matrix if the window's left position has changed; we need to
4194 redraw it in this case.
4195
4196 * dispextern.h (struct glyph_matrix): Add member window_left_x.
4197
4198 * window.c (coordinates_in_window): Check mouse on mode-line or
4199 header-line first.
4200
4201 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
4202 advertized by the function documentation.
4203
4204 * window.c (syms_of_window): Doc fix.
4205
4206 * sound.c (vox_configure): Set volume for left and right channel.
4207 (sound_cleanup): Return nil.
4208
4209 * xdisp.c (move_it_by_lines): Fix paren typo.
4210
4211 * xterm.c (x_load_font): Don't use the font's max_bounds for
4212 computing the height of the font. If max_bounds' ascent or
4213 descent are greater than the font's ascent or descent, this means
4214 glyphs overlap, which should be handled now by redisplay.
4215
4216 * window.c (Veven_window_heights): New variable.
4217 (syms_of_window): DEFVAR_LISP it.
4218 (Fdisplay_buffer): Check Veven_window_heights before evening the
4219 window heights.
4220
4221 2000-12-06 Miles Bader <miles@gnu.org>
4222
4223 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
4224 update `default-frame-alist' instead of setting no frame parameters.
4225
4226 2000-12-06 Kenichi Handa <handa@etl.go.jp>
4227
4228 * composite.c (update_compositions): Fix typo (use the correct
4229 variable).
4230
4231 2000-12-05 Jason Rumney <jasonr@gnu.org>
4232
4233 * md5.h: Remove underscores from function declarations.
4234 (__attribute__, __alignof__) [!__GNUC__]: Define.
4235
4236 * md5.c: Delay include of md5.h until after namespace cleaning.
4237
4238 * makefile.w32-in (fns.o): Depend on md5.h
4239 (md5.o): New target.
4240 (sunfns.o): Remove.
4241
4242 * makefile.nt: Likewise.
4243
4244 2000-12-05 Jason Rumney <jasonr@altavista.net>
4245
4246 * w32term.c (expose_area): Complete last change.
4247
4248 2000-12-05 Ken Raeburn <raeburn@gnu.org>
4249
4250 * minibuf.c: Include intervals.h.
4251
4252 2000-12-05 Jason Rumney <jasonr@gnu.org>
4253
4254 * w32term.c (x_produce_glyphs): If a font for a component of
4255 a composition is not found, use 1 pixel dot ascent and 0 dot
4256 descent value to avoid displaying terribly tall empty boxes.
4257 (expose_area): Pass x-coordinate relative to the exposed
4258 area to x_draw_glyphs instead of a window-relative coordinate.
4259
4260 2000-12-05 Gerd Moellmann <gerd@gnu.org>
4261
4262 * xdisp.c (next_element_from_ellipsis): Save face before selective
4263 display in saved_face_id, and set face_before_selective_p.
4264 (reseat_1): Reset face_before_selective_p.
4265 (append_space, extend_face_to_end_of_line): If iterator's
4266 face_before_selective_p is set, use the face from saved_face_id.
4267 (extend_face_to_end_of_line): For tty frames, make sure to
4268 use the right face id when producing spaces at the end of
4269 the line.
4270
4271 * dispextern.h (struct it): Add face_before_selective_p.
4272
4273 * keyboard.c (record_char): Don't record identical help-echo
4274 events in recent_keys.
4275
4276 * xterm.c [USE_X_TOOLKIT]: Close the display.
4277 (xim_close_dpy): Handle case that the display has been closed.
4278
4279 * xterm.c (x_destroy_window): Reset the frame's X window after
4280 destroying it.
4281
4282 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
4283 variable window_width.
4284 (line_draw_cost): Fix code skipping over spaces at the end of the
4285 line when must_write_spaces is not set.
4286 (scrolling_window): Fix code inserting runs in list of all runs.
4287
4288 2000-12-05 Kenichi Handa <handa@etl.go.jp>
4289
4290 * coding.c (setup_coding_system): Be sure to initialize
4291 coding->category_idx.
4292
4293 2000-12-04 Gerd Moellmann <gerd@gnu.org>
4294
4295 * xterm.c (PER_CHAR_METRIC): Removed because not used.
4296
4297 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
4298 area to x_draw_glyphs instead of a window-relative coordinate.
4299
4300 * fileio.c (auto_save_error): Add parameter ERROR. Show the
4301 error in the message.
4302
4303 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
4304 timer after having read a key. It's not good for code reading
4305 several keys in a loop, like an input method.
4306
4307 * fileio.c (Finsert_file_contents): When VISIT is t, don't
4308 record undo information for format-decode.
4309
4310 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
4311 current buffer is read-only, not if it isn't.
4312
4313 * keyboard.c (record_char): Record `help-echo' input events
4314 in recent_keys only if they display some help. Don't record
4315 `help-echo' events as macro char.
4316
4317 2000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
4318
4319 * editfns.c (save_excursion_restore): Don't move point
4320 in another window if it is showing the wrong buffer.
4321 Avoid the call to Fwindow_live_p, for speed.
4322
4323 2000-12-04 Kenichi Handa <handa@etl.go.jp>
4324
4325 * xfaces.c (struct font_name): New member registry_priority.
4326 (split_font_name): Initialize the above member to zero.
4327 (concat_font_list): New function.
4328 (font_list): Include fonts of all alternative registries.
4329 (FONT_POINT_SIZE_QUANTUM): New macro.
4330 (better_font_p): Ignore point size difference less than
4331 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
4332
4333 * xterm.c (x_produce_glyphs): If a font for a component of
4334 a composition is not found, use 1 pixel dot ascent and 0 dot
4335 descent value to avoid displaying terribly tall empty boxes.
4336
4337 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
4338
4339 2000-12-03 Ken Raeburn <raeburn@gnu.org>
4340
4341 * coding.h (code_convert_string1): Declare.
4342
4343 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
4344
4345 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name): Declare.
4346
4347 2000-12-02 Jason Rumney <jasonr@gnu.org>
4348
4349 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
4350 correctly for single byte character case.
4351 (w32_per_char_metric): Do not try to make any assumptions about
4352 the metrics of BDF fonts.
4353 (x_estimate_mode_line_height): If `mode-line' face
4354 hasn't a font, use that of the frame, as drawing glyphs does.
4355 (note_mouse_highlight): Change the cursor shape on the vertical
4356 border between windows [not enabled].
4357
4358 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
4359
4360 * w32fns.c (Fx_create_frame): Reintroduce the call to
4361 face-set-after-frame-defaults.
4362 (Vx_window_horizontal_drag_shape): New variable.
4363 (syms_of_xfns): DEFVAR_LISP it.
4364 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
4365 enabled].
4366
4367 2000-12-02 Simon Josefsson <simon@josefsson.org>
4368
4369 * fns.c (Fmd5): Use a different logic to decide the coding system
4370 to use.
4371
4372 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
4373
4374 2000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
4375
4376 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is NULL.
4377
4378 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4379
4380 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
4381 height for YNegative.
4382 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
4383 height; also see comment there.
4384
4385 * window.c (coordinates_in_window): Handle computations for
4386 positions on the vertical bar and fringes differently for
4387 window-system frames. Consider some pixels near the vertical bar
4388 as on the bar if the frame doesn't have vertical scroll bars.
4389 Associate positions between mode or header lines with the
4390 right window, the left one.
4391
4392 2000-12-01 Jason Rumney <jasonr@gnu.org>
4393
4394 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
4395
4396 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
4397 invalid frame.
4398
4399 2000-12-01 Gerd Moellmann <gerd@gnu.org>
4400
4401 * window.c (struct saved_window): Add members orig_top and orig_height.
4402 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
4403 (save_window_save, Fset_window_configuration): Save/restore
4404 window's orig_top and orig_height.
4405
4406 2000-12-01 Jason Rumney <jasonr@gnu.org>
4407
4408 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
4409
4410 * w32fns.c (x_set_cursor_color): Fix last change.
4411
4412 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4413
4414 * xdisp.c (echo_area_display): If cursor is in the echo area, make
4415 sure that the next redisplay displays the minibuffer, so that
4416 the cursor will be replaced with what the minibuffer wants.
4417
4418 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
4419 #ifndef instead of using #if.
4420 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
4421 USE_TOOLKIT_SCROLL_BARS is defined.
4422
4423 2000-11-30 Jason Rumney <jasonr@gnu.org>
4424
4425 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
4426 x_display_cursor.
4427
4428 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4429
4430 * fns.c (Fmd5): Doc fix.
4431
4432 2000-11-30 Simon Josefsson <simon@josefsson.org>
4433
4434 * fns.c (Fmd5): New function.
4435 (syms_of_fns): Defsubr md5.
4436
4437 * Makefile.in (obj): Add md5.o
4438
4439 2000-11-30 Gerd Moellmann <gerd@gnu.org>
4440
4441 * md5.h, md5.c: New files, taken from glibc.
4442
4443 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
4444
4445 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
4446 hasn't a font, use that of the frame, as drawing glyphs does.
4447
4448 2000-11-29 Stefan Monnier <monnier@cs.yale.edu>
4449
4450 * eval.c (Frun_hooks): Allow 0 arguments.
4451
4452 2000-11-29 Gerd Moellmann <gerd@gnu.org>
4453
4454 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
4455 is over the menu bar widget, say it's not on the frame.
4456
4457 * xfns.c (Fx_create_frame): Reintroduce the call to
4458 face-set-after-frame-defaults.
4459
4460 * eval.c (Fsignal): Reset handling_signal.
4461
4462 2000-11-28 Jason Rumney <jasonr@gnu.org>
4463
4464 * w32menu.c (add_menu_item): Reset menu item text when changing
4465 type to radio button.
4466
4467 2000-11-28 Gerd Moellmann <gerd@gnu.org>
4468
4469 * xselect.c: Update copyright.
4470
4471 * window.c (coordinates_in_window): If on a mode or header line,
4472 but sufficiently close to its start, return ``on vertical
4473 border''. This gives us a way to drag windows horizontally when
4474 using toolkit scroll bars.
4475
4476 * xterm.c (note_mouse_highlight): Change the cursor shape
4477 on the vertical border between windows.
4478
4479 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
4480
4481 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
4482 (syms_of_xfns): DEFVAR_LISP it.
4483 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
4484
4485 * textprop.c (text_read_only): New function.
4486 (verify_interval_modification): Use it instead of signaling
4487 `text-read-only'. This makes it easier to catch this error
4488 with a breakpoint.:
4489
4490 * xdisp.c (forward_to_next_line_start): Check for newlines,
4491 not end of line, which includes CR.
4492
4493 2000-11-28 Kenichi Handa <handa@etl.go.jp>
4494
4495 * coding.c (Ffind_coding_systems_region_internal): Be sure to
4496 include no-conversion.
4497
4498 2000-11-27 Jason Rumney <jasonr@gnu.org>
4499
4500 * w32fns.c (w32_load_system_font): Always mark font as double byte
4501 if codepage is unicode.
4502
4503 2000-11-27 Gerd Moellmann <gerd@gnu.org>
4504
4505 * xdisp.c (forward_to_next_line_start): If already on a newline,
4506 just consume it to avoid unintended skipping over invisible text below.
4507
4508 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
4509 `vertical-line', `mode-line' and `header-line' events.
4510
4511 * xdisp.c (try_window_id): Avoid starting to display in the middle
4512 of a character, a TAB for instance. This is easier than to set
4513 up the iterator exactly, and it's not a frequent case, so the
4514 additional effort wouldn't really pay off.
4515
4516 2000-11-26 Andrew Choi <akochoi@i-cable.com>
4517
4518 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
4519 init_window_once.
4520
4521 2000-11-25 Jason Rumney <jasonr@gnu.org>
4522
4523 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]:
4524 Args to window_from_coordinates should be pixel coordinates.
4525
4526 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
4527 redisplay handles them properly.
4528
4529 2000-11-25 Miles Bader <miles@gnu.org>
4530
4531 * indent.c (compute_motion): Keep pos_byte in sync with pos.
4532
4533 2000-11-24 Jason Rumney <jasonr@gnu.org>
4534
4535 * w32.c (init_environment): Set LANG environment variable based on
4536 locale settings, if not set.
4537
4538 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
4539 making tool bar smaller. When clearing the frame, also
4540 clear current matrices. Clear frame when tool bar disappears.
4541 Don't use more lines for the tool-bar than is available.
4542 (x_change_window_heights): New function.
4543
4544 2000-11-24 Gerd Moellmann <gerd@gnu.org>
4545
4546 * xdisp.c (init_from_display_pos): If POS says we're already after
4547 an overlay string ending at POS, make sure to pop the iterator
4548 because it will be in front of that overlay string. When POS is
4549 ZV, we've thereby also ``processed'' overlay strings at ZV.
4550
4551 * xfaces.c (lface_from_face_name): Function comment fix.
4552
4553 2000-11-24 Miles Bader <miles@gnu.org>
4554
4555 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
4556 apply `mode-line-inverse-video' -- zero means force display using
4557 the default face, non-zero means display using the specialized face.
4558 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
4559
4560 2000-11-23 Kenichi Handa <handa@etl.go.jp>
4561
4562 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
4563 hard coded `4'.
4564
4565 2000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
4566
4567 * coding.c (decode_coding_emacs_mule): Fix the case of
4568 CODING_EOL_LF, which used uninitialized value of c.
4569
4570 2000-11-23 Stefan Monnier <monnier@cs.yale.edu>
4571
4572 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
4573
4574 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4575
4576 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
4577 buffer object.
4578
4579 * frame.h (struct frame): Replace desired_tool_bar_items,
4580 current_tool_bar_items, n_desired_tool_bar_items,
4581 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
4582
4583 * frame.c (make_frame): Change initialization of tool bar
4584 items accordingly.
4585
4586 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
4587 Change references to members deleted from struct frame to use the
4588 new ones.
4589
4590 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
4591 references to members deleted from struct frame to use the new ones.
4592
4593 * dispnew.c (update_frame): Do nothing with frame's tool bar items.
4594
4595 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
4596
4597 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
4598 (note_tool_bar_highlight): Change references to members deleted
4599 from struct frame to use the new ones.
4600
4601 2000-11-23 Miles Bader <miles@gnu.org>
4602
4603 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
4604 the face's inverse-video attribute, rather than overriding it.
4605
4606 2000-11-22 Gerd Moellmann <gerd@gnu.org>
4607
4608 * xfns.c (x_set_tool_bar_lines): Clear internal border when
4609 making tool bar smaller.
4610
4611 2000-11-22 Dave Love <fx@gnu.org>
4612
4613 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
4614
4615 2000-11-22 Miles Bader <miles@gnu.org>
4616
4617 * keyboard.c (Vminibuffer_message_timeout): New variable.
4618 (command_loop_1): Use it to determine message timeout.
4619 (syms_of_keyboard): Initialize it.
4620
4621 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
4622
4623 2000-11-22 Kenichi Handa <handa@etl.go.jp>
4624
4625 * sysdep.c: Move the code for declaring h_errno after #include
4626 <netdb.h>.
4627
4628 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4629
4630 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
4631 the menu bar when the tooltip is unmapped.
4632
4633 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
4634 sole visible buffer when we're currently in the mini-buffer, and
4635 give up if so.
4636
4637 2000-11-21 Jason Rumney <jasonr@gnu.org>
4638
4639 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
4640 put on the clipboard.
4641 (Fw32_get_clipboard_data): Compare data on clipboard with saved
4642 copy of what Emacs last put there. If they are the same, do not
4643 use the clipboard copy to avoid losing data due to coding conversions.
4644
4645 2000-11-22 Miles Bader <miles@gnu.org>
4646
4647 * minibuf.c (Vminibuffer_prompt_properties): New variable.
4648 (syms_of_minibuf): Initialize it.
4649 (read_minibuf): Add properties from Vminibuffer_prompt_properties
4650 to prompt, don't make read-only.
4651
4652 2000-11-21 Gerd Moellmann <gerd@gnu.org>
4653
4654 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>:
4655 Add BEFORE/AFTER_POTENTIAL_GC.
4656
4657 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
4658
4659 * buffer.c (mmap_free_1): Avoid a compiler warning.
4660
4661 * term.c, cm.c: Don't try to include termcap.h; see comment there.
4662
4663 2000-11-21 Kenichi Handa <handa@etl.go.jp>
4664
4665 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
4666 ... #endif scope.
4667
4668 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4669
4670 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
4671 screen supports it.
4672
4673 * s/gnu-linux.h: Don't use `#cpu'.
4674
4675 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
4676 not defined in mman.h.
4677
4678 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New variables.
4679 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
4680 and store an index in the XClientMessageEvent. Storing a
4681 Lisp_Object or pointer can fail on a 64 bit system, since X only
4682 transfers 32 bits.
4683 (x_scroll_bar_to_input_event): Get the window from scroll_bar_windows.
4684
4685 2000-11-20 Dave Love <fx@gnu.org>
4686
4687 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
4688
4689 2000-11-20 Gerd Moellmann <gerd@gnu.org>
4690
4691 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
4692
4693 2000-11-20 Kenichi Handa <handa@etl.go.jp>
4694
4695 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
4696 by WIDTH.
4697
4698 * alloc.c (make_string): Fix previous change. Be sure to make
4699 unibyte string correctly.
4700
4701 2000-11-19 Gerd Moellmann <gerd@gnu.org>
4702
4703 * window.c (Fwindow_list): Change parameter list to be XEmacs
4704 compatible.
4705 (window_list_1): New function.
4706 (window_loop): Use it instead of Fwindow_list.
4707
4708 * sysdep.c (emacs_ospeed): New variable.
4709 (toplevel): Don't declare ospeed extern.
4710 (init_baud_rate): Use emacs_ospeed instead of ospeed.
4711
4712 * termcap.c (ospeed): Remove.
4713 (tputs) [!emacs]: Remove unused code.
4714 (tgetent): Avoid a compiler warning.
4715
4716 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
4717 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
4718 SCROLL_BAR_X_WIDGET with additional argument DPY.
4719
4720 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
4721 removed.
4722 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
4723 Take the X display as additional argument.
4724 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
4725 `Widget' is a pointer type that's not easily stored in Lisp_Object
4726 form in a portable way.
4727
4728 * dispnew.c (update_text_area): Fix last change.
4729
4730 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4731
4732 * xdisp.c: Use BINDING_STACK_SIZE throughout.
4733
4734 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
4735 clear current matrices.
4736
4737 * buffer.c (mmap_enlarge): Don't print a message on stderr
4738 if mapping new memory at the end of the existing region fails.
4739
4740 * dispnew.c (update_text_area): Don't skip over equal glyphs
4741 when the last current glyph overlaps the glyph to its right.
4742
4743 2000-11-18 Miles Bader <miles@gnu.org>
4744
4745 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
4746 lines that *end* with "..." too (that's the most common case!).
4747
4748 2000-11-18 Gerd Moellmann <gerd@gnu.org>
4749
4750 * xdisp.c (resize_mini_window): Temporarily change to the
4751 mini-window's buffer if necessary.
4752
4753 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
4754 the tooltip obscures less text under it.
4755
4756 2000-11-17 Gerd Moellmann <gerd@gnu.org>
4757
4758 * puresize.h (BASE_PURESIZE): Increase to 700000.
4759
4760 2000-11-18 Jason Rumney <jasonr@gnu.org>
4761
4762 * w32term.c (w32_draw_bitmap): Use face to set colors.
4763
4764 2000-11-17 Dave Love <fx@gnu.org>
4765
4766 * lread.c (Fload): Fix #ifdef for pcc.
4767
4768 2000-11-17 Gerd Moellmann <gerd@gnu.org>
4769
4770 * xdisp.c (pos_visible_p): Compute the default character height
4771 differently.
4772
4773 2000-11-16 Gerd Moellmann <gerd@gnu.org>
4774
4775 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
4776 knowing the line's height; use the default font's height in that case.
4777
4778 * xfaces.c (weight_table): Add `demi' with the same meaning as
4779 `demibold'.
4780
4781 2000-11-16 Kenichi Handa <handa@etl.go.jp>
4782
4783 * dispnew.c (null_row): New global static variable.
4784 (clear_glyph_row): Delete local static variable null_row.
4785
4786 2000-11-15 Jason Rumney <jasonr@gnu.org>
4787
4788 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
4789 (w32_alloc_lighter_color): Use new brightness calculations from
4790 xterm.c. Scale delta to be in the range expected by W32.
4791 (w32_draw_relief_rect): Use frame relief colors.
4792
4793 2000-11-15 Gerd Moellmann <gerd@gnu.org>
4794
4795 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
4796 (Qinhibit_default_face_x_resources): New variable.
4797 (syms_of_frame): Initialize it.
4798 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
4799
4800 * xdisp.c (pos_visible_p): Improve function comment.
4801
4802 * lisp.h (BINDING_STACK_SIZE): New macro.
4803
4804 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
4805 reading the directory if readdir returns null and errno is EAGAIN
4806 or EINTR.
4807
4808 2000-11-14 Stefan Monnier <monnier@cs.yale.edu>
4809
4810 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
4811 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
4812 Set amount_to_scroll to max of dx and scroll_step so that
4813 scroll-conservatively doesn't defeat scroll-step>1.
4814 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
4815 scroll-conservatively for line-at-a-time scrolling.
4816
4817 2000-11-14 Gerd Moellmann <gerd@gnu.org>
4818
4819 * window.c (Fpos_visible_in_window_p): Call pos_visible with
4820 extra argument.
4821
4822 * xdisp.c (current_mode_line_height, current_header_line_height):
4823 New variables.
4824 (init_xdisp): Initialize them.
4825 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
4826 and use exact mode line heights if it is set.
4827
4828 * lisp.h (pos_visible_p): Change prototype.
4829
4830 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
4831 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
4832 and current_header_line_height first.
4833 (current_mode_line_height, current_header_line_height):
4834 Declare extern.
4835
4836 2000-11-14 Miles Bader <miles@lsi.nec.co.jp>
4837
4838 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
4839 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
4840 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
4841
4842 2000-11-14 Miles Bader <miles@gnu.org>
4843
4844 * xterm.c (x_alloc_lighter_color): Include an additive component
4845 too for dark colors, because FACTOR isn't enough.
4846 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
4847 New macros.
4848
4849 2000-11-13 Gerd Moellmann <gerd@gnu.org>
4850
4851 * keyboard.c (show_help_echo): Call message3_nolog with number of
4852 bytes in the help string as 2nd parameter, instead of the number
4853 of characters.
4854
4855 2000-11-13 Miles Bader <miles@gnu.org>
4856
4857 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
4858 (Fload): Use new openp return protocol.
4859 Don't try to use Vload_source_file_function to load .elc files.
4860 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
4861 openp return protocol.
4862 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
4863
4864 2000-11-11 Kenichi Handa <handa@etl.go.jp>
4865
4866 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
4867
4868 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
4869 Defined these macros.
4870 (NLIST_STRUCT): Avoid re-defining it.
4871
4872 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
4873 -I/usr/contrib/X11R6/include.
4874 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
4875
4876 2000-11-10 Jason Rumney <jasonr@gnu.org>
4877
4878 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
4879
4880 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
4881 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
4882
4883 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
4884 (Qw32_charset_vietnamese): New symbol.
4885 (xlfd_charset_of_font): New function.
4886 (w32_load_system_font): Use it.
4887 (x_to_w32_charset): Use Fassoc to find charset info. Special case
4888 when Vw32_charset_info_alist is nil to ensure default face always
4889 has font. Use Fcar and Fcdr for safety.
4890 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
4891 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
4892 pseudo-codepages for special cases.
4893 (w32_to_x_font): New parameter to allow charset portion to be
4894 specified where there is many to one mapping. Callers changed.
4895 (w32_list_fonts): Avoid listing fonts that won't display.
4896
4897 2000-11-10 Gerd Moellmann <gerd@gnu.org>
4898
4899 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
4900 (font_list_1): Renamed from font_list.
4901 (font_list): New function, trying alternative registries from
4902 Vface_alternative_font_registry_alist.
4903 (Finternal_set_alternative_font_registry_alist): New function.
4904 (syms_of_xfaces): Initialize and Staticpro
4905 Vface_alternative_font_registry_alist.
4906 Defsubr Finternal_set_alternative_font_registry_alist.
4907
4908 2000-11-09 Ken Raeburn <raeburn@gnu.org>
4909
4910 * lisp.h (Flooking_at): Declare.
4911
4912 2000-11-09 Gerd Moellmann <gerd@gnu.org>
4913
4914 * dired.c (directory_files_internal): Fix a braino.
4915
4916 * dired.c (directory_files_internal): Add missing GCPRO's.
4917 Some cleanup.
4918
4919 2000-11-08 Gerd Moellmann <gerd@gnu.org>
4920
4921 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
4922 (resize_mini_window): Return quickly if Vresize_mini_window is
4923 nil. Don't return if Vmax_mini_window_height is nil.
4924
4925 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
4926 (syms_of_xdisp): Initialize them.
4927 (resize_mini_window): Act according to the setting of
4928 Vresize_mini_window.
4929 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
4930
4931 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
4932 scroll bar widget after configuring it, so that it will appear at
4933 the right position from the start.
4934 (XTredeem_scroll_bar): Cleaned up.
4935
4936 2000-11-08 Kenichi Handa <handa@etl.go.jp>
4937
4938 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
4939 font is taller than the frame line, we don't have to bias the
4940 division by two.
4941
4942 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
4943
4944 2000-11-07 Dave Love <fx@gnu.org>
4945
4946 * config.in (HAVE_MKSTEMP): Add.
4947
4948 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
4949
4950 2000-11-07 Gerd Moellmann <gerd@gnu.org>
4951
4952 * window.c (Fset_window_configuration): Don't try to preserve
4953 point in the current buffer, if that buffer is displayed in more
4954 than one window.
4955
4956 * xfaces.c (lookup_named_face): If default face isn't realized,
4957 try to realize it. Return -1 if not successful.
4958 (Fx_list_fonts): Handle case that face cannot be determined.
4959 (Fface_font): Likewise.
4960
4961 2000-11-06 Gerd Moellmann <gerd@gnu.org>
4962
4963 * window.c (displayed_window_lines): Detect partially
4964 visible lines at the bottom correctly.
4965
4966 2000-11-06 Stefan Monnier <monnier@cs.yale.edu>
4967
4968 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
4969 when ensuring we don't do visit in indirect buffer.
4970
4971 2000-11-06 Kenichi Handa <handa@etl.go.jp>
4972
4973 * composite.h (compose_chars_in_text): Add prototype.
4974
4975 * composite.c (Vcomposition_function_table): New variable.
4976 (Qcomposition_function_table): New variable.
4977 (run_composition_function): Call
4978 Vcompose_chars_after_function with three arguments.
4979 (compose_chars_in_text): New function.
4980 (syms_of_composite): Modified the doc-string of
4981 Vcompose_chars_after_function. Declare composition-function-table
4982 as a lisp variable, and initialize it.
4983
4984 * xfns.c (x_encode_text): Suppress producing escape sequences for
4985 composition.
4986
4987 * xselect.c: Include composite.h.
4988 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
4989
4990 2000-11-05 Andrew Innes <andrewi@gnu.org>
4991
4992 * w32term.c (x_produce_glyphs): Fix typo in enum name.
4993
4994 * sysdep.c (read_input_waiting): Remove extraneous argument to
4995 read_socket_hook.
4996
4997 * w32fns.c (Fx_server_version): Include w32_build_number in the
4998 return list.
4999
5000 * w32heap.c (w32_build_number): New variable.
5001 (cache_system_info): Set it.
5002
5003 * w32heap.h (w32_build_number): Add extern.
5004
5005 * emacs.c (syms_of_emacs): Update docstring for
5006 system-configuration, to reflect the actual usage on MS-Windows.
5007
5008 2000-10-31 Gerd Moellmann <gerd@gnu.org>
5009
5010 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
5011 process idle timers while waiting for another event.
5012
5013 * dispnew.c (update_frame_line): Handle case where spaces in
5014 the default face are colored.
5015
5016 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
5017 window height hasn't changed.
5018
5019 2000-10-31 Jason Rumney <jasonr@gnu.org>
5020
5021 * w32term.c (x_produce_glyphs): Handle composite characters.
5022 (x_draw_glyph_string_foreground)
5023 (x_draw_composite_glyph_string_foreground): Restore old font.
5024
5025 2000-10-31 Miles Bader <miles@lsi.nec.co.jp>
5026
5027 * minibuf.c (read_minibuf): Reset the undo history just before
5028 starting the recursive-edit.
5029
5030 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5031
5032 * xfaces.c (menu_face_change_count): New variable.
5033 (Finternal_set_lisp_face_attribute): Increment it for changes
5034 of the `menu' face.
5035 (realize_basic_faces): Reflect changes in the `menu' faces
5036 in menu bars.
5037
5038 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
5039 dy obtained from the iterator's y-position after moving from
5040 scroll_margin_pos to PT; see comment there.
5041
5042 * xdisp.c (safe_eval_handler): Call add_to_log.
5043
5044 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
5045 is not a symbol or string.
5046
5047 * xdisp.c (echo_area_display): Don't perform a display update from
5048 inside redisplay. The update will happen anyway at the end of
5049 redisplay, and it can confuse redisplay (GC messages while
5050 redisplaying, for instance.)
5051
5052 2000-10-30 Stefan Monnier <monnier@cs.yale.edu>
5053
5054 * xrdb.c (x_load_resources): Use the class name in the defaults.
5055
5056 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
5057 (regex_compile): Catch bogus \(\1\).
5058
5059 2000-10-30 Gerd Moellmann <gerd@gnu.org>
5060
5061 * xterm.c (x_alloc_nearest_color): Fix last change to compare
5062 RGB values.
5063
5064 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
5065 we have a color cache, check that the cached color equals the
5066 allocated color. If not, clear the color cache.
5067
5068 * window.c (displayed_window_lines): Change buffers if necessary.
5069 Fix computation of displayed lines.
5070
5071 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
5072 update_menu_bindings to DEFVAR_BOOL.
5073
5074 2000-10-30 Kenichi Handa <handa@etl.go.jp>
5075
5076 * search.c (Fset_match_data): Be sure to make search_regs always sane.
5077
5078 * puresize.h (BASE_PURESIZE): Increase to 680000.
5079
5080 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
5081
5082 2000-10-29 Jason Rumney <jasonr@gnu.org>
5083
5084 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
5085
5086 * w32term.c (w32_bdf_per_char_metric): Negate descent.
5087 (w32_cache_char_metrics): Handle possibility that 'x' does not
5088 exist in a BDF font.
5089 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
5090
5091 * w32bdf.h (bdffont): Add nchars.
5092
5093 * w32bdf.c (set_bdf_font_info): Set it.
5094 (w32_BDF_TextOut): Swap byte order of double byte characters.
5095 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
5096
5097 2000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
5098
5099 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
5100 don't override the colors in frame's param_alist, unless they are
5101 unspecified.
5102
5103 * term.c (reassert_line_highlight): If inverse_video is non-zero,
5104 reverse the effect of the highlight flag.
5105
5106 2000-10-27 Ken Raeburn <raeburn@gnu.org>
5107
5108 * window.h (Fwindow_live_p): Declare.
5109
5110 * undo.c (record_delete): Check that last_undo_buffer is really a
5111 buffer before applying XBUFFER to it.
5112
5113 * keymap.c (where_is_internal): Pass lisp object, not integer, to
5114 Faref.
5115
5116 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5117
5118 * lisp.h (KEYMAPP): New macro.
5119 (get_keymap): Remove.
5120 (get_keymap_1): Rename get_keymap.
5121
5122 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
5123
5124 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
5125
5126 * xmenu.c (single_submenu): Use KEYMAPP.
5127 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5128 Use KEYMAPP rather than Fkeymapp.
5129
5130 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
5131
5132 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
5133 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
5134 Use KEYMAPP rather than Fkeymapp.
5135 (single_submenu): Use KEYMAPP.
5136 (w32_menu_show, w32_dialog_show): Use TRUE.
5137
5138 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
5139
5140 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
5141 (Fkeymapp): Use KEYMAPP.
5142 (get_keymap): Rename from get_keymap_1. Remove old def.
5143 Return t when autoload=0 and error=0 and the keymap needs autoloading.
5144 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
5145 (Fminor_mode_key_binding): Don't raise an error if the binding
5146 is not a keymap.
5147 (Fuse_global_map, Fuse_local_map): Allow autoloading.
5148 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
5149
5150 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
5151 Allow Vspecial_event_map to be autoloaded.
5152 (menu_bar_items): Fetch the keymap rather than using keymapp.
5153 (menu_bar_one_keymap): No need to follow func-indirect any more.
5154 (parse_menu_item): get_keymap_1 -> get_keymap.
5155 (tool_bar_items): Fetch the keymap rather than using keymapp.
5156 (read_key_sequence): Use KEYMAPP.
5157
5158 * intervals.c (get_local_map): Use get_keymap rather than following
5159 function-indirections explicitly.
5160
5161 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
5162
5163 2000-10-27 Jason Rumney <jasonr@gnu.org>
5164
5165 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
5166 point, as Windows has oversized fonts.
5167
5168 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
5169
5170 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5171
5172 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
5173 (freehook, reallochook): Handle null pointer arguments.
5174 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
5175
5176 2000-10-27 Stefan Monnier <monnier@cs.yale.edu>
5177
5178 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
5179 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
5180 Giving in to popular pressure to shut up the compiler with casts.
5181
5182 2000-10-27 Gerd Moellmann <gerd@gnu.org>
5183
5184 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
5185 signed value, and use a default value computed from the font's
5186 maximum descent.
5187
5188 2000-10-27 Miles Bader <miles@lsi.nec.co.jp>
5189
5190 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
5191 that specify a negative underline position can still use underlines.
5192
5193 * window.c (Fpos_visible_in_window_p): Make POS default to
5194 WINDOW's point, not the current buffer's point.
5195
5196 2000-10-26 Dave Love <fx@gnu.org>
5197
5198 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
5199 when it's necessary.
5200
5201 2000-10-26 Gerd Moellmann <gerd@gnu.org>
5202
5203 * window.c (size_window): Compute size difference from sum of old
5204 child window sizes instead of from parent's size.
5205
5206 * xdisp.c (pos_visible_p): Change current buffer if necessary.
5207 Handle obscured lines at the top of the window.
5208
5209 * frame.c (Fdelete_frame): Doc fix. Move running the hook
5210 down after the last error condition check.
5211
5212 * frame.c (Fdelete_frame): Run delete-frame-hook.
5213
5214 2000-10-26 Kenichi Handa <handa@etl.go.jp>
5215
5216 * coding.c (decode_coding): Fix previous change (check also
5217 CODING_MODE_LAST_BLOCK).
5218
5219 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5220
5221 * regex.c: More `unsigned char' -> `re_char' changes.
5222 Also change several `int' into `re_wchar_t'.
5223 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
5224 (PUSH_FAILURE_POINTER): Don't cast any more.
5225 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
5226 We want GCC to complain, since this piece of code makes
5227 re_match non-reentrant, which *should* be fixed.
5228 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
5229 (EXTEND_BUFFER): Use RETALLOC.
5230 (SET_LIST_BIT): Don't cast.
5231 (re_wchar_t): New type.
5232 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
5233 that those two functions will always properly return.
5234 (IMMEDIATE_QUIT_CHECK): Cast to void.
5235 (analyse_first): Use recursion rather than an explicit stack.
5236 (re_compile_fastmap): Can't fail anymore.
5237 (re_search_2): Don't check re_compile_fastmap for failure.
5238 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
5239 Now also sets the new value (passed in a new argument).
5240 (re_match_2_internal): Use it.
5241 Also, use a new var `reg' of type size_t when looping through regs
5242 rather than reuse the inappropriate `mcnt'.
5243
5244 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
5245 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
5246 (where_is_internal): Renamed from Fwhere_is_internal.
5247 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
5248 (Fwhere_is_internal): New function wrapping where_is_internal.
5249 (where_is_internal_1): Handle the case where we're filling the cache.
5250 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
5251
5252 2000-10-25 Miles Bader <miles@gnu.org>
5253
5254 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
5255
5256 2000-10-25 Gerd Moellmann <gerd@gnu.org>
5257
5258 * window.c (pos_fully_visible_p): Removed.
5259 (Fpos_visible_in_window_p): Use pos_visible_p to determine
5260 if position is visible and/or fully visible.
5261
5262 * lisp.h (pos_visible_p): Add prototype.
5263
5264 * xdisp.c (pos_visible_p): New function.
5265
5266 2000-10-25 Kenichi Handa <handa@etl.go.jp>
5267
5268 * process.c (send_process): If OBJECT is t, it means that the data
5269 is from C string, but we should encode it. Before calling
5270 setup_raw_text_coding_system, be sure to flush out data by the
5271 previous coding system.
5272
5273 2000-10-25 Miles Bader <miles@lsi.nec.co.jp>
5274
5275 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
5276 assignment of startpos to prev when startpos == pos.
5277
5278 * editfns.c (find_field): Set the field stickiness correctly from
5279 overlay fields. Use renamed `text_property_stickiness'.
5280 (text_property_stickiness): Renamed from `char_property_stickiness'.
5281 Only check text properties, not overlays.
5282 * textprop.c (get_char_property_and_overlay): New function.
5283 (Fget_char_property): Use it.
5284 * intervals.h (get_char_property_and_overlay): Add declaration.
5285
5286 2000-10-25 Stefan Monnier <monnier@cs.yale.edu>
5287
5288 * keymap.c: Use AREF, ASET and ASIZE macros.
5289 (Fmake_sparse_keymap): Docstring fix.
5290 (synkey): Remove.
5291 (shadow_lookup): Move up.
5292 Handle the case where lookup-key returns an integer.
5293 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
5294 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
5295 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
5296 Simplify/rewrite the keymap-finding code.
5297 Add check for command shadowing, using shadow_lookup.
5298
5299 2000-10-24 Stefan Monnier <monnier@cs.yale.edu>
5300
5301 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
5302 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
5303 a symbol.
5304
5305 2000-10-24 Andrew Innes <andrewi@gnu.org>
5306
5307 * dired.c (directory_files_internal_unwind): New function.
5308 (directory_files_internal): Use it to ensure closedir is called
5309 even if expand-file-name or file-attributes throw, eg. because of
5310 a user interrupt. Also enable immediate_quit while calling
5311 re_search, so that matching can be interrupted as well.
5312
5313 2000-10-24 Andrew Innes <andrewi@gnu.org>
5314
5315 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
5316 NT-Emacs only.
5317 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
5318 so that re_search functions only quit when callers expect them to.
5319
5320 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5321
5322 * regex.c (regex_compile): Change the way of handling a range from
5323 a char less than 256 to a char not less than 256.
5324
5325 2000-10-24 Gerd Moellmann <gerd@gnu.org>
5326
5327 * window.c (size_window): Prevent setting window's width or
5328 height to a negative value (esp. with XSETFASTINT).
5329
5330 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
5331 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
5332 (protect_malloc_state) [GC_MALLOC_CHECK &&
5333 GC_PROTECT_MALLOC_STATE]: New function.
5334 (PROTECT_MALLOC_STATE): New macro.
5335 (__malloc_initialize, morecore, _malloc_internal)
5336 (_free_internal) _realloc_internal): Use it to make _heapinfo
5337 read-only outside of gmalloc.
5338
5339 * keymap.c: Update copyright.
5340
5341 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
5342 a symbol.
5343
5344 2000-10-24 Colin Walters <walters@cis.ohio-state.edu>
5345
5346 * filelock.c (unlock_all_files): Use unlock_file to expand each
5347 buffer's file_truename before trying remove its lock file.
5348
5349 2000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
5350
5351 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
5352 or CRLF, decode EOLs.
5353
5354 2000-10-24 Kenichi Handa <handa@etl.go.jp>
5355
5356 * window.c (Fdisplay_buffer): Fix doc.
5357
5358 2000-10-23 Jason Rumney <jasonr@gnu.org>
5359
5360 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
5361 ASCII font of default fontset on Windows.
5362
5363 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
5364 xterm.c comment below).
5365
5366 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
5367
5368 2000-10-23 Gerd Moellmann <gerd@gnu.org>
5369
5370 * xterm.c (x_connection_closed): Reset handling_signal.
5371
5372 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing null.
5373
5374 2000-10-23 Miles Bader <miles@gnu.org>
5375
5376 * window.c (window_scroll_pixel_based, window_scroll_line_based):
5377 Pass nil for FULLY argument to Fpos_visible_in_window_p to
5378 maintain old behavior.
5379 * minibuf.c (Fminibuffer_complete): Likewise.
5380
5381 2000-10-23 Miles Bader <miles@lsi.nec.co.jp>
5382
5383 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
5384 that when a font can't be exactly centered, it errs up rather than
5385 down.
5386
5387 2000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
5388
5389 * fns.c (Fbase64_decode_string): The decoded result should be unibyte.
5390
5391 2000-10-23 Andrew Choi <akochoi@i-cable.com>
5392
5393 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
5394
5395 * dispnew.c [macintosh]: Include macterm.h.
5396 (init_display) [macintosh]: Initialization for window system.
5397
5398 * emacs.c (main) [macintosh]: Call syms_of_textprop,
5399 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
5400 syms_of_search, x_term_init, and init_keyboard before calling
5401 init_window_once. Also, call syms_of_xmenu.
5402
5403 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
5404 default fontset to Monaco.
5405
5406 * frame.c [macintosh]: Include macterm.h. Remove declarations of
5407 NewMacWindow and DisposeMacWindow.
5408 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
5409 instead of calling NewMacWindow and setting fields of
5410 f->output_data.mac directly. Call init_frame_faces.
5411 (Fdelete_frame) [macintosh]: Remove unused code.
5412 (Fmodify_frame_parameters) [macintosh]: Call
5413 x_set_frame_parameters instead of mac_set_frame_parameters.
5414
5415 * frame.h [macintosh]: Define menu_bar_lines field in struct
5416 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
5417
5418 * keyboard.c [macintosh]: Include macterm.h.
5419 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
5420 and menu_bar_activate_event type events as for X and NT.
5421 (make_lispy_event) [macintosh]: Construct lisp events of type
5422 MENU_BAR_EVENT as for X and NT.
5423
5424 * sysdep.c [macintosh]: Remove declaration for sys_signal.
5425 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
5426 (sys_subshell) [macintosh]: Remove definition entirely.
5427 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
5428 Vwindow_system_version here. Remove initialization of
5429 Vx_bitmap_file_path.
5430 (read_input_waiting): Correct the number of parameters passed to
5431 read_socket_hook.
5432 Move all Macintosh functions to mac/mac.c.
5433
5434 * term.c [macintosh]: Include macterm.h.
5435
5436 * window.c [macintosh]: Include macterm.h.
5437
5438 * xdisp.c [macintosh]: Include macterm.h. Declare
5439 set_frame_menubar and pending_menu_activation.
5440 (echo_area_display) [macintosh]: Do not return if terminal frame
5441 is the selected frame.
5442 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
5443 Allow only the selected frame to set menu bar.
5444 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
5445 calling FRAME_EXTERNAL_MENU_BAR (f).
5446 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
5447
5448 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
5449 and check_x. Declare XCreateGC. Define x_create_gc and
5450 x_free_gc. Initialize font_sort_order.
5451 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
5452 but call x_list_fonts instead of w32_list_fonts.
5453 (Finternal_face_x_get_resource) [macintosh]: Do not call
5454 display_x_get_resource.
5455 (prepare_face_for_display) [macintosh]: Set xgcv.font.
5456 (realize_x_face) [macintosh]: Load the font if it is specified in
5457 ATTRS.
5458 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed to Qt.
5459
5460 2000-10-22 Stefan Monnier <monnier@cs.yale.edu>
5461
5462 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
5463 is nil: since we go to the end of submap anyway, we'd end up
5464 setting nil to nil.
5465 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
5466 doesn't obey autoload.
5467
5468 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5469
5470 * msdos.c (dos_set_window_size): Update screen dimension variables.
5471
5472 2000-10-21 Jason Rumney <jasonr@gnu.org>
5473
5474 * w32term.c (w32_cache_char_metrics): Double check that font is
5475 really fixed pitch before trusting tmPitchAndFamily.
5476
5477 2000-10-21 Andrew Innes <andrewi@gnu.org>
5478
5479 * w32gui.h (w32_char_font_type): Move enum from w32term.c
5480
5481 * w32term.h: Extern decl for w32_cache_char_metrics.
5482
5483 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
5484
5485 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
5486 (w32_unload_font): Free per_char array if present.
5487
5488 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
5489 cached information in emulated XFontStruct to handle common cases
5490 quickly. Do not allocate XCharStruct for return.
5491 (w32_native_per_char_metric): New function.
5492 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
5493 allocating one.
5494 (x_produce_glyphs): Don't get an HDC. Change calls to
5495 w32_per_char_metric to match arg change above. Remove calls to
5496 free results.
5497 (w32_get_glyph_overhangs): Ditto.
5498 (w32_cache_char_metrics): New function.
5499
5500 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
5501 ($(BLD)/casefiddle.$(O)): Remove compile command.
5502 ($(BLD)/gmalloc.$(O)): Remove compile command.
5503 ($(BLD)/dispnew.obj):
5504 ($(BLD)/keyboard.obj):
5505 ($(BLD)/w32inevt.obj):
5506 ($(BLD)/w32bdf.obj):
5507 ($(BLD)/alloc.obj):
5508 ($(BLD)/buffer.obj):
5509 ($(BLD)/editfns.obj):
5510 ($(BLD)/emacs.obj):
5511 ($(BLD)/fileio.obj):
5512 ($(BLD)/fns.obj):
5513 ($(BLD)/indent.obj):
5514 ($(BLD)/insdel.obj):
5515 ($(BLD)/intervals.obj):
5516 ($(BLD)/minibuf.obj):
5517 ($(BLD)/print.obj):
5518 ($(BLD)/scroll.obj):
5519 ($(BLD)/sysdep.obj):
5520 ($(BLD)/textprop.obj):
5521 ($(BLD)/widget.obj):
5522 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
5523 ($(BLD)/term.obj): Add dependency on dispextern.h.
5524
5525 * makefile.nt ($(BLD)\dispnew.obj):
5526 ($(BLD)\keyboard.obj):
5527 ($(BLD)\w32inevt.obj):
5528 ($(BLD)\w32bdf.obj):
5529 ($(BLD)\alloc.obj):
5530 ($(BLD)\buffer.obj):
5531 ($(BLD)\editfns.obj):
5532 ($(BLD)\emacs.obj):
5533 ($(BLD)\fileio.obj):
5534 ($(BLD)\fns.obj):
5535 ($(BLD)\indent.obj):
5536 ($(BLD)\insdel.obj):
5537 ($(BLD)\intervals.obj):
5538 ($(BLD)\minibuf.obj):
5539 ($(BLD)\print.obj):
5540 ($(BLD)\scroll.obj):
5541 ($(BLD)\sysdep.obj):
5542 ($(BLD)\textprop.obj):
5543 ($(BLD)\widget.obj):
5544 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
5545 ($(BLD)\term.obj): Add dependency on dispextern.h
5546
5547 2000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
5548
5549 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
5550 with an additional argument of Qt.
5551
5552 2000-10-21 Miles Bader <miles@gnu.org>
5553
5554 * window.c (pos_fully_visible_in_window_p): New function.
5555 (Fpos_visible_in_window_p): Add FULLY argument.
5556 Use pos_fully_visible_in_window_p.
5557 (window_scroll_pixel_based, window_scroll_line_based): Update
5558 calls to Fpos_visible_in_window_p.
5559 * lisp.h (Fpos_visible_in_window_p): Update prototype
5560
5561 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5562
5563 * alloc.c (toplevel): Conditionalize compilation of mem_*
5564 functions differently.
5565
5566 2000-10-20 Jason Rumney <jasonr@gnu.org>
5567
5568 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
5569 mem_init where it used to be. mem_z etc not defined otherwise.
5570
5571 2000-10-20 Gerd Moellmann <gerd@gnu.org>
5572
5573 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
5574 GC_MALLOC_CHECK.
5575 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
5576 structure definition and related variabled to the top of the file.
5577 Include this code when GC_MALLOC_CHECK is defined.
5578 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
5579 register/unregister allocated region.
5580 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
5581 which isn't allocated.
5582 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
5583 something which is already in use.
5584 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
5585 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
5586 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
5587 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
5588
5589 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
5590 _malloc_internal instead of malloc.
5591 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
5592 of free.
5593
5594 2000-10-20 Andrew Innes <andrewi@gnu.org>
5595
5596 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
5597 Windows.
5598 (my_strftime) <macro>: Don't use macro arg list when redefining as
5599 _strftime_copytm.
5600 (my_strftime) <function>: Supply 0 as ut argument.
5601
5602 2000-10-19 Jason Rumney <jasonr@altavista.net>
5603
5604 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
5605 including dispextern.h, as it stops faces from working.
5606
5607 * w32fns.c (Fx_create_frame): Don't bother calling
5608 face-set-after-frame-default since the caller does it for us
5609 anyway. Clean up calls to x_get_arg to be consistent with X.
5610
5611 * w32term.c (x_produce_glyphs): Handle
5612 unibyte_display_via_language_environment correctly.
5613 (w32_draw_box_rect): Fix the calculation of width and height.
5614
5615 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
5616 as it has stopped working.
5617 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
5618 menu-bar.
5619
5620 2000-10-19 Gerd Moellmann <gerd@gnu.org>
5621
5622 * eval.c (skip_debugger): Prevent a compiler warning.
5623 (Fcondition_case): Likewise.
5624 (Fbacktrace_frame): Use a null interactive spec.
5625
5626 2000-10-19 Kenichi Handa <handa@etl.go.jp>
5627
5628 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
5629
5630 2000-10-18 Gerd Moellmann <gerd@gnu.org>
5631
5632 * strftime.c: Sync with glibc, file version 1.78.
5633 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
5634 should no longer be used according to ISO 8601.
5635
5636 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
5637 no map for meta_prefix_char, don't try to use it as a keymap.
5638 Instead, if T_OK is non-zero, look up a default binding, if any,
5639 otherwise, if T_OK is zero, return nil.
5640
5641 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
5642 (x_to_xcolors, png_load): Use x_query_color.
5643
5644 * xterm.c (x_color_cells, x_query_colors, x_query_color):
5645 New functions.
5646 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
5647 which can be slow.
5648 (x_copy_color, x_alloc_lighter_color): Likewise.
5649
5650 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
5651 (x_query_color, x_query_colors): Add prototype.
5652
5653 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
5654 check_string_bytes only if not noninteractive, increase count to 50.
5655
5656 2000-10-18 Miles Bader <miles@lsi.nec.co.jp>
5657
5658 * insdel.c (adjust_markers_for_delete): Handle before-insertion
5659 markers correctly.
5660
5661 2000-10-17 Gerd Moellmann <gerd@gnu.org>
5662
5663 * alloc.c (pure_bytes_used): Renamed from pureptr.
5664 (ALIGN): New macro.
5665 (pure_alloc): New function.
5666 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
5667 Use it.
5668 (Fpurecopy): Use PURE_POINTER_P.
5669
5670 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
5671 PT has moved backward.
5672
5673 * xdisp.c (cursor_row_p): Take continued lines into account.
5674
5675 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
5676 string's size_byte.
5677 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
5678 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
5679 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
5680 string allocated.
5681
5682 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
5683 of selective display off while searching for the next line start.
5684
5685 2000-10-17 Kenichi Handa <handa@etl.go.jp>
5686
5687 * Makefile.in (term.o): Depend on dispextern.h.
5688
5689 2000-10-16 Stefan Monnier <monnier@cs.yale.edu>
5690
5691 * keymap.c (keymap_memberp): Ensure that nil is not a member.
5692
5693 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5694
5695 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
5696 the iterator at the beginning, so that they can be set later on,
5697 for instance in reseat_at_next_visible_line_start, without being
5698 overwritten.
5699
5700 * xfns.c (pbm_format): Add :foreground and :background keywords.
5701 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
5702 (xbm_load): Recognize foreground and background color specifications.
5703
5704 2000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
5705
5706 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
5707
5708 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern declaration.
5709
5710 * msdos.c (IT_set_face): Compare highlighted face with the default
5711 face, and invert colors if these faces' colors are identical.
5712 (Fmsdos_remember_default_colors): Don't swap foreground and
5713 background colors in initial_colors[].
5714 (IT_set_frame_parameters): Don't swap frame's foreground and
5715 background pixels. If ALIST includes "(reverse . t)", swap
5716 foreground-color and background-color properties in frame's
5717 param_alist. If the original frame's param_alist doesn't specify
5718 the colors, store unspecified-fg and unspecified-bg, reversed if
5719 required.
5720
5721 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
5722 the colors are unspecified and reversed, reverse fore- and back-
5723 ground in the returned value.
5724 (Fframe_parameter): Ditto.
5725
5726 2000-10-16 Gerd Moellmann <gerd@gnu.org>
5727
5728 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
5729 get_last_unchanged_at_beg_row.
5730 (find_first_unchanged_at_end_row): Renamed from
5731 get_first_unchanged_at_end_row.
5732 (find_first_unchanged_at_end_row): Convert assertions to
5733 unconditional tests which abort. When looking for a row in
5734 unchanged text, don't go further back than first_text_row.
5735
5736 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
5737 Don't add in the last line's height when deciding if the new
5738 position is below the scroll margin.
5739
5740 2000-10-16 Miles Bader <miles@gnu.org>
5741
5742 * editfns.c (Fconstrain_to_field): Check carefully for field
5743 boundaries if either OLD_POS or NEW_POS has a non-nil field
5744 property, even if they're the same.
5745
5746 2000-10-16 Kenichi Handa <handa@etl.go.jp>
5747
5748 * xterm.c (x_draw_box_rect): Fix the calculation of width and
5749 height for XFillRectangle.
5750
5751 2000-10-15 Stefan Monnier <monnier@cs.yale.edu>
5752
5753 * syntax.c (Fstring_to_syntax): New function extracted from
5754 Fmodify_syntax_entry.
5755 (Fmodify_syntax_entry): Use it and document the ! and | fences.
5756 (skip_chars, Fforward_comment): Remove unused variables.
5757 (syms_of_syntax): Add defsubr for string-to-syntax.
5758 (describe_syntax): Add code for comment and string fences.
5759
5760 2000-10-14 Stefan Monnier <monnier@cs.yale.edu>
5761
5762 * keymap.c (access_keymap): Add AUTOLOAD parameter.
5763 Do the meta->esc mapping. Call get_keyelt before returning.
5764 Start scanning from the second element (the first is always `keymap')
5765 to make it easier to detect when we reach a parent map.
5766 Handle the case of inheriting from a symbol whose function is a map.
5767 (Fkeymap_parent): Also handle the `inherit from symbol' case.
5768 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
5769 (get_keyelt, Flookup_key): Update call to access_keymap.
5770 Remove the meta->esc mappings.
5771 (define_as_prefix): Delete old disabled code.
5772 (menu_item_p): New function.
5773 (where_is_internal_1): Skip over the few remaining menu items.
5774 * lisp.h (access_keymap): Update prototype.
5775 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
5776 Update call to access_keymap.
5777 (follow_key, read_key_sequence): Update calls to access_keymap.
5778 Remove the meta->esc mappings.
5779
5780 2000-10-13 Gerd Moellmann <gerd@gnu.org>
5781
5782 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
5783 with additional argument.
5784
5785 * xdisp.c (cursor_row_p): New function.
5786 (try_cursor_movement, display_line): Use it.
5787
5788 * xdisp.c (append_space): Also save/restore iterator's current
5789 character and its length.
5790
5791 * xdisp.c (init_from_display_pos): Add an assertion.
5792 (handle_stop): Don't set iterator's add_overlay_start.
5793 (handle_invisible_prop): Likewise.
5794 (load_overlay_strings): If text under an overlay is invisible,
5795 take both before- and after-strings into account when the iterator
5796 is positioned either at the start or at the end of the overlay.
5797 (forward_to_next_line_start): Rewritten.
5798 (reseat_at_next_visible_line_start): Rewritten.
5799 (set_iterator_to_next): Add parameter RESEAT_P.
5800
5801 * dispextern.h (struct it): Remove member add_overlay_start.
5802 (set_iterator_to_next): Change prototype.
5803
5804 2000-10-13 Kenichi Handa <handa@etl.go.jp>
5805
5806 * coding.c (code_convert_region): Be sure to initialize
5807 coding->category_idx.
5808 (decode_coding_string): Set coding->src_multibyte and
5809 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
5810 (encode_coding_string): Set coding->src_multibyte and
5811 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
5812
5813 2000-10-12 Stefan Monnier <monnier@cs.yale.edu>
5814
5815 * xfns.c (Fx_create_frame): Don't bother calling
5816 face-set-after-frame-default since the caller does it for us anyway.
5817
5818 2000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
5819
5820 * window.c (coordinates_in_window): Fix detection of vertical line
5821 on character terminals.
5822
5823 2000-10-12 Gerd Moellmann <gerd@gnu.org>
5824
5825 * editfns.c (save_excursion_save): Additionally record the
5826 selected window.
5827 (save_excursion_restore): If buffer was visible in a window, and a
5828 different window was selected, and the old selected window is
5829 still live, restore point in that window.
5830
5831 2000-10-12 Kenichi Handa <handa@etl.go.jp>
5832
5833 * xterm.c (x_produce_glyphs): Handle
5834 unibyte_display_via_language_environment correctly.
5835
5836 * regex.c (regex_compile): Change the way of handling a range from
5837 unibyte char to multibyte char.
5838
5839 * syntax.c (skip_chars): Change the way of handling a range from
5840 unibyte char to multibyte char.
5841
5842 * process.c (read_process_output): Cancel previous change.
5843
5844 2000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
5845
5846 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
5847
5848 * charset.c (Ffind_charset_string): Doc fix.
5849 (Ffind_charset_region): Doc fix.
5850
5851 2000-10-11 Kenichi Handa <handa@mule.m17n.org>
5852
5853 * process.c (read_process_output): Fix previous change. Adjust
5854 multibyteness of text to insert in a buffer by
5855 string_make_unibyte/multibyte instead of Fstring_as_unibyte/multibyte.
5856
5857 2000-10-10 Andreas Schwab <schwab@suse.de>
5858
5859 * alloc.c (mark_object): Remove all workarounds installed on
5860 1993-08-08.
5861
5862 2000-10-10 Kenichi Handa <handa@etl.go.jp>
5863
5864 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before returning.
5865 (base64_encode_1): Make it work for a text of multibyte form.
5866 (Fbase64_decode_region): Allocate sufficient memory for multibyte
5867 case. Don't call str_to_multibyte because base64_decode_1
5868 produces correct multibyte form for eight-bit codes.
5869 (Fbase64_decode_string): Adjusted for the change of base64_decode_1.
5870 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
5871 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
5872 codes.
5873
5874 * charset.h (CHAR_STRING): Optimized for single byte characters.
5875
5876 2000-10-09 Andreas Schwab <schwab@suse.de>
5877
5878 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
5879 -1 after socket is closed, to fall through to error processing.
5880
5881 2000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
5882
5883 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
5884 variables. If ALIST includes foreground-color or
5885 background-color, change also the colors of the default face for
5886 this frame.
5887
5888 2000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
5889
5890 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
5891 them extern (they are defined on xfaces.c).
5892 (syms_of_msdos): Don't intern and don't staticpro
5893 Qbackground_color and Qforeground_color.
5894
5895 2000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
5896
5897 * frame.c (Fframe_parameter): For non-windowed frames, if
5898 f->param_alist says foreground or background color is unspecified,
5899 call tty_color_name to return the color name computed from the
5900 frame's current colors.
5901
5902 2000-10-06 Dave Love <fx@gnu.org>
5903
5904 * terminfo.c (ospeed): Don't declare.
5905
5906 * sysdep.c: Don't include string.h.
5907 (h_errno): Declare conditional also on TRY_AGAIN.
5908
5909 * charset.c (Ffind_charset_string): Doc fix.
5910
5911 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
5912 (Fbase64_decode_region, Fbase64_decode_string): More explicit
5913 error messages.
5914
5915 2000-10-05 Dave Love <fx@gnu.org>
5916
5917 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
5918 position like menu-bar.
5919
5920 2000-10-05 Gerd Moellmann <gerd@gnu.org>
5921
5922 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
5923
5924 * xdisp.c (handle_single_display_prop): Use safe_call1.
5925 (safe_call): Renamed from call_function.
5926 (safe_call1): New function.
5927 (handle_fontified_prop): Use safe_call1 instead of call1.
5928 (safe_eval): Renamed from eval_form.
5929 (safe_eval_handler): Renamed from eval_handler.
5930 (handle_single_display_prop, display_mode_element): Use safe_eval
5931 instead of eval_form.
5932
5933 * xfaces.c (merge_face_heights): Use safe_call instead of
5934 call_function.
5935
5936 * keyboard.c (show_help_echo): Use safe_call instead of
5937 call_function; use safe_eval instead of eval_form.
5938
5939 * lisp.h (safe_call): Renamed from call_function.
5940 (safe_eval): Renamed from eval_form.
5941 (safe_call1): Add prototype.
5942
5943 2000-10-05 Miles Bader <miles@lsi.nec.co.jp>
5944
5945 * xfns.c (image_ascent): Rearrange ascent calculation for the
5946 has-a-font case.
5947
5948 2000-10-04 Stefan Monnier <monnier@cs.yale.edu>
5949
5950 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
5951 (where_is_internal_1): Don't bother ignoring menu-items any more.
5952
5953 2000-10-04 Gerd Moellmann <gerd@gnu.org>
5954
5955 * keyboard.c (update_menu_bindings): New variable.
5956 (parse_menu_item): Use AREF. If update_menu_bindings
5957 is 0, don't update menu bindings.
5958 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
5959
5960 2000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
5961
5962 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
5963 to `mark_object'.
5964
5965 2000-10-02 Stefan Monnier <monnier@cs.yale.edu>
5966
5967 * syntax.c (forw_comment): Match nestedness of ender/starter.
5968 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
5969 (prev_char_comstart_first): Remove.
5970 (back_comment): Check two-char comment markers more carefully
5971 to better handle overlapping cases like *//* or /* */* */ ...
5972 Match nestedness of ender/starter.
5973
5974 2000-10-02 Dave Love <fx@gnu.org>
5975
5976 * config.in (HAVE_GAI_STRERROR): Add undef.
5977
5978 * process.c (Fopen_network_stream): Use it.
5979
5980 * m/alpha.h (NO_REMAP): Don't define.
5981
5982 2000-10-02 Gerd Moellmann <gerd@gnu.org>
5983
5984 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
5985 return with a string converted to an integer or vice versa when
5986 Vmocklisp_arguments is t.
5987 (Fsignal): Likewise. The function can return for `quit'.
5988 (struct gcpro): Declare member `var' to point to a volatile
5989 Lisp_Object.
5990
5991 * eval.c (error): Prevent compiler warning.
5992
5993 2000-09-30 Stefan Monnier <monnier@cs.yale.edu>
5994
5995 * keymap.c (keymap_memberp): New function.
5996 (Fset_keymap_parent): Use it.
5997 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
5998 Use keymap_memberp to avoid creating cycles.
5999 (access_keymap): Use KEYMAPP.
6000
6001 2000-09-30 Gerd Moellmann <gerd@gnu.org>
6002
6003 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
6004 gai_strerror. Make sure xerrno is set if connect fails. Improve
6005 error recovery.
6006
6007 2000-09-29 Jason Rumney <jasonr@gnu.org>
6008
6009 * w32term.c (w32_char_font_type, w32_encode_char)
6010 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
6011 (w32_bdf_per_char_metric): New function.
6012 (w32_per_char_metric): Use it.
6013 (x_draw_glyph_string_background): Always draw background for BDF
6014 glyphs.
6015
6016 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
6017 GDI object which is a scarce resource.
6018
6019 * w32bdf.c (search_file_line): Fix skipping of whitespace.
6020 (get_quoted_string): Fix limit on memchr search.
6021 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
6022 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
6023 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
6024 (get_cached_font_char, cache_char_offset): Use macro
6025 BDF_CODEPOINT_RANGE_COVER_P.
6026 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
6027 (clear_cached_bitmap_slots): New function.
6028 (GET_HEX_VALUE): G-Z, g-z are not hex.
6029 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
6030 (get_bitmap_with_cache): Use new cache implementation.
6031 (create_offscreen_bitmap): New function.
6032 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
6033
6034 * w32term.c (x_produce_glyphs): If the distance from the current
6035 position to the next tab stop is less than a canonical character
6036 width, use the tab stop after that.
6037 (x_draw_glyphs): Handle case START and END are out of bounds more
6038 carefully.
6039 (x_clear_mouse_face): Block/unblock input.
6040 (x_display_and_set_cursor): Don't show a hollow box cursor for
6041 buffers whose cursor_type is nil.
6042
6043 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6044
6045 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar disappears.
6046
6047 * dispextern.h (updating_frame): Declare extern.
6048
6049 2000-09-29 Andreas Schwab <schwab@suse.de>
6050
6051 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
6052
6053 2000-09-29 Gerd Moellmann <gerd@gnu.org>
6054
6055 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
6056 use its function definition.
6057 (tool_bar_items): Likewise.
6058
6059 * lisp.h (fatal): Declare NO_RETURN.
6060
6061 2000-09-29 Kenichi Handa <handa@etl.go.jp>
6062
6063 * keymap.c: Remove the line "#undef NULL".
6064
6065 2000-09-28 Gerd Moellmann <gerd@gnu.org>
6066
6067 * xterm.c (x_make_frame_visible): Try harder to make the frame visible.
6068
6069 2000-09-28 Dave Love <fx@gnu.org>
6070
6071 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
6072
6073 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
6074
6075 * .gdbinit (xreload): Note its need on GNU/Linux.
6076
6077 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
6078 r_alloc, r_alloc_free.
6079
6080 2000-09-28 Kenichi Handa <handa@etl.go.jp>
6081
6082 * syntax.c (skip_chars): Handle negation correctly.
6083
6084 2000-09-27 Gerd Moellmann <gerd@gnu.org>
6085
6086 * xfaces.c (realize_default_face): Call set_lface_from_font_name
6087 with non-zero FORCE_P argument.
6088
6089 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
6090 Add assertions.
6091
6092 * xdisp.c (window_box_height): Add an assertion.
6093
6094 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
6095 tool-bar than is available.
6096 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
6097
6098 2000-09-27 Dave Love <fx@gnu.org>
6099
6100 * s/irix6-5.h: Now works 64-bit. Tidied.
6101
6102 2000-09-26 Gerd Moellmann <gerd@gnu.org>
6103
6104 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
6105 instead of BITS_PER_INT.
6106 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
6107 EMACS_UINT, respectively.
6108 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
6109
6110 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
6111
6112 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
6113
6114 * window.c (freeze_window_starts): Construct last argument for
6115 foreach_window differently.
6116
6117 * xfns.c (x_decode_color): Don't return a Lisp_Object.
6118
6119 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
6120 EMACS_UINT instead of `int' and `unsigned int'.
6121 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
6122
6123 * frame.h (struct frame): Make the `nothing' member of union
6124 output_data an EMACS_INT.
6125
6126 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug hunting.
6127 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
6128 size in the sdata structure.
6129 (SDATA_NBYTES, SDATA_DATA): New macros.
6130 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
6131 differently for the different layout of the sdata structure.
6132 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
6133 in sdata.
6134 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
6135 Check that size recorded in the string size and size recorded in
6136 the sdata structure agree.
6137
6138 2000-09-25 Dave Love <fx@gnu.org>
6139
6140 * buffer.c: Include stdio.h.
6141
6142 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
6143
6144 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
6145
6146 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
6147 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as size_t.
6148 (__malloc_extra_blocks): Declare as __malloc_size_t.
6149
6150 2000-09-25 Gerd Moellmann <gerd@gnu.org>
6151
6152 * alloc.c (mark_image): Use GC_NILP instead of NILP.
6153
6154 * keyboard.c (show_help_echo): Set help_echo_showing_p.
6155 (read_char): If help-echo is showing, preserve the echo area
6156 when redisplaying.
6157
6158 * xdisp.c (help_echo_showing_p): New variable.
6159 (set_message): Reset it to 0.
6160 (init_xdisp): Initialize help_echo_showing_p.
6161
6162 * dispextern.h (help_echo_showing_p): Declare extern.
6163
6164 * config.in: Fix typo in __GNUC_MINOR__.
6165
6166 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
6167
6168 * s/freebsd.h (POSIX_SIGNALS): Define.
6169
6170 * xterm.c (x_clear_mouse_face): Block/unblock input.
6171
6172 2000-09-24 Dave Love <fx@gnu.org>
6173
6174 * fns.c (base64_encode_1): Fix last change.
6175
6176 2000-09-22 Gerd Moellmann <gerd@gnu.org>
6177
6178 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
6179
6180 * xdisp.c (try_window_reusing_current_matrix): More fixes
6181 for the case window has a header-line.
6182
6183 2000-09-22 Dave Love <fx@gnu.org>
6184
6185 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
6186 a doc string.
6187
6188 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
6189
6190 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
6191
6192 2000-09-21 Gerd Moellmann <gerd@gnu.org>
6193
6194 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
6195 for GCC >= 2.5.
6196
6197 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error):
6198 Declare NO_RETURN.
6199
6200 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
6201 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
6202 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
6203 warnings.
6204
6205 * marker.c (byte_char_debug_check): Return void.
6206
6207 * xfns.c (Fx_create_frame): Set default frame parameter value
6208 for tool-bar-lines to 1.
6209
6210 * dispnew.c (scrolling_window): Compare y-positions of rows
6211 equal at the start. Some simplification.
6212
6213 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
6214 reused rows' y-position in the case window has a header-line, and
6215 new window start is greater than old window start.
6216
6217 * process.c (process_sent_to): New variable.
6218 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
6219 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
6220 Declare more parameters volatile.
6221
6222 * lread.c (Vrecursive_load_depth_limit): New variable.
6223 (Fload): Check recursive loads whose recursion depth exceeds
6224 Vrecursive_load_depth_limit.
6225 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
6226
6227 2000-09-20 Gerd Moellmann <gerd@gnu.org>
6228
6229 * fileio.c (Fread_file_name): Doc fix.
6230
6231 * editfns.c (Fmessage_or_box): Doc fix.
6232
6233 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
6234
6235 * xfns.c (xbm_scan): Allow C-style comments.
6236
6237 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
6238 symbols are specified, add color translations to the cache.
6239 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New functions.
6240 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
6241 xpm_cache_color.
6242 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
6243 structures to xpm_init_color_cache.
6244
6245 2000-09-19 Gerd Moellmann <gerd@gnu.org>
6246
6247 * dispnew.c (update_window_line): Make sure to always draw mode-lines.
6248
6249 2000-09-19 Andrew Innes <andrewi@gnu.org>
6250
6251 * makefile.nt (bootstrap-emacs): Don't change directory.
6252
6253 2000-09-19 Kenichi Handa <handa@etl.go.jp>
6254
6255 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
6256
6257 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
6258 If output buffer is too small, signal an appropriated error.
6259
6260 2000-09-18 Dave Love <fx@gnu.org>
6261
6262 * keyboard.c (menu_bar_items, tool_bar_items)
6263 (current_active_maps): Remove redundant get_local_map call.
6264
6265 2000-09-18 Gerd Moellmann <gerd@gnu.org>
6266
6267 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
6268 cursor for buffers whose cursor_type is nil.
6269
6270 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
6271 a feature to implement that is already implemented.
6272 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
6273 warnings.
6274
6275 * xfns.c (x_clear_image_1): New function.
6276 (x_clear_image): Use it.
6277 (x_from_xcolors): Use x_clear_image_1; don't free the image's mask.
6278
6279 * dispnew.c (update_window): Move test for invisible lines
6280 at the top to update_window_line.
6281 (update_window_line): Handle invisible lines here.
6282
6283 * xfns.c (clear_image_cache): Clear current matrices of all
6284 frames sharing an image cache. Block input while freeing
6285 images. Fix timestamp comparison.
6286 (x_clear_image): Also free the mask.
6287
6288 * xfns.c (lookup_image): Block input while loading the image so
6289 that we won't get interrupted in a state where the image isn't yet
6290 set up completely.
6291 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
6292 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
6293 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
6294 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock input.
6295
6296 2000-09-16 Gerd Moellmann <gerd@gnu.org>
6297
6298 * dispnew.c (update_window): Make sure to make desired rows
6299 current even if they are completely invisible at the top
6300 of a window.
6301
6302 2000-09-15 Gerd Moellmann <gerd@gnu.org>
6303
6304 * xfns.c (lookup_image): Build mask before applying an algorithm.
6305 Recognize algorithm `disabled'.
6306 (cross_disabled_images): New variable.
6307 (COLOR_INTENSITY): New macro.
6308 (x_detect_edges): Use COLOR_INTENSITY.
6309 (x_disable_image): New function.
6310 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
6311
6312 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
6313 disabled state, don't apply an image transformation algorithm if
6314 the user specified an image for the disabled state. Use
6315 `:algorithm disabled' for creating a disabled item's image if the
6316 user hasn't specified an image.
6317
6318 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
6319 allocation functions with the XPM lib.
6320 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
6321 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
6322 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
6323 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
6324 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New functions.
6325 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
6326 functions, if possible, because these handle color allocation
6327 failure more gracefully.
6328 (Fimage_mask_p): New function.
6329
6330 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
6331 (Qedge_detection, Qheuristic): New symbols.
6332 (syms_of_xfns): Initialize new symbols.
6333 (lookup_image): Handle `:mask X', `:algorithm emboss', and
6334 `algorithm (edge-detection ...)'.
6335 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
6336 (tiff_format, gif_format, gs_format): Add `:mask'.
6337 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
6338 (GIF_MASK, GS_MASK): New enumerators.
6339 (x_laplace_read_row, x_laplace_write_row): Functions removed.
6340 (emboss_matrix, laplace_matrix): New variables.
6341 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
6342 (x_edge_detection): New functions.
6343 (x_laplace): Rewritten in terms of x_detect_edges.
6344 (x_build_heuristic_mask): If image has a mask, free it.
6345
6346 2000-09-14 Andrew Innes <andrewi@gnu.org>
6347
6348 * makefile.w32-in: Revert to Unix line endings.
6349
6350 2000-09-14 Andrew Innes <andrewi@gnu.org>
6351
6352 * makefile.w32-in: Standardize indentation somewhat.
6353 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
6354 cater for differences between shells.
6355
6356 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
6357
6358 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6359
6360 * xterm.c (x_produce_glyphs): If the distance from the current
6361 position to the next tab stop is less than a canonical character
6362 width, use the tab stop after that.
6363
6364 2000-09-14 Dave Love <fx@gnu.org>
6365
6366 * buffer.c (alloc_buffer_text): Fix xmalloc call.
6367
6368 2000-09-14 Gerd Moellmann <gerd@gnu.org>
6369
6370 * xdisp.c (handle_fontified_prop): While running fontification
6371 functions, bind `fontification-functions' and
6372 `after-change-functions' to nil.
6373
6374 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
6375 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
6376
6377 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
6378
6379 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
6380 USE_MMAP_FOR_BUFFERS.
6381
6382 * insdel.c (make_gap): Use enlarge_buffer_text.
6383
6384 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
6385 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
6386 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
6387 from former r_alloc_* functions in ralloc.c.
6388 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New variables.
6389 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
6390 (mmap_init) [REL_ALLOC_MMAP]: New function.
6391 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
6392 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
6393 BUFFER_FREE.
6394
6395 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
6396 (enlarge_buffer_text): Add prototype.
6397
6398 * ralloc.c: Remove everything having to do with the use of mmap.
6399
6400 2000-09-13 Gerd Moellmann <gerd@gnu.org>
6401
6402 * sound.c (Fplay_sound): Doc fix.
6403
6404 * keyboard.c: Avoid some more compiler warnings.
6405 (parse_tool_bar_item): Ignore cached key bindings.
6406
6407 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
6408 and allocation of Lisp data.
6409
6410 2000-09-12 Gerd Moellmann <gerd@gnu.org>
6411
6412 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
6413 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
6414 defaults first.
6415
6416 * lread.c (Fload): Put code checking for recursive loads in #if 0.
6417
6418 2000-09-12 Miyashita Hisashi <himi@meadowy.org>
6419
6420 * ccl.c: Comment fixed.
6421 (MAX_MAP_SET_LEVEL): Increased to 30.
6422 (PUSH_MAPPING_STACK): Enclose with do-while block.
6423 (POP_MAPPING_STACK): Likewise.
6424 (stack_idx_of_map_multiple): New variable.
6425 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
6426 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
6427 call the corresponding CCL program by CCL_CALL_FOR_MAP_INSTRUCTION.
6428 (ccl_driver) <CCL_MapSingle>: Likewise.
6429 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
6430 with the case where looking up process reaches to the end of
6431 map-set, and call CCL programs as the above change.
6432
6433 2000-09-11 Gerd Moellmann <gerd@gnu.org>
6434
6435 * xfns.c (png_load, jpeg_load): Declare some variables volatile
6436 that might be clobbered by longjmp.
6437 (check_x_display_info, x_decode_color, create_frame_xic)
6438 (Fx_display_backing_store, Fx_display_visual_class)
6439 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler warnings.
6440
6441 * lread.c (init_lread): Set Vloads_in_progress to nil.
6442 (Fload): Show list of recursively loaded files, when signaling an
6443 error.
6444
6445 * lread.c (Vloads_in_progress): New variable.
6446 (record_load_unwind): New function.
6447 (Fload): Check for recursive loads.
6448 (syms_of_lread): Initialize Vloads_in_progress.
6449 (read_integer, read1): Avoid some compiler warnings.
6450
6451 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
6452 compiler warnings.
6453
6454 2000-09-11 Miles Bader <miles@gnu.org>
6455
6456 * editfns.c (Fbuffer_string): Doc fix.
6457
6458 2000-09-10 Gerd Moellmann <gerd@gnu.org>
6459
6460 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
6461
6462 2000-09-09 Ken Raeburn <raeburn@gnu.org>
6463
6464 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
6465 whether to include other header files.
6466
6467 2000-09-09 Gerd Moellmann <gerd@gnu.org>
6468
6469 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
6470 by Fmemq as a boolean.
6471
6472 2000-09-08 Stefan Monnier <monnier@cs.yale.edu>
6473
6474 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
6475
6476 2000-09-08 Gerd Moellmann <gerd@gnu.org>
6477
6478 * ralloc.c (mmap_fd): Remove initializer which can make it
6479 read-only in a dumped Emacs.
6480 (mmap_fd_1): New variable.
6481 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
6482 restore it from there.
6483 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
6484 unconditionally so that mmap_fd can be initialized there.
6485 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
6486 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
6487 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
6488
6489 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
6490
6491 * xdisp.c (dump_glyph_row): Fix printf format string.
6492 (display_line, move_it_in_display_line_to): Avoid compiler warnings.
6493
6494 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
6495
6496 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
6497 inheritance.
6498
6499 * xdisp.c (try_window_id): When trying to locate cursor in
6500 unchanged rows at the top, handle the case that we can't find it.
6501
6502 * xterm.c (x_draw_glyphs): Handle case START and END are out
6503 of bounds more carefully.
6504
6505 2000-09-08 Dave Love <fx@gnu.org>
6506
6507 * s/sol2.h (REL_ALLOC_MMAP): Define.
6508 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
6509
6510 * ralloc.c: Don't include string.h (redundant).
6511 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
6512 [!MAP_ANON]: Include fcntl.h.
6513 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
6514 (r_alloc, r_re_alloc, r_alloc_free)
6515 (mmap_enlarge, mmap_set_vars): Use it.
6516 (r_alloc_init_fd): New function.
6517 (__morecore) [SYSTEM_MALLOC]: Don't declare.
6518 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
6519 malloc type.
6520
6521 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
6522 Remove vm-limit.o.
6523
6524 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
6525 change to __NetBSD__.
6526
6527 2000-09-08 Kenichi Handa <handa@etl.go.jp>
6528
6529 * search.c (compile_pattern): Check the multibyteness of cached
6530 string and PATTERN.
6531
6532 2000-09-08 Miles Bader <miles@gnu.org>
6533
6534 * xfaces.c (default_face_vector): Function removed.
6535 (Finternal_merge_in_global_face): Restore old global/local
6536 attribute override order. Use inline loop instead of calling
6537 default_face_vector.
6538
6539 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6540
6541 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
6542 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
6543 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
6544 where necessary, in case POINTER_TYPE is `void'.
6545
6546 2000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
6547
6548 * frame.c (make_terminal_frame): Initialize frame foreground and
6549 background colors to unspecified, for the initial instance of an
6550 MSDOS frame.
6551
6552 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6553
6554 * ralloc.c (mmap_find): Fix overlap computation.
6555 (mmap_enlarge): Compute nbytes before trying to find an
6556 overlapping region.
6557
6558 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
6559 instead of `!='.
6560
6561 * lread.c (syms_of_lread): Change value of regexp
6562 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
6563
6564 * xmenu.c (xdialog_show): When looking up the selection in
6565 menu_items, take `quote' boundaries into account; this corresponds
6566 to a nil ITEM in x-popup-dialog.
6567
6568 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6569
6570 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
6571 not 0x81.
6572 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
6573
6574 * coding.c (encode_coding_sjis_big5): Use translation table for
6575 encoding, not decoding. Fix the handling of latin-jisx0201.
6576 Check for the charset katakana-jisx0201 too.
6577 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
6578 (detect_coding_sjis): Check the byte sequence more rigidly.
6579
6580 2000-09-07 Gerd Moellmann <gerd@gnu.org>
6581
6582 * xfaces.c (Vparam_value_alist): New variable.
6583 (syms_of_xfaces): Initialize it.
6584 (Finternal_set_lisp_face_attribute): Avoid more consing.
6585
6586 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
6587 specially.
6588 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
6589 (Qbackground_mode): New variable.
6590 (syms_of_frame_1): Initialize Qbackground_mode.
6591
6592 * lisp.h (Qdisplay): Declare extern.
6593
6594 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
6595 change face on all frames, and change the default for new frames.
6596
6597 2000-09-07 Dave Love <fx@gnu.org>
6598
6599 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
6600
6601 2000-09-07 Kenichi Handa <handa@etl.go.jp>
6602
6603 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
6604
6605 * charset.c: Include composite.h
6606 (lisp_string_width): New function.
6607 (Fstring_width): Call lisp_string_width instead of strwidth.
6608
6609 * Makefile.in (charset.o): Depends on composite.h.
6610
6611 * process.c (read_process_output): Before inserting the decoded
6612 text in the buffer, adjust the multibyteness.
6613
6614 2000-09-06 Gerd Moellmann <gerd@gnu.org>
6615
6616 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
6617 buffer's text buffer is null, map new memory.
6618
6619 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
6620 POINTER_TYPE and size_t.
6621 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
6622 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
6623 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
6624 [REL_ALLOC_MMAP]: New macros.
6625 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
6626 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
6627 [REL_ALLOC_MMAP]: New functions.
6628
6629 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
6630 before and after unexec.
6631
6632 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
6633 text buffers if necessary.
6634
6635 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
6636 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
6637 in prototypes.
6638
6639 * config.in (HAVE_MMAP): Add #undef.
6640
6641 2000-09-05 Gerd Moellmann <gerd@gnu.org>
6642
6643 * frame.c (Qdisplay_type): New variable.
6644 (syms_of_frame_1): Initialize it.
6645 (Fframe_parameter): New function that avoids consing.
6646 (syms_of_frame): Defsubr it.
6647
6648 * buffer.c (Fother_buffer): Consider buffers as invisible when
6649 they are displayed in a window on an invisible frame.
6650
6651 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
6652 get-largest-window always return nil.
6653
6654 2000-09-04 Gerd Moellmann <gerd@gnu.org>
6655
6656 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
6657 variable; recognize Emacs 19 elc files.
6658
6659 2000-09-04 Miles Bader <miles@gnu.org>
6660
6661 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
6662 before initially popping up the menu, so the menu doesn't flash
6663 when the face settings are significantly different from the defaults.
6664
6665 2000-09-04 Stefan Monnier <monnier@cs.yale.edu>
6666
6667 * regex.c (WIDE_CHAR_SUPPORT): New macro.
6668 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
6669 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
6670 (BIT_UNIBYTE): Remove.
6671 (re_match_2_internal): Delete corresponding code and streamline the
6672 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
6673 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
6674 (re_wctype_t): New type.
6675 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
6676 (regex_compile): Use them and fix handling of overly long char classes.
6677
6678 2000-09-03 Andrew Innes <andrewi@gnu.org>
6679
6680 * makefile.w32-in: Change to DOS line endings.
6681
6682 * s/ms-w32.h (ORDINARY_LINK): New define.
6683
6684 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
6685 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
6686
6687 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
6688 (distclean): Delete them here instead.
6689
6690 * w32proc.c (compare_env): Convert to uppercase for comparison,
6691 not lowercase, to match how the native Windows shell works.
6692
6693 2000-09-03 Jason Rumney <jasonr@gnu.org>
6694
6695 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
6696 CVS changes the line-ends when checking in/out on DOS/Windows.
6697
6698 * makefile.nt (emacs): Do not change directory to run temacs, as
6699 the load-path is set relative to current directory.
6700
6701 2000-09-03 Miles Bader <miles@gnu.org>
6702
6703 * xterm.c (x_alloc_lighter_color_for_widget): New function.
6704
6705 2000-09-02 Gerd Moellmann <gerd@gnu.org>
6706
6707 * xdisp.c (redisplay_mode_lines): New function.
6708 (display_mode_lines): Return number of mode lines displayed.
6709 (echo_area_display): Use redisplay_mode_lines to draw garbaged
6710 mode lines. Don't temporarily bind redisplay-dont-pause to t.
6711
6712 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
6713 string.h and strings.h.
6714 (index) [HAVE_INDEX]: Add prototype.
6715
6716 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
6717 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
6718
6719 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
6720 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
6721
6722 2000-09-01 Gerd Moellmann <gerd@gnu.org>
6723
6724 * lread.c (read1): Accept `?' as symbol constituent, for
6725 compatiblity with XEmacs.
6726
6727 2000-08-31 Stefan Monnier <monnier@cs.yale.edu>
6728
6729 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
6730 (struct re_pattern_buffer): Remove newline_anchor.
6731 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
6732 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
6733 (re_max_failures, fail_stack): Use size_t rather than unsigned.
6734 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
6735 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
6736 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
6737 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
6738 Get rid of references to newline_anchor.
6739 (regcomp): Allocate and precompute a fastmap.
6740
6741 2000-08-31 Gerd Moellmann <gerd@gnu.org>
6742
6743 * lread.c (openp): GCPRO local variable `filename'.
6744
6745 2000-08-30 Stefan Monnier <monnier@cs.yale.edu>
6746
6747 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
6748
6749 * regex.c: Merge some changes from GNU libc. Add prototypes.
6750 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
6751 Use memcmp and memcpy instead of bcopy and bcmp.
6752 (init_syntax_once): Use ISALNUM.
6753 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
6754 (REG_UNSET_VALUE): Remove. Use NULL instead.
6755 (REG_UNSET, re_match_2_internal): Use NULL.
6756 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
6757 New macros.
6758 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
6759 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
6760 (regex_compile): In handle_interval, return an error rather than try to
6761 unfetch the interval if we can't find the closing brace.
6762 Obey the RE_NO_GNU_OPS syntax bit.
6763 (TOLOWER): New macro.
6764 (regcomp): Use it.
6765 (regexec): Allocate regs.start and regs.end as one block.
6766
6767 2000-08-30 Gerd Moellmann <gerd@gnu.org>
6768
6769 * xdisp.c (echo_area_display): Check display_completed instead
6770 of calling detect_input_pending.
6771
6772 * dispnew.c (update_frame): Only set display_completed here; move
6773 the update_begin and update_end calls here from update_frame_1.
6774 (update_frame_1): Don't set display_completed here, don't call
6775 update_begin/update_end.
6776
6777 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
6778 instead of store_frame_param.
6779
6780 2000-08-29 Gerd Moellmann <gerd@gnu.org>
6781
6782 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
6783 desired window matrix hasn't been displayed, use the current row
6784 instead. Make sure that only those frame rows are updated for
6785 which there exists a corresponding enabled desired row.
6786
6787 2000-08-29 Miles Bader <miles@gnu.org>
6788
6789 * xfaces.c (default_face_vector): New function.
6790 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
6791
6792 2000-08-29 Gerd Moellmann <gerd@gnu.org>
6793
6794 * lread.c (openp): Prevent temporary string passed to
6795 Ffile_readable_p from being garbage collected.
6796
6797 2000-08-28 Dave Love <fx@gnu.org>
6798
6799 * keymap.c (store_in_keymap): Add `static' to declaration.
6800
6801 2000-08-28 Gerd Moellmann <gerd@gnu.org>
6802
6803 * emacs.c, callint.c, doc.c, editfns.c
6804 (toplevel) [HAVE_STRING_H]: Include string.h.
6805 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
6806 (index): Remove prototypes which might conflict with non-standard
6807 definitions of index/strchr.
6808
6809 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
6810 (rindex): Define only if !HAVE_RINDEX.
6811
6812 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
6813
6814 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
6815
6816 2000-08-28 Miles Bader <miles@gnu.org>
6817
6818 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
6819 made inconsistent by a font-related attribute in FROM.
6820 (merge_face_inheritance): Add function comment.
6821
6822 2000-08-28 Kenichi Handa <handa@etl.go.jp>
6823
6824 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
6825 the 4th arg (PREV_EVENT) Qt to suppress input method.
6826
6827 2000-08-27 Stefan Monnier <monnier@cs.yale.edu>
6828
6829 * regex.c: Indent cpp directives and remove parens after `defined'.
6830 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
6831 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
6832 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
6833 (re_compile_pattern): Use size_t for length.
6834 (init_syntax_once): Move to a better place.
6835 * regex.h: Merge changes from GNU libc. Indent cpp directives.
6836 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
6837
6838 * syntax.c (back_comment): Detect cases where a comment-starter is
6839 actually inside another comment as in: /* a // b */ c // d \n.
6840 Make it clear that `comstart_pos' is unused for nested comments.
6841
6842 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
6843 (KEYMAPP): New macro.
6844 (Fkeymap_parent, Fset_keymap_parent): Use it.
6845 (fix_submap_inheritance): Mark it static.
6846 (define_as_prefix, describe_buffer_bindings, describe_command)
6847 (describe_translation, describe_map): Complete prototypes.
6848
6849 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
6850
6851 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
6852 to better match the key-lookup behavior.
6853
6854 2000-08-27 Gerd Moellmann <gerd@gnu.org>
6855
6856 * xfaces.c (lface_fully_specified_p): Handle :inherit.
6857 (Finternal_set_lisp_face_attribute): Fix typo in error message.
6858
6859 2000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
6860
6861 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
6862 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
6863 (xterm.o): Depend on coding.h
6864
6865 2000-08-26 Kenichi Handa <handa@etl.go.jp>
6866
6867 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
6868 the corresponding '#endif'.
6869
6870 2000-08-26 Miles Bader <miles@gnu.org>
6871
6872 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
6873 * xfaces.c (QCinherit): New variable.
6874 (syms_of_xfaces): Initialize it.
6875 (LFACE_INHERIT): New macro.
6876 (Finternal_get_lisp_face_attribute)
6877 (merge_face_vector_with_property)
6878 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
6879 (check_lface_attrs): Allow new types of face height. Check
6880 inherit attribute.
6881 (CYCLE_CHECK): New macro.
6882 (merge_face_inheritance): New function.
6883 (merge_face_vectors): Merge inherited faces too. Add F and
6884 CYCLE_CHECK arguments.
6885 (merge_face_vector_with_property, Finternal_merge_in_global_face)
6886 (lookup_named_face, lookup_derived_face, realize_named_face)
6887 (face_at_string_position, face_at_buffer_position): Supply
6888 new F and CYCLE_CHECK arguments to merge_face_vectors.
6889 (merge_face_heights): New function.
6890 (merge_face_vectors, merge_face_vector_with_property)
6891 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
6892 handle relative face heights.
6893 (lface_same_font_attributes_p): Compare heights using EQ.
6894
6895 2000-08-26 Kenichi Handa <handa@etl.go.jp>
6896
6897 * charset.c (char_to_string): Check the character validity.
6898 (char_valid_p): If C is not less than MAX_CHAR, be sure to return 0.
6899
6900 2000-08-25 Stefan Monnier <monnier@cs.yale.edu>
6901
6902 * regex.c (PUSH_FAILURE_COUNT): New macro.
6903 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
6904 Handle popping of a register's or a counter's data.
6905 (POP_FAILURE_POINT): Use the new name.
6906 (re_match_2_internal): Push counter data on the stack for succeed_n,
6907 jump_n and set_number_at and remove misleading dead code in succeed_n.
6908
6909 2000-08-25 Gerd Moellmann <gerd@gnu.org>
6910
6911 * xdisp.c (redisplay_internal): If considering all windows on all
6912 frames, update the display for each frame as soon as possible,
6913 instead of first building all desired matrices for all frames, and
6914 then updating them all.
6915 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
6916
6917 2000-08-24 Gerd Moellmann <gerd@gnu.org>
6918
6919 * bytecode.c (mark_byte_stack): Add a comment.
6920
6921 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
6922 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
6923 a graphical frame.
6924
6925 2000-08-24 Kenichi Handa <handa@etl.go.jp>
6926
6927 * minibuf.c (do_completion): Always use compare-string, not
6928 string-equal because the latter doesn't pay attention to
6929 multibyteness of strings.
6930
6931 * process.c (create_process): Don't setup raw-text coding here.
6932 (Fopen_network_stream): Don't set coding->src_multibyte and
6933 coding->dst_multibyte here.
6934 (read_process_output): For process filter, return unibyte string
6935 if default-enable-multibyte-characters is nil.
6936 (send_process): If OBJECT is multibyte text, be sure to encoded it
6937 by the specified coding system for the process. Otherwise, setup
6938 raw-text coding.
6939 (init_process): Don't initialize default-process-coding-system here.
6940
6941 2000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
6942
6943 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
6944 <scroll-down-aggressively>: Likewise.
6945
6946 2000-08-23 Kenichi Handa <handa@etl.go.jp>
6947
6948 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
6949 zero. Set coding->produced_char correctly.
6950
6951 2000-08-22 Andrew Innes <andrewi@gnu.org>
6952
6953 * makefile.w32-in: New file.
6954
6955 * unexw32.c (unexec): Ignore old_name, and use the actual location
6956 of the current executable instead. Base new_name on this.
6957
6958 * w32proc.c (create_child): Remove reference to security
6959 descriptor, which isn't needed and doesn't compile with mingw32.
6960
6961 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6962 up dllimport attributes.
6963 (x_update_window_end): Update prototype.
6964
6965 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
6966 extern, which screws up dllimport attributes.
6967
6968 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6969 up dllimport attributes.
6970
6971 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
6972 screws up dllimport attributes.
6973
6974 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6975 up dllimport attributes.
6976 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
6977 screws up dllimport attributes.
6978
6979 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6980 up dllimport attributes.
6981
6982 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
6983 screws up dllimport attributes.
6984
6985 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
6986 screws up dllimport attributes.
6987
6988 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6989 up dllimport attributes.
6990
6991 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
6992 unnecessary extern, which screws up dllimport attributes.
6993 (main): Ditto.
6994
6995 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
6996 up dllimport attributes.
6997
6998 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
6999 unnecessary extern, which screws up dllimport attributes.
7000
7001 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
7002 screws up dllimport attributes.
7003
7004 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
7005 up dllimport attributes.
7006
7007 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
7008
7009 * w32bdf.c (search_file_line):
7010 (set_bdf_font_info):
7011 (seek_char):
7012 (w32_get_bdf_glyph):
7013 (w32_BDF_to_x_font): Fix compile warnings.
7014
7015 * w32menu.c: Include keyboard.h before frame.h. Fix compile warnings.
7016
7017 * w32select.c: Include keyboard.h before frame.h.
7018
7019 * w32fns.c (max): Define macro.
7020 (JOHAB_CHARSET): Define if not known.
7021 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
7022 (Fx_show_tip): Synch with X version.
7023
7024 * w32xfns.c: Include keyboard.h before frame.h.
7025
7026 * w32fns.c: Include keyboard.h before frame.h.
7027
7028 * w32term.c: Include keyboard.h before frame.h.
7029
7030 * fontset.c: Include keyboard.h before frame.h.
7031
7032 * w32inevt.c: Include keyboard.h before frame.h.
7033 (MOUSE_MOVED): Define if not known.
7034
7035 * minibuf.c: Include keyboard.h before frame.h.
7036
7037 * keyboard.c: Include keyboard.h before frame.h.
7038
7039 * indent.c: Include keyboard.h before frame.h.
7040
7041 * dispnew.c: Include keyboard.h before frame.h.
7042
7043 * buffer.c: Include keyboard.h before frame.h.
7044
7045 * alloc.c: Include keyboard.h before frame.h.
7046
7047 * print.c: Include keyboard.h before frame.h.
7048
7049 * process.c: Include keyboard.h before frame.h.
7050
7051 * scroll.c: Include keyboard.h before frame.h.
7052
7053 * sysdep.c: Include keyboard.h before frame.h.
7054
7055 * term.c: Include keyboard.h before frame.h.
7056
7057 * window.c: Include keyboard.h before frame.h.
7058
7059 * xdisp.c: Include keyboard.h before frame.h.
7060 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
7061
7062 * frame.c: Include keyboard.h before frame.h.
7063
7064 * w32heap.h: Undefine min, max.
7065
7066 * w32gui.h: Undefine min, max.
7067
7068 * unexw32.c: Change PUCHAR to PCHAR.
7069 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
7070 (relocate_offset):
7071 (get_section_info):
7072 (copy_executable_and_dump_data): Remove unnecessary static defs.
7073 (copy_executable_and_dump_data): Fix compile warnings.
7074
7075 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
7076
7077 * w32console.c (min): Define macro.
7078 (clear_frame, write_glyphs): Fix compile warning.
7079
7080 * w32proc.c (compare_env):
7081 (find_child_console): Fix compile warning.
7082
7083 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
7084 sys_errlist instead of _sys_errlist.
7085 (get_emacs_configuration_options): New function.
7086
7087 * s/ms-w32.h (sys_nerr): Provide default definition.
7088 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
7089 name with _ prepended.
7090 (NSIG): Define if not known.
7091 (get_emacs_configuration): Provide extern declaration.
7092 (get_emacs_configuration_options): Provide extern declaration.
7093 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
7094
7095 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
7096 (map_w32_filename):
7097 (read_unc_volume): Fix compile warning.
7098
7099 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
7100 definitions from being used.
7101
7102 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
7103
7104 * w32.c (unc_volume_file_attributes):
7105 (open_unc_volume): Make arg const.
7106
7107 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
7108 (read_input_waiting): Remove excess parameter.
7109
7110 * w32.c (init_environment): Call _access.
7111 (check_windows_init_file): Call _close.
7112 (init_user_info): Call _putenv.
7113 (init_environment): Call _putenv and _strdup.
7114 (init_ntproc): Reset volume info cache on startup.
7115
7116 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
7117 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
7118 cannot override the CRT malloc.
7119
7120 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
7121 (LINK_FLAGS): Append to original value of LINK_FLAGS.
7122
7123 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
7124 unless we are linking with a static CRT.
7125 (RVA_TO_PTR): Cast result to unsigned char*.
7126
7127 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
7128 (add_volume_info): Use xstrdup.
7129
7130 2000-08-22 Stefan Monnier <monnier@cs.yale.edu>
7131
7132 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
7133 (do_completion, Fminibuffer_complete_word): Use it.
7134 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
7135 var so it can take non-boolean values.
7136
7137 2000-08-21 Gerd Moellmann <gerd@gnu.org>
7138
7139 * editfns.c (find_field): Formatting changes.
7140 (toplevel): Some old-style function forward declarations
7141 changed to prototypes, some new protypes added, some functions
7142 made static.
7143
7144 * lisp.h (set_time_zone_rule): Add prototype.
7145 (use_dialog_box): External declaration.
7146
7147 * keyboard.c (gen_help_event): Add parameter SIZE.
7148 (kbd_buffer_events_waiting): Slightly rewritten.
7149 (clear_event): New function.
7150 (kbd_buffer_get_event): Use it, and clear the input_events of
7151 HELP_EVENTs.
7152 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
7153 don't fill the newly created array with nils.
7154 (toplevel): Convert some old-style function forward declarations
7155 to prototypes.
7156
7157 * keyboard.h (gen_help_event): Change prototype.
7158
7159 * xterm.c (XTread_socket): Change calls to gen_help_event.
7160
7161 * w32term.c (w32_read_socket): Change calls to gen_help_event.
7162
7163 * eval.c (Fmacroexpand): Doc fix.
7164
7165 2000-08-20 Jason Rumney <jasonr@gnu.org>
7166
7167 * w32term.h (x_display_info_for_display): Remove as this function
7168 does not exist on W32.
7169
7170 * w32term.c (help_echo_window): New variable.
7171 (syms_of_w32term): staticpro it.
7172 (note_mode_line_highlight): Set it.
7173 (XTextExtents16): Removed as there is no equivalent on W32.
7174 (x_compute_glyph_string_overhangs): Incomplete body removed, as
7175 the X way of doing this will not work for W32.
7176 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
7177 (x_draw_image_foreground): Avoid drawing outside of the clip area
7178 when image doesn't have a mask.
7179 (note_mouse_highlight): Process overlays in the right order of
7180 priority. Set help_echo_window.
7181 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
7182 because that's more visible for large images.
7183
7184 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
7185 name to single_keymap_panes.
7186 (w32_menu_show): Set wv->title when dealing with titles.
7187 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
7188
7189 2000-08-21 Miles Bader <miles@gnu.org>
7190
7191 * minibuf.c (do_completion): Try again if we rewrite the input
7192 string, but no completion was done, so that any completion message
7193 will be correct.
7194
7195 2000-08-20 Gerd Moellmann <gerd@gnu.org>
7196
7197 * xfaces.c (lface_equal_p): Compare strings differently.
7198 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
7199 (realize_tty_face): Use them.
7200 (syms_of_xfaces): Initialize new variables.
7201 (map_tty_color): New function, extracted from realize_tty_face.
7202 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
7203 foreground or background color, store the new color name in the
7204 realized face; previous code trying to do this had no effect.
7205 (realize_tty_face): Use map_tty_color.
7206 (Fclear_face_cache): Set face_change_count and ensure thorough
7207 redisplay.
7208
7209 2000-08-19 Gerd Moellmann <gerd@gnu.org>
7210
7211 * undo.c (record_first_change, record_marker_adjustment): Don't
7212 use XBUFFER on last_undo_buffer which might not be a buffer.
7213
7214 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7215
7216 * coding.c (decode_coding_string): Set members consumed,
7217 consumed_char, produced, produced_char of *coding correctly. If
7218 decode_coding doesn't consume any byte, don't try anymore.
7219 (encode_coding_string): Likewise.
7220
7221 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7222
7223 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
7224 conditional have void type, for Standard C compilers.
7225
7226 * xdisp.c (redisplay_internal): Compare windows for equality with
7227 EQ, instead of applying XWINDOW to something that might not
7228 be a window.
7229
7230 2000-08-18 Kenichi Handa <handa@etl.go.jp>
7231
7232 * fontset.c (Finternal_char_font): Search only the selected frame
7233 for a window of the current buffer.
7234
7235 2000-08-18 Gerd Moellmann <gerd@gnu.org>
7236
7237 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
7238 Lisp_Objects.
7239
7240 * keyboard.c (kbd_buffer_get_event): Handle the case that the
7241 second half of a HELP_EVENT is found at the start of kbd_buffer.
7242
7243 2000-08-18 Miles Bader <miles@gnu.org>
7244
7245 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
7246
7247 * editfns.c (save_restriction_save): Rewrite to use markers.
7248 (save_restriction_restore): Rewrite to understand new form of data
7249 saved by save_restriction_save.
7250 (Fsave_restriction): Remove cautionary note in doc-string.
7251
7252 2000-08-17 Gerd Moellmann <gerd@gnu.org>
7253
7254 * fileio.c (build_annotations): Add a comment explaining the
7255 return value of format-annotate-function. Replace a spurious call
7256 to Flength with a CONSP test. Call format-annotate-function with
7257 a fifth arg specifying how many times the function is been called
7258 in a row, to let it choose temporary buffers appropriately.
7259
7260 2000-08-17 Dave Love <fx@gnu.org>
7261
7262 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
7263 declare make_temp_name twice.
7264
7265 * lread.c: Prototype readevalloop, load_unwind, load_descriptor_unwind.
7266 (unreadpure): Give it an arg.
7267
7268 * unexalpha.c: Prototype fatal_unexec, mark_x,
7269 update_dynamic_symbols. Declare unexec as void.
7270
7271 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
7272 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
7273
7274 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
7275 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on DOUG_LEA_MALLOC.
7276
7277 * alloca.c: Use #error.
7278 [POINTER_TYPE]: Use it.
7279
7280 * eval.c (Fdefvar): Doc fix.
7281
7282 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
7283 INITIALIZE_INTERVAL.
7284
7285 * buffer.h: Avoid DECLARE_INTERVALS.
7286
7287 * config.in: Add size_t.
7288
7289 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
7290
7291 * w16select.c (set_clipboard_data): If there's not enough memory
7292 to put text into clipboard, return 1, as Fw16_set_clipboard_data
7293 expects. In case of other failures, return 3.
7294 (system_error_msg): New error message.
7295 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
7296 system_error_msg.
7297
7298 2000-08-16 Gerd Moellmann <gerd@gnu.org>
7299
7300 * term.c (write_glyphs): Also turn off inverse video after turning
7301 off other appearances in case TS_exit_attribute_mode is not equal
7302 to TS_end_standout_mode.
7303 (insert_glyphs): Turn inverse video on/off for each run of glyphs
7304 with the same face.
7305 (turn_off_face): Reset standout_mode only if
7306 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
7307 is equal to TS_end_standout_mode.
7308
7309 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7310
7311 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
7312 sequence at the end of the source block.
7313
7314 * ccl.c (Fccl_program_p): Docstring modified.
7315 (Fccl_execute): Likewise.
7316 (Fccl_execute_on_string): Likewise.
7317
7318 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
7319
7320 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
7321
7322 2000-08-16 Kenichi Handa <handa@etl.go.jp>
7323
7324 The following changes are mainly to fix bugs of
7325 encode/decode-coding-string failing if encoding/decoding return
7326 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
7327 variable conversion_buffer.
7328
7329 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
7330 decrement dst_end to avoid buffer overflow in the later call of
7331 string_as_multibyte
7332
7333 * coding.h (conversion_buffer_size, conversion_buffer)
7334 (get_conversion_buffer): Extern deleted.
7335
7336 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
7337 (conversion_buffer, conversion_buffer_size): Variables deleted.
7338 (get_conversion_buffer): Function deleted.
7339 (struct conversion_buffer): New structure.
7340 (MAX_ALLOCA): New macro.
7341 (allocate_conversion_buffer): New macro.
7342 (extend_conversion_buffer, free_conversion_buffer): New functions.
7343 (ccl_coding_driver): Set coding->result.
7344 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
7345 this is the last block of source.
7346 (encode_coding): Likewise. Handle the source block as the last
7347 one only when the whole source text is consumed.
7348 (decode_coding_string): Handle the case that the output buffer is
7349 too small to decode the whole source text. Use
7350 allocate_conversion_buffer, extend_conversion_buffer and
7351 free_conversion_buffer, not get_conversion_buffer.
7352 (encode_coding_string): Likewise.
7353 (init_coding): Function deleted.
7354 (init_coding_once): Delete code to initialize conversion_buffer_size.
7355
7356 * emacs.c (main): Don't call init_coding.
7357
7358 * msdos.c (IT_write_glyphs): Use a locally declared conversion_buffer.
7359
7360 * term.c (write_glyphs): Use a locally declared conversion_buffer.
7361 (insert_glyphs): Likewise.
7362
7363 * w32console.c (write_glyphs): Use a locally declared
7364 conversion_buffer.
7365
7366 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
7367
7368 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
7369 member of display_info is NULL.
7370
7371 2000-08-15 Gerd Moellmann <gerd@gnu.org>
7372
7373 * alloc.c (compact_small_strings): Use safe_bcopy, add an assertion.
7374
7375 * term.c (turn_off_face): Reset standout_mode when resetting
7376 appearances with capability `me'.
7377 (write_glyphs): Switch on inverse video before each face change.
7378
7379 2000-08-14 Dave Love <fx@gnu.org>
7380
7381 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
7382 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
7383 (lisp_free): Declare and make static.
7384
7385 * window.c: Fix embedded comment.
7386 (syms_of_window): Fix doc string.
7387
7388 2000-08-14 Gerd Moellmann <gerd@gnu.org>
7389
7390 * keymap.c (push_key_description): If C without modifiers is < 32,
7391 make sure to print `C-' before `M-', like in the manual.
7392
7393 2000-08-11 Gerd Moellmann <gerd@gnu.org>
7394
7395 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
7396 since they aren't relocated anymore.
7397 (sxhash_string): Make sure returned hash code fits in a Lisp integer.
7398
7399 * xdisp.c (try_cursor_movement): Fix handling of cursor in
7400 partially visible line which is smaller than the window's height.
7401
7402 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7403
7404 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
7405 the multibyte form of eight-bit-control characters.
7406 (Fccl_execute_on_string): Initialize ccl->multibyte.
7407
7408 * ccl.h (struct ccl_program): New member multibyte.
7409
7410 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
7411
7412 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7413
7414 * regex.c (regex_compile) <normal_char>: Pay attention to
7415 multibyteness.
7416 (analyse_first) <exactn>: Setup fastmap correctly for
7417 eight-bit-control characters.
7418
7419 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7420
7421 * termhooks.h (enum event_kind): New member multibyte_char_keystroke.
7422
7423 * keyboard.c (make_lispy_event): Handle the new event type
7424 multibyte_char_keystroke.
7425
7426 * xterm.c: Include coding.h.
7427 (XTread_socket): Work around a bug of XmbLookupString. If the
7428 input is from XIM, decode it according to the current locale. In
7429 that case, generate multibyte_char_keystroke events.
7430
7431 2000-08-11 Kenichi Handa <handa@etl.go.jp>
7432
7433 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
7434 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
7435
7436 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7437
7438 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
7439 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
7440 (move_it_in_display_line_to): Record iterator's ascent and descent
7441 before producing glyphs, and restore them when we know the glyph
7442 doesn't fit on the line.
7443 (move_it_to): Restructured so that it's easier to debug. If
7444 moving to a vpos, and not moving to an x or character position,
7445 stop as soon as the specified vpos is reached; don't move further
7446 into that line because that might change the computed line height.
7447 (try_cursor_movement): New function, extracted from the cursor
7448 movement branch of redisplay_window. If ending on a partially
7449 visible line, don't try to scroll if the cursor line is taller
7450 than the window.
7451 (redisplay_window): Use try_cursor_movement.
7452
7453 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
7454 because that function doesn't cope with variable-height lines.
7455
7456 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
7457 box cursor because that's better visible for large images.
7458
7459 2000-08-10 Miles Bader <miles@gnu.org>
7460
7461 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
7462
7463 2000-08-10 Gerd Moellmann <gerd@gnu.org>
7464
7465 * xdisp.c (Vmessages_buffer_name): New variable.
7466 (message_dolog): Use it.
7467 (syms_of_xdisp): Initialize it.
7468
7469 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
7470
7471 * msdos.c (IT_note_mouse_highlight): Update the calls to overlays_at.
7472 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
7473 redundant now that keyboard.h is included.
7474
7475 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
7476
7477 * keyboard.c (kbd_buffer_events_waiting): New function.
7478
7479 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
7480
7481 * msdos.c: Include keyboard.h.
7482 (XMenuActivate): Empty no_event events from the event buffer. If
7483 no events are left after that, call clear_input_pending.
7484 (mouse_clear_clicks): New function, code moved from mouse_init.
7485 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
7486 mouse driver to ``forget'' any past clicks.
7487
7488 * Makefile.in (msdos.o): Depend on keyboard.h.
7489
7490 2000-08-09 Gerd Moellmann <gerd@gnu.org>
7491
7492 * lisp.h (input_pending): External declaration.
7493
7494 * dispextern.h (Qredisplay_dont_pause): Declare extern.
7495
7496 * xdisp.c (echo_area_display): Display thoroughly if input is
7497 pending. Bind redisplay-dont-pause to t during the redisplay.
7498 in case input is pending.
7499
7500 * dispnew.c (Qredisplay_dont_pause): New variable.
7501 (syms_of_display): Initialize and staticpro it.
7502 (update_frame_1): Don't interrupt the display for pending input if
7503 redisplay_dont_pause is set.
7504
7505 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
7506
7507 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
7508
7509 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
7510
7511 * callproc.c (Fcall_process): Terminate the unwind-protect around
7512 the post-read-conversion of coding system.
7513
7514 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
7515 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
7516 * buffer.h (overlays_at): Update prototype.
7517 * xdisp.c (next_overlay_change): Update call to overlays_at.
7518 * xfaces.c (face_at_buffer_position): Likewise.
7519 * textprop.c (Fget_char_property): Likewise.
7520 * xterm.c (note_mouse_highlight): Likewise.
7521
7522 * minibuf.c (do_completion): Don't consider a simple change of
7523 case as `completion'.
7524
7525 2000-08-08 Ken Raeburn <raeburn@gnu.org>
7526
7527 * keyboard.c (syms_of_keyboard): Initialize last_point_position_buffer.
7528 * undo.c (record_delete): Make sure last_point_position_buffer is
7529 a buffer before comparing pointers.
7530
7531 * coding.h (decode_coding_string): Declare.
7532
7533 * intervals.h (Fprevious_single_char_property_change): Declare.
7534
7535 * textprop.c (Fprevious_single_char_property_change): Don't do
7536 arithmetic directly on lisp objects.
7537
7538 * editfns.c (find_field): Use EQ, not ==, to compare Lisp objects.
7539
7540 * keyboard.h (menu_item_eval_property): Declare.
7541
7542 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
7543 reuse as buffer name, instead of recreating (and discarding) every
7544 time a message is logged.
7545 (with_echo_area_buffer): Make callback arg A2 a lisp object.
7546 (current_message_1, truncate_message_1, set_message_1)
7547 (display_echo_area_1, resize_mini_window_1): Signatures changed.
7548 (current_message, truncate_echo_area, display_echo_area)
7549 (resize_echo_area_axactly): Changed calls.
7550
7551 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
7552 Lisp object.
7553 (Ffind_coding_systems_region_internal): First argument to Fappend
7554 must be an integer, not a Lisp object.
7555
7556 2000-08-08 Kenichi Handa <handa@etl.go.jp>
7557
7558 * charset.c (Fchar_width): Doc fix.
7559
7560 2000-08-08 Gerd Moellmann <gerd@gnu.org>
7561
7562 * charset.c (Fstring_width): Doc fix.
7563
7564 2000-08-07 Gerd Moellmann <gerd@gnu.org>
7565
7566 * xdisp.c (start_display): When starting display on a continuation
7567 line, clear ascent and descent members of the iterator structure;
7568 the height of the continued line does not affect the height of the
7569 continuation line.
7570 (make_cursor_line_fully_visible): Do nothing if cursor is on a
7571 line taller than the window.
7572 (redisplay_window) <forced window start>: Handle case that the
7573 middle of the window is not found in any row.
7574 (dump_glyph_row): Show more information.
7575 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
7576 first text line in a glyph matrix.
7577
7578 * xterm.c (x_draw_image_foreground): Avoid drawing outside
7579 of the clip area when image doesn't have a mask.
7580
7581 * fns.c (sweep_weak_table): Fix survival conditions for
7582 key-or-value and key-and-value weakness.
7583
7584 * .gdbinit (xhashtable): New command.
7585
7586 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
7587 tables out of the list of all weak hash tables.
7588
7589 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
7590 a new buffer is created, make sure echo_area_buffer[] references
7591 the new buffer.
7592
7593 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
7594
7595 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
7596 the doc string.
7597
7598 2000-08-07 Kenichi Handa <handa@etl.go.jp>
7599
7600 * syntax.c (skip_chars): Fix previous change. Make the handling
7601 of unibyte string consistent with that of regex search.
7602
7603 2000-08-05 Gerd Moellmann <gerd@gnu.org>
7604
7605 * xmenu.c (popup_get_selection): Use xfree instead of free.
7606
7607 * fileio.c (Finsert_file_contents): Use xfree instead of free.
7608
7609 * editfns.c (Ftranspose_regions): Use xfree instead of free.
7610
7611 * callproc.c (child_setup): Use xfree instead of free.
7612
7613 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
7614 instead of malloc.
7615 (run_mac_command, closedir): Use `xfree' instead of `free'.
7616
7617 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
7618
7619 * eval.c (error): Use xfree instead of free.
7620
7621 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
7622
7623 * fns.c: Replace `illegal' with `invalid'.
7624 (Fmake_hash_table, make_hash_table): Allow table size of 0.
7625
7626 2000-08-05 Kenichi Handa <handa@etl.go.jp>
7627
7628 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
7629 conversion.
7630
7631 2000-08-04 Noah Friedman <friedman@splode.com>
7632
7633 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
7634 docstring.
7635
7636 2000-08-04 Gerd Moellmann <gerd@gnu.org>
7637
7638 * syntax.c (skip_chars): Fix typo in error message.
7639
7640 2000-08-04 Andreas Schwab <schwab@suse.de>
7641
7642 * m/ia64.h: Moved from s/ia64.h.
7643
7644 2000-08-04 Kenichi Handa <handa@etl.go.jp>
7645
7646 * process.c (read_process_output): Big simplification. Handle
7647 composition and post-read-conversion of coding system correctly.
7648 (send_process): Handle composition correctly.
7649
7650 * callproc.c (Fcall_process): Handle post-read-conversion of
7651 coding system if any.
7652
7653 * coding.c (decode_coding_iso2022): More strict check for handling
7654 single shifting.
7655 (coding_restore_composition): Pay attention to the case that
7656 cmp_data is not set properly (because of invalid code in the
7657 source text).
7658 (run_pre_post_conversion_on_str): Include text properties in the
7659 resulting string.
7660 (decode_coding_string): Set members of coding correctly.
7661
7662 2000-08-03 Gerd Moellmann <gerd@gnu.org>
7663
7664 * s/ia64.h: New file.
7665
7666 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
7667 Use NULL instead of 0 at the end of variable argument list of
7668 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
7669 sizeof (int) < sizeof (void *).
7670
7671 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
7672 of variable argument lists of XtVaGetValues and XtVaSetValues.
7673
7674 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
7675 variable argument lists of XtVaGetValues and XtVaSetValues.
7676
7677 2000-08-02 Gerd Moellmann <gerd@gnu.org>
7678
7679 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
7680 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
7681
7682 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
7683 prototype.
7684
7685 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
7686 in call to Fsingle_key_description.
7687
7688 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
7689 Callers changed.
7690
7691 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
7692
7693 * window.c (display_buffer_reuse_frames): New variable.
7694 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
7695 frames displaying BUFFER.
7696 (syms_of_window): Define Lisp variable display-buffer-reuse-frames.
7697
7698 2000-08-01 Miles Bader <miles@gnu.org>
7699
7700 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
7701 when to constrain NEW_POS (they were pretty screwed up before).
7702
7703 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
7704
7705 * msdos.c (run_msdos_command): Save and restore the master
7706 environment, for the case that child_setup signals an error.
7707 When mirroring slashes in DOS shell commands, don't fail when
7708 argv[2] has embedded blanks.
7709 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
7710 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
7711 (dos_ttraw): Call mouse_setup_buttons.
7712
7713 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
7714 using alloca; free it after run_msdos_command returns.
7715
7716 2000-07-27 Dave Love <fx@gnu.org>
7717
7718 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't define.
7719 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently working.
7720
7721 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
7722
7723 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
7724
7725 * editfns.c (lisp_time_argument): Fix last change.
7726
7727 2000-07-27 Gerd Moellmann <gerd@gnu.org>
7728
7729 * fns.c (Fdelete): Make it work on vectors and strings in addition
7730 to lists.
7731
7732 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
7733 (syms_of_fns): Initialize new variables.
7734 (sweep_weak_table): Handle weakness `key-or-value' and `key-and-value'.
7735 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
7736 weakness, with t meaning the same as `key-and-value'.
7737
7738 2000-07-27 Kenichi Handa <handa@etl.go.jp>
7739
7740 * coding.h (struct coding_system): Member safe_charset deleted.
7741
7742 * coding.c (Qsafe_charsets): This variable deleted.
7743 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system):
7744 New variables.
7745 (coding_safe_chars): New function.
7746 (CODING_SAFE_CHAR_P): New macro.
7747 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
7748 checking safe_charsets member of the coding system. Caller changed.
7749 (detect_coding_iso2022): New local variable safe_chars.
7750 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
7751 safe_charsets member of the coding system.
7752 (decode_coding_iso2022): New local variable safe_chars.
7753 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
7754 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
7755 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
7756 (ENCODE_UNSAFE_CHARACTER): New macro.
7757 (encode_coding_iso2022): New local variable safe_chars. Check
7758 unsafe chars.
7759 (setup_coding_system): Delete the code to initialize
7760 coding->safe_charses
7761 (intersection, find_safe_codings): New functions.
7762 (Ffind_coding_systems_region_internal): New function.
7763 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
7764 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
7765 variable and initialize it.
7766
7767 * fns.c (char_table_ref_and_index): New function.
7768
7769 * lisp.h (char_table_ref_and_index): Add prototype.
7770
7771 2000-07-26 Sam Steingold <sds@gnu.org>
7772
7773 * editfns.c (lisp_time_argument): Added third argument `usec'.
7774 (Ffloat_time): New built-in Lisp function.
7775
7776 2000-07-26 Gerd Moellmann <gerd@gnu.org>
7777
7778 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
7779 for the character code.
7780
7781 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
7782 GNU/Linux.
7783
7784 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
7785 if called for a popup menu.
7786 (xmenu_show): Store help string in widget values.
7787
7788 2000-07-26 Dave Love <fx@gnu.org>
7789
7790 * syswait.h: Move some definitions.
7791 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
7792 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
7793 perspicuous definitions.
7794 (WTERMSIG): Fix bit pattern used.
7795
7796 2000-07-26 Kenichi Handa <handa@etl.go.jp>
7797
7798 * print.c (print_object): If vector printing is truncated, print
7799 "..." to indicate it as well as the case of list printing.
7800
7801 2000-07-25 Gerd Moellmann <gerd@gnu.org>
7802
7803 * xdisp.c (next_element_from_display_vector): Improve comments.
7804
7805 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
7806 for the character code, and the rest for the face id as in 20.x.
7807 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
7808
7809 * window.c (window_display_table): Cleaned up.
7810
7811 * syntax.c (Fforward_word): Add last arg nil in call of
7812 Fconstrain_to_field.
7813
7814 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
7815
7816 * fileio.c (Frename_file) [DOS_NT]: If the file names are
7817 identical but for the letter-case, don't call
7818 barf_or_query_if_file_exists.
7819
7820 2000-07-25 Miles Bader <miles@gnu.org>
7821
7822 * editfns.c (find_field): Honor special `boundary' fields.
7823 (Qboundary): New variables.
7824 (syms_of_editfns): Initialize Qboundary.
7825 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
7826 Use scan_buffer instead of find_before_next_newline, because it
7827 allows us to detect the boundary case where there's a newline at
7828 the search limit.
7829 * lisp.h (Fconstrain_to_field): Update external declaration.
7830
7831 2000-07-24 Gerd Moellmann <gerd@gnu.org>
7832
7833 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
7834 if that is nil.
7835
7836 2000-07-24 Dave Love <fx@gnu.org>
7837
7838 * s/sunos4-0.h, s/sol2.h:
7839 (LIBS_TERMCAP): Move from m/sparc.h.
7840
7841 * m/sparc.h (TERMINFO): Moved to system files (probably only
7842 relevant for sunos4 judging by its vintage).
7843 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
7844 __arch64__.
7845
7846 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
7847
7848 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
7849 name to single_keymap_panes.
7850
7851 2000-07-24 Andreas Schwab <schwab@suse.de>
7852
7853 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
7854
7855 2000-07-24 Gerd Moellmann <gerd@gnu.org>
7856
7857 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
7858 parameters instead of using int parameters. Expect FN to accept
7859 EMACS_INT parameters.
7860 (display_echo_area, resize_echo_area_axactly, current_message)
7861 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
7862 with new argument list.
7863 (resize_mini_window_1): New callback function.
7864 (current_message_1, truncate_message_1, set_message_1): Change
7865 parameter lists to the new format expected by with_echo_area_buffer.
7866
7867 2000-07-24 Kenichi Handa <handa@etl.go.jp>
7868
7869 * fontset.c (fontset_ref): Remove INLINE declaration.
7870 (fontset_ref_via_base): Likewise.
7871 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
7872 to downcase.
7873
7874 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
7875
7876 * msdos.c (IT_note_mouse_highlight): Process overlays in the
7877 correct order of priority. If help echo was found in an overlay,
7878 use that overlay as the object in which the help echo was found.
7879
7880 2000-07-22 Miles Bader <miles@gnu.org>
7881
7882 * textprop.c (Fprevious_single_char_property_change): The initial
7883 property value should be from the position preceding POSITION, not
7884 following it.
7885
7886 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
7887
7888 * coding.c (syms_of_coding): Doc fix for
7889 inhibit-iso-escape-detection.
7890
7891 2000-07-21 Gerd Moellmann <gerd@gnu.org>
7892
7893 * xterm.c (note_mouse_highlight): Process overlays in the right
7894 order of priority.
7895
7896 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
7897
7898 * xterm.c (note_mouse_highlight): If help-echo was found in an
7899 overlay, use that overlay as the object in which the help was found.
7900
7901 * window.c (foreach_window_1): Fix typo reversing an if-condition.
7902
7903 * window.c (foreach_window): Instead of a fake variable argument
7904 list, take one USER_DATA argument.
7905 (foreach_window_1): Likewise, and call callback functions with two
7906 args, the window and USER_DATA.
7907 (struct check_window_data): New struct.
7908 (check_window_containing): Use it.
7909 (window_from_coordinates): Set up a struct check_window_data for
7910 foreach_window.
7911 (add_window_to_list, freeze_window_start): Change parameters
7912 according to new calling convention.
7913
7914 * window.h (foreach_window): Change prototype.
7915
7916 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
7917
7918 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
7919
7920 * xmenu.c (menu_help_callback): Call show_help_echo with
7921 additional arguments OBJECT and POS.
7922
7923 2000-07-21 Kenichi Handa <handa@etl.go.jp>
7924
7925 * data.c (Faset): Allow storing any multibyte character in a
7926 string. Convert unibyte string to multibyte if necessary.
7927
7928 * xfns.c (x_encode_text): New function.
7929 (x_set_name): Use x_encode_text.
7930 (x_set_title): Likewise.
7931
7932 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
7933
7934 * xterm.h (x_encode_text): Add prototype.
7935
7936 2000-07-20 Dave Love <fx@gnu.org>
7937
7938 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
7939 xfree, not free.
7940
7941 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
7942
7943 * msdos.c (help_echo_window): New variable.
7944 (syms_of_msdos): Initialize and staticpro it.
7945 (IT_note_mode_line_highlight): Set help_echo_window.
7946 (IT_note_mouse_highlight): Ditto.
7947 (dos_rawgetc): Store help_echo_window in the second event produced
7948 for HELP_EVENTs.
7949
7950 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
7951 Record the object that generated the help echo and the position of
7952 that object in help_echo_object and help_echo_pos. Record that
7953 some glyphs in a row are displayed in mouse-face.
7954 (IT_update_begin): Don't clear mouse highlight unless one of the
7955 enabled glyph rows is marked as being displayed in mouse-face.
7956 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
7957 and position recorded in help_echo_object and help_echo_pos to the
7958 event queue.
7959 (IT_menu_display): Accept a new argument PN: the pane number of
7960 the current menu pane. Record the pane number and the item
7961 number of the item which has associated help string.
7962 (XMenuActivate): Update the prototype for help_callback in
7963 function declaration. Call IT_menu_display with the current menu
7964 pane number as an additional argument. Call help_callback with
7965 two additional arguments: the pane number and the item number of
7966 the menu item associated with the help text.
7967 (help_echo_object, help_echo_pos): New variables.
7968 (syms_of_msdos): Initialize them and staticpro help_echo_object.
7969
7970 * msdos.h (XMenuActivate): Update prototype.
7971
7972 2000-07-19 Gerd Moellmann <gerd@gnu.org>
7973
7974 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
7975 Add some more prototypes.
7976
7977 * xterm.c, xterm.h: Add some more prototypes.
7978
7979 * lisp.h (Fnext_single_char_property_change): Add prototype.
7980
7981 * dispnew.c (direct_output_for_insert): Remove confusing
7982 outer local variable mouse_face_overwritten_p.
7983 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
7984
7985 * alloc.c (allocate_string_data): Don't copy old string contents.
7986
7987 2000-07-19 Kenichi Handa <handa@etl.go.jp>
7988
7989 * coding.c (code_convert_region): Delete text properties before
7990 shrinking the conversion region.
7991
7992 2000-07-18 Gerd Moellmann <gerd@gnu.org>
7993
7994 * dispnew.c (update_text_area): Write the whole row if it
7995 has mouse-face in it.
7996
7997 * xfaces.c (face-alternative-font-family-alist): Remove
7998 DEFVAR_LISP; staticpro instead.
7999
8000 * xmenu.c (menu_help_callback): Call show_help_echo with
8001 new arguments.
8002
8003 * keyboard.c (show_help_echo): Add parameter WINDOW.
8004 (read_char): Call show_help_echo with window extracted from Lisp
8005 help event.
8006 (gen_help_event): Add parameter WINDOW.
8007
8008 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
8009
8010 * xterm.c (help_echo_window): New variable.
8011 (note_mouse_highlight, note_tool_bar_highlight): Set help_echo_window.
8012 (XTread_socket): Pass help_echo_window to gen_help_event.
8013 (syms_of_xterm): Initialize and staticpro help_echo_window.
8014
8015 2000-07-18 Dave Love <fx@gnu.org>
8016
8017 * Makefile.in: Fix dependencies of blockinput.h on atimer.h, systime.h.
8018
8019 2000-07-18 Gerd Moellmann <gerd@gnu.org>
8020
8021 * alloc.c (allocate_string_data): If string had already data
8022 assigned, copy old contents to new string data.
8023
8024 * coding.c (syms_of_coding): Fix typo in spelling of variable
8025 `inhibit-iso-escape-detection'.
8026
8027 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
8028
8029 * Makefile.in: Add dependencies on dispextern.h.
8030 (alloca.o): Don't define malloc and define EMACS_FREE instead of
8031 `free'; both can conflict with system header files.
8032
8033 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8034
8035 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
8036 undefined.
8037
8038 2000-07-18 Dave Love <fx@gnu.org>
8039
8040 * window.c (Fwindow_list): Declare arg `window'.
8041
8042 2000-07-18 Kenichi Handa <handa@etl.go.jp>
8043
8044 * coding.c (setup_coding_system): Don't override the explicitly
8045 specified designations.
8046
8047 2000-07-15 Miles Bader <miles@gnu.org>
8048
8049 * editfns.c (char_property_eq, char_property_stickiness): Renamed
8050 from `text_property_eq' and `text_property_stickiness', respectively.
8051 (find_field, Fconstrain_to_field, char_property_eq)
8052 (char_property_stickiness): Changed to call char-property functions
8053 instead of text-property-only ones.
8054
8055 * textprop.c (Fnext_single_char_property_change): Made a subr (was
8056 `next_single_char_property_change'). Do more error checking, and
8057 cleanup limit behavior.
8058 (Fprevious_single_char_property_change): New function.
8059 (syms_of_textprop): Initialize new subrs.
8060
8061 * xdisp.c (display_prop_end, invisible_text_between_p):
8062 Call Fnext_single_char_property_change instead of
8063 next_single_char_property_change.
8064
8065 2000-07-15 Jason Rumney <jasonr@gnu.org>
8066
8067 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
8068 after menu is finished with.
8069 (add_menu_item): Only consider wv->title as a menu title.
8070 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
8071
8072 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
8073 null title.
8074 (FONT_REGEXP): Remove unused macro, and its sub-components.
8075 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
8076
8077 * w32term.c (help_echo_object, help_echo_pos): New variables.
8078 (note_mode_line_highlight): Store additional information about the
8079 help-echo in help_echo_object and help_echo_pos. Check both
8080 `local-map' and `keymap' properties for changing the cursor
8081 (note_mouse_highlight): Store additional information about the
8082 help-echo in help_echo_object and help_echo_pos.
8083 (note_tool_bar_highlight): Set help_echo_object to nil and
8084 help_echo_pos to -1.
8085 (w32_read_socket): Use gen_help_event instead of filling
8086 input_events manually.
8087 (syms_of_w32term): Staticpro help_echo_object.
8088 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
8089 set, arrange for a mouse-highlight redisplay in XTframe_up_to_date.
8090 (x_clear_mouse_face): New function.
8091 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
8092 (x_update_window_begin): No need to turn off the mouse
8093 highlight here.
8094 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8095 depending on whether they contain glyphs highlighted in mouse-face.
8096 (x_fill_stretch_glyph_string): Consume runs of stretch
8097 glyphs instead of a single one.
8098 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8099 with new argument list.
8100 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8101 (x_append_glyph, x_append_composite_glyph)
8102 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8103 changes in struct glyph starting 1999-12-27. See comments for
8104 xterm.c on 2000-07-05.
8105
8106 2000-07-14 Sam Steingold <sds@gnu.org>
8107
8108 * xfaces.c (realize_x_face): Fix the last patch:
8109 check `default_face' before dereferencing.
8110
8111 2000-07-14 Dave Love <fx@gnu.org>
8112
8113 * syntax.c (back_comment): Add null default in switch (for pcc).
8114
8115 2000-07-14 Kenichi Handa <handa@etl.go.jp>
8116
8117 * xfaces.c (realize_x_face): Make fontset using the base of the
8118 default_face's fontset, not using the default fontset.
8119
8120 * coding.c (inhibit_iso_escape_detection): New variable.
8121 (syms_of_coding): Make it a Lisp variable.
8122 (detect_coding_iso2022): If inhibit_iso_escape_detection is
8123 nonzero, ignore ISO2022's escape sequence.
8124
8125 2000-07-14 Gerd Moellmann <gerd@gnu.org>
8126
8127 * alloca.c (malloc) [emacs]: Define as xmalloc.
8128
8129 * xfns.c (Fx_show_tip): If frame parameters contain a position,
8130 use that instead of the mouse position. Add parameters DX and DY.
8131
8132 * dispextern.h (Fx_show_tip): Adjust number of parameters
8133 in prototype.
8134
8135 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
8136 if HELP is a function, call it with OBJECT and POS as parameters
8137 to get the help to display.
8138 (gen_help_event, kbd_buffer_store_help_event): New functions.
8139 (kbd_buffer_get_event): Construct the Lisp help-event differently.
8140 (read_char): Call show_help_echo with new parameters.
8141
8142 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
8143 Add prototypes.
8144
8145 * xterm.c (help_echo_object, help_echo_pos): New variables.
8146 (note_mode_line_highlight): Store additional information about the
8147 help-echo in help_echo_object and help_echo_pos. Check both
8148 `local-map' and `keymap' properties for changing the cursor
8149 (note_mouse_highlight): Store additional information about the
8150 help-echo in help_echo_object and help_echo_pos.
8151 (note_tool_bar_highlight): Set help_echo_object to nil and
8152 help_echo_pos to -1.
8153 (XTread_socket): Use gen_help_event instead of filling
8154 input_events manually.
8155 (syms_of_xterm): Staticpro help_echo_object.
8156
8157 * xmenu.c (menu_highlight_callback): Use
8158 kbd_buffer_store_help_event instead of setting up and input_event
8159 structure manually.
8160
8161 * xdisp.c (eval_form): GCPRO argument sexpr.
8162 (call_function): New function.
8163 (handle_single_display_prop): Use call_function and FUNCTIONP
8164 instead of checking whether if font_height is a symbol and
8165 using eval_form.
8166
8167 * eval.c (internal_condition_case_2): New function.
8168
8169 * lisp.h (FUNCTIONP): New macro.
8170 (internal_condition_case_2, call_function): Add prototypes.
8171
8172 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
8173 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
8174 Always set `arg' member of input_events.
8175 (construct_menu_click): Unused function removed.
8176
8177 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
8178
8179 * w32term.c (construct_mouse_click, construct_mouse_wheel)
8180 (construct_drag_n_drop, x_scroll_bar_handle_click)
8181 (w32_read_socket): Always set `arg' member of input_events.
8182
8183 * keyboard.c (show_help_echo): Use eval_form. Add comment.
8184
8185 * lisp.h (eval_form): Add prototype.
8186
8187 * xdisp.c (eval_form): Make it externally visible.
8188
8189 2000-07-13 Gerd Moellmann <gerd@gnu.org>
8190
8191 * xterm.c (x_handle_tool_bar_click): Store the frame in the
8192 frame_or_window slot of TOOL_BAR_EVENT input events instead of
8193 consing. For prefix events, store the frame in the `arg' slot of
8194 the event, otherwise store the key there.
8195 (XTread_socket): Instead of consing, use the frame_or_window slot
8196 of HELP_EVENTs for the frame, and the `arg' slot for the help string.
8197
8198 * xmenu.c (menu_highlight_callback): Store help string in the
8199 `arg' member of the input event; don't cons.
8200 (menubar_selection_callback): Use the `arg' slot of input events
8201 to queue additional information, instead of consing.
8202
8203 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
8204
8205 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
8206 TOOL_BAR_EVENTs.
8207 (w32_read_socket): Adapt to changes in HELP_EVENTs.
8208
8209 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
8210 input events to queue additional information, instead of consing.
8211
8212 * keyboard.c (kbd_buffer_gcpro): Renamed from
8213 kbd_buffer_frame_or_window. Now used for all Lisp objects
8214 referenced from the input queue.
8215 (kbd_buffer_store_event): Always use structure assignment for
8216 copying input events. Record all Lisp objects referenced from
8217 events in kbd_buffer_gcpro.
8218 (kbd_buffer_get_event): Construct Lisp `help-echo' events
8219 differently from input events. Test for prefix menu_bar_events
8220 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
8221 event in kbd_buffer_gcpro to nil.
8222 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
8223 frame_or_window is equal to its arg member as prefix events.
8224 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
8225 used by an input event to nil.
8226 (init_keyboard): Use two times the size of the input queue
8227 for kbd_buffer_gcpro.
8228 (syms_of_keyboard): Likewise.
8229
8230 * emacs.c (handle_USR2_signal, handle_USR1_signal):
8231 Use USER_SIGNAL_EVENT.
8232
8233 * termhooks.h (struct input_event): Add member `arg'.
8234 (MENU_BAR_EVENT): Renamed from menu_bar_event.
8235 (USER_SIGNAL_EVENT): Renamed from user_signal.
8236
8237 * xfaces.c (ASET): Remove definition.
8238
8239 * lisp.h (AREF, ASET, ASIZE): New macros.
8240
8241 * fontset.c (AREF, ASIZE): Remove definitions.
8242
8243 * fns.c (AREF): Remove definition.
8244
8245 * composite.c (AREF): Remove definition.
8246
8247 2000-07-12 Gerd Moellmann <gerd@gnu.org>
8248
8249 * dispnew.c (redraw_overlapped_rows): Add missing local.
8250 (scrolling_window): Remove debug code.
8251
8252 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
8253 Before scrolling, turn off a mouse-highlight in the window
8254 being scrolled.
8255
8256 * xterm.c (x_update_window_end): Add parameter
8257 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
8258 redisplay in XTframe_up_to_date.
8259 (x_clear_mouse_face): New function.
8260 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
8261
8262 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
8263 current glyph row.
8264 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
8265 it when any row is written to that contains glyphs highlighted in
8266 mouse-face.
8267 (update_window): Call the window update end hook with new
8268 parameter MOUSE_FACE_OVERWRITTEN_P.
8269 (direct_output_for_insert): Give up if row contains mouse-face.
8270
8271 * dispextern.h (struct redisplay_interface): Add parameter
8272 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
8273 (clear_mouse_face): New function pointer member.
8274
8275 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
8276
8277 * syntax.c (back_comment): Use one switch rather than a few `if's.
8278 Obey open_paren_in_column_0_is_defun_start.
8279 When reverting to the `slow' method, try to nicely handle the case
8280 of nested comments by checking that the comment-starter we found
8281 does indeed match the comment-ender.
8282 (scan_sexps_forward, scan_sexps_forward):
8283 Ignore excessive opening parenthesis rather than throwing an error.
8284
8285 2000-07-11 Gerd Moellmann <gerd@gnu.org>
8286
8287 * doc.c (Fsubstitute_command_keys): Handle case that a GC
8288 in Fwhere_is_internal or get_keymap_1 relocates string contents.
8289
8290 * dispnew.c (direct_output_forward_char): Give up if currently
8291 displaying a message instead of the minibuffer contents.
8292
8293 * xterm.c (x_update_window_begin): No need to turn off the mouse
8294 highlight here.
8295 (show_mouse_face): Set the mouse_face_p flag of glyph rows
8296 depending on whether they contain glyphs highlighted in mouse-face.
8297
8298 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
8299 compare the mouse_face_p flags of both rows.
8300
8301 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
8302
8303 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
8304
8305 * keyboard.c (show_help_echo): Accept additional parameter
8306 ok_to_overwrite_keystroke_echo.
8307 (read_char): Call show_help_echo with a zero
8308 ok_to_overwrite_keystroke_echo argument.
8309 * keyboard.h (show_help_echo): Update prototype of show_help_echo.
8310 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
8311 ok_to_overwrite_keystroke_echo argument.
8312 * w32menu.c (w32_menu_display_help): Call show_help_echo with
8313 non-zero ok_to_overwrite_keystroke_echo argument.
8314
8315 2000-07-10 Gerd Moellmann <gerd@gnu.org>
8316
8317 * xdisp.c (try_window_id): If changes are all below what is
8318 displayed in the window, and point is in the window, we still
8319 might have to find point on the display.
8320
8321 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
8322 glyphs instead of a single one.
8323 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
8324 with new argument list.
8325 (x_set_glyph_string_gc): Make sure the face's GC is valid.
8326
8327 * keymap.c (get_keymap_1): Add comment that this function can GC.
8328 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
8329 comment that functions can GC.
8330 (Fset_keymap_parent): GCPRO arg KEYMAP.
8331
8332 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
8333
8334 * msdos.c (XMenuActivate): After exiting the menu, restore the
8335 echo area message and erase it.
8336
8337 2000-07-10 Kenichi Handa <handa@etl.go.jp>
8338
8339 * fontset.c (Ffontset_info): Make the return value more compatible
8340 with that of Emacs 20.
8341
8342 2000-07-07 Gerd Moellmann <gerd@gnu.org>
8343
8344 * eval.c (Fsignal): Handle case that backtrace_list is null.
8345
8346 2000-07-07 Kenichi Handa <handa@etl.go.jp>
8347
8348 * ccl.c (Fccl_execute): Typo fixed.
8349
8350 2000-07-06 Gerd Moellmann <gerd@gnu.org>
8351
8352 * window.c (window_loop): Add missing gcpro1 local variable.
8353
8354 * window.c (Fwindow_list): Reverse list at the end.
8355 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
8356 means allow windows on OWINDOW's frame, only.
8357 (window_loop): Simplified; use Fwindow_list.
8358
8359 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
8360
8361 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8362
8363 * xterm.c (XTread_socket): Increment handling_signal at the start,
8364 decrement it at the end.
8365
8366 * eval.c (handling_signal): New variable.
8367 (Fsignal): Abort if handling_signal is non-zero.
8368
8369 * lisp.h (handling_signal): External declaration.
8370
8371 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
8372
8373 2000-07-05 Ken Raeburn <raeburn@gnu.org>
8374
8375 Sound support for NetBSD through "Linux emulation" support:
8376 * config.in (HAVE_SOUNDCARD_H): Undef.
8377 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
8378 * Makefile.in (LIBSOUND): New variable.
8379 (LIBES): Include it.
8380 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and <soundcard.h>.
8381 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined elsewhere.
8382 (vox_open): Use DEFAULT_SOUND_DEVICE.
8383 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
8384
8385 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8386
8387 * print.c (print_error_message): If Vsignaling_function is set,
8388 show it in *Messages*.
8389
8390 * lisp.h (Vsignaling_function): External declaration.
8391
8392 * eval.c (Vsignaling_function): New variable.
8393 (Fsignal): Compute it.
8394 (syms_of_eval): Staticpro it.
8395
8396 2000-07-05 Dave Love <fx@gnu.org>
8397
8398 * syswait.h: Use the autoconf recommended approach. Old code
8399 #if'd out in case we need to revert.
8400
8401 * config.in (HAVE_SYS_WAIT_H): Added.
8402
8403 2000-07-05 Andrew Innes <andrewi@gnu.org>
8404
8405 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
8406 when non-NULL instead of __morecore, to take account of buffer
8407 memory. This also solves a problem with spurious memory warnings
8408 on Windows.
8409
8410 * ralloc.c: Make real_morecore non-static.
8411
8412 * eval.c (internal_condition_case): Comment out abort if
8413 interrupt_input_blocked is not zero.
8414
8415 * makefile.nt: Add support for `bootstrap' and related targets.
8416 Include minimal debug info in emacs.exe in release build.
8417 Remove all dependencies on lisp.h, and fixup some others.
8418
8419 * w32.c (init_environment): Install code from 20.7 for providing
8420 default values for environment variables, based on the
8421 executable's own location.
8422 (map_w32_filename): Handle filenames that are longer than MAX_PATH.
8423 (sys_socket): Install socket inheritance bug fix from 20.7.
8424
8425 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
8426 here via blockinput.h).
8427
8428 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
8429
8430 * w32menu.c (w32_menu_display_help):
8431 * xmenu.c (menu_help_callback): Use show_help_echo.
8432
8433 * keyboard.h (show_help_echo): Declare.
8434
8435 * keyboard.c (show_help_echo): New function, extracted from read_char.
8436 Feval its `msg' argument if it's a cons cell.
8437 (read_char): Use it.
8438 (follow_key): Pass `autoload' to get_keyelt.
8439
8440 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
8441 (note_tool_bar_highlight, XTread_socket):
8442 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
8443 (dos_rawgetc):
8444 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
8445 (note_tool_bar_highlight, w32_read_socket):
8446 Do not gratuitously ignore non-string `help-echo' properties.
8447
8448 2000-07-05 Gerd Moellmann <gerd@gnu.org>
8449
8450 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
8451
8452 * window.c (delete_all_subwindows): Reset Vwindow_list.
8453
8454 * xterm.c (x_append_glyph, x_append_composite_glyph)
8455 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
8456 changes in struct glyph starting 1999-12-27. Some bit-fields of
8457 struct glyph were not set, which made glyphs unequal when compared
8458 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
8459 effects were the result. This also depended on the contents of
8460 memory returned by xmalloc. If flickering happens again, activate
8461 the code in clear_glyph_row that's in #if 0. If the flickering is
8462 gone with that, chances are that it is caused by something similar.
8463
8464 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
8465
8466 * dispextern.h: Add some comments.
8467
8468 * window.c (add_window_to_list): Add parameter LIST.
8469 (window_list): Order list so that, for each frame, windows are
8470 in canonical order, and so that frames appear in the list in
8471 the order given by Vframe_list.
8472 (next_window): Reverse the handling of NEXT_P.
8473
8474 2000-07-04 Gerd Moellmann <gerd@gnu.org>
8475
8476 * window.c (Vwindow_list): New variable.
8477 (make_window, delete_window): Set Vwindow_list to nil.
8478 (check_window_containing): New function.
8479 (window_from_coordinates): Rewritten.
8480 (add_window_to_list, window_list, candidate_window_p)
8481 (decode_next_window_args, next_window): New functions.
8482 (Fnext_window, Fprevious_window): Rewritten in terms of next_window.
8483 (Fwindow_list): New function.
8484 (Fother_window): Cleaned up.
8485 (foreach_window): Add a longer "variable argument list". Let
8486 callback function return 0 to indicate that cycling over windows
8487 should stop.
8488 (foreach_window_1): Likewise.
8489 (freeze_window_start): Return int.
8490 (init_window): New function.
8491 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
8492
8493 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
8494 input_event with bzero.
8495 (main): Call init_window.
8496
8497 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
8498 a menu filter.
8499
8500 2000-07-04 Kenichi Handa <handa@etl.go.jp>
8501
8502 * composite.h (make_composition_value_copy): Extern it.
8503
8504 * composite.c (make_composition_value_copy): New function.
8505
8506 * editfns.c (Fformat): While copying text properties, make each
8507 composition property value a copy.
8508
8509 * fns.c (concat): While copying text properties, make each
8510 composition property value a copy.
8511
8512 2000-07-03 Gerd Moellmann <gerd@gnu.org>
8513
8514 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
8515
8516 * fns.c (sweep_weak_table): Mark only objects that are not
8517 marked already.
8518
8519 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
8520 include those frames as candidates which have their focus
8521 redirected to the minibuffer frame.
8522
8523 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
8524
8525 * fns.c (Fputhash): Return `value' rather than nil.
8526
8527 2000-06-30 Gerd Moellmann <gerd@gnu.org>
8528
8529 * frame.c (next_frame): Don't check focus redirection in case
8530 MINIBUF is a window. Doing so excludes frames using MINIBUF
8531 unless their focus is redirected, which contradicts the
8532 specification of next-frame, and leads to infinite loops in
8533 certain situations when cycling through windows with next-window.
8534
8535 2000-06-30 Kenichi Handa <handa@etl.go.jp>
8536
8537 * coding.c (code_convert_region): Even if the length of text is
8538 zero, try to convert it if coding->type is coding_type_ccl.
8539 (decode_coding_string, encode_coding_string): Likewise.
8540
8541 2000-06-28 Gerd Moellmann <gerd@gnu.org>
8542
8543 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
8544 the display if windows_or_buffers_changed.
8545
8546 * dispnew.c (struct row_entry): New structure.
8547 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
8548 (row_table_size, old_lines, new_lines, old_lines_size)
8549 (new_lines_size, run_pool, runs_size, runs): New variables.
8550 (add_row_entry): New function.
8551 (scrolling_window): Use data structures allocated with xmalloc and
8552 held in global variables, instead of allocating them with alloca and
8553 holding them in local variables. Use a larger hash table whose
8554 size depends on glyph matrix sizes. Don't use bzero to clear the
8555 hash table; instead, clear used slots only.
8556
8557 * fns.c (next_almost_prime): Make it externally visible.
8558
8559 * lisp.h (next_almost_prime): Add prototype.
8560
8561 * s/isc4-0.h (sigunblock): Define.
8562
8563 * s/sco5.h (sigunblock): Define.
8564
8565 2000-06-27 Dave Love <fx@gnu.org>
8566
8567 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
8568 (moved to osf5-0.h).
8569 [!NOT_C_CODE]: Protect string.h stuff.
8570
8571 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
8572 (sys_siglist, NSIG): Definitions moved here from osf1.h.
8573
8574 2000-06-27 Gerd Moellmann <gerd@gnu.org>
8575
8576 * xdisp.c (resize_mini_window): Subtract the extra line spacing
8577 below the last line from the needed window height.
8578
8579 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
8580
8581 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
8582 (Fwidget_get): Use it.
8583 (syms_of_fns): Defsubr it.
8584
8585 2000-06-26 Gerd Moellmann <gerd@gnu.org>
8586
8587 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
8588 display info for XIM.
8589 (xim_open_dpy): Likewise.
8590 (xim_close_dpy): Don't free the display info's XIM.
8591
8592 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
8593
8594 * config.in (USE_XIM): New define.
8595
8596 * keymap.c (get_keyelt): For menu-items containing a `:filter
8597 FILTER', apply FILTER to the menu-item's definition to get the
8598 real definition to use.
8599
8600 * lisp.h (QCfilter): External declaration.
8601
8602 * xfns.c (Fimage_size): New function.
8603 (syms_of_xfns): Defsubr it.
8604
8605 2000-06-26 Andreas Schwab <schwab@suse.de>
8606
8607 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
8608 Fstring_as_unibyte.
8609
8610 2000-06-25 Dave Love <fx@gnu.org>
8611
8612 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag, tgetnum.
8613
8614 * Makefile.in (blockinput.h): Depend on atimer.h.
8615 (atimer.h): Depend on systime.h.
8616
8617 * blockinput.h: Protect against multiple inclusion. Include atimer.h.
8618
8619 * atimer.h: Protect against multiple inclusion. Include systime.h.
8620
8621 * lisp.h (swap_in_global_binding): Declare.
8622
8623 2000-06-24 Ken Raeburn <raeburn@gnu.org>
8624
8625 * process.c (Fopen_network_stream): Turn off atimers for duration
8626 of call to connect. (Patch from Gerd.)
8627
8628 2000-06-23 Dave Love <fx@gnu.org>
8629
8630 * ralloc.c: Maybe include unistd.h
8631
8632 * emacs.c (setgrp): Undefine before defining.
8633 (malloc_warning, set_time_zone_rule, index): Prototype.
8634
8635 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
8636 HAVE_STRUCT_TIMEZONE.
8637
8638 * s/osf1.h: Move string.h hack here from alpha.h and make it
8639 conditional.
8640 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
8641 _XOPEN_SOURCE.
8642 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
8643 (SOCKLEN_TYPE): Don't define.
8644
8645 * m/alpha.h: Remove string.h hack.
8646
8647 * s/osf5-0.h: New file.
8648
8649 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
8650 include time.h, done by systime.h.
8651 [__FreeBSD__]: Remove redundant includes.
8652
8653 * callproc.c (setpgrp): Undefine before defining.
8654 (delete_temp_file): Return Qnil to avoid warning.
8655
8656 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
8657
8658 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
8659 HAVE_X_WINDOWS.
8660
8661 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
8662
8663 * composite.h (compose_text): Declare.
8664
8665 * xterm.c: Don't include sys/types.h unconditionally. Don't
8666 protect its inclusion with !USG (following xmenu.c).
8667
8668 2000-06-23 Gerd Moellmann <gerd@gnu.org>
8669
8670 * xfns.c (x_create_tip_frame): Initialize frame's colors like
8671 in x_create_frame.
8672
8673 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
8674
8675 * coding.c (decode_eol_post_ccl): Special handling for undecided
8676 and inconsistent EOL types.
8677
8678 2000-06-22 Gerd Moellmann <gerd@gnu.org>
8679
8680 * xrdb.c (x_load_resources): Add default resource for scroll bar's
8681 trough color and main window's background color.
8682
8683 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events differently.
8684
8685 * xterm.h (Xt_app_con): External declaration.
8686
8687 * widget.c (EmacsFrameRealize): Fix typo.
8688
8689 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
8690
8691 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
8692 (handle_invisible_prop): Record the start of invisible text in
8693 it->add_overlay_start.
8694 (struct overlay_entry): Add member `overlay'.
8695 (handle_overlay_change): Simplify.
8696 (next_overlay_string): After having processed overlay strings at the
8697 end of the buffer, record that fact in
8698 it->overlay_strings_at_end_processed_p.
8699 (compare_overlay_entries): If before- and after-strings come
8700 from the same overlay, let before-strings come first.
8701 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
8702 (load_overlay_strings): Take it->add_overlay_start into account
8703 when adding overlay strings.
8704
8705 * dispextern.h (struct it): Add member add_overlay_start.
8706
8707 2000-06-22 Dave Love <fx@gnu.org>
8708
8709 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
8710
8711 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
8712
8713 2000-06-22 Kenichi Handa <handa@etl.go.jp>
8714
8715 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
8716 is greater than 0.
8717
8718 2000-06-21 Dave Love <fx@gnu.org>
8719
8720 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
8721
8722 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
8723
8724 * syntax.c (back_comment): Simplify string-parity counting (with
8725 the added benefit of handling multiple string-styles as long as
8726 they are not intertwined).
8727 Jump to the slow code as soon as a comment starter is found in
8728 a "string_lossage" position. Fixes the case: " /* " /* " */.
8729
8730 2000-06-21 Dave Love <fx@gnu.org>
8731
8732 * Makefile.in: Use GETLOADAVG_LIBS.
8733
8734 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
8735 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
8736
8737 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8738
8739 * syntax.c (describe_syntax): Recognize the `n'estable bit.
8740 (Fforward_comment, scan_lists):
8741 Check the comstyle of single-char comment-starters.
8742 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
8743 we're just at the beginning of the comment (f.ex with (*) ... (*)).
8744 Check the comstyle of single-char comment-starters.
8745 Clarify control-flow around the Scomment case.
8746
8747 2000-06-20 Dave Love <fx@gnu.org>
8748
8749 * fns.c (make_hash_table, maybe_resize_hash_table):
8750 Cast arg of next_almost_prime.
8751
8752 * tparam.c [emacs]: Include lisp.h.
8753
8754 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
8755 and unistd.h.
8756
8757 2000-06-20 Gerd Moellmann <gerd@gnu.org>
8758
8759 * keyboard.c (adjust_point_for_property): Check if display
8760 property should be treated as intangible by looking at its value.
8761
8762 * xdisp.c (single_display_prop_intangible_p)
8763 (display_prop_intangible_p): New functions.
8764
8765 * dispextern.h (display_prop_intangible_p): Add prototype.
8766
8767 * xdisp.c (dump_glyph_row): Show type of glyph->object.
8768
8769 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
8770 argument to sigprocmask.
8771
8772 * s/sco5.h (sigblock): Redefined to pass a pointer as second
8773 argument to sigprocmask.
8774
8775 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
8776 sigprocmask_set, and pass a pointer to it to sigprocmask.
8777
8778 * sysdep.c (sigprocmask_set): New variable.
8779
8780 * fileio.c (make_temp_name): Don't use `%s' in string passed to
8781 report_file_error.
8782
8783 2000-06-20 Sam Steingold <sds@gnu.org>
8784
8785 * xrdb.c: Don't declare xmalloc, xrealloc.
8786
8787 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8788
8789 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
8790 (re_comp): Cast gettext return value to avoid complaints when
8791 !HAVE_LIBINTL.
8792
8793 2000-06-20 Dave Love <fx@gnu.org>
8794
8795 * m/stride.h, m/mips.h: Don't define HAVE_GETWD, HAVE_GETTIMEOFDAY.
8796
8797 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
8798
8799 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
8800
8801 * m/alpha.h: Don't declare xmalloc, xrealloc.
8802
8803 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
8804
8805 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
8806
8807 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
8808
8809 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
8810 HAVE_GETWD.
8811
8812 * keyboard.h (poll_for_input_1): Declare.
8813
8814 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
8815
8816 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
8817
8818 * doprnt.c: Don't declare xmalloc, xrealloc.
8819
8820 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
8821 (getenv, ctime, getwd): Removed.
8822 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
8823
8824 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
8825 x_set_tool_bar_lines.
8826
8827 * config.in: Add HAVE_GETWD. Move some definitions above
8828 machine/system includes.
8829
8830 2000-06-20 Kenichi Handa <handa@etl.go.jp>
8831
8832 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
8833
8834 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
8835 contain information about ENCODING.
8836
8837 * fontset.c (FONTSET_ASCII): Use the first element of char table
8838 for an ASCII font, not defalt slot.
8839 (fontset_ref_via_base): If FONTSET doesn't contain information for
8840 C, try the default fontset.
8841 (make_fontset): Don't copy the default fontset.
8842 (fontset_font_pattern): Likewise.
8843 (accumulate_font_info): If ELT is nil, use the corresponding
8844 element in the default fontset.
8845
8846 2000-06-19 Dave Love <fx@gnu.org>
8847
8848 * syntax.c (Fparse_partial_sexp): Doc fix.
8849
8850 * regex.h: Test PROTOTYPES as well as __STDC__.
8851
8852 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
8853 errno, strerror. Put text after #endif in comment.
8854
8855 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for pcc).
8856
8857 * xterm.c (x_frame_of_widget): Likewise.
8858
8859 2000-06-19 Gerd Moellmann <gerd@gnu.org>
8860
8861 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
8862 to Vfundamental_mode_abbrev_table.
8863
8864 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
8865 bogus objects are marked. This slows down GC by ~80 percent, but
8866 it might be worth trying when debugging GC-related problems.
8867 This feature requires conservative stack marking to be enabled.
8868
8869 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
8870 returns XLookupChars, reset `modifiers' to zero.
8871
8872 2000-06-19 Dave Love <fx@gnu.org>
8873
8874 * mktime.c: Unprotoized.
8875
8876 2000-06-19 Richard Stallman <rms@gnu.org>
8877
8878 * data.c (set_internal): If variable is frame-local,
8879 store the new value immediately into the frame parameter alist.
8880
8881 2000-06-19 Ken Raeburn <raeburn@gnu.org>
8882
8883 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
8884 in the custom handler pointer.
8885
8886 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
8887 value, or checks for CHAR_META can fail when Lisp_Object is a
8888 union type.
8889 * keymap.c (get_keyelt): Likewise.
8890
8891 2000-06-19 Kenichi Handa <handa@etl.go.jp>
8892
8893 * ccl.h (struct ccl_program): New member eol_type.
8894 (struct ccl_spec): New member cr_carryover.
8895
8896 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
8897 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
8898
8899 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
8900 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
8901 (decode_eol_post_ccl): New function.
8902 (decode_coding): Don't detect EOL format here for CCL based coding
8903 systems.
8904 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
8905 decode_eol_post_ccl after running the CCL program.
8906 (code_convert_region): Don't detect EOL format here for CCL based
8907 coding systems.
8908 (decode_coding_string): Likewise.
8909
8910 2000-06-18 Ken Raeburn <raeburn@gnu.org>
8911
8912 * charset.c (update_charset_table): Use XINT on "iso_final_char"
8913 when treating it as an integer.
8914
8915 * coding.h (encode_coding_string): Declare.
8916
8917 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
8918 it as an integer.
8919
8920 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
8921 "xkeymap" to avoid shadowing the "enum map_type" value that needs
8922 to be passed to get_local_map.
8923
8924 * sound.c (Fplay_sound): Don't call make_number on
8925 Frun_hook_with_args count argument.
8926
8927 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
8928 for lisp objects in X event structure data field, when lisp
8929 objects are represented with unions.
8930 (x_scroll_bar_to_input_event): Ditto.
8931
8932 2000-06-16 Ken Raeburn <raeburn@gnu.org>
8933
8934 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
8935 termination of string. Fix sense of test whether
8936 Vline_number_display_limit is an integer.
8937
8938 2000-06-16 Gerd Moellmann <gerd@gnu.org>
8939
8940 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
8941 only if HAVE_X_WINDOWS.
8942
8943 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
8944 of titles.
8945
8946 * dispnew.c (update_frame_1): Handle case that cursor vpos is
8947 out of bounds.
8948
8949 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
8950
8951 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
8952 of its headers.
8953
8954 2000-06-15 Kenichi Handa <handa@etl.go.jp>
8955
8956 * coding.c (decode_coding_emacs_mule): Always set src_base at the
8957 start of the while loop.
8958
8959 2000-06-15 Gerd Moellmann <gerd@gnu.org>
8960
8961 * atimer.c (alarm_signal_handler): Add forward declaration.
8962
8963 * data.c (set_internal): Remove debug code.
8964
8965 2000-06-14 Gerd Moellmann <gerd@gnu.org>
8966
8967 * Makefile.in (bootstrap-temacs): Add `-I../src'.
8968
8969 * unexec.c (toplevel) [COFF]: Include coff.h.
8970
8971 * s/lynxos.h: New file.
8972
8973 * keymap.c (Fsingle_key_description): Enclose function key and
8974 event symbol names in angle brackets.
8975
8976 * xdisp.c (setup_echo_area_for_printing): Call
8977 message_log_maybe_newline if message_buf_print is not set.
8978
8979 * print.c (printchar, strout): Don't check message_buf_print
8980 before calling setup_echo_area_for_printing because that
8981 function does something useful even when message_buf_print is
8982 already set.
8983
8984 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines):
8985 New variables.
8986 (ensure_echo_area_buffers): Initialize echo buffer's
8987 truncate lines setting to nil.
8988 (with_echo_area_buffer): Don't set the echo buffer's truncate
8989 lines setting here.
8990 (set_message_1): Set it here instead, based on the value
8991 of message_truncate_lines.
8992 (resize_mini_window): Handle case that lines are truncated.
8993 (syms_of_xdisp): Initialize Qmessage_truncate_lines.
8994 DEFVAR_BOOL message-truncate-lines.
8995
8996 * keyboard.c (read_char): Bind message-truncate-lines to t
8997 while displaying a help-echo.
8998
8999 * lisp.h (Qmessage_truncate_lines): External declaration.
9000
9001 2000-06-13 Gerd Moellmann <gerd@gnu.org>
9002
9003 * xdisp.c (Vline_number_display_limit): Renamed from
9004 line_number_display_limit.
9005 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
9006 Extend documentation string. Initialize
9007 Vline_number_display_limit to nil meaning no limit.
9008 (decode_mode_spec): Use Vline_number_display_limit with its new
9009 meaning.
9010
9011 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
9012
9013 2000-06-13 Richard Stallman <rms@gnu.org>
9014
9015 * frame.c (Fmodify_frame_parameters): Doc fix.
9016
9017 * xfns.c (x_set_frame_parameters): Comment fix.
9018
9019 * frame.c (store_frame_param): Call swap_in_global_binding if the
9020 variable's current binding was chosen based on this frame.
9021
9022 * data.c (swap_in_global_binding): New function.
9023
9024 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9025
9026 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
9027 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
9028
9029 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
9030
9031 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
9032
9033 2000-06-12 Jason Rumney <jasonr@gnu.org>
9034
9035 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
9036
9037 * w32.h (EMACS_W32_H): Renamed from _NT_H_
9038
9039 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
9040
9041 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
9042
9043 2000-06-12 Gerd Moellmann <gerd@gnu.org>
9044
9045 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
9046 (syms_of_xfaces): Defsubr Sdump_colors.
9047 (x_free_colors): Don't treat b&w specially on default visual.
9048 (x_free_dpy_colors): New function.
9049 (free_face_colors): Don't check visual class; it's done
9050 in x_free_colors.
9051
9052 * xterm.c (x_frame_of_widget): New function.
9053 (x_alloc_nearest_color_for_widget): Use it.
9054 (x_copy_dpy_color): New function.
9055 (x_destroy_window): Free various colors.
9056
9057 2000-06-12 Kenichi Handa <handa@etl.go.jp>
9058
9059 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
9060
9061 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
9062
9063 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
9064
9065 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
9066
9067 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
9068
9069 2000-06-11 Dave Love <fx@gnu.org>
9070
9071 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
9072
9073 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
9074
9075 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
9076
9077 2000-06-11 Gerd Moellmann <gerd@gnu.org>
9078
9079 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
9080 to `XEvent *'.
9081
9082 2000-06-10 Kenichi Handa <handa@etl.go.jp>
9083
9084 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
9085 (regex_compile): Fix the code for handling the case of single byte
9086 char and multibyte char being mixed in a range within [...].
9087
9088 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
9089 and dst_multibyte members of coding.
9090
9091 * charset.c (update_charset_table): Update the table
9092 bytes_by_char_head.
9093 (init_charset_once): Initialize elements of bytes_by_char_head to
9094 1 except for leading codes for private charases.
9095
9096 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
9097 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte sequence.
9098
9099 2000-06-09 Ken Raeburn <raeburn@gnu.org>
9100
9101 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
9102 access the data it doesn't point to.
9103
9104 2000-06-08 Gerd Moellmann <gerd@gnu.org>
9105
9106 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
9107 will be translated to a switch-frame event when reading the
9108 event queue. This is necessary because Emacs otherwise won't
9109 perform a switch-frame to a new frame until some other event, for
9110 example a keystroke event, forces it to do so. This has various
9111 effects, one visible being that the cursor of a frame created with
9112 C-x 5 2 or switched to with a window manager key binding like
9113 A-TAB stays hollow because selected_window isn't on the newly
9114 focused frame until the switch-frame is performed.
9115
9116 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
9117 generating a switch-frame event if necessary.
9118
9119 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
9120
9121 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
9122 it's an integer.
9123
9124 2000-06-08 Kenichi Handa <handa@etl.go.jp>
9125
9126 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a charset.
9127
9128 2000-06-07 Gerd Moellmann <gerd@gnu.org>
9129
9130 * window.c (displayed_window_lines): Take empty lines at
9131 the bottom of a window into account.
9132
9133 * window.c (displayed_window_lines): New function.
9134 (Fmove_to_window_line): Use displayed_window_lines to determine
9135 the number of lines to move, instead of using the window's height.
9136
9137 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
9138 to stop reading, even if the form read sets point to a different
9139 value when evaluated.
9140
9141 * xdisp.c (display_line): Fix code deciding in which line to
9142 put the cursor.
9143
9144 2000-06-07 Kenichi Handa <handa@etl.go.jp>
9145
9146 * fileio.c (e_write): Free composition data if stored in
9147 coding->cmp_data.
9148
9149 2000-06-06 Gerd Moellmann <gerd@gnu.org>
9150
9151 * xdisp.c (display_line): Set row's and iterator's
9152 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
9153 Set cursor even if row ends in the middle of a character.
9154 (dump_glyph_row): Print values of new flags.
9155 (redisplay_window) <cursor movement in unchanged window>: When
9156 point has been moved forward, and PT is at the end of the cursor
9157 row, don't place the cursor in the next row if the cursor row ends
9158 in the middle of a character or at ZV.
9159
9160 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
9161 (struct glyph_row): Add starts_in_middle_of_char_p and
9162 ends_in_middle_of_char_p.
9163 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
9164 ends_in_middle_of_char_p flag.
9165 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
9166
9167 * term.c (append_glyph): Revert change of 2000-06-06.
9168
9169 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
9170 padding glyph not fitting on line as whole character not
9171 fitting on line.
9172
9173 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
9174 this isn't true for images with `:ascent 100'.
9175
9176 2000-06-06 Kenichi Handa <handa@etl.go.jp>
9177
9178 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
9179 as modified if it is originally unmodified.
9180
9181 * term.c (encode_terminal_code): Change the way to check if
9182 terminal coding does any conversion.
9183 (append_glyph): Set glyph->pixel_width correctly.
9184
9185 * xdisp.c (display_line): While checking line continuation, pay
9186 attention to a padding glyph.
9187
9188 2000-06-05 Gerd Moellmann <gerd@gnu.org>
9189
9190 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
9191
9192 2000-06-05 Dave Love <fx@gnu.org>
9193
9194 * xdisp.c: Include fontset.h.
9195
9196 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
9197
9198 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9199
9200 * dispnew.c: Conditionally include term.h.
9201
9202 * coding.h: Declare code_convert_string_norecord.
9203
9204 * frame.h (struct frame): Use volatile unconditionally.
9205
9206 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
9207
9208 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
9209
9210 * systime.h: Protect against multiple inclusion.
9211 (timezone) [USG5_4]: Define as time_t.
9212
9213 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9214 (Foptimize_char_table, make_temp_name): Declare.
9215
9216 * Makefile.in (xdisp.o): Depend on fontset.h.
9217
9218 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
9219
9220 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
9221 (Foptimize_char_table, make_temp_name): Declare.
9222
9223 * s/irix4-0.h:
9224 * s/irix5-0.h:
9225 * s/netbsd.h: Don't define autoconfiscated MATHERR.
9226
9227 2000-06-02 Dave Love <fx@gnu.org>
9228
9229 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
9230
9231 2000-06-02 Gerd Moellmann <gerd@gnu.org>
9232
9233 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
9234 result face, set flags in that face indicating that colors may not
9235 be freed.
9236
9237 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
9238 glyph, use the ASCII NUL character to determine the face.
9239
9240 2000-06-02 Dave Love <fx@gnu.org>
9241
9242 * sysdep.c: Conditionally include stdlib.h, unistd.h.
9243 (VFORK_RETURN_TYPE): Remove.
9244
9245 * config.in: Add NO_MATHERR.
9246
9247 2000-06-01 Dave Love <fx@gnu.org>
9248
9249 * cmds.c (internal_self_insert): Don't check
9250 Vbefore_change_function, Vafter_change_function.
9251
9252 * insdel.c (signal_before_change, signal_after_change): Likewise.
9253
9254 * buffer.c (Vbefore_change_function, Vafter_change_function):
9255 Variables and their initializations deleted.
9256
9257 * callint.c (Fcall_interactively): Doc fix.
9258
9259 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
9260
9261 2000-05-31 Dave Love <fx@gnu.org>
9262
9263 * textprop.c: Revert last change -- duplicated.
9264
9265 2000-05-31 Gerd Moellmann <gerd@gnu.org>
9266
9267 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
9268 in #if 0.
9269
9270 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
9271
9272 2000-05-31 Jason Rumney <jasonr@gnu.org>
9273
9274 * search.c (Fre_search_forward, Fre_search_backward)
9275 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
9276
9277 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
9278
9279 2000-05-30 Jason Rumney <jasonr@gnu.org>
9280
9281 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
9282 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
9283
9284 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type member.
9285
9286 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
9287 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
9288 expand a nil default_filename.
9289
9290 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
9291 pointer to glyph_to_pixel_coords, not a frame.
9292
9293 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
9294 coding.h to dependencies.
9295
9296 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
9297
9298 * w32console.c (glyph_to_pixel_coords): Change first parameter to
9299 window pointer to be consistent with w32term.c and xterm.c.
9300
9301 * w32fns.c: Format and doc changes to bring closer to xfns.c.
9302 (VIETNAMESE_CHARSET): Define if not defined in system headers.
9303 (Qline_spacing, Qcenter): New variables.
9304 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
9305 (x_set_line_spacing): New function.
9306 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT macros.
9307 (x_specified_cursor_type): New function.
9308 (x_set_cursor_type): Use it.
9309 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
9310 and icon strings.
9311 (validate_x_resource_name, x_get_resource_string): Measure lengths
9312 of external strings in bytes.
9313 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
9314 GetTextExtentPoint32 with NULL title.
9315 (Fx_create_frame): Initialize Qline_spacing.
9316 (w32_load_system_font): Initialize font->double_byte_p.
9317 (x_to_w32_charset): Use Vw32_charset_info_alist.
9318 (Image, busy cursor, tooltip functions): Merged changes from
9319 xfns.c. Not yet functional on Windows.
9320
9321 * w32gui.h (W32FontStruct): Add double_byte_p member.
9322
9323 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
9324 (emacs_button_translation): Use it.
9325 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
9326 in `mask' to be set.
9327
9328 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
9329 menu strings.
9330
9331 * w32term.c: Format and doc changes to bring closer to xterm.c.
9332 (w32_char_font_type): New enum.
9333 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
9334 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
9335 (w32_encode_char): New function.
9336 (x_encode_char): Removed.
9337 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
9338 x_encode_char and w32_font_is_double_byte.
9339 (x_produce_image_glyph): Use image_ascent.
9340 (x_produce_glyphs): Use new version of w32_per_char_metric and
9341 handle NULL return value. Allow extra line spacing.
9342 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
9343 (w32_get_glyph_overhangs): Remove unicode_p param. Use
9344 w32_font_type member of glyph instead.
9345 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
9346 (fast_find_position): Make sure not to consider rows not visible
9347 in the window.
9348 (w32_read_socket) [WM_MENUSELECT]: Cannot call
9349 w32_menu_display_help with input blocked, as it can abort.
9350 (x_display_and_set_cursor): Choose cursor depending
9351 on buffer-local value of cursor_type.
9352 (x_draw_bar_cursor): Add parameter WIDTH.
9353
9354 * w32term.h (CP_DEFAULT): Define.
9355 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
9356
9357 2000-05-30 Gerd Moellmann <gerd@gnu.org>
9358
9359 * search.c (Fre_search_forward, Fre_search_backward)
9360 (Fposix_search_backward, Fposix_search_forward): Doc fix.
9361
9362 2000-05-30 Kenichi Handa <handa@etl.go.jp>
9363
9364 * coding.c (detect_coding_iso2022): Fix code for checking
9365 CODING_CATEGORY_MASK_ISO_8_2.
9366
9367 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
9368
9369 * regex.c (PREFETCH_NOLIMIT): New function.
9370 (re_match_2_internal): Use it and adjust the end_match_2 logic.
9371
9372 2000-05-29 Gerd Moellmann <gerd@gnu.org>
9373
9374 * syntax.c (find_defun_start): Move test for
9375 open_paren_in_column_0_is_defun_start outside of the loop.
9376
9377 * xdisp.c (redisplay_window): Really switch buffers when
9378 displaying mode lines, and temporarily set selected_frame to the
9379 frame of the window that's redisplayed.
9380
9381 * xfaces.c (free_realized_faces): Block/unblock input.
9382 (free_realized_multibyte_face): Ditto.
9383
9384 2000-05-29 Dave Love <fx@gnu.org>
9385
9386 * textprop.c (Qkeymap): New variable.
9387 (syms_of_textprop): Intern it.
9388
9389 * keymap.c: Include intervals.h.
9390 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
9391
9392 * Makefile.in (keymap.o): Depend on intervals.h.
9393
9394 * keyboard.c (menu_bar_items, tool_bar_items)
9395 (Fexecute_extended_command): Deal with `keymap' property.
9396 (read_key_sequence): Track map from `keymap' property as well as
9397 `local_map'.
9398
9399 * intervals.c (get_local_map): Extra arg to allow looking for
9400 `keymap' too.
9401
9402 * intervals.h (map_property): New enum.
9403 (get_local_map): Extra arg using it.
9404 (Qkeymap): Declare.
9405
9406 * lisp.h (get_local_map): Don't declare here.
9407
9408 2000-05-29 Kenichi Handa <handa@etl.go.jp>
9409
9410 * Makefile.in (callproc.o): Depend on composite.h.
9411
9412 * callproc.c: Include composite.h.
9413 (Fcall_process): Handle composition correctly.
9414
9415 * coding.h (coding_allocate_composition_data): Extern it.
9416 (coding_restore_composition): Likewise.
9417
9418 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
9419 yet allocated, finish decoding with result
9420 CODING_FINISH_INSUFFICIENT_CMP.
9421 (coding_allocate_composition_data): Make it non-static.
9422 (coding_restore_composition): Likewise.
9423
9424 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
9425
9426 * charset.c (syms_of_charset): Revert last change.
9427
9428 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9429
9430 * term.c (produce_glyphs): Treat characters from the eight-bit-*
9431 charsets as unibyte, with 1-column screen width. Sent by Kenichi
9432 Handa.
9433
9434 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
9435
9436 * charset.c (syms_of_charset): Set width of character sets
9437 eight-bit-control and eight-bit-graphic to 1 column.
9438
9439 2000-05-26 Gerd Moellmann <gerd@gnu.org>
9440
9441 * config.in (HAVE_SPEED_T): New define.
9442
9443 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
9444 `extern speed_t'.
9445
9446 2000-05-26 Dave Love <fx@gnu.org>
9447
9448 * coding.c (shrink_decoding_region): Initialize eol_conversion.
9449
9450 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
9451 (Fsubr_arity): New function.
9452 (syms_of_data): Install them.
9453
9454 2000-05-26 Kenichi Handa <handa@etl.go.jp>
9455
9456 * charset.c (init_charset_once): Set the table bytes_by_char_head
9457 correctly.
9458
9459 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
9460 the default fontset to what Emacs uses by default.
9461 (check_registry_encoding): This function deleted.
9462 (Fset_fontset_font): Remove the adhoc condition for the default
9463 fontset. Allow cons in FONTNAME.
9464
9465 * fns.c (map_char_table): Ignore char-table entries for
9466 charsets eight-bit-control and eight-bit-graphic.
9467
9468 2000-05-25 Ken Raeburn <raeburn@gnu.org>
9469
9470 * emacs.c (main): Initialize keyboard syms before initializing
9471 window code, so face names are available.
9472
9473 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
9474
9475 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
9476 of an anchor at the beginning of a shy-group.
9477
9478 2000-05-25 Gerd Moellmann <gerd@gnu.org>
9479
9480 * xdisp.c (handle_invisible_prop): Don't try to skip over
9481 invisible text if end of text is already reached.
9482
9483 2000-05-25 Dave Love <fx@gnu.org>
9484
9485 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
9486
9487 * coding.c (encode_eol): Add null statement after label.
9488
9489 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
9490
9491 * w16select.c (Fw16_set_clipboard_data): Fix the change from
9492 2000-05-20.
9493
9494 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9495
9496 * ccl.c (ccl_driver): Fix previous change.
9497
9498 2000-05-25 Kenichi Handa <handa@etl.go.jp>
9499
9500 * coding.c (run_pre_post_conversion_on_str): Set point to the
9501 beginning of buffer before calling coding->post_read_conversion.
9502 (decode_coding_string): Give correct args to
9503 run_pre_post_conversion_on_str.
9504 (encode_coding_string): Likewise.
9505
9506 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
9507 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
9508 eight-bit-graphic correctly.
9509
9510 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
9511
9512 * fileio.c (Finsert_file_contents): Even if a file is not found,
9513 execute codes for setting up coding system. Call
9514 after-insert-file-functions unconditionally.
9515
9516 2000-05-24 Gerd Moellmann <gerd@gnu.org>
9517
9518 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
9519 BSD_PGRPS are not defined.
9520
9521 2000-05-24 Kenichi Handa <handa@etl.go.jp>
9522
9523 * charset.c (update_charset_table): Accept nil in LONG_NAME and
9524 DESCRIPTION.
9525 (syms_of_charset): Avoid building same strings.
9526
9527 2000-05-23 Gerd Moellmann <gerd@gnu.org>
9528
9529 * lread.c (Fload): Add a comment about the meaning of
9530 Vuser_init_file being t.
9531
9532 * puresize.h (BASE_PURESIZE): Increase to 675000.
9533
9534 * s/gnu-linux.h (setpgrp): Don't define it here because this
9535 prevents compilation on GNU/Linux systems with glib 2.2.
9536
9537 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
9538 as setpgid.
9539
9540 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
9541
9542 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
9543 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
9544 version.
9545 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
9546
9547 2000-05-23 Kenichi Handa <handa@etl.go.jp>
9548
9549 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9550
9551 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
9552
9553 * term.c (encode_terminal_code): Set coding->src_multibyte properly.
9554
9555 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
9556
9557 2000-05-22 Kenichi Handa <handa@etl.go.jp>
9558
9559 * keyboard.c (read_char): Allow character codes 128..255 to be
9560 handled by input-method-function.
9561
9562 * insdel.c (adjust_markers_for_replace): Fix previous change.
9563 (adjust_after_replace): If PREV_TEXT is nil, call
9564 adjust_markers_for_insert, not adjust_markers_for_replace.
9565
9566 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
9567
9568 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
9569 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
9570 [HAVE_GRANDPT]: Define.
9571 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
9572
9573 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
9574 like SYSV_PTYS.
9575
9576 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
9577
9578 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
9579
9580 2000-05-20 Kenichi Handa <handa@etl.go.jp>
9581
9582 The following changes are to handle 8-bit characters in a
9583 multibyte buffer/string without facing with byte combining
9584 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
9585 eight-bit-graphic (for 0xA0..0xFF) are introduced.
9586
9587 * Makefile.in (fns.o): Depend on charset.h.
9588
9589 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
9590 convert it to unibyte.
9591 (make_string): Use parse_str_as_multibyte, not chars_in_text.
9592
9593 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
9594 apparent char boundary.
9595 (Fset_buffer_multibyte): Convert 8-bit characters in the range
9596 0x80..0x9F to/from multibyte form.
9597
9598 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
9599 to unibyte.
9600
9601 * callproc.c (Fcall_process): Always encode an argument string if
9602 it is multibyte. Setup src_multibyte and dst_multibyte members of
9603 process_coding properly.
9604
9605 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
9606 SPLIT_NON_ASCII_CHAR.
9607
9608 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
9609 as is.
9610 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
9611
9612 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New variables.
9613 (SPLIT_CHARACTER_SEQ): This macro deleted.
9614 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is valid.
9615 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
9616 and eight-bit-graphic.
9617 (char_to_string): Likewise. Signal an error for too large
9618 character code.
9619 (char_printable_p): Return 0 for 8-bit characters.
9620 (update_charset_table): Update iso_charset_table only when a final
9621 character is non-negative.
9622 (find_charset_in_text): Renamed from find_charset_in_str.
9623 Arguments and return value changed. Callers changed.
9624 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
9625 be -1 if CHARSET is used only internally.
9626 (Fmake_char_internal): Handle new charsets; eight-bit-control and
9627 eight-bit-graphic.
9628 (Fcharset_after): Simplified.
9629 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
9630 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
9631 (multibyte_chars_in_text): Simplified by assuming there's no
9632 invalid multibyte sequence.
9633 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9634 (str_as_unibyte): New functions.
9635 (Fstring): Simpified by assuming that byte combining never happens.
9636 (init_charset_once): Initialization for
9637 LEADING_CODE_8_BIT_CONTROL.
9638 (syms_of_charset): Intern and staticpro Qeight_bit_control and
9639 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
9640 eight-bit-control and eight-bit-graphic.
9641
9642 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL)
9643 (CHARSET_8_BIT_GRAPHIC): New macros.
9644 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
9645 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
9646 (CHARSET_REVERSE_CHARSET): Likewise.
9647 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
9648 eight-bit-graphic.
9649 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
9650 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
9651 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
9652 encounter an invalid multibyte sequence.
9653 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
9654 sequence is always valid.
9655 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
9656 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New macros.
9657 (CHAR_STRING): For 8-bit characters, call char_to_string.
9658 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
9659 multibyte sequence is always valid.
9660 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
9661 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte)
9662 (str_as_unibyte): Extern them.
9663 (BCOPY_SHORT): Fix a bug.
9664 (CHAR_LEN): This macro deleted. Callers changed to use CHAR_BYTES.
9665 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
9666 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
9667 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
9668
9669 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
9670 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
9671 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE)
9672 (EMIT_BYTES): New macros.
9673 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII)
9674 (DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
9675 macros deleted.
9676 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
9677 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
9678 check the validity of multibyte sequence.
9679 (decode_coding_emacs_mule): New function.
9680 (encode_coding_emacs_mule): New macro.
9681 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
9682 the source.
9683 (DECODE_ISO_CHARACTER): Just return a character code.
9684 (DECODE_COMPOSITION_START): Set coding->result instead of result.
9685 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
9686 EMIT_CHAR to produced decoded characters. Exit the loop only by
9687 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
9688 block here.
9689 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
9690 only position codes for an invalid character.
9691 (encode_designation_at_bol): Return new destination pointer. 5th
9692 arg DSTP is changed to DST.
9693 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
9694 from the source by ONE_MORE_CHAR. Don't handle the case of last
9695 block here.
9696 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
9697 macros deleted.
9698 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
9699 (detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
9700 TWO_MORE_BYTES to fetch a byte from the source.
9701 (encode_eol): Pay attention to coding->src_multibyte.
9702 (detect_coding, detect_eol): Preserve members src_multibyte and
9703 dst_multibyte.
9704 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
9705 (encoding_buffer_size): Set magnification to 3 for all coding
9706 systems that require encoding.
9707 (ccl_coding_driver): For decoding, be sure that the result is
9708 valid multibyte sequence.
9709 (decode_coding): Initialize coding->errors and coding->result.
9710 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
9711 and raw-text, always call decode_eol. Handle the case of last
9712 block here. If not coding->dst_multibyte, convert the resulting
9713 sequence to unibyte.
9714 (encode_coding): Initialize coding->errors and coding->result.
9715 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
9716 and raw-text, always call encode_eol. Handle the case of last
9717 block here.
9718 (shrink_decoding_region, shrink_encoding_region): Detect cases
9719 that we can't skip data more rigidly.
9720 (code_convert_region): Setup src_multibyte and dst_multibyte
9721 members of coding. For decoding, if the buffer is multibyte,
9722 convert the source sequence to unibyte in advance. For encoding,
9723 if the buffer is multibyte, convert the resulting sequence to
9724 multibyte afterward.
9725 (run_pre_post_conversion_on_str): New function.
9726 (code_convert_string): Deleted and divided into the following two.
9727 (decode_coding_string, encode_coding_string): New functions.
9728 (code_convert_string1, code_convert_string_norecord): Call one of
9729 above.
9730 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
9731 MAKE_NON_ASCII_CHAR.
9732 (Fset_terminal_coding_system_internal)
9733 (Fset_safe_terminal_coding_system_internal): Setup src_multibyte
9734 and dst_multibyte members.
9735 (init_coding_once): Initialize iso_code_class with new enum
9736 ISO_control_0 and ISO_control_1.
9737
9738 * coding.h (enum iso_code_class_type): Member ISO_control_code is
9739 devided into ISO_control_0 and ISO_control_1.
9740 (struct coding_system): New members src_multibyte, dst_multibyte,
9741 errors, and result. Delete member fake_multibyte.
9742 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
9743 nonzero.
9744 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
9745 nonzero.
9746
9747 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
9748 (Faset): Likewise.
9749
9750 * editfns.c (Fformat): Be sure to convert 8-bit characters to
9751 multibyte form.
9752 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
9753 combining occurs.
9754 (Ftranspose_region): Delete codes for handling byte combining.
9755
9756 * fileio.c (Finsert_file_contents): Setup src_multibyte and
9757 dst_multibyte members of coding. On handling REPLACE on unibyte
9758 buffer, convert the result of decode_coding to unibyte. On
9759 inserting into a mutibyte buffer, always call code_convert_region.
9760 (e_write): Setup coding->src_multibyte according to the
9761 multibyteness of the source (buffer or string).
9762
9763 * fns.c (concat): Handle 8-bit characters correctly.
9764 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
9765 unibyte in the result.
9766 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
9767 valid multibyte form in the result.
9768 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
9769 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
9770 return -1, signal an error.
9771 (base64_encode_1): New arg MULTIBYTE. Get each character by
9772 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
9773 character is found, return -1.
9774 (Fbase64_decode_region): Delete codes for handling byte-combining.
9775 Treat each decoded byte as a unibyte character.
9776 (Fbase64_decode_string): Return unibyte string.
9777 (Fcompare_strings, concat, string_byte_to_char): Use
9778 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
9779 FETCH_STRING_CHAR_ADVANCE.
9780 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9781 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
9782
9783 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
9784 SPLIT_NON_ASCII_CHAR.
9785 (fontset_ref_via_base, fontset_set): Likewise
9786
9787 * insdel.c (adjust_markers_for_record_delete): Deleted.
9788 (adjust_markers_for_insert): Argument changed. Caller changed.
9789 (adjust_markers_for_replace): Likewise.
9790 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error)
9791 (CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
9792 (copy_text): Delete unused local varialbe c_save. For converting
9793 to multibyte, be sure to make all 8-bit characters in valid
9794 multibyte form.
9795 (count_size_as_multibyte): Handle 8-bit characters correctly.
9796 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
9797 (adjust_after_replace, replace_range, del_range_2)
9798 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
9799 (insert_1_both, insert_from_string_1, insert_from_buffer_1)
9800 (adjust_after_replace, replace_range, del_range_2) Delete codes for
9801 handling byte combining.
9802 (adjust_before_replace): Deleted.
9803
9804 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
9805 SPLIT_NON_ASCII_CHAR.
9806 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
9807 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9808 (Fkey_description): Likewise.
9809
9810 * lread.c (read1): On reading multibyte string, be sure to make
9811 all 8-bit chararacters in valid multibyte form.
9812 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9813
9814 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
9815 unconditionally.
9816
9817 * process.c (Fstart_process): GCPRO current_dir before calling
9818 Ffind_operation_coding_system. Encode arguments here.
9819 (create_process): Don't encode arguments here. Setup
9820 src_multibyte and dst_multibyte members of struct coding.
9821 (read_process_output): Setup src_multibyte and dst_multibyte
9822 members of struct coding. If the output is to multibyte buffer,
9823 always decode the output of the process. Adjust the
9824 representation of 8-bit characters to the multibyteness of the output.
9825 (send_process): Setup coding->src_multibyte according to the
9826 multibyteness of the source.
9827
9828 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
9829 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
9830 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
9831
9832 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of CHAR_LEN.
9833
9834 * w16select.c (Fw16_set_clipboard_data): Setup members
9835 src_multibyte and dst_multibyte of coding. Adjusted for the
9836 change for find_charset_in_str.
9837 (Fw16_get_clipboard_data): Likewise.
9838
9839 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
9840 dst_multibyte of coding.
9841 (x_to_w32_font): Likewise.
9842
9843 * w32select.c (Fw32_set_clipboard_data): Setup members
9844 src_multibyte and dst_multibyte of coding. Adjusted for the
9845 change for find_charset_in_str.
9846 (Fw32_get_clipboard_data): Likewise.
9847
9848 * xdisp.c (get_next_display_element): Handle 8-bit characters
9849 correctly.
9850 (next_element_from_display_vector): Use CHAR_BYTES instead of CHAR_LEN.
9851 (disp_char_vector): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
9852
9853 * xselect.c (selection_data_to_lisp_data): Setup members
9854 src_multibyte and dst_multibyte of coding. Adjusted for the
9855 change for find_charset_in_str.
9856 (lisp_data_to_selection_data): Likewise.
9857
9858 2000-05-19 Gerd Moellmann <gerd@gnu.org>
9859
9860 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed buffer.
9861
9862 * dispextern.h (Vimage_types): Add extern declaration.
9863
9864 * xdisp.c (Vimage_types): Moved here from xfns.c.
9865 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
9866
9867 * xfns.c (Vimages_types): Moved to xdisp.c.
9868 (syms_of_xfns): Move `image-types' to xdisp.c.
9869
9870 * w32fns.c (Vimage_types): Removed.
9871 (syms_of_w32fns): Remove `image-types'.
9872
9873 2000-05-18 Kenichi Handa <handa@etl.go.jp>
9874
9875 * fns.c (map_char_table): Pay attention to character number of
9876 charset. Check the validity of charset at the first level. For
9877 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
9878 the default value.
9879
9880 * fontset.c: Include "buffer.h".
9881 (fs_load_font): If the face has fontset, record the face ID in
9882 that fontset.
9883 (Finternal_char_font): New function.
9884 (accumulate_font_info): New function.
9885 (Ffontset_info): Rewritten for the new fontset implementation.
9886 (syms_of_fontset): Register Vdefault_fontset in the first element
9887 of Vfontset_table. Include Vdefault_fontset in
9888 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
9889 function.
9890
9891 2000-05-16 Dave Love <fx@gnu.org>
9892
9893 * m/iris5d.h: Deleted -- unused.
9894
9895 2000-05-16 Gerd Moellmann <gerd@gnu.org>
9896
9897 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
9898 `invalid' instead of `illegal'.
9899
9900 * indent.c (Fmove_to_column): When ending within a tab, insert
9901 spaces first so that markers at the end of the tab get adjusted.
9902
9903 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
9904 buffer list that wasn't selected in that frame.
9905
9906 * filelock.c (get_boot_time): To obtain an 8 char file name, which
9907 is needed on mescaline, use a 2 char prefix, and call
9908 make_temp_name with second arg non-zero.
9909
9910 * fileio.c (make_temp_name): New function, extracted from
9911 Fmake_temp_name.
9912 (Fmake_temp_name): Use it.
9913
9914 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
9915
9916 * window.c (coordinates_in_window): Subtract 1 when computing right_x.
9917
9918 2000-05-15 Gerd Moellmann <gerd@gnu.org>
9919
9920 * Makefile.in (lisp): Add env.elc.
9921
9922 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
9923
9924 2000-05-12 Gerd Moellmann <gerd@gnu.org>
9925
9926 * search.c (Freplace_match): Handle case of `\N' in the
9927 replacement when there's no group N.
9928
9929 2000-05-11 Gerd Moellmann <gerd@gnu.org>
9930
9931 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
9932 of the message to message_dolog.
9933
9934 * keyboard.c (read_char): Don't clear current message for help
9935 events; let the code handling help events handle this. Change
9936 code detecting help events that should be ignored.
9937
9938 * xdisp.c (handle_single_display_prop): Don't try to set PT if
9939 we're interating over a string.
9940
9941 2000-05-09 Dave Love <fx@gnu.org>
9942
9943 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
9944 that offset before writing. Move gcpro region past call of
9945 Ffile_regular_p.
9946
9947 2000-05-04 Dave Love <fx@gnu.org>
9948
9949 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
9950
9951 2000-05-04 Gerd Moellmann <gerd@gnu.org>
9952
9953 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
9954 of inserted characters when BUF equals the current buffer, and PT
9955 is in front of or equal to FROM.
9956
9957 2000-05-03 Gerd Moellmann <gerd@gnu.org>
9958
9959 * xdisp.c (handle_single_display_prop): If display property value
9960 is invalid, or something not supported on the frame, restore
9961 iterator's position to what it was initially. Make sure to return
9962 0 for invalid and unsupported property values.
9963
9964 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
9965 that x_per_char_metric returns null.
9966
9967 2000-05-02 Gerd Moellmann <gerd@gnu.org>
9968
9969 * xterm.h (struct face): Add forward declaration.
9970 (struct image): Ditto.
9971 (image_ascent): Add prototype.
9972
9973 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
9974 (x_draw_image_relief, x_draw_image_foreground_1): Call function
9975 image_ascent instead of using IMAGE_ASCENT.
9976
9977 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
9978 (IMAGE_ASCENT): Removed.
9979
9980 * xfns.c (Qcenter): New variable.
9981 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
9982 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
9983 (image_ascent): New function.
9984 (lookup_image): Recognize `:ascent center'.
9985 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
9986 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
9987 (xbm_load): Don't set image's ascent here.
9988 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
9989 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
9990 check ascent values here.
9991 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
9992 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
9993 (syms_of_xfns): Initialize Qcenter.
9994
9995 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
9996 to the limits, increase the limits.
9997
9998 2000-05-01 Kenichi Handa <handa@etl.go.jp>
9999
10000 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
10001 Check Vfont_encoding_alist against the full name of the opened font.
10002
10003 2000-04-28 Gerd Moellmann <gerd@gnu.org>
10004
10005 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
10006 taller than the window.
10007
10008 2000-04-28 Kenichi Handa <handa@etl.go.jp>
10009
10010 * xfaces.c (realize_x_face): Fix the argument of the second
10011 xassert. BASE_FACE may not be a face for ASCII.
10012
10013 2000-04-27 Gerd Moellmann <gerd@gnu.org>
10014
10015 * print.c (print_object): Treat print-length < 0 as nil.
10016
10017 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
10018
10019 * s/freebsd.h (TERMCAP_OBJ): Removed.
10020 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
10021
10022 * lread.c (read1): Don't treat period followed by certain
10023 characters as symbol start.
10024
10025 * xfns.c (slurp_file): New function.
10026 (xbm_image_p): Handle case of in-memory XBM files.
10027 (xbm_scan): Rewritten to work on memory buffers instead of files.
10028 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
10029 Work on memory buffers instead of files. If DATA is null test
10030 if buffer looks like an in-memory XBM file.
10031 (xbm_load_image): Renamed from xbm_load_image_file. Work on
10032 memory buffers instead of files.
10033 (xbm_file_p): New function.
10034 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
10035
10036 * lread.c (end_of_file_error): New function.
10037 (read1): Call it instead of signaling `end-of-file' directly.
10038
10039 * print.c (print_error_message): Print data of `end-of-file'
10040 with Fprinc instead of Fprin1.
10041
10042 2000-04-26 Ken Raeburn <raeburn@gnu.org>
10043
10044 * window.c (freeze_window_start): Check that minibuffer scroll
10045 window isn't nil before extracting the window structure pointer
10046 from it.
10047
10048 * undo.c (record_delete): If we hit the end of the undo list, stop
10049 picking elements apart.
10050
10051 2000-04-26 Gerd Moellmann <gerd@gnu.org>
10052
10053 * xdisp.c (display_line): If lines are continued, restore
10054 iterator's ascent/descent information to the values before the
10055 first glyph not fitting on the line.
10056
10057 2000-04-25 Gerd Moellmann <gerd@gnu.org>
10058
10059 * xdisp.c (try_window_id) <all changes above window start>: Adjust
10060 positions in glyph matrix. Don't compute new window end positions.
10061
10062 * dispnew.c (increment_matrix_positions): Renamed from
10063 increment_glyph_matrix_buffer_positions.
10064 (increment_row_positions): Renamed from
10065 increment_glyph_row_buffer_positions.
10066
10067 * dispextern.h: Change names of renamed functions from dispnew.c
10068 in prototypes.
10069
10070 2000-04-24 Gerd Moellmann <gerd@gnu.org>
10071
10072 * fileio.c (Fdo_auto_save): Create directories for auto-save
10073 list file if necessary.
10074
10075 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
10076 from buffer or frame.
10077 (automatic_hscrolling_p): New variable.
10078 (hscroll_windows): Scroll windows horizontally only if automatic
10079 hscrolling is allowed.
10080 (syms_of_xdisp): New variable `automatic-hscrolling'.
10081
10082 * frame.h (struct frame): Add member extra_line_spacing.
10083
10084 * xfns.c (x_set_line_spacing): New function.
10085 (Fx_create_frame): Set line spacing from resources.
10086 (Qline_spacing): New variable.
10087 (syms_of_xfns): Initialize Qline_spacing.
10088
10089 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
10090
10091 * buffer.c (init_buffer_once): Handle extra_line_spacing.
10092 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
10093 (reset_buffer): Don't initialize extra2 and extra3. Initialize
10094 extra_line_spacing from default value.
10095 (init_buffer_once): Initialize default value of extra_line_spacing.
10096
10097 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
10098 and extra3.
10099
10100 * xterm.c (x_produce_glyphs): Remove reference to struct it's
10101 prompt_width. Add extra line spacing.
10102
10103 * term.c (produce_glyphs): Remove reference to struct it's
10104 prompt_width.
10105
10106 * dispextern.h (struct it): Remove member prompt_width, add
10107 extra_line_spacing.
10108
10109 2000-04-22 Gerd Moellmann <gerd@gnu.org>
10110
10111 * dispnew.c (update_frame_line): When writing a whole line, make
10112 sure cursor is in the right row afterwards, otherwise a use of
10113 capability `ch' in cmgoto might leave the cursor in the row below.
10114
10115 2000-04-21 Gerd Moellmann <gerd@gnu.org>
10116
10117 * lisp.h (struct Lisp_Buffer_Cons): Remove.
10118
10119 * keyboard.c (timer_check): Fix typo in comment.
10120
10121 2000-04-21 Kenichi Handa <handa@etl.go.jp>
10122
10123 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
10124 name change: ch -> character.
10125
10126 2000-04-20 Gerd Moellmann <gerd@gnu.org>
10127
10128 * keyboard.c (echo_message_buffer): New variable.
10129 (echo_now): Set echo_message_buffer to the echo area buffer used
10130 to display the echo.
10131 (cancel_echoing): Reset echo_message_buffer to nil.
10132 (read_char): Code rewritten that handles canceling an echo or
10133 echoing a dash, respectively.
10134
10135 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
10136 directory doesn't exist.
10137
10138 2000-04-19 Dave Love <fx@gnu.org>
10139
10140 * fns.c (syms_of_fns): Defsubr mapc.
10141 (concat): Don't allow numeric args.
10142 (Fconcat): Doc change.
10143
10144 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
10145
10146 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
10147 instead define end_match(1|2) more carefully.
10148 Use GET_CHAR_BEFORE_2 for `begline'.
10149
10150 2000-04-19 Gerd Moellmann <gerd@gnu.org>
10151
10152 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
10153 on 64-bit systems where NULL is defined as `0'.
10154
10155 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
10156 the `variable argument list' to make it work on Alpha.
10157
10158 * m/alpha.h (_LP64) [!_LP64]: Define.
10159 (ORDINARY_LINK): Define for NetBSD.
10160
10161 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
10162
10163 2000-04-19 Dave Love <fx@gnu.org>
10164
10165 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
10166 change.
10167
10168 * Makefile.in (LIBS): Don't use.
10169 (GETLOADAVG_OBJ): Define again.
10170 (otherobj): Add GETLOADAVG_OBJ.
10171
10172 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
10173
10174 2000-04-18 Gerd Moellmann <gerd@gnu.org>
10175
10176 * lread.c (read_filtered_event): Cancel and start busy cursor.
10177
10178 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
10179 that the per-character metrics may be null.
10180
10181 2000-04-17 Gerd Moellmann <gerd@gnu.org>
10182
10183 * buffer.c (clone_per_buffer_values): New function.
10184 (Fmake_indirect_buffer): Add optional argument CLONE. Call
10185 clone_per_buffer_values if CLONE is not nil.
10186
10187 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
10188
10189 2000-04-16 Dave Love <fx@gnu.org>
10190
10191 * Makefile.in: Remove obsolete localcpp stuff.
10192 (GETLOADAVG_OBJ): Don't define.
10193 (obj): Move LIBOBJS...
10194 (otherobj): ... to here.
10195 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
10196 whitespace-only lines after the continuation (Irix).
10197
10198 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10199
10200 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
10201
10202 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
10203
10204 2000-04-14 Dave Love <fx@gnu.org>
10205
10206 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
10207 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
10208 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
10209 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
10210 NLIST_STRUCT.
10211
10212 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
10213 autoconfiscated HAVE_GETLOADAVG.
10214
10215 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
10216 BROKEN_MKTIME.
10217
10218 2000-04-14 Gerd Moellmann <gerd@gnu.org>
10219
10220 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
10221 (fill_in_lock_file_name): Avoid existing files that aren't links.
10222
10223 2000-04-14 Dave Love <fx@gnu.org>
10224
10225 * Makefile.in (LIBS, LIBOBJS): New variable.
10226 (INTERVAL_SRC): Convert to make variable.
10227 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
10228 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
10229 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
10230 add LIBOBJS.
10231 (SOME_MACHINE_OBJECTS): Remove interval stuff.
10232 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
10233 (shortlisp): Add facemenu, float-sup, frame.
10234 (SOME_MACHINE_LISP): Remove them from here.
10235 (LIBES): Change unused LDLIBS to autoconf LIBS.
10236
10237 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
10238
10239 2000-04-14 Kenichi Handa <handa@etl.go.jp>
10240
10241 * composite.c (update_compositions): If FROM and TO are not in a
10242 valid range, do nothing.
10243
10244 2000-04-13 Gerd Moellmann <gerd@gnu.org>
10245
10246 * tparam.c (tparam1): Abort when encountering an unknown `%'-specifier.
10247
10248 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as terminfo.o.
10249
10250 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
10251 as TERMCAP_OBJ.
10252
10253 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
10254
10255 * fileio.c (a_write): Remove redundant semi-colons.
10256 (e_write): Return -1 if failed to write all the data.
10257 This fixes the changes made at 1999-12-15.
10258
10259 2000-04-12 Dave Love <fx@gnu.org>
10260
10261 * fns.c (mapcar1): Test for null vals to support mapc.
10262 (Fmapc): New function.
10263
10264 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
10265
10266 * msdos.c (NUM_MOUSE_BUTTONS): Define.
10267 (IT_frame_up_to_date): Support the buffer local value of
10268 cursor-type, if defined.
10269
10270 2000-04-10 Dave Love <fx@gnu.org>
10271
10272 * editfns.c (preceding-char, following-char): Doc fix.
10273
10274 2000-04-10 Ken Raeburn <raeburn@gnu.org>
10275
10276 * Makefile.in (temacs): Revert 2000-03-12 change.
10277
10278 2000-04-10 Jason Rumney <jasonr@gnu.org>
10279
10280 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
10281
10282 2000-04-10 Gerd Moellmann <gerd@gnu.org>
10283
10284 * xdisp.c (setup_echo_area_for_printing): Choose an echo
10285 area buffer, if it's not set up yet.
10286
10287 * indent.c (compute_motion): Set immediate_quit.
10288
10289 2000-04-09 Gerd Moellmann <gerd@gnu.org>
10290
10291 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New variable.
10292 (realize_tty_face): Suppress boldness if colors are the inverse of
10293 the default colors, and tty_suppress_bold_inverse_default_colors_p
10294 is set.
10295 (Ftty_suppress_bold_inverse_default_colors): New function.
10296 (syms_of_xfaces): Defsubr it.
10297
10298 * buffer.c (Frestore_buffer_modified_p): New function.
10299 (syms_of_buffer): Defsubr it.
10300
10301 2000-04-08 Ken Raeburn <raeburn@gnu.org>
10302
10303 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
10304 charset id (int) argument, not a charset (Lisp_Object).
10305
10306 * coding.h (code_convert_string): Declare.
10307 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
10308 object, as the fourth argument to code_convert_string.
10309
10310 * fontset.c (make_fontset_for_ascii_face): Use XINT on return value.
10311 (Fset_fontset_font): Use EQ to compare lisp objects.
10312
10313 2000-04-05 Ken Raeburn <raeburn@gnu.org>
10314
10315 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
10316 a pointer that looks like a lisp object.
10317 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
10318 zero, instead see whether it's an integer object, since they can't
10319 have intervals.
10320 (GET_INTERVAL_OBJECT): Simply assign to the destination.
10321
10322 * dispnew.c (allocate_matrices_for_frame_redisplay)
10323 (direct_output_forward_char): Use X(U)INT and make_number as needed
10324 to convert between (unsigned) int values and lisp integers.
10325 * keyboard.c (read_key_sequence): Likewise.
10326 * lread.c (substitute_object_recurse): Likewise.
10327 * fns.c (concat, hash_lookup, hash_remove): Likewise.
10328 * minibuf.c (do_completion, Fminibuffer_complete_word)
10329 (Fminibuffer_completion_help): Likewise.
10330 * term.c (produce_special_glyphs): Likewise.
10331
10332 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
10333 * print.c (print_preprocess, print_object): Likewise.
10334
10335 * search.c (compile_pattern): Use NILP when checking for nil.
10336
10337 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
10338 __OPTIMIZE__]: Provide a GNU C macro version that handles
10339 lisp-object unions.
10340 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
10341 field, to better cope with ENABLE_CHECKING and calls that modify a
10342 Lisp_Object using its old value.
10343
10344 2000-04-04 Gerd Moellmann <gerd@gnu.org>
10345
10346 * window.c (compare_window_configurations): Signal an error
10347 if parameters C1 or C2 aren't window configurations.
10348
10349 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
10350 AFTER_POTENTIAL_GC calls around calls to functions that can
10351 signal an error and thus invoke the debugger.
10352
10353 2000-04-03 Gerd Moellmann <gerd@gnu.org>
10354
10355 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
10356 an error if decoding fails.
10357
10358 * keyboard.c (lispy_mouse_names): Variable removed.
10359 (Vlispy_mouse_stem): New variable.
10360 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
10361 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
10362 for any mouse button number. Increase size of mouse_syms and
10363 button_down_location as needed. Call modify_event_symbol with
10364 different arguments.
10365 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
10366 Call modify_event_symbol with different arguments.
10367 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
10368 for any button number. Call modify_event_symbol with different
10369 arguments.
10370 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
10371 Accept a string for NAME_ALIST_OR_STEM.
10372
10373 * lisp.h (larger_vector): Add prototype.
10374
10375 * fns.c (larger_vector): Make externally visible.
10376
10377 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
10378
10379 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
10380
10381 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
10382 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
10383 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
10384 we are between str1 and str2.
10385 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
10386 (PATFETCH): Use `TRANSLATE'.
10387 (PATFETCH_RAW): Fetch multibyte char if applicable.
10388 (PATUNFETCH): Remove.
10389 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
10390 When writing a char, write it directly into the pattern buffer rather
10391 than going needlessly through a temp char-array.
10392 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
10393 multibyte magic and remove the useless `#ifdef emacs'.
10394 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
10395 buffer.
10396
10397 * regex.h (struct re_pattern_buffer): Make field `multibyte'
10398 conditional on `emacs'.
10399
10400 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
10401
10402 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10403
10404 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
10405 non-union-type versions of XMARK and friends here, because XMARK
10406 and friends won't work on an integer field if NO_UNION_TYPE is not
10407 defined.
10408 (make_number): Define as a function if it's not defined as a macro.
10409
10410 * composite.c (run_composite_function): Use NILP when checking for nil.
10411 (syms_of_composite): Delete local var NARGS, pass an int as first
10412 argument to Fmake_hash_table.
10413
10414 * editfns.c (text_property_stickiness): Use NILP to test
10415 Lisp_Object boolean value.
10416 (Fmessage_or_box): Don't use NILP to test int variable.
10417 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
10418 problems reading from and changing the same lisp value in an
10419 XSETSTRING call.
10420
10421 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10422
10423 * term.c (TN_no_color_video): New variable.
10424 (term_init): Intitialize TN_no_color_video.
10425 (enum no_color_bit): New enumeration.
10426 (MAY_USE_WITH_COLORS_P): New macro.
10427 (turn_on_face): Use it to determine if attributes may be used
10428 combined with colors.
10429
10430 2000-04-01 Ken Raeburn <raeburn@gnu.org>
10431
10432 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
10433 with int lvalues via casts; instead, just yield lisp object lvalues.
10434 (enlarge_window): Variable sizep now points to Lisp_Object. Use
10435 proper accessor macros.
10436 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
10437 (grow_mini_window): Fix typo getting int value of root->height.
10438
10439 * xdisp.c (compute_string_pos): Fix order of arguments to
10440 string_pos_nchars_ahead.
10441 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
10442 count arg to variable-arg routines like Frun_hook_with_args and
10443 Fformat.
10444 (back_to_previous_visible_line_start)
10445 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
10446 fixed-arg routines like Fget_char_property and Fmake_string.
10447 (reconsider_clip_changes): Use XINT when comparing integer lisp
10448 objects, or passing them as int arguments.
10449 (mark_window_display_accurate, insert_left_trunc_glyphs)
10450 (append_space, extend_face_to_end_of_line): Use make_number when
10451 storing or passing integer values as lisp objects.
10452 (set_cursor_from_row, highlight_trailing_whitespace): Use
10453 INTEGERP, not implicit test against zero, for glyph object.
10454 (try_window_id): Don't use make_number when we want an int value.
10455
10456 * xfaces.c (xlfd_symbolic_value): Make last argument a
10457 Lisp_Object, to be consistent with callers.
10458 (Fbitmap_spec_p): Use XINT to get numeric value of height.
10459 (lface_hash): Apply XFASTINT to lisp values before folding in.
10460
10461 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
10462 fill in window width and height. Pass an int, not a lisp object,
10463 as first arg to Finsert.
10464
10465 2000-04-01 Gerd Moellmann <gerd@gnu.org>
10466
10467 * xfaces.c (realize_basic_faces): Block input while realizing
10468 the faces.
10469
10470 * keyboard.c (lispy_mouse_names): Add additional mouse names.
10471
10472 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
10473
10474 2000-03-31 Gerd Moellmann <gerd@gnu.org>
10475
10476 * xterm.c (x_produce_glyphs): When displaying unibyte text
10477 or ASCII, handle case that per-char metric is null.
10478
10479 2000-03-30 Ken Raeburn <raeburn@gnu.org>
10480
10481 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
10482
10483 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW)
10484 (XSUBR, XBUFFER): Verify correct object type before returning
10485 pointer, using eassert.
10486 * frame.h (XFRAME): Likewise.
10487
10488 * buffer.c (Frename_buffer, Fset_buffer_multibyte)
10489 (swap_out_buffer_local_variables, Fmove_overlay): Don't apply
10490 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type.
10491 * data.c (set_internal): Likewise.
10492 * dispextern.h (WINDOW_WANTS_MODELINE_P)
10493 (WINDOW_WANTS_HEADER_LINE_P): Likewise.
10494 * fileio.c (auto_save_1): Likewise.
10495 * insdel.c (check_markers): Likewise.
10496 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
10497 * undo.c (record_insert): Likewise.
10498 * vmsproc.c (child_sig): Likewise.
10499 * window.c (unshow_buffer, window_loop): Likewise.
10500 * xterm.c (x_erase_phys_cursor): Likewise.
10501
10502 2000-03-30 Gerd Moellmann <gerd@gnu.org>
10503
10504 * xfns.c (free_image_cache): Free the cache structure itself
10505 last, after all its members have been freed.
10506
10507 * lisp.h (xstrdup): Add prototype.
10508
10509 * alloc.c (xstrdup): Moved here from xfaces.c.
10510 (allocating_for_lisp): Variable removed.
10511 (lisp_malloc): Block input around the calls to malloc and mem_insert.
10512
10513 * xfaces.c (realize_tty_face): Use find_symbol_value instead
10514 of Fsymbol_value.
10515 (xstrdup): Moved to alloc.c.
10516
10517 2000-03-29 Ken Raeburn <raeburn@gnu.org>
10518
10519 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
10520
10521 * emacs.c (main): Fix sense of no-loadup test.
10522
10523 * config.in (ENABLE_CHECKING): Undef.
10524
10525 * lisp.h (struct interval): Replace "parent" field with a union of
10526 interval pointer and Lisp_Object; add new bitfield to use as
10527 discriminant. Change other flag fields to bitfields.
10528 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
10529 is defined and the supplied test fails, print a message and abort.
10530 (eassert): New macro. Use CHECK to provide an assert-like facility.
10531
10532 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
10533 pointers; abort if the value looks like a lisp object.
10534 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT)
10535 (SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
10536 Modify for new interval parent definition.
10537
10538 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE)
10539 (UNMARK_BALANCE_INTERVALS): Update references that need an
10540 addressable lisp object in the interval structure.
10541 (die): New function.
10542 (suppress_checking): New variable.
10543
10544 * intervals.c (interval_start_pos): Just return 0 if there's no
10545 parent object.
10546
10547 2000-03-29 Gerd Moellmann <gerd@gnu.org>
10548
10549 * lread.c (read1): Accept `.' (period) as symbol start like in CL
10550 and earlier Emacs versions.
10551
10552 * keyboard.c (Ftop_level): Cancel busy-cursor.
10553
10554 * eval.c (call_debugger): Cancel busy-cursor.
10555
10556 2000-03-29 Kenichi Handa <handa@etl.go.jp>
10557
10558 * search.c (Freplace_match): Adjust multibyteness of the current
10559 buffer and NEWTEXT. Free allocated memory before signaling an error.
10560
10561 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
10562
10563 * regex.c (analyse_first): New function obtained by ripping out most
10564 of re_compile_fastmap and generalizing it a little bit so that it
10565 can also just return whether a given (sub)pattern can match the empty
10566 string or not.
10567 (regex_compile): Use `analyse_first' to decide whether the loop-check
10568 needs to be done or not for *, +, *? and +? (the loop check is costly
10569 for non-greedy repetition).
10570 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
10571
10572 2000-03-28 Dave Love <fx@gnu.org>
10573
10574 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k, alpha.
10575
10576 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
10577
10578 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
10579
10580 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
10581 an expression.
10582 (enum re_opcode_t): Update description of succeed_n.
10583 (PATFETCH): Always define.
10584 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
10585 operators, char classes, shy-groups and intervals).
10586 Optimize special cases of intervals so as to only use succeed_n and
10587 jump_n when really needed.
10588 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
10589 that we don't have to handle the special cases any more.
10590 Simplify on_failure_jump handling as well.
10591
10592 2000-03-28 Jason Rumney <jasonr@gnu.org>
10593
10594 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
10595
10596 2000-03-27 Gerd Moellmann <gerd@gnu.org>
10597
10598 * s/freebsd.h (GC_SETJMP_WORKS): Define.
10599
10600 * s/msdos.h (GC_SETJMP_WORKS): Define.
10601
10602 * alloc.c (mark_maybe_object): New function.
10603 (mark_memory): Use it.
10604 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
10605 (setjmp_tested_p, longjmp_done): New variables.
10606 (test_setjmp): New function.
10607 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
10608 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
10609
10610 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
10611 to DEC_TEXT_POS and INC_TEXT_POS.
10612
10613 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
10614 with parameter MULTIBYTE_P.
10615
10616 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter MULTIBYTE_P.
10617
10618 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
10619 buffers because it looks for multibyte character byte sequences
10620 which don't exist in unibyte text.
10621
10622 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
10623
10624 * xfaces.c (register_color, unregister_color, unregister_colors)
10625 [DEBUG_X_COLORS]: New functions.
10626 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
10627
10628 * xfns.c (x_set_cursor_color): Get color reference counts right.
10629
10630 * xterm.c (x_copy_color): New function.
10631 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
10632
10633 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
10634 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
10635 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
10636 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
10637 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
10638 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
10639 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
10640 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
10641 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
10642 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
10643
10644 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
10645 names for handling per-buffer variables.
10646
10647 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
10648 instead of MAX_BUFFER_LOCAL_VARS.
10649 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
10650
10651 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
10652
10653 * xfns.c (x_specified_cursor_type): New function.
10654 (x_set_cursor_type): Use it.
10655
10656 * buffer.h (struct buffer): Add cursor_type.
10657
10658 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
10659
10660 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
10661 (print_partial_compiled_pattern, re_compile_fastmap):
10662 Handle new opcode.
10663 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
10664 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
10665 executing it as well as when popping it off the stack to find infinite
10666 loops in non-greedy repetition operators.
10667
10668 2000-03-26 Gerd Moellmann <gerd@gnu.org>
10669
10670 * doc.c (Qfunction_documentation): New variable.
10671 (syms_of_doc): Initialize Qfunction_documentation.
10672 (Fdocumentation): If FUNCTION is a symbol with non-nil
10673 `function-documentation' property, return a documentation derived
10674 from that.
10675
10676 * buffer.c (syms_of_buffer): Add default-cursor-type.
10677 (init_buffer_once): Don't let cursor_type have a local value
10678 in every buffer.
10679
10680 * xterm.c (x_display_and_set_cursor): Choose cursor depending
10681 on buffer-local value of cursor_type.
10682 (x_draw_bar_cursor): Add parameter WIDTH.
10683
10684 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
10685 (init_buffer_once): Set default cursor_type value to t.
10686 Mark cursor_type as local everywhere.
10687 (syms_of_buffer): New per-buffer variable cursor-type.
10688
10689 * buffer.h (struct buffer): Remove member local_var_flags,
10690 add local_flags.
10691 (MAX_BUFFER_LOCAL_VARS): New macro.
10692 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
10693 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
10694 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
10695 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
10696
10697 * print.c (print_object): Use new macros for per-buffer variables.
10698
10699 * category.c (Fset_category_table): Use new macros for per-buffer
10700 variables.
10701
10702 * buffer.c (buffer_permanent_local_flags): Make a char array.
10703 (max_buffer_local_idx): New variable.
10704 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
10705 for new handling of per-buffer variables.
10706 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
10707 (init_buffer_once): Initialize per-buffer vars differently.
10708 Set max_buffer_local_idx.
10709
10710 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
10711 variables.
10712
10713 * lread.c (defvar_per_buffer): Use new macros for per-buffer variables.
10714
10715 * data.c (do_symval_forwarding, store_symval_forwarding)
10716 (find_symbol_value, set_internal, default_value, Fset_default)
10717 (Fkill_local_variable, Flocal_variable_p): Use new macros for
10718 per-buffer variables.
10719
10720 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
10721
10722 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10723
10724 * xterm.c (x_term_init): Unblock input around call1 of
10725 Qvendor_specific_keysyms.
10726
10727 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
10728 (find_defun_start): Consider an open parenthesis in column 0
10729 a defun start only if open_paren_in_column_0_is_defun_start is set.
10730 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
10731
10732 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
10733
10734 * eval.c (Fautoload): Add entry in load-history (if after dump).
10735 * lread.c (load-history): Update docstring.
10736
10737 2000-03-24 Gerd Moellmann <gerd@gnu.org>
10738
10739 * indent.c (Fvertical_motion): Always use the current buffer.
10740 Temporarily change the window's buffer, if necessary.
10741
10742 2000-03-23 Gerd Moellmann <gerd@gnu.org>
10743
10744 * xterm.c (fast_find_position): Make sure not to consider rows
10745 not visible in the window.
10746
10747 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
10748
10749 * regex.c (enum syntaxcode): Provide default for non-Emacs.
10750 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
10751
10752 2000-03-22 Jason Rumney <jasonr@gnu.org>
10753
10754 * w32menu.c (single_submenu): Set help string to NULL if none.
10755 (w32_menu_show): Set help string correctly.
10756 (add-menu-item): Set help string in MIIM_DATA for menu item.
10757 Load SetMenuItemInfoA explicitly.
10758 (w32_menu_display_help): New function.
10759
10760 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
10761 (QCdata): Moved to xdisp.c.
10762
10763 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
10764 (Vw32_charset_to_codepage_alist): Removed.
10765 (Vw32_charset_info_alist): New variable.
10766 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312)
10767 (chinesebig5, oem, easteurope, turkish, baltic, russian, arabic)
10768 (greek, hebrew, thai, johab, mac, unicode]): New symbols.
10769 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
10770 with TODO comment.
10771 (w32_codepage_for_font): Use Vw32_charset_info_alist.
10772 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
10773 Define Vw32_charset_info_alist and w32_charset symbols.
10774
10775 2000-03-22 Jason Rumney <jasonr@gnu.org>
10776
10777 * makefile.nt (w32bdf.obj): Update dependencies.
10778
10779 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
10780
10781 * w32fns.c: Include fontset.h after dispextern.h.
10782 (Fx_create_frame): Do not create fontset.
10783 (w32_load_system_font): Doc fix.
10784 (Fx_close_connection): Free full_name if it is not shared.
10785
10786 * w32term.c: Include fontset.h after dispextern.h.
10787 (x_get_glyph_face_and_encoding): New parameter two_byte_p.
10788 Callers updated.
10789 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
10790 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
10791 (w32_font_is_double_byte): New function, needs body.
10792 (x_append_glyph): Set glyph->glyph_not_available_p.
10793 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
10794 it->charset. If it->multibyte_p is zero and it->c is a multibyte
10795 character, convert it to a unibyte character.
10796 (struct glyph_string): Delete member `charset'.
10797 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
10798 calculating it is found.
10799 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
10800 the case that per char metric is not available correctly.
10801 (x_fill_glyph_string): Handle the case that the specific glyph is
10802 not available correctly.
10803 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
10804 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
10805 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
10806 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
10807 fontset. Don't call FS_LOAD_FONT.
10808
10809 2000-03-22 Ken Raeburn <raeburn@gnu.org>
10810
10811 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
10812 (INT_LISPLIKE): New macro.
10813 (NULL_INTERVAL_P): Use it.
10814 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT)
10815 (SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT)
10816 (GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
10817
10818 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
10819 explicit references to "parent" field of struct interval and
10820 associated unclean type conversions.
10821 * intervals.c (create_root_interval, root_interval, rotate_right)
10822 (rotate_left, balance_possible_root_interval, split_interval_right)
10823 (split_interval_left, interval_start_pos, find_interval)
10824 (next_interval, previous_interval, update_interval)
10825 (adjust_intervals_for_insertion, delete_node, delete_interval)
10826 (adjust_intervals_for_deletion, merge_interval_right)
10827 (merge_interval_left, reproduce_tree, graft_intervals_into_buffer)
10828 (copy_intervals_to_string): Likewise.
10829 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
10830 Likewise.
10831 * syntax.c (update_syntax_table): Likewise.
10832
10833 * intervals.c (reproduce_tree_obj): New function, like
10834 reproduce_tree but takes a Lisp_Object for the parent. Declare
10835 with prototype.
10836 (graft_intervals_into_buffer): Use it when appropriate.
10837 (reproduce_tree): Declare with prototype.
10838 (balance_possible_root_interval): Check that the parent is a lisp
10839 object before trying to examine its type.
10840
10841 2000-03-22 Gerd Moellmann <gerd@gnu.org>
10842
10843 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
10844 as strings only if both are known to be strings.
10845
10846 * s/openbsd.h (LIBS_TERMCAP): Undef.
10847
10848 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
10849
10850 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
10851 definitions for non-Emacs compilation.
10852 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
10853 outside of `#ifdef emacs'.
10854 (print_partial_compiled_pattern): Update.
10855 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
10856 (re_compile_fastmap): Merge handling of charset and charset_not (for
10857 emacs and non-emacs compilation as well).
10858 Similarly for (not)categoryspec and (not)syntaxspec.
10859 Don't use the fastmap when reaching `anychar' since the added
10860 complexity is not justified.
10861 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
10862 and (not)syntaxspec. Merge (not)categoryspec.
10863
10864 2000-03-22 Kenichi Handa <handa@etl.go.jp>
10865
10866 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P)
10867 (FACE_FOR_CHAR): Define them differently for the configuration of
10868 --without-x.
10869
10870 2000-03-21 Dave Love <fx@gnu.org>
10871
10872 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
10873 doc string.
10874
10875 2000-03-21 Gerd Moellmann <gerd@gnu.org>
10876
10877 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
10878 (lface_fully_specified_p): Don't check contents of
10879 LFACE_FONT_INDEX because that attribute is optional.
10880 (realize_x_face): Remove now unwarranted xassert.
10881
10882 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
10883
10884 The following changes are to make font selection based on
10885 characters, not charset. In addition, they recover fontset
10886 facilities while utilizing the new font selection mechanism.
10887
10888 * Makefile.in (fontset.o): Depend on dispextern.h.
10889
10890 * alloc.c (mark_face_cache): Don't mark face->registry.
10891
10892 * dispextern.h (struct glyph): New member glyph_not_available_p.
10893 Use 22 bits for face_id.
10894 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
10895 (struct face): Delete member registry, new member ascii_face.
10896 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
10897 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
10898 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
10899 (struct it): Delete member charset, new member glyph_not_available_p.
10900
10901 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
10902 (struct fontset_info, struct fontset_data): Structs removed.
10903 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset)
10904 (Vglobale_fontset_alist, font_idx_temp): Externs removed.
10905 (fs_load_font, fs_query_fontset): Adjusted for new argument.
10906 (fs_free_face_fontset, fontset_font_pattern)
10907 (face_suitable_for_char_p, face_for_char)
10908 (make_fontset_for_ascii_face): Extern them.
10909 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
10910 (FS_LOAD_FACE_FONT): New macro.
10911
10912 * fontset.c: All codes rewritten or adjusted for the change of
10913 fontset implementation. Now fontset is represented by char table.
10914 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl):
10915 Variables removed.
10916 (my_strcasecmp): Function removed.
10917 (Vfontset_table, next_fontset_id, Vdefault_fontset): New variables.
10918 (AREF, ASIZE): New macros.
10919 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME)
10920 (FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF)
10921 (FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
10922 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset)
10923 (fontset_id_valid_p, font_family_registry, fontset_name)
10924 (fontset_ascii, free_face_fontset, face_suitable_for_char_p)
10925 (face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
10926 New functions.
10927 (fs_load_font): New arg FACE. Caller changed.
10928 (fs_query_fontset): Argument changed. Caller changed.
10929 (Fquery_fontset): call fs_query_fontset.
10930 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
10931 Functions removed.
10932 (clear_fontset_elements, check_registry_encoding)
10933 (check_fontset_name): New functions.
10934 (syms_of_fontset): Set char-table-extra-slots property of fontset
10935 to 3. Staticpro and initialize Vfontset_table and
10936 Vdefault_fontset. Defsubr fontset_font and fontset_list.
10937
10938 * frame.h (struct frame): Member `fontset_data' removed.
10939 (FRAME_FONTSET_DATA): Macro removed.
10940
10941 * frame.c (make_frame): Don't allocate f->fontset_data.
10942 (Fdelete_frame): Don't free f->fontset_data.
10943
10944 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
10945
10946 * xdisp.c (charset_at_position): Function removed.
10947 (init_iterator): Don't set member charset of struct `it'.
10948 (handle_face_prop, reseat_to_string, set_iterator_to_next)
10949 (next_element_from_display_vector, insert_left_trunc_glyphs):
10950 Likewise.
10951 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
10952 FACE_FOR_CHARSET.
10953 (get_next_display_element, append_space)
10954 (extend_face_to_end_of_line): Likewise.
10955
10956 * xfaces.c (Qx_charset_registry, Vface_default_registry):
10957 Variables removed.
10958 (clear_font_table, frame_update_line_height, load_face_font):
10959 Adjusted for the change of fontset implementation.
10960 (load_face_fontset_font): Function removed.
10961 (pixel_point_size): New function.
10962 (font_list): Argument type changed. Caller changed.
10963 (LFACE_FONT): New macro.
10964 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
10965 (set_lface_from_font_name): Type of arg FONTNAME is changed to
10966 Lisp_Object. Determine the font name by actually loading a font
10967 by the specified pattern. Set LFACE_FONT (lface) to the specified
10968 pattern. Even if a font is not found, don't try alternatives.
10969 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
10970 (set_font_frame_param): If `font' is specified in lface, use it.
10971 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
10972 (lface_same_font_attributes_p): Likewise.
10973 (make_realized_face): Arguent changed. Caller changed. Set
10974 face->ascii_face to face itself.
10975 (free_realized_face): Free face->fontset if face is for ASCII.
10976 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p)
10977 (deduce_unibyte_registry, x_charset_registry): Functions removed.
10978 (free_realized_multibyte_face): New function.
10979 (lookup_face, lookup_named_face, lookup_derived_face): Argument
10980 changed. Caller changed.
10981 (try_font_list): Argument type changed.
10982 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
10983 (choose_face_font): Argument changed. Handle fontset properly.
10984 (choose_face_fontset_font): Function removed.
10985 (realize_default_face, realize_named_face): Don't remove the
10986 former face here.
10987 (realize_face): Argument changed. Caller changed. Remove face
10988 with the arg former_face_id in advance. Load font for the new face.
10989 (realize_x_face): Argument changed. Caller changed. For a
10990 multibyte character, share fontset with base_face. For a single
10991 byte character, make a new realized fontset. Don't load a font here.
10992 (realize_tty_face): Argument changed. Caller changed.
10993 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
10994 (face_at_buffer_position): Don't check multibyte_p for returning
10995 DEFAULT_FACE_ID.
10996 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
10997 FACE_SUITABLE_FOR_CHARSET_P.
10998 (syms_of_xfaces): Remove code for Qx_charset_registry and
10999 Vface_default_registry.
11000
11001 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
11002 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
11003 (x_per_char_metric): Don't try FONT->default_char. Even if
11004 pcm->width is zero, glyph bits may exist.
11005 (x_encode_char): Always initialize char2b->byte1.
11006 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
11007 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller changed.
11008 (x_append_glyph): Set glyph->glyph_not_available_p.
11009 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
11010 it->charset. Handle the case that per char metric is not
11011 available. If it->multibyte_p is zero and it->c is a multibyte
11012 character, convert it to a unibyte character.
11013 (struct glyph_string): Delete member `charset'.
11014 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
11015 the case that per char metric is not available correctly.
11016 (x_fill_glyph_string): Handle the case that the specific glyph is
11017 not available correctly.
11018 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
11019 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
11020 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
11021 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
11022 fontset. Don't call FS_LOAD_FONT.
11023
11024 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
11025 (x_create_tip_frame): Likewise.
11026 (Fx_close_connection): Free full_name of font_info.
11027
11028 * fns.c (optimize_sub_char_table): New function.
11029 (Foptimize_char_table): New function.
11030 (syms_of_fns): Defsubr Soptimize_char_table.
11031
11032 2000-03-20 Gerd Moellmann <gerd@gnu.org>
11033
11034 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
11035 only if buffer is displayed in some window.
11036
11037 * xdisp.c (handle_single_display_prop): Initialize local `value'.
11038 (try_window_reusing_current_matrix): Don't call scroll run
11039 function if run's current and desired position are the same;
11040 this prevents cursor flickering.
11041
11042 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
11043
11044 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
11045
11046 * regex.c (RE_STRING_CHAR): New macro.
11047 (GET_CHAR_AFER_2): Remove.
11048 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
11049 (enum re_opcode_t): Remove on_failure_jump_exclusive.
11050 (print_partial_compiled_pattern, re_compile_fastmap)
11051 (re_match_2_internal): Remove on_failure_jump_exclusive.
11052 (regex_compile): Turn optimizable P+ loops into PP*, so that the
11053 optimization only need to work for * (ie. can use of_keep_string_jump).
11054 Remove the special case for .*\n since it is now covered by the general
11055 optimization.
11056 (re_search_2): Don't bother with `room'.
11057 (skip_one_char): New function.
11058 (skip_noops): Simplify since `memory' is not needed any more.
11059 (mutually_exclusive_p): Restructure slightly to use `switch' and
11060 add handling for "all" remaining cases.
11061 (re_match_2_internal): Change on_failure_jump_smart to use
11062 on_failure_keep_string_jump (and redirect the end-of-loop jump)
11063 rather than on_failure_jump_exclusive.
11064
11065 2000-03-19 Gerd Moellmann <gerd@gnu.org>
11066
11067 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
11068 number of bits per RGB because it's everywhere used as the depth
11069 of the visual.
11070
11071 * term.c (calculate_costs): Remove code dealing with X frames.
11072
11073 2000-03-19 Richard M. Stallman <rms@gnu.org>
11074
11075 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
11076
11077 2000-03-18 Gerd Moellmann <gerd@gnu.org>
11078
11079 * lread.c (read_integer): Unread the last char not consumed.
11080
11081 2000-03-17 Gerd Moellmann <gerd@gnu.org>
11082
11083 * xterm.c (x_update_window_cursor): Don't update in frames
11084 which are in the process of being deleted.
11085
11086 2000-03-16 Gerd Moellmann <gerd@gnu.org>
11087
11088 * Makefile.in (mostlyclean): Add `*.core'.
11089 (clean): Add `bootstrap-emacs'.
11090
11091 * lread.c (read_integer): New function.
11092 (read1): Support read syntax #o, #x, #b, #r.
11093
11094 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
11095
11096 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
11097 make sure POINTER_TO_OFFSET gives the same value before and after
11098 PREFETCH. Use `dfail' to guarantee "atomic" matching.
11099 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
11100 (debug): Now only active if > 0 rather than if != 0.
11101 (DEBUG_*): Update for the new meaning of `debug'.
11102 (print_partial_compiled_pattern): Add missing `succeed' case. Use
11103 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
11104 in `succeed_n', `jump_n' and `set_number_at'.
11105 (store_op1, store_op2, insert_op1, insert_op2)
11106 (at_begline_loc_p, at_endline_loc_p): Add prototype.
11107 (group_in_compile_stack): Move to after its arg's types are
11108 declared and add a prototype.
11109 (PATFETCH): Define in terms of PATFETCH_RAW.
11110 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)' wrapper.
11111 (QUIT): Redefine as a nop except for NTemacs.
11112 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
11113 indentation of the greedy-op and shy-group code.
11114 (at_(beg|end)line_loc_p): Fix argument's types.
11115 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
11116 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
11117 (MATCHING_IN_FIRST_STRING): Remove.
11118 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
11119 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
11120 QUIT unconditionally.
11121
11122 2000-03-15 Gerd Moellmann <gerd@gnu.org>
11123
11124 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
11125 a sole completion.
11126
11127 * process.c (send_process): Add a hint that the function
11128 can call Lisp code to its comment.
11129
11130 * lread.c (load_dangerous_libraries): New variable.
11131 (Vbytecomp_version_regexp): New variable.
11132 (safe_to_load_p): New function.
11133 (Fload): Handle files not compiled with Emacs specially.
11134 (syms_of_lread): New Lisp variable load-dangerous-libraries.
11135
11136 2000-03-14 Gerd Moellmann <gerd@gnu.org>
11137
11138 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
11139
11140 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
11141 support functions only if HAVE_X11R6_XIM is defined.
11142 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
11143
11144 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
11145
11146 * xfns.c (X_I18N_INHIBITED): Don't define.
11147 (create_frame_xic): Remove conditional compilation on X_I18N_INHIBITED.
11148 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
11149
11150 * config.in (HAVE_X_I18N): Moved here from xterm.h.
11151 (HAVE_X11R6_XIM): Define.
11152
11153 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
11154
11155 * xterm.c (x_term_init): Add support for X resource `synchronous'.
11156 If set, call XSynchronize.
11157
11158 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
11159
11160 * regex.c: Declare a new type `re_char' used throughout the code
11161 for the string char type. It's `const unsigned char' to match the
11162 rest of Emacs. Consistently make sure all pointers to strings use
11163 it and make sure all pointers into the pattern use `unsigned char'.
11164 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
11165 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
11166 code duplication.
11167
11168 * charset.h (GET_CHAR_AFTER_2): Remove.
11169 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
11170
11171 2000-03-12 Ken Raeburn <raeburn@gnu.org>
11172
11173 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
11174 variable before the invocation of YMF_PASS_LDFLAGS, in case both
11175 of them try to use backquotes.
11176
11177 2000-03-12 Dave Love <fx@gnu.org>
11178
11179 * unexelf.c: Restore changes of 1999-10-19.
11180 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
11181 fix its type and alignment; copy it from current process.
11182
11183 2000-03-12 Gerd Moellmann <gerd@gnu.org>
11184
11185 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
11186 has been found. Fix bug not computing timer's predecessor.
11187
11188 * fileio.c (Fread_file_name): Handle case that DIR contains a
11189 file name.
11190
11191 * window.c (Fsave_window_excursion): Doc fix.
11192
11193 * xfns.c (x_defined_color): Rewritten to use x_allocate_nearest_color.
11194
11195 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
11196
11197 * msdos.c (vga_installed): New function, code moved from
11198 dos_set_window_size.
11199 (Qbar, Qcursor_type, outside_cursor): New variables.
11200 (syms_of_msdos): Intern and staticpro them.
11201 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
11202 shape used outside Emacs when called for the first time.
11203 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
11204 cursor shape used outside Emacs.
11205 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
11206 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
11207 type has changed.
11208 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
11209 parameters specify the cursor. Make qreverse a global
11210 variable (renamed to Qreverse).
11211
11212 2000-03-09 Gerd Moellmann <gerd@gnu.org>
11213
11214 * fns.c (Fy_or_n_p): Cancel busy-cursor.
11215
11216 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
11217
11218 This is a big redesign of failure-stack and register handling, prompted
11219 by bugs revealed when trying to add shy-groups. Overall, what happened
11220 is that loops are now structured a little differently, groups can be
11221 shy and the code is a little simpler.
11222
11223 * regex.h: Update the copyright.
11224 (RE_SHY_GROUPS): New value.
11225 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
11226 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
11227
11228 * regex.c (enum re_opcode_t): Remove jump_past_alt,
11229 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
11230 on_failure_jump_(exclusive, loop and smart). Also fix the comment
11231 for (start|stop)_memory since they now only take one argument (the
11232 second has becomes unnecessary).
11233 (print_partial_compiled_pattern): Adjust for changes in re_opcode_t.
11234 (print_compiled_pattern): Use %ld to printf long ints and flush to
11235 make debugging a little easier.
11236 (union fail_stack_elt): Make the integer unsigned.
11237 (struct fail_stack_type): Add a `frame' element.
11238 (INIT_FAIL_STACK): Init `frame' as well.
11239 (POP_PATTERN_OP): New macro for re_compile_fastmap.
11240 (DEBUG_PUSH, DEBUG_POP): Remove.
11241 (NUM_REG_ITEMS): Remove.
11242 (NUM_NONREG_ITEMS): Adjust.
11243 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
11244 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
11245 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
11246 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP):
11247 New macros.
11248 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
11249 address pushed is not the destination of the jump but the source
11250 of it instead.
11251 (NUM_FAILURE_ITEMS): Remove.
11252 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
11253 registers before the actual failure point). Don't hardcode any
11254 meaning for str==NULL anymore.
11255 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
11256 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
11257 Remove.
11258 (REG_UNSET_VALUE): Use NULL (why not?).
11259 (compile_range): Remove declaration since it doesn't exist.
11260 (struct compile_stack_elt_t): Remove inner_group_offset.
11261 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
11262 (regex_grow_registers): Remove dead code.
11263 (FIXUP_ALT_JUMP): New macro.
11264 (regex_compile): Add shy-groups Change loops to use
11265 on_failure_jump_smart&jump instead of
11266 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
11267 initial (dummy_failure_)jump. Remove c1_base (looks like unused
11268 variable to me). Use `jump' instead of `jump_past_alt' and don't
11269 bother with push_dummy_failure in alternatives since it is now
11270 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
11271 emacs' for (re)allocating the stack.
11272 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
11273 from loop when bufp->can_be_null rather than jumping to `done'.
11274 Avoid jumping backwards so as to ensure termination. Use
11275 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
11276 backreferences. Remove dead code in handling of `anychar'.
11277 (skip_noops, mutually_exclusive_p): New functions taken from the
11278 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
11279 improve mutually_exclusive_p to handle ".+\n".
11280 (lowest_active_reg, highest_active_reg)
11281 (NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
11282 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
11283 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
11284 variables. Push register (in `start_memory') on the stack rather
11285 than storing it in old_reg(start|end). Remove the cycle detection
11286 from `stop_memory', replaced by the use of on_failure_jump_loop
11287 for greedy loops. Add code for the new on_failure_jump_<foo>.
11288 Remove ad-hoc code in `on_failure_jump' to push more registers in
11289 the case of a loop. Take out code from `maybe_pop_jump' into
11290 separate functions and adapt it to the semantics of
11291 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
11292 and push_dummy_failure. Remove dummy_failure handling and
11293 handling of `failures to jump to on_failure_jump' (this last one
11294 was already dead code, it seems).
11295 (group_match_null_string_p, alt_match_null_string_p)
11296 (common_op_match_null_string_p): Remove.
11297
11298 2000-03-08 Dave Love <fx@gnu.org>
11299
11300 * config.in: Don't depend on __STDC__ for volatile.
11301 Add POINTER_TYPE, PTR, PROTOTYPES.
11302
11303 * hftctl.c, strftime.c: Use PROTOTYPES.
11304 * eval.c (find_handler_clause): Likewise.
11305
11306 * mem-limits.h: Use POINTER_TYPE.
11307
11308 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
11309 (memory_warnings): Declare using POINTER_TYPE.
11310
11311 2000-03-08 Gerd Moellmann <gerd@gnu.org>
11312
11313 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
11314
11315 * xdisp.c (display_echo_area): Temporarily inhibit garbage collection.
11316
11317 * xfns.c: Remove obsolete code in #if 0.
11318 (Fx_focus_frame): New function.
11319
11320 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11321
11322 * coding.c (coding_category_name): Add coding-category-utf-8,
11323 coding-category-utf-16-be, coding-category-utf-16-le.
11324 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
11325 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
11326 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
11327 (detect_coding_utf_8): New function.
11328 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
11329 UTF_16_LOW_SURROGATE_P): New macros.
11330 (detect_coding_utf_16): New function
11331 (detect_coding_mask): When priorities are specified, skip any
11332 categories that have `nil' coding-system. Fix bug of returning
11333 wrong mask when PRIORITIES is specified and detect_coding_XXX()
11334 returns a mask not set in PRIORITIES.
11335 (detect_eol_type_in_2_octet_form): New function.
11336 (detect_eol): selects detect_eol_type_XXX to call according to
11337 cooding->category_idx.
11338 (detect_coding_system): Remove `nil' coding-system in the result.
11339 (Fupdate_coding_systems_internal): Update all coding-categories.
11340
11341 * coding.h (CODING_CATEGORY_IDX_UTF_8)
11342 (CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE):
11343 New macros.
11344 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY)
11345 (CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
11346 (CODING_CATEGORY_IDX_UTF_16_LE)
11347 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE)
11348 (CODING_CATEGORY_MASK_UTF_16_LE): New macros.
11349 (CODING_CATEGORY_MASK_ANY): Include the above macros.
11350 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
11351
11352 2000-03-07 Gerd Moellmann <gerd@gnu.org>
11353
11354 * doc.c (Fdocumentation_property): If value is not a string,
11355 and doesn't refer to etc/DOC, evaluate it to obtain a string.
11356
11357 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
11358 close the display with XtCloseDisplay. This caused a bus error
11359 on OpenWindows.
11360
11361 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
11362 complete but not unique.
11363
11364 2000-03-06 Gerd Moellmann <gerd@gnu.org>
11365
11366 * process.c (send_process): Remove local variable `procname' that
11367 might become invalid when a GC happens. Instead, access the
11368 process name slot directly.
11369
11370 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
11371 orig_height if set.
11372
11373 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
11374 orig_height if set.
11375
11376 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
11377
11378 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
11379 glyph matrices have been freed.
11380
11381 2000-03-05 Gerd Moellmann <gerd@gnu.org>
11382
11383 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
11384 (bootstrap-temacs): Set LC_ALL to C like for temacs.
11385
11386 * xfns.c (QCdata): Moved to xdisp.c.
11387
11388 * xdisp.c (QCdata): Moved here from xfns.c.
11389 (syms_of_xdisp): Initialize QCdata.
11390
11391 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
11392
11393 * window.c (coordinates_in_window): Use
11394 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
11395 FRAME_INTERNAL_BORDER_WIDTH.
11396
11397 * xdisp.c (try_window_id): Recompute unchanged information if
11398 it is obviously invalid.
11399
11400 * xterm.c (x_term_init): Create a colormap if not using the
11401 default visual.
11402
11403 * xterm.h (select_visual): Change prototype.
11404
11405 * xfns.c (select_visual): Rewritten. Recognize user-specified
11406 visual classes.
11407 (visual_classes): New variable.
11408
11409 2000-03-04 Gerd Moellmann <gerd@gnu.org>
11410
11411 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
11412 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
11413 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
11414 (x_decode_color): Don't handle allocation of white and black specially.
11415 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
11416 XtNcolormap resources.
11417 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
11418 (Fx_create_frame): Initialize color members of x_output structure.
11419 (xpm_load): Pass colormap to XPM lib.
11420
11421 * xfaces.c (x_free_colors): Access colormap of frame using
11422 FRAME_X_COLORMAP. Be paranoid about freeing black and white
11423 when default colormap is used.
11424
11425 * xterm.c (x_term_init): Set Colormap member of x_display_info
11426 structure. Copy colormap if resource `privateColormap' is
11427 specified (PseudoColor only).
11428 (x_setup_relief_color): Access colormap of frame using
11429 FRAME_X_COLORMAP.
11430
11431 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
11432 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
11433
11434 2000-03-04 Jason Rumney <jasonr@gnu.org>
11435
11436 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
11437 other non-platform-specific equivalents.
11438 [WINDOWSNT]: Include w32term.h, fontset.h and define X
11439 specific functions and macros as their w32 equivalents where
11440 non-platform-specifics are not available.
11441 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
11442 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
11443 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
11444 (frame_update_line_height): Use macros to access f->output_data.
11445 (defined_color): Remove FIXME comments; fixed.
11446 (x_face_list_fonts, prepare_face_for_display): Put X specifics
11447 into #ifdef blocks. Add WINDOWSNT blocks.
11448 (Fx_list_fonts): Use macros for accessing font data.
11449 (set_lface_from_font_name): Different default fonts for X and
11450 WINDOWSNT.
11451 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
11452 scalable for backward compatibility.
11453 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
11454 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
11455
11456 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
11457 syms_of_w32faces.
11458
11459 * makefile.nt (w32faces.obj): Remove.
11460 (xfaces.obj): Add.
11461
11462 2000-03-03 Jason Rumney <jasonr@gnu.org>
11463
11464 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
11465 correct parameters.
11466
11467 2000-03-03 Ken Raeburn <raeburn@gnu.org>
11468
11469 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
11470 standard ELF definitions here if the system header does not.
11471
11472 2000-03-03 Gerd Moellmann <gerd@gnu.org>
11473
11474 * xterm.c (PER_CHAR_METRIC): Removed.
11475 (x_per_char_metric_1, x_default_char): New functions.
11476 (x_per_char_metric): If font's default char is invalid, return
11477 metrics of a suitably chosen usable default char.
11478 (x_draw_glyph_string_foreground): If font has an invalid default
11479 char, replace occurrences of unprintable chars with a suitably
11480 chosen usable default char.
11481
11482 2000-03-02 Gerd Moellmann <gerd@gnu.org>
11483
11484 * xterm.c (note_mouse_highlight): Return quickly if frame's
11485 glyph matrices have been freed.
11486
11487 * dispnew.c (free_glyphs): Block input while freeing matrices.
11488
11489 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
11490
11491 * xterm.c (x_alloc_lighter_color, x_setup_relief_color):
11492 Use x_free_colors.
11493
11494 * dispextern.h (x_free_colors): Add prototype.
11495
11496 * xfaces.c (x_free_colors): New function.
11497 (unload_color, free_face_colors): Use it.
11498
11499 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
11500
11501 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
11502
11503 * window.c [MSDOS]: Include msdos.h.
11504
11505 2000-03-02 Dave Love <fx@gnu.org>
11506
11507 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
11508
11509 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
11510 set C_OPTIMIZE_SWITCH for gcc.
11511
11512 2000-03-02 Kenichi Handa <handa@etl.go.jp>
11513
11514 * coding.c (coding_save_composition): Be sure to allocate
11515 composition data area in coding even if there's no composition in
11516 the current run.
11517
11518 2000-03-01 Jason Rumney <jasonr@gnu.org>
11519
11520 * w32term.c: Equivalent changes to those made to xterm.c on
11521 2000-02-25 and 2000-02-24.
11522
11523 * w32fns.c: Equivalent changes to those made to xfns.c on
11524 2000-02-25 and 2000-02-21.
11525
11526 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
11527 correct line-end convention is followed.
11528
11529 * w32menu.c [HAVE_BOXES]: Remove #undef.
11530 (single_keymap_panes): Remove code for simulating checkmarks.
11531 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
11532 Remove code for drawing simulated checkmarks.
11533 (w32_menu_show): make unibyte help string correctly.
11534 (add_menu_item): draw standard Windows checkmarks. Draw radio
11535 buttons as radio buttons if possible.
11536
11537 2000-03-01 Gerd Moellmann <gerd@gnu.org>
11538
11539 * sysdep.c (start_of_text): Don't define this function for NetBSD
11540 with ELF.
11541
11542 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
11543 Don't define.
11544 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
11545 (LINKER): Don't undef if __NetBSD__ is defined.
11546
11547 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
11548
11549 * fileio.c [__NetBSD__]: Define `unix'.
11550
11551 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
11552
11553 2000-02-29 Gerd Moellmann <gerd@gnu.org>
11554
11555 * atimer.c (start_atimer): Don't abort when timers are stopped.
11556 (append_atimer_lists): New function.
11557 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
11558 arbitrary lists of stopped and running atimers.
11559
11560 * atimer.c (cancel_atimer): Handle canceling an atimer when
11561 some timers are stopped.
11562
11563 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
11564 after canceling it.
11565
11566 * fns.c (maybe_resize_hash_table): Handle case of new size
11567 coming out as being the same as old size.
11568
11569 2000-02-27 Jason Rumney <jasonr@gnu.org>
11570
11571 * makefile.nt: Add atimer.h to dependencies.
11572 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
11573 * w32console.c: Only disable window system features for dispextern.h
11574 (initialize_w32_display): Build a display info for the console.
11575 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
11576 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
11577 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
11578 as 2 button mice.
11579 * w32gui.h (struct W32FontStruct): Revert last change after change
11580 to xdisp.c.
11581 * w32menu.c (single_submenu): Set up help string.
11582 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
11583 (w32_dialog_show): Set up help string.
11584 * w32term.c (w32_display_info_for_display): Remove unused function.
11585 (w32_draw_bitmap): Use pre-built bitmaps.
11586 (w32_initialize_display_info): New function to initialize parts of
11587 display info that are common to both GUI and console frames.
11588 (w32_term_init): Use w32_initialize_display_info. Do not set
11589 Vw32_num_mouse_buttons here, as it is not called for console
11590 frames. Build bitmaps for indicating truncated lines etc.
11591 (x_delete_display): Destroy pre-built bitmaps.
11592 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
11593 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
11594
11595 2000-02-27 Dave Love <fx@gnu.org>
11596
11597 * lisp.h: Add a bunch of prototypes.
11598
11599 2000-02-26 Kenichi Handa <handa@etl.go.jp>
11600
11601 * keyboard.c (read_char): Set `usec' correctly.
11602
11603 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
11604
11605 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
11606 `lambda', set reg[RRR] to the map index.
11607 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
11608 reg[RRR] to 0. Otherwise, set it to -1.
11609
11610 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11611
11612 * emacs.c (main): Remove code snippet commented out with `//'.
11613
11614 2000-02-25 Richard M. Stallman <rms@gnu.org>
11615
11616 * fileio.c (Ffile_symlink_p): If result starts with a `/'
11617 and contains a `:', prepend `/:'.
11618
11619 * window.c (select_window_1): If selected_window is nil,
11620 don't "swap out" the buffer's point.
11621 (Fset_window_configuration): Set selected_window to nil
11622 before calling Fselect_window.
11623 (unshow_buffer): Don't set point in buffer from window's point
11624 if another more recently selected window also shows the buffer.
11625
11626 2000-02-25 Gerd Moellmann <gerd@gnu.org>
11627
11628 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
11629
11630 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
11631 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
11632 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay):
11633 New variables.
11634 (DEFAULT_BUSY_CURSOR_DELAY): New define.
11635 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
11636 (hide_busy_cursor): New functions.
11637 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
11638
11639 * minibuf.c (read_minibuf): Cancel busy-cursor.
11640
11641 * keyboard.c (command_loop_1): Call start_busy_cursor before
11642 Fcommand_execute and cancel_busy_cursor after it.
11643 (timer_check): Remove busy-cursor code.
11644 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
11645 cursor timer.
11646
11647 * process.c (wait_reading_process_input): Remove busy-cursor code.
11648
11649 * eval.c (Fsignal): Call cancel_busy_cursor instead of
11650 Fx_hide_busy_cursor.
11651
11652 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
11653 Remove prototyoes.
11654 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
11655
11656 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
11657
11658 * xterm.c (XTread_socket): Remove busy-cursor code.
11659
11660 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
11661 (build_frame_matrix_from_leaf_window): Put code handling
11662 glyph row's not being a slice of a frame row in #if 0.
11663 (sync_window_with_frame_matrix_rows): New function.
11664 (frame_row_to_window): New function.
11665 (mirror_line_dance): Handle copies between windows.
11666
11667 * lread.c (Fload): Use `xfree' instead of `free'.
11668 (init_obarray): Use `xmalloc' instead of `malloc'.
11669
11670 * window.c (Fset_window_buffer): Set WINDOW to the window
11671 after decoding.
11672 (coordinates_in_window): Take frame's internal border width
11673 into account.
11674
11675 2000-02-24 Gerd Moellmann <gerd@gnu.org>
11676
11677 * xterm.c (x_display_and_set_cursor): Display cursor of
11678 non-selected windows depending on the setting of
11679 cursor_in_non_selected_windows.
11680
11681 * xdisp.c (cursor_in_non_selected_windows): New variable.
11682 (syms_of_xdisp): DEFVAR_BOOL it.
11683
11684 2000-02-23 Gerd Moellmann <gerd@gnu.org>
11685
11686 * data.c (Fstring_to_number): If number is greater than what
11687 fits into an integer, return a float.
11688
11689 * eval.c (specbind): Remove references to
11690 keyword_symbols_constant_flag.
11691
11692 * data.c (keyword_symbols_constant_flag): Removed.
11693 (Fmakunbound, set_internal, syms_of_data): Remove references to
11694 keyword_symbols_constant_flag.
11695
11696 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
11697
11698 2000-02-23 Kenichi Handa <handa@etl.go.jp>
11699
11700 * syntax.c (multibyte_syntax_as_symbol): New variable.
11701 (syms_of_syntax): Declare it as a Lisp variable.
11702 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
11703 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
11704 nonzero, treat all multibyte characters as symbol.
11705 (init_syntax_once): Give syntax `word' to all multibyte characters.
11706
11707 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
11708
11709 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
11710 a deleted frame.
11711
11712 2000-02-21 Gerd Moellmann <gerd@gnu.org>
11713
11714 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
11715
11716 * xfns.c (x_window_to_frame, x_any_window_to_frame)
11717 (x_non_menubar_window_to_frame): Check the busy-cursor window.
11718
11719 2000-02-21 Dave Love <fx@gnu.org>
11720
11721 * frame.c (Vmouse_position_function): New variable.
11722 (Fmouse_position): Use it.
11723 (syms_of_frame): Install it.
11724
11725 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
11726
11727 2000-02-20 Gerd Moellmann <gerd@gnu.org>
11728
11729 * fileio.c (Finsert_file_contents): Unbind the binding of
11730 standard-output done by temp_output_buffer_setup.
11731
11732 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
11733 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
11734 (specbind, unbind_to): Handle most common case of non-constant
11735 symbol with trivial value specially.
11736
11737 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
11738
11739 2000-02-20 Richard M. Stallman <rms@gnu.org>
11740
11741 * data.c (Fmake_variable_buffer_local): Doc fix.
11742 Init found_for_buffer to 0.
11743 (Fmake_variable_frame_local): If the variable has already
11744 been buffer-local, set the check_frame field.
11745
11746 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
11747
11748 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
11749 produced for CODING_MODE_LAST_BLOCK requires.
11750
11751 2000-02-18 Dave Love <fx@gnu.org>
11752
11753 * keyboard.c (echo_keystrokes): Remove declaration.
11754 (Vecho_keystrokes) New variable.
11755 (read_char, record_menu_key, read_key_sequence): Use it to allow
11756 use of float value.
11757 (syms_of_keyboard): Change Vecho_keystrokes declaration.
11758
11759 * lread.c: Undef feature selection macros before defining.
11760
11761 2000-02-18 Gerd Moellmann <gerd@gnu.org>
11762
11763 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
11764 for symbols other than the symbol in question.
11765
11766 2000-02-17 Dave Love <fx@gnu.org>
11767
11768 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
11769
11770 2000-02-17 Gerd Moellmann <gerd@gnu.org>
11771
11772 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
11773
11774 * alloc.c (enum mem_type): Compile unconditionally.
11775
11776 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
11777
11778 * xfaces.c (tty_defined_color): Don't return faulire indication
11779 for unspecified-fg and unspecified-bg pseudo-colors.
11780
11781 2000-02-17 Gerd Moellmann <gerd@gnu.org>
11782
11783 * alloc.c (mark_object): Don't mark symbol names in pure space.
11784 (gc_sweep): Don't unmark symbol names in pure space.
11785
11786 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
11787 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
11788 [GC_MARK_STACK]: New defines.
11789 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
11790 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
11791
11792 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
11793
11794 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
11795 allocate_buffer instead of xmalloc.
11796
11797 * alloc.c (toplevel): Include setjmp.h.
11798 (PURE_POINTER_P): New define.
11799 (enum mem_type) [GC_MARK_STACK]: New enumeration.
11800 (Vdead) [GC_MARK_STACK]: New variable.
11801 (lisp_malloc): Add parameter TYPE, call mem_insert if
11802 GC_MARK_STACK is defined.
11803 (allocate_buffer): New function.
11804 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
11805 (free_float) [GC_MARK_STACK]: Set type to Vdead.
11806 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
11807 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
11808 (MEM_NIL) [GC_MARK_STACK]: New define.
11809 (struct mem_node) [GC_MARK_STACK]: New structure.
11810 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
11811 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
11812 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
11813 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
11814 (mark_stack) [GC_MARK_STACK]: New functions.
11815 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
11816 (clear_marks): Removed.
11817 (gc_sweep): Set free conses' car, free floats' type, free
11818 symbols' function to Vdead. Use lisp_free to free buffers.
11819 (init_alloc_once): Initialize Vdead.
11820 (survives_gc_p): Return non-zero for pure objects.
11821
11822 * alloc.c: Add comments throughout the file.
11823
11824 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
11825 that unblocks alarms.
11826
11827 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
11828 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
11829 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
11830
11831 * frame.c (make_frame): Set frame initiallly to `garbaged'.
11832
11833 2000-02-17 Kenichi Handa <handa@etl.go.jp>
11834
11835 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
11836 avoid infinite error signaling. Allocate sufficient memory for
11837 eol_str in the case that eoltype is Lisp_Int.
11838
11839 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
11840
11841 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
11842 depends on the previous behavior.
11843
11844 2000-02-16 Gerd Moellmann <gerd@gnu.org>
11845
11846 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
11847
11848 2000-02-15 Gerd Moellmann <gerd@gnu.org>
11849
11850 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
11851
11852 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
11853 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
11854 write(2).
11855
11856 2000-02-15 Richard M. Stallman <rms@gnu.org>
11857
11858 * data.c (set_internal): Don't make variable buffer-local
11859 if within a let-binding for the same buffer.
11860 (let_shadows_buffer_binding_p): New function.
11861
11862 * eval.c (specbind): For buffer-local value,
11863 record the current buffer also.
11864 (unbind_to): Cope with that change.
11865
11866 2000-02-15 Gerd Moellmann <gerd@gnu.org>
11867
11868 * window.c (Fsave_window_excursion): Doc fix.
11869
11870 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
11871
11872 * syntax.c (back_comment): Make sure we only consider comment-starters
11873 of the relevant style and return -1 in case of a failure to find the
11874 beginning of the comment.
11875 (Fforward_comment): If back_comment fails, go back to the position just
11876 after the comment-end.
11877 (scan_lists): Add comment describing a very minor bug.
11878
11879 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
11880
11881 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
11882 `completion-regexp-list' in the docstring.
11883
11884 2000-02-14 Dave Love <fx@gnu.org>
11885
11886 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
11887
11888 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
11889
11890 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
11891 to Emacs' syntax. Also fix the comment about set/not-set meanings
11892 since Emacs syntax is not the value 0 any more.
11893 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
11894 since it's now part of RE_SYNTAX_EMACS.
11895
11896 2000-02-12 Dave Love <fx@gnu.org>
11897
11898 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on Alpha.
11899
11900 2000-02-12 Gerd Moellmann <gerd@gnu.org>
11901
11902 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
11903
11904 2000-02-12 Dave Love <fx@gnu.org>
11905
11906 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
11907
11908 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
11909 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
11910 * s/hpux.h: Don't define HAVE_VFORK.
11911
11912 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
11913
11914 * s/nextstep.h: Don't define HAVE_ALLOCA.
11915
11916 * config.in: Add vfork bits.
11917
11918 2000-02-12 Gerd Moellmann <gerd@gnu.org>
11919
11920 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
11921 unwind function to undo the effect of stopping atimers.
11922
11923 * keyboard.c (bind_polling_period): Stop all timers except poll_timer.
11924
11925 * atimer.c (stopped_atimers): New variable.
11926 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
11927 New functions.
11928
11929 * atimer.h (stop_other_atimers, run_all_atimers)
11930 (unwind_stop_other_atimers): Add function prototypes.
11931
11932 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
11933
11934 2000-02-11 Ken Raeburn <raeburn@gnu.org>
11935
11936 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
11937 library may depend on jpeg.
11938 (atimer.o): Depends on atimer.c.
11939
11940 2000-02-11 Kenichi Handa <handa@etl.go.jp>
11941
11942 * insdel.c (del_range_1): Call update_compositions.
11943 (del_range_both): Call update_compositions just once..
11944
11945 2000-02-10 Dave Love <fx@gnu.org>
11946
11947 * xfns.c (create_frame_xic): Fix initialization of automatic
11948 aggregates for pcc.
11949
11950 2000-02-09 Kenichi Handa <handa@etl.go.jp>
11951
11952 * ccl.c (CCL_MAKE_CHAR): New macro.
11953 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
11954 registers by CCL_MAKE_CHAR before calling translate_char.
11955 <CCL_TranslateCharacterConstTbl> Likewise.
11956
11957 2000-02-08 Dave Love <fx@gnu.org>
11958
11959 * lread.c (__EXTENSIONS__): Define.
11960
11961 2000-02-08 Gerd Moellmann <gerd@gnu.org>
11962
11963 * puresize.h (BASE_PURESIZE): Increase to 650000.
11964
11965 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11966
11967 * msdos.c (XMenuActivate): Turn off the cursor after displaying
11968 the help message.
11969
11970 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
11971
11972 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
11973 md, mh, mb, mr, and me to the fake termcap entry.
11974
11975 2000-02-06 Ken Raeburn <raeburn@gnu.org>
11976
11977 * sound.c (sound_cleanup): Don't call device close routine if the
11978 function pointer is null.
11979
11980 2000-02-06 Andrew Innes <andrewi@gnu.org>
11981
11982 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
11983 around image definitions and prototypes.
11984 (gamma_correct) [WINDOWSNT]: New prototype.
11985
11986 * w32term.c (x_make_frame_visible): Replace call to
11987 input_poll_signal with poll_for_input.
11988
11989 * window.c [WINDOWSNT]: Include w32term.h.
11990
11991 * xdisp.c [WINDOWSNT]: Include w32term.h.
11992
11993 * makefile.nt: Add dependencies on w32gui.h.
11994 (OBJ1): Include atimer.obj.
11995 ($(BLD)\atimer.obj): New dependency rule.
11996
11997 * w32.c (sigmask): New function (does nothing).
11998 (sigunblock): Ditto.
11999
12000 * frame.c [WINDOWSNT]: Include w32term.h.
12001
12002 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
12003
12004 * lread.c (syms_of_lread): Fix literal newlines.
12005
12006 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
12007 the string constant limit (2048 bytes) in MSVC.
12008 (main): Ditto.
12009
12010 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
12011
12012 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit area.
12013 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
12014 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
12015 dispatch the event.
12016
12017 2000-02-04 Dave Love <fx@gnu.org>
12018
12019 * fileio.c: Remove some unused vars.
12020 (_GNU_SOURCE): Define (for euidaccess).
12021
12022 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
12023
12024 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
12025 gcpro1, gcpro2.
12026 (read_minibuf): Deal with allow_props correctly.
12027
12028 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
12029
12030 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
12031
12032 2000-02-03 Ken Raeburn <raeburn@gnu.org>
12033
12034 * search.c (compile_pattern): If a cache entry has a nil regexp,
12035 fill in that entry instead of clobbering a previously cached
12036 string regexp.
12037
12038 2000-02-02 Ken Raeburn <raeburn@gnu.org>
12039
12040 * puresize.h (BASE_PURESIZE): Increase to 610000.
12041
12042 2000-02-02 Gerd Moellmann <gerd@gnu.org>
12043
12044 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
12045 can GC.
12046
12047 2000-02-02 Kenichi Handa <handa@etl.go.jp>
12048
12049 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
12050 instead of incrementing ic directly.
12051 <CCL_WriteExprConst> Likewise.
12052 <ccl_set_expr>: Set ic to jump_address.
12053
12054 * fileio.c (e_write): Fix the handling of
12055 CODING_FINISH_INSUFFICIENT_SRC.
12056
12057 2000-02-01 Dave Love <fx@gnu.org>
12058
12059 * editfns.c (Fpropertize): Doc fix.
12060
12061 * process.c (Fstart_process): Doc fix.
12062
12063 * eval.c: Fix various doc strings not to duplicate information
12064 from help-manyarg-func-alist.
12065
12066 * window.c (Fset_window_margins): Don't make interactive. Doc fix.
12067
12068 * doc.c (Vhelp_manyarg_func_alist): New variable.
12069 (Fdocumentation): Use it.
12070 (syms_of_doc): Define it.
12071
12072 2000-01-31 Gerd Moellmann <gerd@gnu.org>
12073
12074 * xterm.c (xim_open_dpy): Remove unused local variable.
12075
12076 * emacs.c (USAGE): Use term `display options' instead of `X options'.
12077
12078 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
12079 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
12080
12081 * fns.c (sweep_weak_table): New function.
12082 (sweep_weak_hash_tables): Use it. Keep on marking until there
12083 is no more change.
12084
12085 2000-01-30 Gerd Moellmann <gerd@gnu.org>
12086
12087 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
12088 that XTread_socket does not crash by trying to call XNoOp on a
12089 closed display.
12090
12091 2000-01-30 Jason Rumney <jasonr@gnu.org>
12092
12093 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12094 Change selected_frame to SELECTED_FRAME ().
12095 (w32_console_mouse_position): Remove #ifndef MULE from around
12096 `insist' parameter.
12097
12098 * makefile.nt: Remove dosfns.obj.
12099
12100 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
12101
12102 * w32fns.c (w32_defined_color): Check for valid frame before
12103 applying gamma correction. Eliminate dependency on frame elsewhere.
12104 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
12105 (w32_to_x_font): Use resx and resy not height_in and width_in.
12106 (x_to_w32_font): Doc fix.
12107 (xlfd_strip_height): New function to strip and return font height.
12108 (w32_font_match): Compare height separately from rest of xlfd
12109 spec, using xlfd_strip_height.
12110
12111 * w32term.c (w32_term_init): Swap resx and height_in, resy and
12112 width_in. Use w32_defined_color in place of defined_color.
12113
12114 * w32faces.c: Merge more of DOS and X specifics in preparation for
12115 merge with xfaces.c.
12116 (defined_color): Remove FIXME comment.
12117 (tty_color_name): Provide w32-specific function.
12118 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
12119
12120 * w32console.c (turn_on_face, turn_off_face): Removed.
12121 (w32_face_attributes): New function.
12122 (Global_variables): Reduce scope where possible.
12123 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
12124 fill attribute.
12125 (hl_mode): Don't modify text attributes.
12126 (write_glyphs): Don't do anything if len <= 0. Use
12127 w32_face_attributes to get attributes for drawing. Write
12128 terminating codes using char_attr_normal.
12129 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
12130 (update_begin, update_end): Likewise.
12131 (vga_stdcolor_name): New function.
12132 (initialize_w32_display): Remove char_attr_reverse and char_attr.
12133 (Fset_screen_color): Remove char_attr_reverse.
12134
12135 2000-01-29 Gerd Moellmann <gerd@gnu.org>
12136
12137 * xfns.c (xic_set_preeditarea): Take window parameter and
12138 window-relative pixel-positions.
12139
12140 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
12141 is its frame's selected window.
12142 (xim_instantiate_callback): Likewise.
12143
12144 * xfns.c (x_create_im): Removed.
12145 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
12146 (supported_xim_styles): Renamed from supported_styles.
12147 (best_xim_style): Renamed from best_style.
12148 (create_frame_xic): Renamed from xic_create_frame.
12149 (free_frame_xic): Renamed from xic_destroy_frame.
12150
12151 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
12152
12153 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
12154 our frames, call XFilterEvent with 2nd parameter `None'.
12155 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
12156 returning XBufferOverflow.
12157 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status area.
12158 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
12159 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
12160 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
12161 (xim_initialize, xim_close)
12162 [HAVE_X_I18N && HAVE_X11R6]: New functions.
12163 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
12164 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
12165 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
12166
12167 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
12168 and `xim_styles'.
12169 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
12170 `xic_style' and `xic_xfs'.
12171 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
12172 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
12173 (FRAME_XIM): Removed.
12174
12175 * xfns.c (supported_styles): New variable.
12176 (DEFAULT_STYLE, DEFAULT_FONT): New macros
12177 (xic_create_xfontset, best_style, xic_create_frame)
12178 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
12179 (xic_set_xfontset): New functions.
12180
12181 2000-01-28 Dave Love <fx@gnu.org>
12182
12183 * s/irix6-5.h: Revert last change after change to irix5-0.h.
12184
12185 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
12186
12187 2000-01-28 Gerd Moellmann <gerd@gnu.org>
12188
12189 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
12190 for *scratch* if it already existed.
12191
12192 * emacs.c (USAGE): New macro.
12193 (main): Use it to display usage information.
12194
12195 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12196
12197 Support for the menu-help feature:
12198
12199 * msdos.h: Change prototypes of XMenuAddSelection and XMenuActivate.
12200
12201 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
12202 part of the line to the termscript file.
12203 (IT_clear_to_end): Clear the entire line, not just its beginning.
12204 (menu_help_message, prev_menu_help_message): New variables.
12205 (IT_menu_make_room): Make room for the help_text member.
12206 (IT_menu_display): New argument disp_help; all callers changed.
12207 If disp_help is non-zero, store the help text of the active menu
12208 item in menu_help_message.
12209 (XMenuAddPane): Initialize the help_text member to NULL.
12210 (XMenuAddSelection): New argument help_text. Store it in the
12211 XMenu structure.
12212 (XMenuActivate): New argument help_callback. If the value of
12213 menu_help_message has changed since the last time, display the
12214 menu help message text while waiting for the mouse to move. Clear
12215 the echo area before exiting.
12216 (XMenuDestroy): Free the help_text member.
12217
12218 2000-01-27 Gerd Moellmann <gerd@gnu.org>
12219
12220 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
12221 XMenuAddSelection. Pass help callback to XMenuActivate.
12222 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
12223
12224 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
12225
12226 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
12227 and EMACS_SET_USECS.
12228
12229 2000-01-26 Dave Love <fx@gnu.org>
12230
12231 * editfns.c (Fchar_after, Fchar_before): Doc fix.
12232
12233 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
12234 an error may be signalled.
12235
12236 2000-01-26 Gerd Moellmann <gerd@gnu.org>
12237
12238 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
12239 LD_SWITCH_SYSTEM inherited from irix5-0.h.
12240
12241 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
12242
12243 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12244
12245 * charset.c (Fstring): If there is a multibyte char among
12246 the args, always return a multibyte string.
12247
12248 2000-01-25 Gerd Moellmann <gerd@gnu.org>
12249
12250 * sysdep.c (sys_select): Turn atimers off and on instead of
12251 recording and restoring old alarm handler
12252
12253 * process.c (toplevel): Include atimer.h.
12254 (create_process_1): Rewritten.
12255 (create_process): Use atimers instead of alarm.
12256 (wait_reading_process_input) [hpux]: Turn atimers off instead
12257 of turning off SIGALRM.
12258 (wait_reading_process_input): Turn off atimers instead off
12259 calling stop_polling.
12260
12261 * emacs.c (main): Call init_atimer.
12262
12263 * keyboard.c (toplevel): Include systime.h and atimer.h.
12264 (polling_for_input): Removed because unused.
12265 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
12266 (poll_timer): New variable.
12267 (poll_for_input, poll_for_input_1): New functions.
12268 (start_polling, stop_polling): Rewritten.
12269
12270 * keyboard.h (polling_for_input): Removed.
12271
12272 * atimer.h, atimer.c: New files.
12273
12274 * Makefile.in (obj): Add atimer.o.
12275 (atimer.o): New target.
12276
12277 * blockinput.h (pending_atimers): Add extern declaration.
12278 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
12279
12280 * lisp.h (popup_activated_flag): Add extern declaration.
12281
12282 * xmenu.c (popup_activated_flag): Make externally visible.
12283 (popup_activate_callback) [USE_MOTIF]: Increment popup_activated_flag.
12284 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
12285
12286 * xterm.c (toplevel): Include atimer.h.
12287 (toolkit_scroll_bar_interaction): New variable.
12288 (Fxt_process_timeouts): Removed.
12289 (x_process_timeouts): New function.
12290 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
12291 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
12292 (x_make_frame_visible): Call poll_for_input_1 instead of
12293 input_poll_signal. Don't call alarm.
12294 (x_initialize): Install timer calling x_process_timeouts.
12295
12296 2000-01-24 Dave Love <fx@gnu.org>
12297
12298 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
12299 Don't use -cckr -- apparently not now necessary.
12300
12301 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
12302
12303 * msdos.c (IT_menu_display): Truncate long menu lines at the right
12304 screen boundary.
12305
12306 2000-01-23 Jason Rumney <jasonr@gnu.org>
12307
12308 * w32fns.c (w32_defined_color): Apply gamma correction before
12309 trying to map to the palette.
12310 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
12311 to w32_clear_rect.
12312
12313 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
12314 here. Callers changed to always pass real device context.
12315 (w32_draw_bitmap): Likewise.
12316 (w32_get_glyph_overhangs): Likewise.
12317 (w32_draw_box_rect): Make use of s->hdc rather than getting a new one.
12318 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
12319 pfnSetScrollInfo and SetScrollRange.
12320 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
12321 back into MULE characters after decoding them.
12322 (x_get_glyph_face_and_encoding): Likewise.
12323 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
12324 GetCharABCWidthsW fails, since this is defined on Windows 9x.
12325 (x_produce_glyphs): Calculate per char metrics for a character
12326 that we know exists in default font when font_not_found_p is true.
12327
12328 2000-01-22 Jason Rumney <jasonr@gnu.org>
12329
12330 * makefile.nt (intervals.obj, composite.obj): New modules.
12331 (composite.h): Added as dependency where appropriate.
12332
12333 * w32gui.h (XGCValue): New struct for emulating X GCs.
12334
12335 * w32term.h (XCharStruct): New struct for emulating X.
12336
12337 * w32console.c (turn_on_face, turn_off_face): New functions.
12338 (change_line_highlight): New prototype for new redisplay.
12339 (write_glyphs): Support multibyte text. Support faces.
12340
12341 * w32faces.c: Complete rewrite for new redisplay based on new xfaces.c.
12342
12343 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
12344 throughout. struct frame * in place of FRAME_PTR.
12345 Skeleton support for images, toolbars, tooltips from xfns.c.
12346 (Fx_create_frame): Use system default for default scroll bar width.
12347 (w32_get_arg): Renamed from x_get_arg.
12348 (Fx_file_dialog): New function.
12349 (w32_list_fonts): Check cache before asking system.
12350 (Vw32_enable_synthesized_fonts): New variable.
12351 (Vw32_enable_italics): Obsolete, removed.
12352
12353 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
12354 Use SELECTED_FRAME macro.
12355
12356 * w32menu.c: Add skeleton support for help strings on menus.
12357 (add_menu_item): Native checkbox and radio support added, but not
12358 yet enabled due to bugs.
12359 (push_menu_item): Add parameters type, selection and help.
12360 Callers updated.
12361 Formatting changes to reduce unnecessary diffs with xmenu.c.
12362
12363 * w32select.c (Fw32_set_clipboard_data): Update call to
12364 find_charset_in_str.
12365
12366 * w32term.c: Complete rewrite for new redisplay based on new
12367 xterm.c with necessary sections merged back in from old w32term.c.
12368
12369 2000-01-21 Richard M. Stallman <rms@gnu.org>
12370
12371 * data.c (set_internal): Further fix in same criterion.
12372
12373 2000-01-20 Richard M. Stallman <rms@gnu.org>
12374
12375 * data.c (set_internal): Fix the criteria for whether
12376 to swap out the old cached binding.
12377
12378 2000-01-19 Dave Love <fx@gnu.org>
12379
12380 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
12381
12382 2000-01-18 Kenichi Handa <handa@etl.go.jp>
12383
12384 * regex.c (re_compile_fastmap): While checking a range table for
12385 `charset', skip flag bits for a character class correctly.
12386
12387 2000-01-17 Gerd Moellmann <gerd@gnu.org>
12388
12389 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
12390
12391 * xfns.c (x_window): Call lw_create_widget with new parameter list.
12392
12393 * widget.c (EmacsFrameSetCharSize): Change size of children first
12394 because of problems with main window geometry management under Lesstif.
12395
12396 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
12397 MENU_ITEMS_ITEM_.*.
12398 (MENU_ITEMS_ITEM_HELP): New enumerator.
12399 (push_menu_item): Add parameter HELP. Record help in menu_items.
12400 (single_menu_item, single_submenu, list_of_items): Call
12401 push_menu_item with new parameter.
12402 (single_submenu): Set help string in widget value.
12403 (menu_highlight_callback): New function.
12404 (set_frame_menubar): Call lw_create_widget with new
12405 parameter list.
12406 (xmenu_show, xdialog_show): Ditto.
12407
12408 2000-01-13 Gerd Moellmann <gerd@gnu.org>
12409
12410 * sound.c (Fplay_sound): Improve doc string.
12411
12412 2000-01-11 Richard M. Stallman <rms@gnu.org>
12413
12414 * lisp.h (set_internal): Enter the new arg.
12415
12416 * eval.c (specbind): Record buffer-local variables specially,
12417 indicating which buffer's binding was saved.
12418 (unbind_to): Restore buffer-local variables specially
12419 in the proper buffer.
12420
12421 * data.c (set_internal): New arg BUF.
12422
12423 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
12424 * data.c (Fset): Pass new arg to set_internal.
12425 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
12426
12427 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12428
12429 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload, xprintsym.
12430
12431 2000-01-11 Richard M. Stallman <rms@gnu.org>
12432
12433 * minibuf.c (Ftry_completion): Doc fix.
12434
12435 2000-01-11 Gerd Moellmann <gerd@gnu.org>
12436
12437 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
12438 vector, too.
12439
12440 2000-01-11 Andreas Schwab <schwab@suse.de>
12441
12442 * coding.c (code_convert_region): Initialize total_skip.
12443
12444 2000-01-08 Dave Love <fx@gnu.org>
12445
12446 * eval.c (Fuser_variable_p): Check customizability too.
12447
12448 2000-01-07 Gerd Moellmann <gerd@gnu.org>
12449
12450 * minibuf.c (Fcompleting_read): Doc fix.
12451
12452 2000-01-05 Gerd Moellmann <gerd@gnu.org>
12453
12454 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
12455 -L /usr/local/lib.
12456
12457 * xfns.c (x_create_im): New function to set IM and IC of a frame.
12458 Check that input style is supported before trying to create an
12459 IC for it.
12460 (x_window): Call x_create_im.
12461
12462 2000-01-04 Gerd Moellmann <gerd@gnu.org>
12463
12464 * xfns.c (current_gif_memory_src): New variable.
12465 (gif_load): Record the address of the current memory source
12466 in current_gif_memory_src.
12467 (gif_read_from_memory): Use current_gif_memory_src.
12468
12469 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
12470 macros statement form.
12471
12472 * sound.c (struct sound): Renamed from struct sound_file.
12473 (struct sound): Add members `data' and `header_size'.
12474 (enum sound_attr): Add SOUND_DATA.
12475 (current_sound, current_sound_device): Variables renamed from
12476 sound_file and sound_device.
12477 (parse_sound): Parse :data.
12478 (parse_sound): Handle sound data in strings.
12479 (find_sound_type): Function renamed from find_sound_file_type.
12480 (wav_init, au_init): Fail if sound's header_size is smaller than
12481 needed header size.
12482 (wav_play, au_play): Play sounds from string data.
12483
12484 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
12485
12486 * lisp.h: Add prototype for allocate_string_data.
12487
12488 * alloc.c (Fgarbage_collect): Return number of live and free strings.
12489
12490 * alloc.c (mark_buffer): Remove code in #if 0.
12491 (gc_sweep): Ditto.
12492 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
12493 (strings_consed): New variable.
12494 (allocate_string): Set it.
12495 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
12496 (Fmemory_use_counts): Return strings_consed. Use Flist.
12497
12498 * alloc.c: General cleanup in comments etc. Remove conditional
12499 compilation for `standalone'.
12500
12501 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
12502
12503 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
12504 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
12505 (DONT_COPY_FLAG): Removed.
12506 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
12507 (struct sdata, struct sblock): New
12508 (struct string_block): Rewritten.
12509 (STRINGS_IN_STRING_BLOCK): New macro.
12510 (oldest_sblock, current_sblock, total_strings, total_free_strings)
12511 (large_sblocks, string_blocks, string_free_list): New variables.
12512 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
12513 (init_strings): Rewritten.
12514 (allocate_string, allocate_string_data, compact_small_strings)
12515 (free_large_strings, sweep_strings): New functions.
12516 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
12517 (struct string_block_head, current_string_block)
12518 (first_string_block, large_string_blocks, STRING_FULLSIZE)
12519 (STRING_PAD): Removed.
12520 (make_uninit_multibyte_string, make_pure_string): Rewritten.
12521 (Fgarbage_collect): Don't set mark bit in large strings.
12522 (mark_object): Mark strings differently. Mark symbol names
12523 differently.
12524 (survives_gc_p): Test marked strings differently.
12525 (gc_sweep): Sweep strings differently, unmark strings in
12526 symbol names.
12527 (compact_strings): Removed.
12528
12529 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
12530
12531 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
12532 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
12533
12534 2000-01-04 Kenichi Handa <handa@etl.go.jp>
12535
12536 * fileio.c (Finsert_file_contents): Signal error if visiting file
12537 in a non-empty buffer.
12538
12539 * term.c (encode_terminal_code): Fix the previous change.
12540
12541 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12542
12543 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
12544 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
12545
12546 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
12547
12548 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12549
12550 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
12551 need to test for MSDOS frames.
12552
12553 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12554
12555 * dosfns.c (unspecified_colors): Remove.
12556 (msdos_stdcolor_idx): Use global variables unspecified_fg and
12557 unspecified_bg.
12558 (msdos_stdcolor_name): Return strings for unspecified fore- and
12559 back-ground colors.
12560
12561 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
12562 (syms_of_xfaces): Remove their staticpro's.
12563 (tty_color_name): Return Lisp strings for unspecified fore- and
12564 back-ground colors.
12565 (Finternal_set_lisp_face_attribute): Remove the special treatment
12566 for Qunspecified_{f,b}g.
12567 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp string.
12568
12569 2000-01-03 Gerd Moellmann <gerd@gnu.org>
12570
12571 * xdisp.c (reseat_at_next_visible_line_start): Position before
12572 newline only if ending up on a newline.
12573 (next_element_from_ellipsis): Return success. Handle case of
12574 displaying no ellipsis. Fix case of ellipsis defined in display table.
12575 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
12576 returns 0.
12577
12578 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
12579
12580 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
12581 (Fcolor_supported_p): Renamed from face-color-supported-p.
12582
12583 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12584
12585 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
12586 list of colors renamed to tty-defined-color-alist.
12587 (tty_color_name): Pass the frame to tty-color-by-index.
12588 (realize_tty_face): tty-color-alist is now a function which
12589 accepts the frame as argument.
12590
12591 * term.c (Ftty_display_color_p): Accept an optional argument FRAME.
12592
12593 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12594
12595 * term.c (insert_glyphs): Pass glyph, not &glyph, to
12596 encode_terminal_code.
12597
12598 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
12599
12600 * dispnew.c (mode_line_string): Support termcap frames as well.
12601
12602 2000-01-01 Gerd Moellmann <gerd@gnu.org>
12603
12604 * syntax.c (Fforward_word): Undo previous change.
12605
12606 * editfns.c (Fconstrain_to_field): Don't constrain if
12607 inhibit-field-text-motion is non-nil.
12608 (Fline_beginning_position): Undo previous change.
12609 (Fline_end_position): Ditto.
12610
12611 * syntax.c (Fforward_word): Notice field boundaries only if
12612 inhibit-field-text-motion is nil.
12613
12614 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
12615
12616 * editfns.c (Vinhibit_field_text_motion): New variable.
12617 (inhibit-field-text-motion): New DEFVAR_LISP.
12618 (Fline_beginning_position, Fline_end_position): Notice field
12619 boundaries only if inhibit-field-text-motion is nil.
12620
12621 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
12622 All calls adjusted.
12623 (x_build_heuristic_mask): Likewise.
12624 (xbm_load_image_from_file): Change error output.
12625 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
12626 (gif_load, gs_load, x_kill_gs_process): Ditto.
12627
12628 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
12629 color indices when accessing raster pixels.
12630 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
12631 one of :file or :data.
12632 (enum pbm_keyword_index): Add PBM_DATA.
12633 (pbm_format): Add :data.
12634 (pbm_image_p): Allow either :file or :data.
12635 (pbm_read_file): New function.
12636 (pbm_scan_number): Rewritten to read from string.
12637 (pbm_load): Support :data.
12638
12639 See ChangeLog.8 for earlier changes.
12640
12641 ;; Local Variables:
12642 ;; coding: iso-2022-7bit
12643 ;; End: