(set_clipboard_data): If there's not enough memory
[bpt/emacs.git] / src / ChangeLog
1 2000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
2
3 * w16select.c (set_clipboard_data): If there's not enough memory
4 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5 expects. In case of other failures, return 3.
6 (system_error_msg): New error message.
7 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
8 system_error_msg.
9
10 2000-08-16 Gerd Moellmann <gerd@gnu.org>
11
12 * term.c (write_glyphs): Also turn off inverse video after turning
13 off other appearances in case TS_exit_attribute_mode is not equal
14 to TS_end_standout_mode.
15 (insert_glyphs): Turn inverse video on/off for each run of glyphs
16 with the same face.
17 (turn_off_face): Reset standout_mode only if
18 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
19 is equal to TS_end_standout_mode.
20
21 2000-08-16 Kenichi Handa <handa@etl.go.jp>
22
23 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
24 sequence at the end of the source block.
25
26 * ccl.c (Fccl_program_p): Docstring modified.
27 (Fccl_execute): Likewise.
28 (Fccl_execute_on_string): Likewise.
29
30 2000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
31
32 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
33
34 2000-08-16 Kenichi Handa <handa@etl.go.jp>
35
36 The following changes are mainly to fix bugs of
37 encode/decode-coding-string failing if encoding/decoding return
38 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
39 variable conversion_buffer.
40
41 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
42 decrement dst_end to avoid buffer overflow in the later call of
43 string_as_multibyte
44
45 * coding.h (conversion_buffer_size, conversion_buffer)
46 (get_conversion_buffer): Extern deleted.
47
48 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
49 (conversion_buffer, conversion_buffer_size): Variables deleted.
50 (get_conversion_buffer): Function deleted.
51 (struct conversion_buffer): New structure.
52 (MAX_ALLOCA): New macro.
53 (allocate_conversion_buffer): New macro.
54 (extend_conversion_buffer, free_conversion_buffer): New functions.
55 (ccl_coding_driver): Set coding->result.
56 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
57 this is the last block of source.
58 (encode_coding): Likewise. Handle the source block as the last
59 one only when the whole source text is consumed.
60 (decode_coding_string): Handle the case that the output buffer is
61 too small to decode the whole source text. Use
62 allocate_conversion_buffer, extend_conversion_buffer and
63 free_conversion_buffer, not get_conversion_buffer.
64 (encode_coding_string): Likewise.
65 (init_coding): Function deleted.
66 (init_coding_once): Delete code to initialize
67 conversion_buffer_size.
68
69 * emacs.c (main): Don't call init_coding.
70
71 * msdos.c (IT_write_glyphs): Use a locally declared
72 conversion_buffer.
73
74 * term.c (write_glyphs): Use a locally declared conversion_buffer.
75 (insert_glyphs): Likewise.
76
77 * w32console.c (write_glyphs): Use a locally declared
78 conversion_buffer.
79
80 2000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
81
82 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
83 member of display_info is NULL.
84
85 2000-08-15 Gerd Moellmann <gerd@gnu.org>
86
87 * alloc.c (compact_small_strings): Use safe_bcopy, add an
88 assertion.
89
90 * term.c (turn_off_face): Reset standout_mode when resetting
91 appearances with capability `me'.
92 (write_glyphs): Switch on inverse video before each face change.
93
94 2000-08-14 Dave Love <fx@gnu.org>
95
96 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
97 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
98 (lisp_free): Declare and make static.
99
100 * window.c: Fix embedded comment.
101 (syms_of_window): Fix doc string.
102
103 2000-08-14 Gerd Moellmann <gerd@gnu.org>
104
105 * keymap.c (push_key_description): If C without modifiers is < 32,
106 make sure to print `C-' before `M-', like in the manual.
107
108 2000-08-11 Gerd Moellmann <gerd@gnu.org>
109
110 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
111 since they aren't relocated anymore.
112 (sxhash_string): Make sure returned hash code fits in a Lisp
113 integer.
114
115 * xdisp.c (try_cursor_movement): Fix handling of cursor in
116 partially visible line which is smaller than the window's
117 height.
118
119 2000-08-11 Kenichi Handa <handa@etl.go.jp>
120
121 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
122 the multibyte form of eight-bit-control characters.
123 (Fccl_execute_on_string): Initialize ccl->multibyte.
124
125 * ccl.h (struct ccl_program): New member multibyte.
126
127 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
128
129 2000-08-11 Kenichi Handa <handa@etl.go.jp>
130
131 * regex.c (regex_compile) <normal_char>: Pay attention to
132 multibyteness.
133 (analyse_first) <exactn>: Setup fastmap correctly for
134 eight-bit-control characters.
135
136 2000-08-11 Kenichi Handa <handa@etl.go.jp>
137
138 * termhooks.h (enum event_kind): New member
139 multibyte_char_keystroke.
140
141 * keyboard.c (make_lispy_event): Handle the new event type
142 multibyte_char_keystroke.
143
144 * xterm.c: Include coding.h.
145 (XTread_socket): Work around a bug of XmbLookupString. If the
146 input is from XIM, decode it according to the current locale. In
147 that case, generate multibyte_char_keystroke events.
148
149 2000-08-11 Kenichi Handa <handa@etl.go.jp>
150
151 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
152 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
153
154 2000-08-10 Gerd Moellmann <gerd@gnu.org>
155
156 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
157 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
158 (move_it_in_display_line_to): Record iterator's ascent and descent
159 before producing glyphs, and restore them when we know the glyph
160 doesn't fit on the line.
161 (move_it_to): Restructured so that it's easier to debug. If
162 moving to a vpos, and not moving to an x or character position,
163 stop as soon as the specified vpos is reached; don't move further
164 into that line because that might change the computed line height.
165 (try_cursor_movement): New function, extracted from the cursor
166 movement branch of redisplay_window. If ending on a partially
167 visible line, don't try to scroll if the cursor line is taller
168 than the window.
169 (redisplay_window): Use try_cursor_movement.
170
171 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
172 because that function doesn't cope with variable-height lines.
173
174 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
175 box cursor because that's better visible for large images.
176
177 2000-08-10 Miles Bader <miles@gnu.org>
178
179 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
180
181 2000-08-10 Gerd Moellmann <gerd@gnu.org>
182
183 * xdisp.c (Vmessages_buffer_name): New variable.
184 (message_dolog): Use it.
185 (syms_of_xdisp): Initialize it.
186
187 2000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
188
189 * msdos.c (IT_note_mouse_highlight): Update the calls to
190 overlays_at.
191 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
192 redundant now that keyboard.h is included.
193
194 2000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
195
196 * keyboard.c (kbd_buffer_events_waiting): New function.
197
198 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
199
200 * msdos.c: Include keyboard.h.
201 (XMenuActivate): Empty no_event events from the event buffer. If
202 no events are left after that, call clear_input_pending.
203 (mouse_clear_clicks): New function, code moved from mouse_init.
204 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
205 mouse driver to ``forget'' any past clicks.
206
207 * Makefile.in (msdos.o): Depend on keyboard.h.
208
209 2000-08-09 Gerd Moellmann <gerd@gnu.org>
210
211 * lisp.h (input_pending): External declaration.
212
213 * dispextern.h (Qredisplay_dont_pause): Declare extern.
214
215 * xdisp.c (echo_area_display): Display thoroughly if input is
216 pending. Bind redisplay-dont-pause to t during the redisplay.
217 in case input is pending.
218
219 * dispnew.c (Qredisplay_dont_pause): New variable.
220 (syms_of_display): Initialize and staticpro it.
221 (update_frame_1): Don't interrupt the display for pending input if
222 redisplay_dont_pause is set.
223
224 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
225
226 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
227
228 2000-08-09 Miles Bader <miles@lsi.nec.co.jp>
229
230 * callproc.c (Fcall_process): Terminate the unwind-protect around
231 the post-read-conversion of coding system.
232
233 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
234 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
235 * buffer.h (overlays_at): Update prototype.
236 * xdisp.c (next_overlay_change): Update call to overlays_at.
237 * xfaces.c (face_at_buffer_position): Likewise.
238 * textprop.c (Fget_char_property): Likewise.
239 * xterm.c (note_mouse_highlight): Likewise.
240
241 * minibuf.c (do_completion): Don't consider a simple change of
242 case as `completion'.
243
244 2000-08-08 Ken Raeburn <raeburn@gnu.org>
245
246 * keyboard.c (syms_of_keyboard): Initialize
247 last_point_position_buffer.
248 * undo.c (record_delete): Make sure last_point_position_buffer is
249 a buffer before comparing pointers.
250
251 * coding.h (decode_coding_string): Declare.
252
253 * intervals.h (Fprevious_single_char_property_change): Declare.
254
255 * textprop.c (Fprevious_single_char_property_change): Don't do
256 arithmetic directly on lisp objects.
257
258 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
259 objects.
260
261 * keyboard.h (menu_item_eval_property): Declare.
262
263 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
264 reuse as buffer name, instead of recreating (and discarding) every
265 time a message is logged.
266 (with_echo_area_buffer): Make callback arg A2 a lisp object.
267 (current_message_1, truncate_message_1, set_message_1)
268 (display_echo_area_1, resize_mini_window_1): Signatures changed.
269 (current_message, truncate_echo_area, display_echo_area)
270 (resize_echo_area_axactly): Changed calls.
271
272 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
273 Lisp object.
274 (Ffind_coding_systems_region_internal): First argument to Fappend
275 must be an integer, not a Lisp object.
276
277 2000-08-08 Kenichi Handa <handa@etl.go.jp>
278
279 * charset.c (Fchar_width): Doc fix.
280
281 2000-08-08 Gerd Moellmann <gerd@gnu.org>
282
283 * charset.c (Fstring_width): Doc fix.
284
285 2000-08-07 Gerd Moellmann <gerd@gnu.org>
286
287 * xdisp.c (start_display): When starting display on a continuation
288 line, clear ascent and descent members of the iterator structure;
289 the height of the continued line does not affect the height of the
290 continuation line.
291 (make_cursor_line_fully_visible): Do nothing if cursor is on a
292 line taller than the window.
293 (redisplay_window) <forced window start>: Handle case that the
294 middle of the window is not found in any row.
295 (dump_glyph_row): Show more information.
296 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
297 first text line in a glyph matrix.
298
299 * xterm.c (x_draw_image_foreground): Avoid drawing outside
300 of the clip area when image doesn't have a mask.
301
302 * fns.c (sweep_weak_table): Fix survival conditions for
303 key-or-value and key-and-value weakness.
304
305 * .gdbinit (xhashtable): New command.
306
307 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
308 tables out of the list of all weak hash tables.
309
310 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
311 a new buffer is created, make sure echo_area_buffer[] references
312 the new buffer.
313
314 2000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
315
316 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
317 the doc string.
318
319 2000-08-07 Kenichi Handa <handa@etl.go.jp>
320
321 * syntax.c (skip_chars): Fix previous change. Make the handling
322 of unibyte string consistent with that of regex search.
323
324 2000-08-05 Gerd Moellmann <gerd@gnu.org>
325
326 * xmenu.c (popup_get_selection): Use xfree instead of free.
327
328 * fileio.c (Finsert_file_contents): Use xfree instead of free.
329
330 * editfns.c (Ftranspose_regions): Use xfree instead of free.
331
332 * callproc.c (child_setup): Use xfree instead of free.
333
334 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
335 instead of malloc.
336 (run_mac_command, closedir): Use `xfree' instead of `free'.
337
338 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
339
340 * eval.c (error): Use xfree instead of free.
341
342 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
343
344 * fns.c: Replace `illegal' with `invalid'.
345 (Fmake_hash_table, make_hash_table): Allow table size of 0.
346
347 2000-08-05 Kenichi Handa <handa@etl.go.jp>
348
349 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
350 conversion.
351
352 2000-08-04 Noah Friedman <friedman@splode.com>
353
354 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
355 docstring.
356
357 2000-08-04 Gerd Moellmann <gerd@gnu.org>
358
359 * syntax.c (skip_chars): Fix typo in error message.
360
361 2000-08-04 Andreas Schwab <schwab@suse.de>
362
363 * m/ia64.h: Moved from s/ia64.h.
364
365 2000-08-04 Kenichi Handa <handa@etl.go.jp>
366
367 * process.c (read_process_output): Big simplification. Handle
368 composition and post-read-conversion of coding system correctly.
369 (send_process): Handle composition correctly.
370
371 * callproc.c (Fcall_process): Handle post-read-conversion of
372 coding system if any.
373
374 * coding.c (decode_coding_iso2022): More strict check for handling
375 single shifting.
376 (coding_restore_composition): Pay attention to the case that
377 cmp_data is not set properly (because of invalid code in the
378 source text).
379 (run_pre_post_conversion_on_str): Include text properties in the
380 resulting string.
381 (decode_coding_string): Set members of coding correctly.
382
383 2000-08-03 Gerd Moellmann <gerd@gnu.org>
384
385 * s/ia64.h: New file.
386
387 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
388 Use NULL instead of 0 at the end of variable argument list of
389 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
390 sizeof (int) < sizeof (void *).
391
392 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
393 of variable argument lists of XtVaGetValues and XtVaSetValues.
394
395 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
396 variable argument lists of XtVaGetValues and XtVaSetValues.
397
398 2000-08-02 Gerd Moellmann <gerd@gnu.org>
399
400 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
401 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
402
403 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
404 prototype.
405
406 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
407 in call to Fsingle_key_description.
408
409 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
410 Callers changed.
411
412 2000-08-02 Colin Walters <walters@cis.ohio-state.edu>
413
414 * window.c (display_buffer_reuse_frames): New variable.
415 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
416 frames displaying BUFFER.
417 (syms_of_window): Define Lisp variable
418 display-buffer-reuse-frames.
419
420 2000-08-01 Miles Bader <miles@gnu.org>
421
422 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
423 when to constrain NEW_POS (they were pretty screwed up before).
424
425 2000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
426
427 * msdos.c (run_msdos_command): Save and restore the master
428 environment, for the case that child_setup signals an error.
429 When mirroring slashes in DOS shell commands, don't fail when
430 argv[2] has embedded blanks.
431 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
432 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
433 (dos_ttraw): Call mouse_setup_buttons.
434
435 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
436 using alloca; free it after run_msdos_command returns.
437
438 2000-07-27 Dave Love <fx@gnu.org>
439
440 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
441 define.
442 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
443 working.
444
445 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
446
447 2000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
448
449 * editfns.c (lisp_time_argument): Fix last change.
450
451 2000-07-27 Gerd Moellmann <gerd@gnu.org>
452
453 * fns.c (Fdelete): Make it work on vectors and strings in addition
454 to lists.
455
456 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
457 (syms_of_fns): Initialize new variables.
458 (sweep_weak_table): Handle weakness `key-or-value' and
459 `key-and-value'.
460 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
461 weakness, with t meaning the same as `key-and-value'.
462
463 2000-07-27 Kenichi Handa <handa@etl.go.jp>
464
465 * coding.h (struct coding_system): Member safe_charset deleted.
466
467 * coding.c (Qsafe_charsets): This variable deleted.
468 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
469 variables.
470 (coding_safe_chars): New function.
471 (CODING_SAFE_CHAR_P): New macro.
472 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
473 checking safe_charsets member of the coding system. Caller
474 changed.
475 (detect_coding_iso2022): New local variable safe_chars.
476 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
477 safe_charsets member of the coding system.
478 (decode_coding_iso2022): New local variable safe_chars.
479 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
480 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
481 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
482 (ENCODE_UNSAFE_CHARACTER): New macro.
483 (encode_coding_iso2022): New local variable safe_chars. Check
484 unsafe chars.
485 (setup_coding_system): Delete the code to initialize
486 coding->safe_charses
487 (intersection, find_safe_codings): New functions.
488 (Ffind_coding_systems_region_internal): New function.
489 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
490 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
491 variable and initialize it.
492
493 * fns.c (char_table_ref_and_index): New function.
494
495 * lisp.h (char_table_ref_and_index): Add prototype.
496
497 2000-07-26 Sam Steingold <sds@gnu.org>
498
499 * editfns.c (lisp_time_argument): Added third argument `usec'.
500 (Ffloat_time): New built-in Lisp function.
501
502 2000-07-26 Gerd Moellmann <gerd@gnu.org>
503
504 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
505 for the character code.
506
507 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
508 GNU/Linux.
509
510 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
511 if called for a popup menu.
512 (xmenu_show): Store help string in widget values.
513
514 2000-07-26 Dave Love <fx@gnu.org>
515
516 * syswait.h: Move some definitions.
517 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
518 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
519 perspicuous definitions.
520 (WTERMSIG): Fix bit pattern used.
521
522 2000-07-26 Kenichi Handa <handa@etl.go.jp>
523
524 * print.c (print_object): If vector printing is truncated, print
525 "..." to indicate it as well as the case of list printing.
526
527 2000-07-25 Gerd Moellmann <gerd@gnu.org>
528
529 * xdisp.c (next_element_from_display_vector): Improve comments.
530
531 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
532 for the character code, and the rest for the face id as in 20.x.
533 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
534
535 * window.c (window_display_table): Cleaned up.
536
537 * syntax.c (Fforward_word): Add last arg nil in call of
538 Fconstrain_to_field.
539
540 2000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
541
542 * fileio.c (Frename_file) [DOS_NT]: If the file names are
543 identical but for the letter-case, don't call
544 barf_or_query_if_file_exists.
545
546 2000-07-25 Miles Bader <miles@gnu.org>
547
548 * editfns.c (find_field): Honor special `boundary' fields.
549 (Qboundary): New variables.
550 (syms_of_editfns): Initialize Qboundary.
551 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
552 Use scan_buffer instead of find_before_next_newline, because it
553 allows us to detect the boundary case where there's a newline at
554 the search limit.
555 * lisp.h (Fconstrain_to_field): Update external declaration.
556
557 2000-07-24 Gerd Moellmann <gerd@gnu.org>
558
559 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
560 if that is nil.
561
562 2000-07-24 Dave Love <fx@gnu.org>
563
564 * s/sunos4-0.h, s/sol2.h:
565 (LIBS_TERMCAP): Move from m/sparc.h.
566
567 * m/sparc.h (TERMINFO): Moved to system files (probably only
568 relevant for sunos4 judging by its vintage).
569 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
570 __arch64__.
571
572 2000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
573
574 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
575 name to single_keymap_panes.
576
577 2000-07-24 Andreas Schwab <schwab@suse.de>
578
579 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
580
581 2000-07-24 Gerd Moellmann <gerd@gnu.org>
582
583 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
584 parameters instead of using int parameters. Expect FN to accept
585 EMACS_INT parameters.
586 (display_echo_area, resize_echo_area_axactly, current_message)
587 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
588 with new argument list.
589 (resize_mini_window_1): New callback function.
590 (current_message_1, truncate_message_1, set_message_1): Change
591 parameter lists to the new format expected by
592 with_echo_area_buffer.
593
594 2000-07-24 Kenichi Handa <handa@etl.go.jp>
595
596 * fontset.c (fontset_ref): Remove INLINE declaration.
597 (fontset_ref_via_base): Likewise.
598 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
599 to downcase.
600
601 2000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
602
603 * msdos.c (IT_note_mouse_highlight): Process overlays in the
604 correct order of priority. If help echo was found in an overlay,
605 use that overlay as the object in which the help echo was found.
606
607 2000-07-22 Miles Bader <miles@gnu.org>
608
609 * textprop.c (Fprevious_single_char_property_change): The initial
610 property value should be from the position preceding POSITION, not
611 following it.
612
613 2000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
614
615 * coding.c (syms_of_coding): Doc fix for
616 inhibit-iso-escape-detection.
617
618 2000-07-21 Gerd Moellmann <gerd@gnu.org>
619
620 * xterm.c (note_mouse_highlight): Process overlays in the right
621 order of priority.
622
623 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
624
625 * xterm.c (note_mouse_highlight): If help-echo was found in an
626 overlay, use that overlay as the object in which the help was
627 found.
628
629 * window.c (foreach_window_1): Fix typo reversing an if-condition.
630
631 * window.c (foreach_window): Instead of a fake variable argument
632 list, take one USER_DATA argument.
633 (foreach_window_1): Likewise, and call callback functions with two
634 args, the window and USER_DATA.
635 (struct check_window_data): New struct.
636 (check_window_containing): Use it.
637 (window_from_coordinates): Set up a struct check_window_data for
638 foreach_window.
639 (add_window_to_list, freeze_window_start): Change parameters
640 according to new calling convention.
641
642 * window.h (foreach_window): Change prototype.
643
644 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
645
646 2000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
647
648 * xmenu.c (menu_help_callback): Call show_help_echo with
649 additional arguments OBJECT and POS.
650
651 2000-07-21 Kenichi Handa <handa@etl.go.jp>
652
653 * data.c (Faset): Allow storing any multibyte character in a
654 string. Convert unibyte string to multibyte if necessary.
655
656 * xfns.c (x_encode_text): New function.
657 (x_set_name): Use x_encode_text.
658 (x_set_title): Likewise.
659
660 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
661
662 * xterm.h (x_encode_text): Add prototype.
663
664 2000-07-20 Dave Love <fx@gnu.org>
665
666 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
667 xfree, not free.
668
669 2000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
670
671 * msdos.c (help_echo_window): New variable.
672 (syms_of_msdos): Initialize and staticpro it.
673 (IT_note_mode_line_highlight): Set help_echo_window.
674 (IT_note_mouse_highlight): Ditto.
675 (dos_rawgetc): Store help_echo_window in the second event produced
676 for HELP_EVENTs.
677
678 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
679 Record the object that generated the help echo and the position of
680 that object in help_echo_object and help_echo_pos. Record that
681 some glyphs in a row are displayed in mouse-face.
682 (IT_update_begin): Don't clear mouse highlight unless one of the
683 enabled glyph rows is marked as being displayed in mouse-face.
684 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
685 and position recorded in help_echo_object and help_echo_pos to the
686 event queue.
687 (IT_menu_display): Accept a new argument PN: the pane number of
688 the current menu pane. Record the pane number and the item
689 number of the item which has associated help string.
690 (XMenuActivate): Update the prototype for help_callback in
691 function declaration. Call IT_menu_display with the current menu
692 pane number as an additional argument. Call help_callback with
693 two additional arguments: the pane number and the item number of
694 the menu item associated with the help text.
695 (help_echo_object, help_echo_pos): New variables.
696 (syms_of_msdos): Initialize them and staticpro help_echo_object.
697
698 * msdos.h (XMenuActivate): Update prototype.
699
700 2000-07-19 Gerd Moellmann <gerd@gnu.org>
701
702 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
703 Add some more prototypes.
704
705 * xterm.c, xterm.h: Add some more prototypes.
706
707 * lisp.h (Fnext_single_char_property_change): Add prototype.
708
709 * dispnew.c (direct_output_for_insert): Remove confusing
710 outer local variable mouse_face_overwritten_p.
711 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
712
713 * alloc.c (allocate_string_data): Don't copy old string contents.
714
715 2000-07-19 Kenichi Handa <handa@etl.go.jp>
716
717 * coding.c (code_convert_region): Delete text properties before
718 shrinking the conversion region.
719
720 2000-07-18 Gerd Moellmann <gerd@gnu.org>
721
722 * dispnew.c (update_text_area): Write the whole row if it
723 has mouse-face in it.
724
725 * xfaces.c (face-alternative-font-family-alist): Remove
726 DEFVAR_LISP; staticpro instead.
727
728 * xmenu.c (menu_help_callback): Call show_help_echo with
729 new arguments.
730
731 * keyboard.c (show_help_echo): Add parameter WINDOW.
732 (read_char): Call show_help_echo with window extracted from Lisp
733 help event.
734 (gen_help_event): Add parameter WINDOW.
735
736 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
737
738 * xterm.c (help_echo_window): New variable.
739 (note_mouse_highlight, note_tool_bar_highlight): Set
740 help_echo_window.
741 (XTread_socket): Pass help_echo_window to gen_help_event.
742 (syms_of_xterm): Initialize and staticpro help_echo_window.
743
744 2000-07-18 Dave Love <fx@gnu.org>
745
746 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
747 systime.h.
748
749 2000-07-18 Gerd Moellmann <gerd@gnu.org>
750
751 * alloc.c (allocate_string_data): If string had already data
752 assigned, copy old contents to new string data.
753
754 * coding.c (syms_of_coding): Fix typo in spelling of variable
755 `inhibit-iso-escape-detection'.
756
757 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
758
759 * Makefile.in: Add dependencies on dispextern.h.
760 (alloca.o): Don't define malloc and define EMACS_FREE instead of
761 `free'; both can conflict with system header files.
762
763 2000-07-18 Kenichi Handa <handa@etl.go.jp>
764
765 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
766 undefined.
767
768 2000-07-18 Dave Love <fx@gnu.org>
769
770 * window.c (Fwindow_list): Declare arg `window'.
771
772 2000-07-18 Kenichi Handa <handa@etl.go.jp>
773
774 * coding.c (setup_coding_system): Don't override the explicitly
775 specified designations.
776
777 2000-07-15 Miles Bader <miles@gnu.org>
778
779 * editfns.c (char_property_eq, char_property_stickiness): Renamed
780 from `text_property_eq' and `text_property_stickiness', respectively.
781 (find_field, Fconstrain_to_field, char_property_eq)
782 (char_property_stickiness): Changed to call char-property functions
783 instead of text-property-only ones.
784
785 * textprop.c (Fnext_single_char_property_change): Made a subr (was
786 `next_single_char_property_change'). Do more error checking, and
787 cleanup limit behavior.
788 (Fprevious_single_char_property_change): New function.
789 (syms_of_textprop): Initialize new subrs.
790
791 * xdisp.c (display_prop_end, invisible_text_between_p):
792 Call Fnext_single_char_property_change instead of
793 next_single_char_property_change.
794
795 2000-07-15 Jason Rumney <jasonr@gnu.org>
796
797 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
798 after menu is finished with.
799 (add_menu_item): Only consider wv->title as a menu title.
800 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
801
802 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
803 null title.
804 (FONT_REGEXP): Remove unused macro, and its sub-components.
805 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
806
807 * w32term.c (help_echo_object, help_echo_pos): New variables.
808 (note_mode_line_highlight): Store additional information about the
809 help-echo in help_echo_object and help_echo_pos. Check both
810 `local-map' and `keymap' properties for changing the cursor
811 (note_mouse_highlight): Store additional information about the
812 help-echo in help_echo_object and help_echo_pos.
813 (note_tool_bar_highlight): Set help_echo_object to nil and
814 help_echo_pos to -1.
815 (w32_read_socket): Use gen_help_event instead of filling
816 input_events manually.
817 (syms_of_w32term): Staticpro help_echo_object.
818 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
819 set, arrange for a mouse-highlight redisplay in
820 XTframe_up_to_date.
821 (x_clear_mouse_face): New function.
822 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
823 (x_update_window_begin): No need to turn off the mouse
824 highlight here.
825 (show_mouse_face): Set the mouse_face_p flag of glyph rows
826 depending on whether they contain glyphs highlighted in
827 mouse-face.
828 (x_fill_stretch_glyph_string): Consume runs of stretch
829 glyphs instead of a single one.
830 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
831 with new argument list.
832 (x_set_glyph_string_gc): Make sure the face's GC is valid.
833 (x_append_glyph, x_append_composite_glyph)
834 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
835 changes in struct glyph starting 1999-12-27. See comments for
836 xterm.c on 2000-07-05.
837
838 2000-07-14 Sam Steingold <sds@gnu.org>
839
840 * xfaces.c (realize_x_face): Fix the last patch:
841 check `default_face' before dereferencing.
842
843 2000-07-14 Dave Love <fx@gnu.org>
844
845 * syntax.c (back_comment): Add null default in switch (for pcc).
846
847 2000-07-14 Kenichi Handa <handa@etl.go.jp>
848
849 * xfaces.c (realize_x_face): Make fontset using the base of the
850 default_face's fontset, not using the default fontset.
851
852 * coding.c (inhibit_iso_escape_detection): New variable.
853 (syms_of_coding): Make it a Lisp variable.
854 (detect_coding_iso2022): If inhibit_iso_escape_detection is
855 nonzero, ignore ISO2022's escape sequence.
856
857 2000-07-14 Gerd Moellmann <gerd@gnu.org>
858
859 * alloca.c (malloc) [emacs]: Define as xmalloc.
860
861 * xfns.c (Fx_show_tip): If frame parameters contain a position,
862 use that instead of the mouse position. Add parameters DX and DY.
863
864 * dispextern.h (Fx_show_tip): Adjust number of parameters
865 in prototype.
866
867 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
868 if HELP is a function, call it with OBJECT and POS as parameters
869 to get the help to display.
870 (gen_help_event, kbd_buffer_store_help_event): New functions.
871 (kbd_buffer_get_event): Construct the Lisp help-event differently.
872 (read_char): Call show_help_echo with new parameters.
873
874 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
875 Add prototypes.
876
877 * xterm.c (help_echo_object, help_echo_pos): New variables.
878 (note_mode_line_highlight): Store additional information about the
879 help-echo in help_echo_object and help_echo_pos. Check both
880 `local-map' and `keymap' properties for changing the cursor
881 (note_mouse_highlight): Store additional information about the
882 help-echo in help_echo_object and help_echo_pos.
883 (note_tool_bar_highlight): Set help_echo_object to nil and
884 help_echo_pos to -1.
885 (XTread_socket): Use gen_help_event instead of filling
886 input_events manually.
887 (syms_of_xterm): Staticpro help_echo_object.
888
889 * xmenu.c (menu_highlight_callback): Use
890 kbd_buffer_store_help_event instead of setting up and input_event
891 structure manually.
892
893 * xdisp.c (eval_form): GCPRO argument sexpr.
894 (call_function): New function.
895 (handle_single_display_prop): Use call_function and FUNCTIONP
896 instead of checking whether if font_height is a symbol and
897 using eval_form.
898
899 * eval.c (internal_condition_case_2): New function.
900
901 * lisp.h (FUNCTIONP): New macro.
902 (internal_condition_case_2, call_function): Add prototypes.
903
904 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
905 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
906 Always set `arg' member of input_events.
907 (construct_menu_click): Unused function removed.
908
909 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
910
911 * w32term.c (construct_mouse_click, construct_mouse_wheel)
912 (construct_drag_n_drop, x_scroll_bar_handle_click)
913 (w32_read_socket): Always set `arg' member of input_events.
914
915 * keyboard.c (show_help_echo): Use eval_form. Add comment.
916
917 * lisp.h (eval_form): Add prototype.
918
919 * xdisp.c (eval_form): Make it externally visible.
920
921 2000-07-13 Gerd Moellmann <gerd@gnu.org>
922
923 * xterm.c (x_handle_tool_bar_click): Store the frame in the
924 frame_or_window slot of TOOL_BAR_EVENT input events instead of
925 consing. For prefix events, store the frame in the `arg' slot of
926 the event, otherwise store the key there.
927 (XTread_socket): Instead of consing, use the frame_or_window slot
928 of HELP_EVENTs for the frame, and the `arg' slot for the help
929 string.
930
931 * xmenu.c (menu_highlight_callback): Store help string in the
932 `arg' member of the input event; don't cons.
933 (menubar_selection_callback): Use the `arg' slot of input events
934 to queue additional information, instead of consing.
935
936 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
937
938 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
939 TOOL_BAR_EVENTs.
940 (w32_read_socket): Adapt to changes in HELP_EVENTs.
941
942 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
943 input events to queue additional information, instead of consing.
944
945 * keyboard.c (kbd_buffer_gcpro): Renamed from
946 kbd_buffer_frame_or_window. Now used for all Lisp objects
947 referenced from the input queue.
948 (kbd_buffer_store_event): Always use structure assignment for
949 copying input events. Record all Lisp objects referenced from
950 events in kbd_buffer_gcpro.
951 (kbd_buffer_get_event): Construct Lisp `help-echo' events
952 differently from input events. Test for prefix menu_bar_events
953 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
954 event in kbd_buffer_gcpro to nil.
955 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
956 frame_or_window is equal to its arg member as prefix events.
957 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
958 used by an input event to nil.
959 (init_keyboard): Use two times the size of the input queue
960 for kbd_buffer_gcpro.
961 (syms_of_keyboard): Likewise.
962
963 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
964 USER_SIGNAL_EVENT.
965
966 * termhooks.h (struct input_event): Add member `arg'.
967 (MENU_BAR_EVENT): Renamed from menu_bar_event.
968 (USER_SIGNAL_EVENT): Renamed from user_signal.
969
970 * xfaces.c (ASET): Remove definition.
971
972 * lisp.h (AREF, ASET, ASIZE): New macros.
973
974 * fontset.c (AREF, ASIZE): Remove definitions.
975
976 * fns.c (AREF): Remove definition.
977
978 * composite.c (AREF): Remove definition.
979
980 2000-07-12 Gerd Moellmann <gerd@gnu.org>
981
982 * dispnew.c (redraw_overlapped_rows): Add missing local.
983 (scrolling_window): Remove debug code.
984
985 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
986 Before scrolling, turn off a mouse-highlight in the window
987 being scrolled.
988
989 * xterm.c (x_update_window_end): Add parameter
990 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
991 redisplay in XTframe_up_to_date.
992 (x_clear_mouse_face): New function.
993 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
994
995 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
996 current glyph row.
997 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
998 it when any row is written to that contains glyphs highlighted in
999 mouse-face.
1000 (update_window): Call the window update end hook with new
1001 parameter MOUSE_FACE_OVERWRITTEN_P.
1002 (direct_output_for_insert): Give up if row contains mouse-face.
1003
1004 * dispextern.h (struct redisplay_interface): Add parameter
1005 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
1006 (clear_mouse_face): New function pointer member.
1007
1008 2000-07-11 Stefan Monnier <monnier@cs.yale.edu>
1009
1010 * syntax.c (back_comment): Use one switch rather than a few `if's.
1011 Obey open_paren_in_column_0_is_defun_start.
1012 When reverting to the `slow' method, try to nicely handle the case
1013 of nested comments by checking that the comment-starter we found
1014 does indeed match the comment-ender.
1015 (scan_sexps_forward, scan_sexps_forward):
1016 Ignore excessive opening parenthesis rather than throwing an error.
1017
1018 2000-07-11 Gerd Moellmann <gerd@gnu.org>
1019
1020 * doc.c (Fsubstitute_command_keys): Handle case that a GC
1021 in Fwhere_is_internal or get_keymap_1 relocates string contents.
1022
1023 * dispnew.c (direct_output_forward_char): Give up if currently
1024 displaying a message instead of the minibuffer contents.
1025
1026 * xterm.c (x_update_window_begin): No need to turn off the mouse
1027 highlight here.
1028 (show_mouse_face): Set the mouse_face_p flag of glyph rows
1029 depending on whether they contain glyphs highlighted in
1030 mouse-face.
1031
1032 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
1033 compare the mouse_face_p flags of both rows.
1034
1035 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
1036
1037 2000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
1038
1039 * keyboard.c (show_help_echo): Accept additional parameter
1040 ok_to_overwrite_keystroke_echo.
1041 (read_char): Call show_help_echo with a zero
1042 ok_to_overwrite_keystroke_echo argument.
1043 * keyboard.h (show_help_echo): Update prototype of
1044 show_help_echo.
1045 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
1046 ok_to_overwrite_keystroke_echo argument.
1047 * w32menu.c (w32_menu_display_help): Call show_help_echo with
1048 non-zero ok_to_overwrite_keystroke_echo argument.
1049
1050 2000-07-10 Gerd Moellmann <gerd@gnu.org>
1051
1052 * xdisp.c (try_window_id): If changes are all below what is
1053 displayed in the window, and point is in the window, we still
1054 might have to find point on the display.
1055
1056 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
1057 glyphs instead of a single one.
1058 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
1059 with new argument list.
1060 (x_set_glyph_string_gc): Make sure the face's GC is valid.
1061
1062 * keymap.c (get_keymap_1): Add comment that this function can GC.
1063 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
1064 comment that functions can GC.
1065 (Fset_keymap_parent): GCPRO arg KEYMAP.
1066
1067 2000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
1068
1069 * msdos.c (XMenuActivate): After exiting the menu, restore the
1070 echo area message and erase it.
1071
1072 2000-07-10 Kenichi Handa <handa@etl.go.jp>
1073
1074 * fontset.c (Ffontset_info): Make the return value more compatible
1075 with that of Emacs 20.
1076
1077 2000-07-07 Gerd Moellmann <gerd@gnu.org>
1078
1079 * eval.c (Fsignal): Handle case that backtrace_list is null.
1080
1081 2000-07-07 Kenichi Handa <handa@etl.go.jp>
1082
1083 * ccl.c (Fccl_execute): Typo fixed.
1084
1085 2000-07-06 Gerd Moellmann <gerd@gnu.org>
1086
1087 * window.c (window_loop): Add missing gcpro1 local variable.
1088
1089 * window.c (Fwindow_list): Reverse list at the end.
1090 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
1091 means allow windows on OWINDOW's frame, only.
1092 (window_loop): Simplified; use Fwindow_list.
1093
1094 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
1095
1096 2000-07-05 Gerd Moellmann <gerd@gnu.org>
1097
1098 * xterm.c (XTread_socket): Increment handling_signal at the start,
1099 decrement it at the end.
1100
1101 * eval.c (handling_signal): New variable.
1102 (Fsignal): Abort if handling_signal is non-zero.
1103
1104 * lisp.h (handling_signal): External declaration.
1105
1106 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
1107
1108 2000-07-05 Ken Raeburn <raeburn@gnu.org>
1109
1110 Sound support for NetBSD through "Linux emulation" support:
1111 * config.in (HAVE_SOUNDCARD_H): Undef.
1112 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
1113 * Makefile.in (LIBSOUND): New variable.
1114 (LIBES): Include it.
1115 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
1116 <soundcard.h>.
1117 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
1118 elsewhere.
1119 (vox_open): Use DEFAULT_SOUND_DEVICE.
1120 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
1121
1122 2000-07-05 Gerd Moellmann <gerd@gnu.org>
1123
1124 * print.c (print_error_message): If Vsignaling_function is set,
1125 show it in *Messages*.
1126
1127 * lisp.h (Vsignaling_function): External declaration.
1128
1129 * eval.c (Vsignaling_function): New variable.
1130 (Fsignal): Compute it.
1131 (syms_of_eval): Staticpro it.
1132
1133 2000-07-05 Dave Love <fx@gnu.org>
1134
1135 * syswait.h: Use the autoconf recommended approach. Old code
1136 #if'd out in case we need to revert.
1137
1138 * config.in (HAVE_SYS_WAIT_H): Added.
1139
1140 2000-07-05 Andrew Innes <andrewi@gnu.org>
1141
1142 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
1143 when non-NULL instead of __morecore, to take account of buffer
1144 memory. This also solves a problem with spurious memory warnings
1145 on Windows.
1146
1147 * ralloc.c: Make real_morecore non-static.
1148
1149 * eval.c (internal_condition_case): Comment out abort if
1150 interrupt_input_blocked is not zero.
1151
1152 * makefile.nt: Add support for `bootstrap' and related targets.
1153 Include minimal debug info in emacs.exe in release build.
1154 Remove all dependencies on lisp.h, and fixup some others.
1155
1156 * w32.c (init_environment): Install code from 20.7 for providing
1157 default values for environment variables, based on the
1158 executable's own location.
1159 (map_w32_filename): Handle filenames that are longer than
1160 MAX_PATH.
1161 (sys_socket): Install socket inheritance bug fix from 20.7.
1162
1163 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
1164 here via blockinput.h).
1165
1166 2000-07-05 Stefan Monnier <monnier@cs.yale.edu>
1167
1168 * w32menu.c (w32_menu_display_help):
1169 * xmenu.c (menu_help_callback): Use show_help_echo.
1170
1171 * keyboard.h (show_help_echo): Declare.
1172
1173 * keyboard.c (show_help_echo): New function, extracted from read_char.
1174 Feval its `msg' argument if it's a cons cell.
1175 (read_char): Use it.
1176 (follow_key): Pass `autoload' to get_keyelt.
1177
1178 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
1179 (note_tool_bar_highlight, XTread_socket):
1180 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
1181 (dos_rawgetc):
1182 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
1183 (note_tool_bar_highlight, w32_read_socket):
1184 Do not gratuitously ignore non-string `help-echo' properties.
1185
1186 2000-07-05 Gerd Moellmann <gerd@gnu.org>
1187
1188 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
1189
1190 * window.c (delete_all_subwindows): Reset Vwindow_list.
1191
1192 * xterm.c (x_append_glyph, x_append_composite_glyph)
1193 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
1194 changes in struct glyph starting 1999-12-27. Some bit-fields of
1195 struct glyph were not set, which made glyphs unequal when compared
1196 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
1197 effects were the result. This also depended on the contents of
1198 memory returned by xmalloc. If flickering happens again, activate
1199 the code in clear_glyph_row that's in #if 0. If the flickering is
1200 gone with that, chances are that it is caused by something
1201 similar.
1202
1203 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
1204
1205 * dispextern.h: Add some comments.
1206
1207 * window.c (add_window_to_list): Add parameter LIST.
1208 (window_list): Order list so that, for each frame, windows are
1209 in canonical order, and so that frames appear in the list in
1210 the order given by Vframe_list.
1211 (next_window): Reverse the handling of NEXT_P.
1212
1213 2000-07-04 Gerd Moellmann <gerd@gnu.org>
1214
1215 * window.c (Vwindow_list): New variable.
1216 (make_window, delete_window): Set Vwindow_list to nil.
1217 (check_window_containing): New function.
1218 (window_from_coordinates): Rewritten.
1219 (add_window_to_list, window_list, candidate_window_p)
1220 (decode_next_window_args, next_window): New functions.
1221 (Fnext_window, Fprevious_window): Rewritten in terms of
1222 next_window.
1223 (Fwindow_list): New function.
1224 (Fother_window): Cleaned up.
1225 (foreach_window): Add a longer "variable argument list". Let
1226 callback function return 0 to indicate that cycling over windows
1227 should stop.
1228 (foreach_window_1): Likewise.
1229 (freeze_window_start): Return int.
1230 (init_window): New function.
1231 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
1232
1233 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
1234 input_event with bzero.
1235 (main): Call init_window.
1236
1237 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
1238 a menu filter.
1239
1240 2000-07-04 Kenichi Handa <handa@etl.go.jp>
1241
1242 * composite.h (make_composition_value_copy): Extern it.
1243
1244 * composite.c (make_composition_value_copy): New function.
1245
1246 * editfns.c (Fformat): While copying text properties, make each
1247 composition property value a copy.
1248
1249 * fns.c (concat): While copying text properties, make each
1250 composition property value a copy.
1251
1252 2000-07-03 Gerd Moellmann <gerd@gnu.org>
1253
1254 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
1255
1256 * fns.c (sweep_weak_table): Mark only objects that are not
1257 marked already.
1258
1259 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
1260 include those frames as candidates which have their focus
1261 redirected to the minibuffer frame.
1262
1263 2000-07-03 Stefan Monnier <monnier@cs.yale.edu>
1264
1265 * fns.c (Fputhash): Return `value' rather than nil.
1266
1267 2000-06-30 Gerd Moellmann <gerd@gnu.org>
1268
1269 * frame.c (next_frame): Don't check focus redirection in case
1270 MINIBUF is a window. Doing so excludes frames using MINIBUF
1271 unless their focus is redirected, which contradicts the
1272 specification of next-frame, and leads to infinite loops in
1273 certain situations when cycling through windows with next-window.
1274
1275 2000-06-30 Kenichi Handa <handa@etl.go.jp>
1276
1277 * coding.c (code_convert_region): Even if the length of text is
1278 zero, try to convert it if coding->type is coding_type_ccl.
1279 (decode_coding_string, encode_coding_string): Likewise.
1280
1281 2000-06-28 Gerd Moellmann <gerd@gnu.org>
1282
1283 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
1284 the display if windows_or_buffers_changed.
1285
1286 * dispnew.c (struct row_entry): New structure.
1287 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
1288 (row_table_size, old_lines, new_lines, old_lines_size)
1289 (new_lines_size, run_pool, runs_size, runs): New variables.
1290 (add_row_entry): New function.
1291 (scrolling_window): Use data structures allocated with xmalloc and
1292 held in global variables, instead of allocating them with alloca and
1293 holding them in local variables. Use a larger hash table whose
1294 size depends on glyph matrix sizes. Don't use bzero to clear the
1295 hash table; instead, clear used slots only.
1296
1297 * fns.c (next_almost_prime): Make it externally visible.
1298
1299 * lisp.h (next_almost_prime): Add prototype.
1300
1301 * s/isc4-0.h (sigunblock): Define.
1302
1303 * s/sco5.h (sigunblock): Define.
1304
1305 2000-06-27 Dave Love <fx@gnu.org>
1306
1307 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
1308 (moved to osf5-0.h).
1309 [!NOT_C_CODE]: Protect string.h stuff.
1310
1311 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
1312 (sys_siglist, NSIG): Definitions moved here from osf1.h.
1313
1314 2000-06-27 Gerd Moellmann <gerd@gnu.org>
1315
1316 * xdisp.c (resize_mini_window): Subtract the extra line spacing
1317 below the last line from the needed window height.
1318
1319 2000-06-26 Stefan Monnier <monnier@cs.yale.edu>
1320
1321 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
1322 (Fwidget_get): Use it.
1323 (syms_of_fns): Defsubr it.
1324
1325 2000-06-26 Gerd Moellmann <gerd@gnu.org>
1326
1327 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1328 display info for XIM.
1329 (xim_open_dpy): Likewise.
1330 (xim_close_dpy): Don't free the display info's XIM.
1331
1332 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
1333
1334 * config.in (USE_XIM): New define.
1335
1336 * keymap.c (get_keyelt): For menu-items containing a `:filter
1337 FILTER', apply FILTER to the menu-item's definition to get the
1338 real definition to use.
1339
1340 * lisp.h (QCfilter): External declaration.
1341
1342 * xfns.c (Fimage_size): New function.
1343 (syms_of_xfns): Defsubr it.
1344
1345 2000-06-26 Andreas Schwab <schwab@suse.de>
1346
1347 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
1348 Fstring_as_unibyte.
1349
1350 2000-06-25 Dave Love <fx@gnu.org>
1351
1352 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
1353 tgetnum.
1354
1355 * Makefile.in (blockinput.h): Depend on atimer.h.
1356 (atimer.h): Depend on systime.h.
1357
1358 * blockinput.h: Protect against multiple inclusion. Include
1359 atimer.h.
1360
1361 * atimer.h: Protect against multiple inclusion. Include
1362 systime.h.
1363
1364 * lisp.h (swap_in_global_binding): Declare.
1365
1366 2000-06-24 Ken Raeburn <raeburn@gnu.org>
1367
1368 * process.c (Fopen_network_stream): Turn off atimers for duration
1369 of call to connect. (Patch from Gerd.)
1370
1371 2000-06-23 Dave Love <fx@gnu.org>
1372
1373 * ralloc.c: Maybe include unistd.h
1374
1375 * emacs.c (setgrp): Undefine before defining.
1376 (malloc_warning, set_time_zone_rule, index): Prototype.
1377
1378 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
1379 HAVE_STRUCT_TIMEZONE.
1380
1381 * s/osf1.h: Move string.h hack here from alpha.h and make it
1382 conditional.
1383 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
1384 _XOPEN_SOURCE.
1385 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
1386 (SOCKLEN_TYPE): Don't define.
1387
1388 * m/alpha.h: Remove string.h hack.
1389
1390 * s/osf5-0.h: New file.
1391
1392 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
1393 include time.h, done by systime.h.
1394 [__FreeBSD__]: Remove redundant includes.
1395
1396 * callproc.c (setpgrp): Undefine before defining.
1397 (delete_temp_file): Return Qnil to avoid warning.
1398
1399 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
1400
1401 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
1402 HAVE_X_WINDOWS.
1403
1404 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
1405
1406 * composite.h (compose_text): Declare.
1407
1408 * xterm.c: Don't include sys/types.h unconditionally. Don't
1409 protect its inclusion with !USG (following xmenu.c).
1410
1411 2000-06-23 Gerd Moellmann <gerd@gnu.org>
1412
1413 * xfns.c (x_create_tip_frame): Initialize frame's colors like
1414 in x_create_frame.
1415
1416 2000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
1417
1418 * coding.c (decode_eol_post_ccl): Special handling for undecided
1419 and inconsistent EOL types.
1420
1421 2000-06-22 Gerd Moellmann <gerd@gnu.org>
1422
1423 * xrdb.c (x_load_resources): Add default resource for scroll bar's
1424 trough color and main window's background color.
1425
1426 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
1427 differently.
1428
1429 * xterm.h (Xt_app_con): External declaration.
1430
1431 * widget.c (EmacsFrameRealize): Fix typo.
1432
1433 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
1434
1435 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
1436 (handle_invisible_prop): Record the start of invisible text in
1437 it->add_overlay_start.
1438 (struct overlay_entry): Add member `overlay'.
1439 (handle_overlay_change): Simplify.
1440 (next_overlay_string): After having processed overlay strings at the
1441 end of the buffer, record that fact in
1442 it->overlay_strings_at_end_processed_p.
1443 (compare_overlay_entries): If before- and after-strings come
1444 from the same overlay, let before-strings come first.
1445 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
1446 (load_overlay_strings): Take it->add_overlay_start into account
1447 when adding overlay strings.
1448
1449 * dispextern.h (struct it): Add member add_overlay_start.
1450
1451 2000-06-22 Dave Love <fx@gnu.org>
1452
1453 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
1454
1455 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
1456
1457 2000-06-22 Kenichi Handa <handa@etl.go.jp>
1458
1459 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
1460 is greater than 0.
1461
1462 2000-06-21 Dave Love <fx@gnu.org>
1463
1464 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
1465
1466 2000-06-21 Stefan Monnier <monnier@cs.yale.edu>
1467
1468 * syntax.c (back_comment): Simplify string-parity counting (with
1469 the added benefit of handling multiple string-styles as long as
1470 they are not intertwined).
1471 Jump to the slow code as soon as a comment starter is found in
1472 a "string_lossage" position. Fixes the case: " /* " /* " */.
1473
1474 2000-06-21 Dave Love <fx@gnu.org>
1475
1476 * Makefile.in: Use GETLOADAVG_LIBS.
1477
1478 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
1479 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
1480
1481 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1482
1483 * syntax.c (describe_syntax): Recognize the `n'estable bit.
1484 (Fforward_comment, scan_lists):
1485 Check the comstyle of single-char comment-starters.
1486 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
1487 we're just at the beginning of the comment (f.ex with (*) ... (*)).
1488 Check the comstyle of single-char comment-starters.
1489 Clarify control-flow around the Scomment case.
1490
1491 2000-06-20 Dave Love <fx@gnu.org>
1492
1493 * fns.c (make_hash_table, maybe_resize_hash_table):
1494 Cast arg of next_almost_prime.
1495
1496 * tparam.c [emacs]: Include lisp.h.
1497
1498 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
1499 and unistd.h.
1500
1501 2000-06-20 Gerd Moellmann <gerd@gnu.org>
1502
1503 * keyboard.c (adjust_point_for_property): Check if display
1504 property should be treated as intangible by looking at its
1505 value.
1506
1507 * xdisp.c (single_display_prop_intangible_p)
1508 (display_prop_intangible_p): New functions.
1509
1510 * dispextern.h (display_prop_intangible_p): Add prototype.
1511
1512 * xdisp.c (dump_glyph_row): Show type of glyph->object.
1513
1514 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
1515 argument to sigprocmask.
1516
1517 * s/sco5.h (sigblock): Redefined to pass a pointer as second
1518 argument to sigprocmask.
1519
1520 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
1521 sigprocmask_set, and pass a pointer to it to sigprocmask.
1522
1523 * sysdep.c (sigprocmask_set): New variable.
1524
1525 * fileio.c (make_temp_name): Don't use `%s' in string passed to
1526 report_file_error.
1527
1528 2000-06-20 Sam Steingold <sds@gnu.org>
1529
1530 * xrdb.c: Don't declare xmalloc, xrealloc.
1531
1532 2000-06-20 Stefan Monnier <monnier@cs.yale.edu>
1533
1534 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
1535 (re_comp): Cast gettext return value to avoid complaints when
1536 !HAVE_LIBINTL.
1537
1538 2000-06-20 Dave Love <fx@gnu.org>
1539
1540 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
1541 HAVE_GETTIMEOFDAY.
1542
1543 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
1544
1545 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
1546
1547 * m/alpha.h: Don't declare xmalloc, xrealloc.
1548
1549 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
1550
1551 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
1552
1553 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
1554
1555 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
1556 HAVE_GETWD.
1557
1558 * keyboard.h (poll_for_input_1): Declare.
1559
1560 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
1561
1562 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
1563
1564 * doprnt.c: Don't declare xmalloc, xrealloc.
1565
1566 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
1567 (getenv, ctime, getwd): Removed.
1568 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
1569
1570 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
1571 x_set_tool_bar_lines.
1572
1573 * config.in: Add HAVE_GETWD. Move some definitions above
1574 machine/system includes.
1575
1576 2000-06-20 Kenichi Handa <handa@etl.go.jp>
1577
1578 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
1579
1580 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
1581 contain information about ENCODING.
1582
1583 * fontset.c (FONTSET_ASCII): Use the first element of char table
1584 for an ASCII font, not defalt slot.
1585 (fontset_ref_via_base): If FONTSET doesn't contain information for
1586 C, try the default fontset.
1587 (make_fontset): Don't copy the default fontset.
1588 (fontset_font_pattern): Likewise.
1589 (accumulate_font_info): If ELT is nil, use the corresponding
1590 element in the default fontset.
1591
1592 2000-06-19 Dave Love <fx@gnu.org>
1593
1594 * syntax.c (Fparse_partial_sexp): Doc fix.
1595
1596 * regex.h: Test PROTOTYPES as well as __STDC__.
1597
1598 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
1599 errno, strerror. Put text after #endif in comment.
1600
1601 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
1602 pcc).
1603
1604 * xterm.c (x_frame_of_widget): Likewise.
1605
1606 2000-06-19 Gerd Moellmann <gerd@gnu.org>
1607
1608 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
1609 to Vfundamental_mode_abbrev_table.
1610
1611 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
1612 bogus objects are marked. This slows down GC by ~80 percent, but
1613 it might be worth trying when debugging GC-related problems.
1614 This feature requires conservative stack marking to be enabled.
1615
1616 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
1617 returns XLookupChars, reset `modifiers' to zero.
1618
1619 2000-06-19 Dave Love <fx@gnu.org>
1620
1621 * mktime.c: Unprotoized.
1622
1623 2000-06-19 Richard Stallman <rms@gnu.org>
1624
1625 * data.c (set_internal): If variable is frame-local,
1626 store the new value immediately into the frame parameter alist.
1627
1628 2000-06-19 Ken Raeburn <raeburn@gnu.org>
1629
1630 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
1631 in the custom handler pointer.
1632
1633 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
1634 value, or checks for CHAR_META can fail when Lisp_Object is a
1635 union type.
1636 * keymap.c (get_keyelt): Likewise.
1637
1638 2000-06-19 Kenichi Handa <handa@etl.go.jp>
1639
1640 * ccl.h (struct ccl_program): New member eol_type.
1641 (struct ccl_spec): New member cr_carryover.
1642
1643 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
1644 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
1645
1646 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
1647 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
1648 (decode_eol_post_ccl): New function.
1649 (decode_coding): Don't detect EOL format here for CCL based coding
1650 systems.
1651 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
1652 decode_eol_post_ccl after running the CCL program.
1653 (code_convert_region): Don't detect EOL format here for CCL based
1654 coding systems.
1655 (decode_coding_string): Likewise.
1656
1657 2000-06-18 Ken Raeburn <raeburn@gnu.org>
1658
1659 * charset.c (update_charset_table): Use XINT on "iso_final_char"
1660 when treating it as an integer.
1661
1662 * coding.h (encode_coding_string): Declare.
1663
1664 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
1665 it as an integer.
1666
1667 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
1668 "xkeymap" to avoid shadowing the "enum map_type" value that needs
1669 to be passed to get_local_map.
1670
1671 * sound.c (Fplay_sound): Don't call make_number on
1672 Frun_hook_with_args count argument.
1673
1674 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
1675 for lisp objects in X event structure data field, when lisp
1676 objects are represented with unions.
1677 (x_scroll_bar_to_input_event): Ditto.
1678
1679 2000-06-16 Ken Raeburn <raeburn@gnu.org>
1680
1681 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
1682 termination of string. Fix sense of test whether
1683 Vline_number_display_limit is an integer.
1684
1685 2000-06-16 Gerd Moellmann <gerd@gnu.org>
1686
1687 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
1688 only if HAVE_X_WINDOWS.
1689
1690 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
1691 of titles.
1692
1693 * dispnew.c (update_frame_1): Handle case that cursor vpos is
1694 out of bounds.
1695
1696 2000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
1697
1698 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
1699 of its headers.
1700
1701 2000-06-15 Kenichi Handa <handa@etl.go.jp>
1702
1703 * coding.c (decode_coding_emacs_mule): Always set src_base at the
1704 start of the while loop.
1705
1706 2000-06-15 Gerd Moellmann <gerd@gnu.org>
1707
1708 * atimer.c (alarm_signal_handler): Add forward declaration.
1709
1710 * data.c (set_internal): Remove debug code.
1711
1712 2000-06-14 Gerd Moellmann <gerd@gnu.org>
1713
1714 * Makefile.in (bootstrap-temacs): Add `-I../src'.
1715
1716 * unexec.c (toplevel) [COFF]: Include coff.h.
1717
1718 * s/lynxos.h: New file.
1719
1720 * keymap.c (Fsingle_key_description): Enclose function key and
1721 event symbol names in angle brackets.
1722
1723 * xdisp.c (setup_echo_area_for_printing): Call
1724 message_log_maybe_newline if message_buf_print is not set.
1725
1726 * print.c (printchar, strout): Don't check message_buf_print
1727 before calling setup_echo_area_for_printing because that
1728 function does something useful even when message_buf_print is
1729 already set.
1730
1731 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
1732 variables.
1733 (ensure_echo_area_buffers): Initialize echo buffer's
1734 truncate lines setting to nil.
1735 (with_echo_area_buffer): Don't set the echo buffer's truncate
1736 lines setting here.
1737 (set_message_1): Set it here instead, based on the value
1738 of message_truncate_lines.
1739 (resize_mini_window): Handle case that lines are truncated.
1740 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
1741 message-truncate-lines.
1742
1743 * keyboard.c (read_char): Bind message-truncate-lines to t
1744 while displaying a help-echo.
1745
1746 * lisp.h (Qmessage_truncate_lines): External declaration.
1747
1748 2000-06-13 Gerd Moellmann <gerd@gnu.org>
1749
1750 * xdisp.c (Vline_number_display_limit): Renamed from
1751 line_number_display_limit.
1752 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
1753 Extend documentation string. Initialize
1754 Vline_number_display_limit to nil meaning no limit.
1755 (decode_mode_spec): Use Vline_number_display_limit with its new
1756 meaning.
1757
1758 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
1759
1760 2000-06-13 Richard Stallman <rms@gnu.org>
1761
1762 * frame.c (Fmodify_frame_parameters): Doc fix.
1763
1764 * xfns.c (x_set_frame_parameters): Comment fix.
1765
1766 * frame.c (store_frame_param): Call swap_in_global_binding if the
1767 variable's current binding was chosen based on this frame.
1768
1769 * data.c (swap_in_global_binding): New function.
1770
1771 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1772
1773 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
1774 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
1775
1776 2000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
1777
1778 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
1779
1780 2000-06-12 Jason Rumney <jasonr@gnu.org>
1781
1782 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
1783
1784 * w32.h (EMACS_W32_H): Renamed from _NT_H_
1785
1786 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
1787
1788 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
1789
1790 2000-06-12 Gerd Moellmann <gerd@gnu.org>
1791
1792 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
1793 (syms_of_xfaces): Defsubr Sdump_colors.
1794 (x_free_colors): Don't treat b&w specially on default visual.
1795 (x_free_dpy_colors): New function.
1796 (free_face_colors): Don't check visual class; it's done
1797 in x_free_colors.
1798
1799 * xterm.c (x_frame_of_widget): New function.
1800 (x_alloc_nearest_color_for_widget): Use it.
1801 (x_copy_dpy_color): New function.
1802 (x_destroy_window): Free various colors.
1803
1804 2000-06-12 Kenichi Handa <handa@etl.go.jp>
1805
1806 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
1807
1808 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
1809
1810 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
1811
1812 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
1813
1814 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
1815
1816 2000-06-11 Dave Love <fx@gnu.org>
1817
1818 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
1819
1820 2000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
1821
1822 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
1823
1824 2000-06-11 Gerd Moellmann <gerd@gnu.org>
1825
1826 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
1827 to `XEvent *'.
1828
1829 2000-06-10 Kenichi Handa <handa@etl.go.jp>
1830
1831 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
1832 (regex_compile): Fix the code for handling the case of single byte
1833 char and multibyte char being mixed in a range within [...].
1834
1835 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
1836 and dst_multibyte members of coding.
1837
1838 * charset.c (update_charset_table): Update the table
1839 bytes_by_char_head.
1840 (init_charset_once): Initialize elements of bytes_by_char_head to
1841 1 except for leading codes for private charases.
1842
1843 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
1844 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
1845 sequence.
1846
1847 2000-06-09 Ken Raeburn <raeburn@gnu.org>
1848
1849 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
1850 access the data it doesn't point to.
1851
1852 2000-06-08 Gerd Moellmann <gerd@gnu.org>
1853
1854 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
1855 will be translated to a switch-frame event when reading the
1856 event queue. This is necessary because Emacs otherwise won't
1857 perform a switch-frame to a new frame until some other event, for
1858 example a keystroke event, forces it to do so. This has various
1859 effects, one visible being that the cursor of a frame created with
1860 C-x 5 2 or switched to with a window manager key binding like
1861 A-TAB stays hollow because selected_window isn't on the newly
1862 focused frame until the switch-frame is performed.
1863
1864 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
1865 generating a switch-frame event if necessary.
1866
1867 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
1868
1869 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
1870 it's an integer.
1871
1872 2000-06-08 Kenichi Handa <handa@etl.go.jp>
1873
1874 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
1875 charset.
1876
1877 2000-06-07 Gerd Moellmann <gerd@gnu.org>
1878
1879 * window.c (displayed_window_lines): Take empty lines at
1880 the bottom of a window into account.
1881
1882 * window.c (displayed_window_lines): New function.
1883 (Fmove_to_window_line): Use displayed_window_lines to determine
1884 the number of lines to move, instead of using the window's height.
1885
1886 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
1887 to stop reading, even if the form read sets point to a different
1888 value when evaluated.
1889
1890 * xdisp.c (display_line): Fix code deciding in which line to
1891 put the cursor.
1892
1893 2000-06-07 Kenichi Handa <handa@etl.go.jp>
1894
1895 * fileio.c (e_write): Free composition data if stored in
1896 coding->cmp_data.
1897
1898 2000-06-06 Gerd Moellmann <gerd@gnu.org>
1899
1900 * xdisp.c (display_line): Set row's and iterator's
1901 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
1902 Set cursor even if row ends in the middle of a character.
1903 (dump_glyph_row): Print values of new flags.
1904 (redisplay_window) <cursor movement in unchanged window>: When
1905 point has been moved forward, and PT is at the end of the cursor
1906 row, don't place the cursor in the next row if the cursor row ends
1907 in the middle of a character or at ZV.
1908
1909 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
1910 (struct glyph_row): Add starts_in_middle_of_char_p and
1911 ends_in_middle_of_char_p.
1912 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
1913 ends_in_middle_of_char_p flag.
1914 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
1915
1916 * term.c (append_glyph): Revert change of 2000-06-06.
1917
1918 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
1919 padding glyph not fitting on line as whole character not
1920 fitting on line.
1921
1922 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
1923 this isn't true for images with `:ascent 100'.
1924
1925 2000-06-06 Kenichi Handa <handa@etl.go.jp>
1926
1927 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
1928 as modified if it is originally unmodified.
1929
1930 * term.c (encode_terminal_code): Change the way to check if
1931 terminal coding does any conversion.
1932 (append_glyph): Set glyph->pixel_width correctly.
1933
1934 * xdisp.c (display_line): While checking line continuation, pay
1935 attention to a padding glyph.
1936
1937 2000-06-05 Gerd Moellmann <gerd@gnu.org>
1938
1939 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
1940
1941 2000-06-05 Dave Love <fx@gnu.org>
1942
1943 * xdisp.c: Include fontset.h.
1944
1945 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
1946
1947 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1948
1949 * dispnew.c: Conditionally include term.h.
1950
1951 * coding.h: Declare code_convert_string_norecord.
1952
1953 * frame.h (struct frame): Use volatile unconditionally.
1954
1955 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
1956
1957 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
1958
1959 * systime.h: Protect against multiple inclusion.
1960 (timezone) [USG5_4]: Define as time_t.
1961
1962 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1963 (Foptimize_char_table, make_temp_name): Declare.
1964
1965 * Makefile.in (xdisp.o): Depend on fontset.h.
1966
1967 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
1968
1969 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
1970 (Foptimize_char_table, make_temp_name): Declare.
1971
1972 * s/irix4-0.h:
1973 * s/irix5-0.h:
1974 * s/netbsd.h: Don't define autoconfiscated MATHERR.
1975
1976 2000-06-02 Dave Love <fx@gnu.org>
1977
1978 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
1979
1980 2000-06-02 Gerd Moellmann <gerd@gnu.org>
1981
1982 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1983 result face, set flags in that face indicating that colors may not
1984 be freed.
1985
1986 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
1987 glyph, use the ASCII NUL character to determine the face.
1988
1989 2000-06-02 Dave Love <fx@gnu.org>
1990
1991 * sysdep.c: Conditionally include stdlib.h, unistd.h.
1992 (VFORK_RETURN_TYPE): Remove.
1993
1994 * config.in: Add NO_MATHERR.
1995
1996 2000-06-01 Dave Love <fx@gnu.org>
1997
1998 * cmds.c (internal_self_insert): Don't check
1999 Vbefore_change_function, Vafter_change_function.
2000
2001 * insdel.c (signal_before_change, signal_after_change): Likewise.
2002
2003 * buffer.c (Vbefore_change_function, Vafter_change_function):
2004 Variables and their initializations deleted.
2005
2006 * callint.c (Fcall_interactively): Doc fix.
2007
2008 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
2009
2010 2000-05-31 Dave Love <fx@gnu.org>
2011
2012 * textprop.c: Revert last change -- duplicated.
2013
2014 2000-05-31 Gerd Moellmann <gerd@gnu.org>
2015
2016 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
2017 in #if 0.
2018
2019 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
2020
2021 2000-05-31 Jason Rumney <jasonr@gnu.org>
2022
2023 * search.c (Fre_search_forward, Fre_search_backward)
2024 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
2025
2026 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
2027
2028 2000-05-30 Jason Rumney <jasonr@gnu.org>
2029
2030 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
2031 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
2032
2033 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
2034 member.
2035
2036 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
2037 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
2038 expand a nil default_filename.
2039
2040 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
2041 pointer to glyph_to_pixel_coords, not a frame.
2042
2043 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
2044 coding.h to dependencies.
2045
2046 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
2047
2048 * w32console.c (glyph_to_pixel_coords): Change first parameter to
2049 window pointer to be consistent with w32term.c and xterm.c.
2050
2051 * w32fns.c: Format and doc changes to bring closer to xfns.c.
2052 (VIETNAMESE_CHARSET): Define if not defined in system headers.
2053 (Qline_spacing, Qcenter): New variables.
2054 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
2055 (x_set_line_spacing): New function.
2056 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
2057 macros.
2058 (x_specified_cursor_type): New function.
2059 (x_set_cursor_type): Use it.
2060 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
2061 and icon strings.
2062 (validate_x_resource_name, x_get_resource_string): Measure lengths
2063 of external strings in bytes.
2064 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
2065 GetTextExtentPoint32 with NULL title.
2066 (Fx_create_frame): Initialize Qline_spacing.
2067 (w32_load_system_font): Initialize font->double_byte_p.
2068 (x_to_w32_charset): Use Vw32_charset_info_alist.
2069 (Image, busy cursor, tooltip functions): Merged changes from
2070 xfns.c. Not yet functional on Windows.
2071
2072 * w32gui.h (W32FontStruct): Add double_byte_p member.
2073
2074 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
2075 (emacs_button_translation): Use it.
2076 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
2077 in `mask' to be set.
2078
2079 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
2080 menu strings.
2081
2082 * w32term.c: Format and doc changes to bring closer to xterm.c.
2083 (w32_char_font_type): New enum.
2084 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
2085 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
2086 (w32_encode_char): New function.
2087 (x_encode_char): Removed.
2088 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
2089 x_encode_char and w32_font_is_double_byte.
2090 (x_produce_image_glyph): Use image_ascent.
2091 (x_produce_glyphs): Use new version of w32_per_char_metric and
2092 handle NULL return value. Allow extra line spacing.
2093 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
2094 (w32_get_glyph_overhangs): Remove unicode_p param. Use
2095 w32_font_type member of glyph instead.
2096 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
2097 (fast_find_position): Make sure not to consider rows not visible
2098 in the window.
2099 (w32_read_socket) [WM_MENUSELECT]: Cannot call
2100 w32_menu_display_help with input blocked, as it can abort.
2101 (x_display_and_set_cursor): Choose cursor depending
2102 on buffer-local value of cursor_type.
2103 (x_draw_bar_cursor): Add parameter WIDTH.
2104
2105 * w32term.h (CP_DEFAULT): Define.
2106 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
2107
2108 2000-05-30 Gerd Moellmann <gerd@gnu.org>
2109
2110 * search.c (Fre_search_forward, Fre_search_backward)
2111 (Fposix_search_backward, Fposix_search_forward): Doc fix.
2112
2113 2000-05-30 Kenichi Handa <handa@etl.go.jp>
2114
2115 * coding.c (detect_coding_iso2022): Fix code for checking
2116 CODING_CATEGORY_MASK_ISO_8_2.
2117
2118 2000-05-29 Stefan Monnier <monnier@cs.yale.edu>
2119
2120 * regex.c (PREFETCH_NOLIMIT): New function.
2121 (re_match_2_internal): Use it and adjust the end_match_2 logic.
2122
2123 2000-05-29 Gerd Moellmann <gerd@gnu.org>
2124
2125 * syntax.c (find_defun_start): Move test for
2126 open_paren_in_column_0_is_defun_start outside of the loop.
2127
2128 * xdisp.c (redisplay_window): Really switch buffers when
2129 displaying mode lines, and temporarily set selected_frame to the
2130 frame of the window that's redisplayed.
2131
2132 * xfaces.c (free_realized_faces): Block/unblock input.
2133 (free_realized_multibyte_face): Ditto.
2134
2135 2000-05-29 Dave Love <fx@gnu.org>
2136
2137 * textprop.c (Qkeymap): New variable.
2138 (syms_of_textprop): Intern it.
2139
2140 * keymap.c: Include intervals.h.
2141 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
2142
2143 * Makefile.in (keymap.o): Depend on intervals.h.
2144
2145 * keyboard.c (menu_bar_items, tool_bar_items)
2146 (Fexecute_extended_command): Deal with `keymap' property.
2147 (read_key_sequence): Track map from `keymap' property as well as
2148 `local_map'.
2149
2150 * intervals.c (get_local_map): Extra arg to allow looking for
2151 `keymap' too.
2152
2153 * intervals.h (map_property): New enum.
2154 (get_local_map): Extra arg using it.
2155 (Qkeymap): Declare.
2156
2157 * lisp.h (get_local_map): Don't declare here.
2158
2159 2000-05-29 Kenichi Handa <handa@etl.go.jp>
2160
2161 * Makefile.in (callproc.o): Depend on composite.h.
2162
2163 * callproc.c: Include composite.h.
2164 (Fcall_process): Handle composition correctly.
2165
2166 * coding.h (coding_allocate_composition_data): Extern it.
2167 (coding_restore_composition): Likewise.
2168
2169 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
2170 yet allocated, finish decoding with result
2171 CODING_FINISH_INSUFFICIENT_CMP.
2172 (coding_allocate_composition_data): Make it non-static.
2173 (coding_restore_composition): Likewise.
2174
2175 2000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
2176
2177 * charset.c (syms_of_charset): Revert last change.
2178
2179 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2180
2181 * term.c (produce_glyphs): Treat characters from the eight-bit-*
2182 charsets as unibyte, with 1-column screen width. Sent by Kenichi
2183 Handa.
2184
2185 2000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
2186
2187 * charset.c (syms_of_charset): Set width of character sets
2188 eight-bit-control and eight-bit-graphic to 1 column.
2189
2190 2000-05-26 Gerd Moellmann <gerd@gnu.org>
2191
2192 * config.in (HAVE_SPEED_T): New define.
2193
2194 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
2195 `extern speed_t'.
2196
2197 2000-05-26 Dave Love <fx@gnu.org>
2198
2199 * coding.c (shrink_decoding_region): Initialize eol_conversion.
2200
2201 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
2202 (Fsubr_arity): New function.
2203 (syms_of_data): Install them.
2204
2205 2000-05-26 Kenichi Handa <handa@etl.go.jp>
2206
2207 * charset.c (init_charset_once): Set the table bytes_by_char_head
2208 correctly.
2209
2210 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
2211 the default fontset to what Emacs uses by default.
2212 (check_registry_encoding): This function deleted.
2213 (Fset_fontset_font): Remove the adhoc condition for the default
2214 fontset. Allow cons in FONTNAME.
2215
2216 * fns.c (map_char_table): Ignore char-table entries for
2217 charsets eight-bit-control and eight-bit-graphic.
2218
2219 2000-05-25 Ken Raeburn <raeburn@gnu.org>
2220
2221 * emacs.c (main): Initialize keyboard syms before initializing
2222 window code, so face names are available.
2223
2224 2000-05-25 Stefan Monnier <monnier@cs.yale.edu>
2225
2226 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
2227 of an anchor at the beginning of a shy-group.
2228
2229 2000-05-25 Gerd Moellmann <gerd@gnu.org>
2230
2231 * xdisp.c (handle_invisible_prop): Don't try to skip over
2232 invisible text if end of text is already reached.
2233
2234 2000-05-25 Dave Love <fx@gnu.org>
2235
2236 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
2237
2238 * coding.c (encode_eol): Add null statement after label.
2239
2240 2000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
2241
2242 * w16select.c (Fw16_set_clipboard_data): Fix the change from
2243 2000-05-20.
2244
2245 2000-05-25 Kenichi Handa <handa@etl.go.jp>
2246
2247 * ccl.c (ccl_driver): Fix previous change.
2248
2249 2000-05-25 Kenichi Handa <handa@etl.go.jp>
2250
2251 * coding.c (run_pre_post_conversion_on_str): Set point to the
2252 beginning of buffer before calling coding->post_read_conversion.
2253 (decode_coding_string): Give correct args to
2254 run_pre_post_conversion_on_str.
2255 (encode_coding_string): Likewise.
2256
2257 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
2258 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
2259 eight-bit-graphic correctly.
2260
2261 2000-05-24 Kenichi HANDA <handa@etl.go.jp>
2262
2263 * fileio.c (Finsert_file_contents): Even if a file is not found,
2264 execute codes for setting up coding system. Call
2265 after-insert-file-functions unconditionally.
2266
2267 2000-05-24 Gerd Moellmann <gerd@gnu.org>
2268
2269 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
2270 BSD_PGRPS are not defined.
2271
2272 2000-05-24 Kenichi Handa <handa@etl.go.jp>
2273
2274 * charset.c (update_charset_table): Accept nil in LONG_NAME and
2275 DESCRIPTION.
2276 (syms_of_charset): Avoid building same strings.
2277
2278 2000-05-23 Gerd Moellmann <gerd@gnu.org>
2279
2280 * lread.c (Fload): Add a comment about the meaning of
2281 Vuser_init_file being t.
2282
2283 * puresize.h (BASE_PURESIZE): Increase to 675000.
2284
2285 * s/gnu-linux.h (setpgrp): Don't define it here because this
2286 prevents compilation on GNU/Linux systems with glib 2.2.
2287
2288 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
2289 as setpgid.
2290
2291 2000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
2292
2293 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
2294 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
2295 version.
2296 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
2297
2298 2000-05-23 Kenichi Handa <handa@etl.go.jp>
2299
2300 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
2301 unconditionally.
2302
2303 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
2304
2305 * term.c (encode_terminal_code): Set coding->src_multibyte
2306 properly.
2307
2308 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
2309
2310 2000-05-22 Kenichi Handa <handa@etl.go.jp>
2311
2312 * keyboard.c (read_char): Allow character codes 128..255 to be
2313 handled by input-method-function.
2314
2315 * insdel.c (adjust_markers_for_replace): Fix previous change.
2316 (adjust_after_replace): If PREV_TEXT is nil, call
2317 adjust_markers_for_insert, not adjust_markers_for_replace.
2318
2319 2000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
2320
2321 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
2322 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
2323 [HAVE_GRANDPT]: Define.
2324 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
2325
2326 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
2327 like SYSV_PTYS.
2328
2329 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
2330
2331 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
2332
2333 2000-05-20 Kenichi Handa <handa@etl.go.jp>
2334
2335 The following changes are to handle 8-bit characters in a
2336 multibyte buffer/string without facing with byte combining
2337 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
2338 eight-bit-graphic (for 0xA0..0xFF) are introduced.
2339
2340 * Makefile.in (fns.o): Depend on charset.h.
2341
2342 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
2343 convert it to unibyte.
2344 (make_string): Use parse_str_as_multibyte, not chars_in_text.
2345
2346 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
2347 apparent char boundary.
2348 (Fset_buffer_multibyte): Convert 8-bit characters in the range
2349 0x80..0x9F to/from multibyte form.
2350
2351 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
2352 to unibyte.
2353
2354 * callproc.c (Fcall_process): Always encode an argument string if
2355 it is multibyte. Setup src_multibyte and dst_multibyte members of
2356 process_coding properly.
2357
2358 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
2359 SPLIT_NON_ASCII_CHAR.
2360
2361 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
2362 as is.
2363 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
2364
2365 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
2366 variables.
2367 (SPLIT_CHARACTER_SEQ): This macro deleted.
2368 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
2369 valid.
2370 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
2371 and eight-bit-graphic.
2372 (char_to_string): Likewise. Signal an error for too large
2373 character code.
2374 (char_printable_p): Return 0 for 8-bit characters.
2375 (update_charset_table): Update iso_charset_table only when a final
2376 character is non-negative.
2377 (find_charset_in_text): Renamed from find_charset_in_str.
2378 Arguments and return value changed. Callers changed.
2379 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
2380 be -1 if CHARSET is used only internally.
2381 (Fmake_char_internal): Handle new charsets; eight-bit-control and
2382 eight-bit-graphic.
2383 (Fcharset_after): Simplified.
2384 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
2385 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
2386 (multibyte_chars_in_text): Simplified by assuming there's no
2387 invalid multibyte sequence.
2388 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2389 str_as_unibyte): New functions.
2390 (Fstring): Simpified by assuming that byte combining never
2391 happens.
2392 (init_charset_once): Initialization for
2393 LEADING_CODE_8_BIT_CONTROL.
2394 (syms_of_charset): Intern and staticpro Qeight_bit_control and
2395 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
2396 eight-bit-control and eight-bit-graphic.
2397
2398 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
2399 CHARSET_8_BIT_GRAPHIC): New macros.
2400 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
2401 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
2402 (CHARSET_REVERSE_CHARSET): Likewise.
2403 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
2404 eight-bit-graphic.
2405 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
2406 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
2407 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
2408 encounter an invalid multibyte sequence.
2409 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
2410 sequence is always valid.
2411 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
2412 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
2413 macros.
2414 (CHAR_STRING): For 8-bit characters, call char_to_string.
2415 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
2416 multibyte sequence is always valid.
2417 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
2418 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
2419 str_as_unibyte): Extern them.
2420 (BCOPY_SHORT): Fix a bug.
2421 (CHAR_LEN): This macro deleted. Callers changed to use
2422 CHAR_BYTES.
2423 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
2424 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
2425 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
2426
2427 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
2428 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
2429 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
2430 EMIT_BYTES): New macros.
2431 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
2432 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
2433 macros deleted.
2434 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
2435 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
2436 check the validity of multibyte sequence.
2437 (decode_coding_emacs_mule): New function.
2438 (encode_coding_emacs_mule): New macro.
2439 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
2440 the source.
2441 (DECODE_ISO_CHARACTER): Just return a character code.
2442 (DECODE_COMPOSITION_START): Set coding->result instead of result.
2443 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
2444 EMIT_CHAR to produced decoded characters. Exit the loop only by
2445 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
2446 block here.
2447 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
2448 only position codes for an invalid character.
2449 (encode_designation_at_bol): Return new destination pointer. 5th
2450 arg DSTP is changed to DST.
2451 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
2452 from the source by ONE_MORE_CHAR. Don't handle the case of last
2453 block here.
2454 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
2455 macros deleted.
2456 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
2457 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
2458 TWO_MORE_BYTES to fetch a byte from the source.
2459 (encode_eol): Pay attention to coding->src_multibyte.
2460 (detect_coding, detect_eol): Preserve members src_multibyte and
2461 dst_multibyte.
2462 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
2463 (encoding_buffer_size): Set magnification to 3 for all coding
2464 systems that require encoding.
2465 (ccl_coding_driver): For decoding, be sure that the result is
2466 valid multibyte sequence.
2467 (decode_coding): Initialize coding->errors and coding->result.
2468 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
2469 and raw-text, always call decode_eol. Handle the case of last
2470 block here. If not coding->dst_multibyte, convert the resulting
2471 sequence to unibyte.
2472 (encode_coding): Initialize coding->errors and coding->result.
2473 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
2474 and raw-text, always call encode_eol. Handle the case of last
2475 block here.
2476 (shrink_decoding_region, shrink_encoding_region): Detect cases
2477 that we can't skip data more rigidly.
2478 (code_convert_region): Setup src_multibyte and dst_multibyte
2479 members of coding. For decoding, if the buffer is multibyte,
2480 convert the source sequence to unibyte in advance. For encoding,
2481 if the buffer is multibyte, convert the resulting sequence to
2482 multibyte afterward.
2483 (run_pre_post_conversion_on_str): New function.
2484 (code_convert_string): Deleted and divided into the following two.
2485 (decode_coding_string, encode_coding_string): New functions.
2486 (code_convert_string1, code_convert_string_norecord): Call one of
2487 above.
2488 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
2489 MAKE_NON_ASCII_CHAR.
2490 (Fset_terminal_coding_system_internal,
2491 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
2492 and dst_multibyte members.
2493 (init_coding_once): Initialize iso_code_class with new enum
2494 ISO_control_0 and ISO_control_1.
2495
2496 * coding.h (enum iso_code_class_type): Member ISO_control_code is
2497 devided into ISO_control_0 and ISO_control_1.
2498 (struct coding_system): New members src_multibyte, dst_multibyte,
2499 errors, and result. Delete member fake_multibyte.
2500 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
2501 nonzero.
2502 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
2503 nonzero.
2504
2505 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
2506 (Faset): Likewise.
2507
2508 * editfns.c (Fformat): Be sure to convert 8-bit characters to
2509 multibyte form.
2510 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
2511 combining occurs.
2512 (Ftranspose_region): Delete codes for handling byte combining.
2513
2514 * fileio.c (Finsert_file_contents): Setup src_multibyte and
2515 dst_multibyte members of coding. On handling REPLACE on unibyte
2516 buffer, convert the result of decode_coding to unibyte. On
2517 inserting into a mutibyte buffer, always call code_convert_region.
2518 (e_write): Setup coding->src_multibyte according to the
2519 multibyteness of the source (buffer or string).
2520
2521 * fns.c (concat): Handle 8-bit characters correctly.
2522 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
2523 unibyte in the result.
2524 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
2525 valid multibyte form in the result.
2526 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2527 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
2528 return -1, signal an error.
2529 (base64_encode_1): New arg MULTIBYTE. Get each character by
2530 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
2531 character is found, return -1.
2532 (Fbase64_decode_region): Delete codes for handling byte-combining.
2533 Treat each decoded byte as a unibyte character.
2534 (Fbase64_decode_string): Return unibyte string.
2535 (Fcompare_strings, concat, string_byte_to_char): Use
2536 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
2537 FETCH_STRING_CHAR_ADVANCE.
2538 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2539 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
2540
2541 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
2542 SPLIT_NON_ASCII_CHAR.
2543 (fontset_ref_via_base, fontset_set): Likewise
2544
2545 * insdel.c (adjust_markers_for_record_delete): Deleted.
2546 (adjust_markers_for_insert): Argument changed. Caller changed.
2547 (adjust_markers_for_replace): Likewise.
2548 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
2549 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
2550 (copy_text): Delete unused local varialbe c_save. For converting
2551 to multibyte, be sure to make all 8-bit characters in valid
2552 multibyte form.
2553 (count_size_as_multibyte): Handle 8-bit characters correctly.
2554 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2555 adjust_after_replace, replace_range, del_range_2)
2556 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
2557 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
2558 adjust_after_replace, replace_range, del_range_2) Delete codes for
2559 handling byte combining.
2560 (adjust_before_replace): Deleted.
2561
2562 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
2563 SPLIT_NON_ASCII_CHAR.
2564 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
2565 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
2566 unconditionally.
2567 (Fkey_description): Likewise.
2568
2569 * lread.c (read1): On reading multibyte string, be sure to make
2570 all 8-bit chararacters in valid multibyte form.
2571 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
2572
2573 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
2574 unconditionally.
2575
2576 * process.c (Fstart_process): GCPRO current_dir before calling
2577 Ffind_operation_coding_system. Encode arguments here.
2578 (create_process): Don't encode arguments here. Setup
2579 src_multibyte and dst_multibyte members of struct coding.
2580 (read_process_output): Setup src_multibyte and dst_multibyte
2581 members of struct coding. If the output is to multibyte buffer,
2582 always decode the output of the process. Adjust the
2583 representation of 8-bit characters to the multibyteness of the
2584 output.
2585 (send_process): Setup coding->src_multibyte according to the
2586 multibyteness of the source.
2587
2588 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
2589 unconditionally.
2590 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
2591 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
2592
2593 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
2594 CHAR_LEN.
2595
2596 * w16select.c (Fw16_set_clipboard_data): Setup members
2597 src_multibyte and dst_multibyte of coding. Adjusted for the
2598 change for find_charset_in_str.
2599 (Fw16_get_clipboard_data): Likewise.
2600
2601 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
2602 dst_multibyte of coding.
2603 (x_to_w32_font): Likewise.
2604
2605 * w32select.c (Fw32_set_clipboard_data): Setup members
2606 src_multibyte and dst_multibyte of coding. Adjusted for the
2607 change for find_charset_in_str.
2608 (Fw32_get_clipboard_data): Likewise.
2609
2610 * xdisp.c (get_next_display_element): Handle 8-bit characters
2611 correctly.
2612 (next_element_from_display_vector): Use CHAR_BYTES instead of
2613 CHAR_LEN.
2614 (disp_char_vector): Use SPLIT_CHAR instead of
2615 SPLIT_NON_ASCII_CHAR.
2616
2617 * xselect.c (selection_data_to_lisp_data): Setup members
2618 src_multibyte and dst_multibyte of coding. Adjusted for the
2619 change for find_charset_in_str.
2620 (lisp_data_to_selection_data): Likewise.
2621
2622 2000-05-19 Gerd Moellmann <gerd@gnu.org>
2623
2624 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
2625 buffer.
2626
2627 * dispextern.h (Vimage_types): Add extern declaration.
2628
2629 * xdisp.c (Vimage_types): Moved here from xfns.c.
2630 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
2631
2632 * xfns.c (Vimages_types): Moved to xdisp.c.
2633 (syms_of_xfns): Move `image-types' to xdisp.c.
2634
2635 * w32fns.c (Vimage_types): Removed.
2636 (syms_of_w32fns): Remove `image-types'.
2637
2638 2000-05-18 Kenichi Handa <handa@etl.go.jp>
2639
2640 * fns.c (map_char_table): Pay attention to character number of
2641 charset. Check the validity of charset at the first level. For
2642 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
2643 the default value.
2644
2645 * fontset.c: Include "buffer.h".
2646 (fs_load_font): If the face has fontset, record the face ID in
2647 that fontset.
2648 (Finternal_char_font): New function.
2649 (accumulate_font_info): New function.
2650 (Ffontset_info): Rewritten for the new fontset implementation.
2651 (syms_of_fontset): Register Vdefault_fontset in the first element
2652 of Vfontset_table. Include Vdefault_fontset in
2653 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
2654 function.
2655
2656 2000-05-16 Dave Love <fx@gnu.org>
2657
2658 * m/iris5d.h: Deleted -- unused.
2659
2660 2000-05-16 Gerd Moellmann <gerd@gnu.org>
2661
2662 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
2663 `invalid' instead of `illegal'.
2664
2665 * indent.c (Fmove_to_column): When ending within a tab, insert
2666 spaces first so that markers at the end of the tab get adjusted.
2667
2668 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
2669 buffer list that wasn't selected in that frame.
2670
2671 * filelock.c (get_boot_time): To obtain an 8 char file name, which
2672 is needed on mescaline, use a 2 char prefix, and call
2673 make_temp_name with second arg non-zero.
2674
2675 * fileio.c (make_temp_name): New function, extracted from
2676 Fmake_temp_name.
2677 (Fmake_temp_name): Use it.
2678
2679 2000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
2680
2681 * window.c (coordinates_in_window): Subtract 1 when computing
2682 right_x.
2683
2684 2000-05-15 Gerd Moellmann <gerd@gnu.org>
2685
2686 * Makefile.in (lisp): Add env.elc.
2687
2688 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
2689
2690 2000-05-12 Gerd Moellmann <gerd@gnu.org>
2691
2692 * search.c (Freplace_match): Handle case of `\N' in the
2693 replacement when there's no group N.
2694
2695 2000-05-11 Gerd Moellmann <gerd@gnu.org>
2696
2697 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
2698 of the message to message_dolog.
2699
2700 * keyboard.c (read_char): Don't clear current message for help
2701 events; let the code handling help events handle this. Change
2702 code detecting help events that should be ignored.
2703
2704 * xdisp.c (handle_single_display_prop): Don't try to set PT if
2705 we're interating over a string.
2706
2707 2000-05-09 Dave Love <fx@gnu.org>
2708
2709 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
2710 that offset before writing. Move gcpro region past call of
2711 Ffile_regular_p.
2712
2713 2000-05-04 Dave Love <fx@gnu.org>
2714
2715 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
2716
2717 2000-05-04 Gerd Moellmann <gerd@gnu.org>
2718
2719 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
2720 of inserted characters when BUF equals the current buffer, and PT
2721 is in front of or equal to FROM.
2722
2723 2000-05-03 Gerd Moellmann <gerd@gnu.org>
2724
2725 * xdisp.c (handle_single_display_prop): If display property value
2726 is invalid, or something not supported on the frame, restore
2727 iterator's position to what it was initially. Make sure to return
2728 0 for invalid and unsupported property values.
2729
2730 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
2731 that x_per_char_metric returns null.
2732
2733 2000-05-02 Gerd Moellmann <gerd@gnu.org>
2734
2735 * xterm.h (struct face): Add forward declaration.
2736 (struct image): Ditto.
2737 (image_ascent): Add prototype.
2738
2739 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
2740 (x_draw_image_relief, x_draw_image_foreground_1): Call function
2741 image_ascent instead of using IMAGE_ASCENT.
2742
2743 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
2744 (IMAGE_ASCENT): Removed.
2745
2746 * xfns.c (Qcenter): New variable.
2747 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
2748 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
2749 (image_ascent): New function.
2750 (lookup_image): Recognize `:ascent center'.
2751 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
2752 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
2753 (xbm_load): Don't set image's ascent here.
2754 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
2755 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
2756 check ascent values here.
2757 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
2758 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
2759 (syms_of_xfns): Initialize Qcenter.
2760
2761 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
2762 to the limits, increase the limits.
2763
2764 2000-05-01 Kenichi Handa <handa@etl.go.jp>
2765
2766 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
2767 Check Vfont_encoding_alist against the full name of the opened
2768 font.
2769
2770 2000-04-28 Gerd Moellmann <gerd@gnu.org>
2771
2772 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
2773 taller than the window.
2774
2775 2000-04-28 Kenichi Handa <handa@etl.go.jp>
2776
2777 * xfaces.c (realize_x_face): Fix the argument of the second
2778 xassert. BASE_FACE may not be a face for ASCII.
2779
2780 2000-04-27 Gerd Moellmann <gerd@gnu.org>
2781
2782 * print.c (print_object): Treat print-length < 0 as nil.
2783
2784 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
2785
2786 * s/freebsd.h (TERMCAP_OBJ): Removed.
2787 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
2788
2789 * lread.c (read1): Don't treat period followed by certain
2790 characters as symbol start.
2791
2792 * xfns.c (slurp_file): New function.
2793 (xbm_image_p): Handle case of in-memory XBM files.
2794 (xbm_scan): Rewritten to work on memory buffers instead of files.
2795 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
2796 Work on memory buffers instead of files. If DATA is null test
2797 if buffer looks like an in-memory XBM file.
2798 (xbm_load_image): Renamed from xbm_load_image_file. Work on
2799 memory buffers instead of files.
2800 (xbm_file_p): New function.
2801 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
2802
2803 * lread.c (end_of_file_error): New function.
2804 (read1): Call it instead of signaling `end-of-file' directly.
2805
2806 * print.c (print_error_message): Print data of `end-of-file'
2807 with Fprinc instead of Fprin1.
2808
2809 2000-04-26 Ken Raeburn <raeburn@gnu.org>
2810
2811 * window.c (freeze_window_start): Check that minibuffer scroll
2812 window isn't nil before extracting the window structure pointer
2813 from it.
2814
2815 * undo.c (record_delete): If we hit the end of the undo list, stop
2816 picking elements apart.
2817
2818 2000-04-26 Gerd Moellmann <gerd@gnu.org>
2819
2820 * xdisp.c (display_line): If lines are continued, restore
2821 iterator's ascent/descent information to the values before the
2822 first glyph not fitting on the line.
2823
2824 2000-04-25 Gerd Moellmann <gerd@gnu.org>
2825
2826 * xdisp.c (try_window_id) <all changes above window start>: Adjust
2827 positions in glyph matrix. Don't compute new window end
2828 positions.
2829
2830 * dispnew.c (increment_matrix_positions): Renamed from
2831 increment_glyph_matrix_buffer_positions.
2832 (increment_row_positions): Renamed from
2833 increment_glyph_row_buffer_positions.
2834
2835 * dispextern.h: Change names of renamed functions from dispnew.c
2836 in prototypes.
2837
2838 2000-04-24 Gerd Moellmann <gerd@gnu.org>
2839
2840 * fileio.c (Fdo_auto_save): Create directories for auto-save
2841 list file if necessary.
2842
2843 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
2844 from buffer or frame.
2845 (automatic_hscrolling_p): New variable.
2846 (hscroll_windows): Scroll windows horizontally only if automatic
2847 hscrolling is allowed.
2848 (syms_of_xdisp): New variable `automatic-hscrolling'.
2849
2850 * frame.h (struct frame): Add member extra_line_spacing.
2851
2852 * xfns.c (x_set_line_spacing): New function.
2853 (Fx_create_frame): Set line spacing from resources.
2854 (Qline_spacing): New variable.
2855 (syms_of_xfns): Initialize Qline_spacing.
2856
2857 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
2858
2859 * buffer.c (init_buffer_once): Handle extra_line_spacing.
2860 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
2861 (reset_buffer): Don't initialize extra2 and extra3. Initialize
2862 extra_line_spacing from default value.
2863 (init_buffer_once): Initialize default value of extra_line_spacing.
2864
2865 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
2866 and extra3.
2867
2868 * xterm.c (x_produce_glyphs): Remove reference to struct it's
2869 prompt_width. Add extra line spacing.
2870
2871 * term.c (produce_glyphs): Remove reference to struct it's
2872 prompt_width.
2873
2874 * dispextern.h (struct it): Remove member prompt_width, add
2875 extra_line_spacing.
2876
2877 2000-04-22 Gerd Moellmann <gerd@gnu.org>
2878
2879 * dispnew.c (update_frame_line): When writing a whole line, make
2880 sure cursor is in the right row afterwards, otherwise a use of
2881 capability `ch' in cmgoto might leave the cursor in the row below.
2882
2883 2000-04-21 Gerd Moellmann <gerd@gnu.org>
2884
2885 * lisp.h (struct Lisp_Buffer_Cons): Remove.
2886
2887 * keyboard.c (timer_check): Fix typo in comment.
2888
2889 2000-04-21 Kenichi Handa <handa@etl.go.jp>
2890
2891 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
2892 name change: ch -> character.
2893
2894 2000-04-20 Gerd Moellmann <gerd@gnu.org>
2895
2896 * keyboard.c (echo_message_buffer): New variable.
2897 (echo_now): Set echo_message_buffer to the echo area buffer used
2898 to display the echo.
2899 (cancel_echoing): Reset echo_message_buffer to nil.
2900 (read_char): Code rewritten that handles canceling an echo or
2901 echoing a dash, respectively.
2902
2903 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
2904 directory doesn't exist.
2905
2906 2000-04-19 Dave Love <fx@gnu.org>
2907
2908 * fns.c (syms_of_fns): Defsubr mapc.
2909 (concat): Don't allow numeric args.
2910 (Fconcat): Doc change.
2911
2912 2000-04-19 Stefan Monnier <monnier@cs.yale.edu>
2913
2914 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
2915 instead define end_match(1|2) more carefully.
2916 Use GET_CHAR_BEFORE_2 for `begline'.
2917
2918 2000-04-19 Gerd Moellmann <gerd@gnu.org>
2919
2920 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
2921 on 64-bit systems where NULL is defined as `0'.
2922
2923 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
2924 the `variable argument list' to make it work on Alpha.
2925
2926 * m/alpha.h (_LP64) [!_LP64]: Define.
2927 (ORDINARY_LINK): Define for NetBSD.
2928
2929 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
2930
2931 2000-04-19 Dave Love <fx@gnu.org>
2932
2933 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
2934 change.
2935
2936 * Makefile.in (LIBS): Don't use.
2937 (GETLOADAVG_OBJ): Define again.
2938 (otherobj): Add GETLOADAVG_OBJ.
2939
2940 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
2941
2942 2000-04-18 Gerd Moellmann <gerd@gnu.org>
2943
2944 * lread.c (read_filtered_event): Cancel and start busy cursor.
2945
2946 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
2947 that the per-character metrics may be null.
2948
2949 2000-04-17 Gerd Moellmann <gerd@gnu.org>
2950
2951 * buffer.c (clone_per_buffer_values): New function.
2952 (Fmake_indirect_buffer): Add optional argument CLONE. Call
2953 clone_per_buffer_values if CLONE is not nil.
2954
2955 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2956
2957 2000-04-16 Dave Love <fx@gnu.org>
2958
2959 * Makefile.in: Remove obsolete localcpp stuff.
2960 (GETLOADAVG_OBJ): Don't define.
2961 (obj): Move LIBOBJS...
2962 (otherobj): ... to here.
2963 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
2964 whitespace-only lines after the continuation (Irix).
2965
2966 2000-04-14 Gerd Moellmann <gerd@gnu.org>
2967
2968 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
2969
2970 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
2971
2972 2000-04-14 Dave Love <fx@gnu.org>
2973
2974 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
2975 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
2976 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
2977 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
2978 NLIST_STRUCT.
2979
2980 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
2981 autoconfiscated HAVE_GETLOADAVG.
2982
2983 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
2984 BROKEN_MKTIME.
2985
2986 2000-04-14 Gerd Moellmann <gerd@gnu.org>
2987
2988 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
2989 (fill_in_lock_file_name): Avoid existing files that aren't
2990 links.
2991
2992 2000-04-14 Dave Love <fx@gnu.org>
2993
2994 * Makefile.in (LIBS, LIBOBJS): New variable.
2995 (INTERVAL_SRC): Convert to make variable.
2996 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
2997 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
2998 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
2999 add LIBOBJS.
3000 (SOME_MACHINE_OBJECTS): Remove interval stuff.
3001 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
3002 (shortlisp): Add facemenu, float-sup, frame.
3003 (SOME_MACHINE_LISP): Remove them from here.
3004 (LIBES): Change unused LDLIBS to autoconf LIBS.
3005
3006 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
3007
3008 2000-04-14 Kenichi Handa <handa@etl.go.jp>
3009
3010 * composite.c (update_compositions): If FROM and TO are not in a
3011 valid range, do nothing.
3012
3013 2000-04-13 Gerd Moellmann <gerd@gnu.org>
3014
3015 * tparam.c (tparam1): Abort when encountering an unknown
3016 `%'-specifier.
3017
3018 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
3019 terminfo.o.
3020
3021 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
3022 as TERMCAP_OBJ.
3023
3024 2000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
3025
3026 * fileio.c (a_write): Remove redundant semi-colons.
3027 (e_write): Return -1 if failed to write all the data.
3028 This fixes the changes made at 1999-12-15.
3029
3030 2000-04-12 Dave Love <fx@gnu.org>
3031
3032 * fns.c (mapcar1): Test for null vals to support mapc.
3033 (Fmapc): New function.
3034
3035 2000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
3036
3037 * msdos.c (NUM_MOUSE_BUTTONS): Define.
3038 (IT_frame_up_to_date): Support the buffer local value of
3039 cursor-type, if defined.
3040
3041 2000-04-10 Dave Love <fx@gnu.org>
3042
3043 * editfns.c (preceding-char, following-char): Doc fix.
3044
3045 2000-04-10 Ken Raeburn <raeburn@gnu.org>
3046
3047 * Makefile.in (temacs): Revert 2000-03-12 change.
3048
3049 2000-04-10 Jason Rumney <jasonr@gnu.org>
3050
3051 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
3052
3053 2000-04-10 Gerd Moellmann <gerd@gnu.org>
3054
3055 * xdisp.c (setup_echo_area_for_printing): Choose an echo
3056 area buffer, if it's not set up yet.
3057
3058 * indent.c (compute_motion): Set immediate_quit.
3059
3060 2000-04-09 Gerd Moellmann <gerd@gnu.org>
3061
3062 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
3063 variable.
3064 (realize_tty_face): Suppress boldness if colors are the inverse of
3065 the default colors, and tty_suppress_bold_inverse_default_colors_p
3066 is set.
3067 (Ftty_suppress_bold_inverse_default_colors): New function.
3068 (syms_of_xfaces): Defsubr it.
3069
3070 * buffer.c (Frestore_buffer_modified_p): New function.
3071 (syms_of_buffer): Defsubr it.
3072
3073 2000-04-08 Ken Raeburn <raeburn@gnu.org>
3074
3075 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
3076 charset id (int) argument, not a charset (Lisp_Object).
3077
3078 * coding.h (code_convert_string): Declare.
3079 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
3080 object, as the fourth argument to code_convert_string.
3081
3082 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
3083 value.
3084 (Fset_fontset_font): Use EQ to compare lisp objects.
3085
3086 2000-04-05 Ken Raeburn <raeburn@gnu.org>
3087
3088 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
3089 a pointer that looks like a lisp object.
3090 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
3091 zero, instead see whether it's an integer object, since they can't
3092 have intervals.
3093 (GET_INTERVAL_OBJECT): Simply assign to the destination.
3094
3095 * dispnew.c (allocate_matrices_for_frame_redisplay,
3096 direct_output_forward_char): Use X(U)INT and make_number as needed
3097 to convert between (unsigned) int values and lisp integers.
3098 * keyboard.c (read_key_sequence): Likewise.
3099 * lread.c (substitute_object_recurse): Likewise.
3100 * fns.c (concat, hash_lookup, hash_remove): Likewise.
3101 * minibuf.c (do_completion, Fminibuffer_complete_word,
3102 Fminibuffer_completion_help): Likewise.
3103 * term.c (produce_special_glyphs): Likewise.
3104
3105 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
3106 * print.c (print_preprocess, print_object): Likewise.
3107
3108 * search.c (compile_pattern): Use NILP when checking for nil.
3109
3110 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
3111 __OPTIMIZE__]: Provide a GNU C macro version that handles
3112 lisp-object unions.
3113 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
3114 field, to better cope with ENABLE_CHECKING and calls that modify a
3115 Lisp_Object using its old value.
3116
3117 2000-04-04 Gerd Moellmann <gerd@gnu.org>
3118
3119 * window.c (compare_window_configurations): Signal an error
3120 if parameters C1 or C2 aren't window configurations.
3121
3122 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
3123 AFTER_POTENTIAL_GC calls around calls to functions that can
3124 signal an error and thus invoke the debugger.
3125
3126 2000-04-03 Gerd Moellmann <gerd@gnu.org>
3127
3128 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
3129 an error if decoding fails.
3130
3131 * keyboard.c (lispy_mouse_names): Variable removed.
3132 (Vlispy_mouse_stem): New variable.
3133 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
3134 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
3135 for any mouse button number. Increase size of mouse_syms and
3136 button_down_location as needed. Call modify_event_symbol with
3137 different arguments.
3138 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
3139 Call modify_event_symbol with different arguments.
3140 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
3141 for any button number. Call modify_event_symbol with different
3142 arguments.
3143 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
3144 Accept a string for NAME_ALIST_OR_STEM.
3145
3146 * lisp.h (larger_vector): Add prototype.
3147
3148 * fns.c (larger_vector): Make externally visible.
3149
3150 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
3151
3152 2000-04-02 Stefan Monnier <monnier@cs.yale.edu>
3153
3154 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
3155 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
3156 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
3157 we are between str1 and str2.
3158 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
3159 (PATFETCH): Use `TRANSLATE'.
3160 (PATFETCH_RAW): Fetch multibyte char if applicable.
3161 (PATUNFETCH): Remove.
3162 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
3163 When writing a char, write it directly into the pattern buffer rather
3164 than going needlessly through a temp char-array.
3165 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
3166 multibyte magic and remove the useless `#ifdef emacs'.
3167 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
3168 buffer.
3169
3170 * regex.h (struct re_pattern_buffer): Make field `multibyte'
3171 conditional on `emacs'.
3172
3173 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
3174
3175 2000-04-01 Ken Raeburn <raeburn@gnu.org>
3176
3177 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
3178 non-union-type versions of XMARK and friends here, because XMARK
3179 and friends won't work on an integer field if NO_UNION_TYPE is not
3180 defined.
3181 (make_number): Define as a function if it's not defined as a
3182 macro.
3183
3184 * composite.c (run_composite_function): Use NILP when checking for
3185 nil.
3186 (syms_of_composite): Delete local var NARGS, pass an int as first
3187 argument to Fmake_hash_table.
3188
3189 * editfns.c (text_property_stickiness): Use NILP to test
3190 Lisp_Object boolean value.
3191 (Fmessage_or_box): Don't use NILP to test int variable.
3192 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
3193 problems reading from and changing the same lisp value in an
3194 XSETSTRING call.
3195
3196 2000-04-01 Gerd Moellmann <gerd@gnu.org>
3197
3198 * term.c (TN_no_color_video): New variable.
3199 (term_init): Intitialize TN_no_color_video.
3200 (enum no_color_bit): New enumeration.
3201 (MAY_USE_WITH_COLORS_P): New macro.
3202 (turn_on_face): Use it to determine if attributes may be used
3203 combined with colors.
3204
3205 2000-04-01 Ken Raeburn <raeburn@gnu.org>
3206
3207 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
3208 with int lvalues via casts; instead, just yield lisp object
3209 lvalues.
3210 (enlarge_window): Variable sizep now points to Lisp_Object. Use
3211 proper accessor macros.
3212 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
3213 (grow_mini_window): Fix typo getting int value of root->height.
3214
3215 * xdisp.c (compute_string_pos): Fix order of arguments to
3216 string_pos_nchars_ahead.
3217 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
3218 count arg to variable-arg routines like Frun_hook_with_args and
3219 Fformat.
3220 (back_to_previous_visible_line_start)
3221 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
3222 fixed-arg routines like Fget_char_property and Fmake_string.
3223 (reconsider_clip_changes): Use XINT when comparing integer lisp
3224 objects, or passing them as int arguments.
3225 (mark_window_display_accurate, insert_left_trunc_glyphs)
3226 (append_space, extend_face_to_end_of_line): Use make_number when
3227 storing or passing integer values as lisp objects.
3228 (set_cursor_from_row, highlight_trailing_whitespace): Use
3229 INTEGERP, not implicit test against zero, for glyph object.
3230 (try_window_id): Don't use make_number when we want an int value.
3231
3232 * xfaces.c (xlfd_symbolic_value): Make last argument a
3233 Lisp_Object, to be consistent with callers.
3234 (Fbitmap_spec_p): Use XINT to get numeric value of height.
3235 (lface_hash): Apply XFASTINT to lisp values before folding in.
3236
3237 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
3238 fill in window width and height. Pass an int, not a lisp object,
3239 as first arg to Finsert.
3240
3241 2000-04-01 Gerd Moellmann <gerd@gnu.org>
3242
3243 * xfaces.c (realize_basic_faces): Block input while realizing
3244 the faces.
3245
3246 * keyboard.c (lispy_mouse_names): Add additional mouse names.
3247
3248 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
3249
3250 2000-03-31 Gerd Moellmann <gerd@gnu.org>
3251
3252 * xterm.c (x_produce_glyphs): When displaying unibyte text
3253 or ASCII, handle case that per-char metric is null.
3254
3255 2000-03-30 Ken Raeburn <raeburn@gnu.org>
3256
3257 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
3258
3259 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
3260 XSUBR, XBUFFER): Verify correct object type before returning
3261 pointer, using eassert.
3262 * frame.h (XFRAME): Likewise.
3263
3264 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
3265 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
3266 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
3267 type.
3268 * data.c (set_internal): Likewise.
3269 * dispextern.h (WINDOW_WANTS_MODELINE_P,
3270 WINDOW_WANTS_HEADER_LINE_P): Likewise.
3271 * fileio.c (auto_save_1): Likewise.
3272 * insdel.c (check_markers): Likewise.
3273 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
3274 * undo.c (record_insert): Likewise.
3275 * vmsproc.c (child_sig): Likewise.
3276 * window.c (unshow_buffer, window_loop): Likewise.
3277 * xterm.c (x_erase_phys_cursor): Likewise.
3278
3279 2000-03-30 Gerd Moellmann <gerd@gnu.org>
3280
3281 * xfns.c (free_image_cache): Free the cache structure itself
3282 last, after all its members have been freed.
3283
3284 * lisp.h (xstrdup): Add prototype.
3285
3286 * alloc.c (xstrdup): Moved here from xfaces.c.
3287 (allocating_for_lisp): Variable removed.
3288 (lisp_malloc): Block input around the calls to malloc and
3289 mem_insert.
3290
3291 * xfaces.c (realize_tty_face): Use find_symbol_value instead
3292 of Fsymbol_value.
3293 (xstrdup): Moved to alloc.c.
3294
3295 2000-03-29 Ken Raeburn <raeburn@gnu.org>
3296
3297 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
3298
3299 * emacs.c (main): Fix sense of no-loadup test.
3300
3301 * config.in (ENABLE_CHECKING): Undef.
3302
3303 * lisp.h (struct interval): Replace "parent" field with a union of
3304 interval pointer and Lisp_Object; add new bitfield to use as
3305 discriminant. Change other flag fields to bitfields.
3306 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
3307 is defined and the supplied test fails, print a message and
3308 abort.
3309 (eassert): New macro. Use CHECK to provide an assert-like
3310 facility.
3311
3312 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
3313 pointers; abort if the value looks like a lisp object.
3314 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
3315 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
3316 Modify for new interval parent definition.
3317
3318 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
3319 UNMARK_BALANCE_INTERVALS): Update references that need an
3320 addressable lisp object in the interval structure.
3321 (die): New function.
3322 (suppress_checking): New variable.
3323
3324 * intervals.c (interval_start_pos): Just return 0 if there's no
3325 parent object.
3326
3327 2000-03-29 Gerd Moellmann <gerd@gnu.org>
3328
3329 * lread.c (read1): Accept `.' (period) as symbol start like in CL
3330 and earlier Emacs versions.
3331
3332 * keyboard.c (Ftop_level): Cancel busy-cursor.
3333
3334 * eval.c (call_debugger): Cancel busy-cursor.
3335
3336 2000-03-29 Kenichi Handa <handa@etl.go.jp>
3337
3338 * search.c (Freplace_match): Adjust multibyteness of the current
3339 buffer and NEWTEXT. Free allocated memory before signaling an
3340 error.
3341
3342 2000-03-28 Stefan Monnier <monnier@cs.yale.edu>
3343
3344 * regex.c (analyse_first): New function obtained by ripping out most
3345 of re_compile_fastmap and generalizing it a little bit so that it
3346 can also just return whether a given (sub)pattern can match the empty
3347 string or not.
3348 (regex_compile): Use `analyse_first' to decide whether the loop-check
3349 needs to be done or not for *, +, *? and +? (the loop check is costly
3350 for non-greedy repetition).
3351 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
3352
3353 2000-03-28 Dave Love <fx@gnu.org>
3354
3355 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
3356 alpha.
3357
3358 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
3359
3360 2000-03-27 Stefan Monnier <monnier@cs.yale.edu>
3361
3362 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
3363 an expression.
3364 (enum re_opcode_t): Update description of succeed_n.
3365 (PATFETCH): Always define.
3366 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
3367 operators, char classes, shy-groups and intervals).
3368 Optimize special cases of intervals so as to only use succeed_n and
3369 jump_n when really needed.
3370 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
3371 that we don't have to handle the special cases any more.
3372 Simplify on_failure_jump handling as well.
3373
3374 2000-03-28 Jason Rumney <jasonr@gnu.org>
3375
3376 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
3377
3378 2000-03-27 Gerd Moellmann <gerd@gnu.org>
3379
3380 * s/freebsd.h (GC_SETJMP_WORKS): Define.
3381
3382 * s/msdos.h (GC_SETJMP_WORKS): Define.
3383
3384 * alloc.c (mark_maybe_object): New function.
3385 (mark_memory): Use it.
3386 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
3387 (setjmp_tested_p, longjmp_done): New variables.
3388 (test_setjmp): New function.
3389 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
3390 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
3391
3392 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
3393 to DEC_TEXT_POS and INC_TEXT_POS.
3394
3395 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
3396 with parameter MULTIBYTE_P.
3397
3398 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
3399 MULTIBYTE_P.
3400
3401 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
3402 buffers because it looks for multibyte character byte sequences
3403 which don't exist in unibyte text.
3404
3405 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
3406
3407 * xfaces.c (register_color, unregister_color, unregister_colors)
3408 [DEBUG_X_COLORS]: New functions.
3409 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
3410
3411 * xfns.c (x_set_cursor_color): Get color reference counts right.
3412
3413 * xterm.c (x_copy_color): New function.
3414 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
3415
3416 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
3417 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
3418 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
3419 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
3420 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
3421 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
3422 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
3423 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
3424 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
3425 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
3426
3427 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
3428 names for handling per-buffer variables.
3429
3430 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
3431 instead of MAX_BUFFER_LOCAL_VARS.
3432 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
3433
3434 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
3435
3436 * xfns.c (x_specified_cursor_type): New function.
3437 (x_set_cursor_type): Use it.
3438
3439 * buffer.h (struct buffer): Add cursor_type.
3440
3441 2000-03-26 Stefan Monnier <monnier@cs.yale.edu>
3442
3443 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
3444 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
3445 opcode.
3446 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
3447 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
3448 executing it as well as when popping it off the stack to find infinite
3449 loops in non-greedy repetition operators.
3450
3451 2000-03-26 Gerd Moellmann <gerd@gnu.org>
3452
3453 * doc.c (Qfunction_documentation): New variable.
3454 (syms_of_doc): Initialize Qfunction_documentation.
3455 (Fdocumentation): If FUNCTION is a symbol with non-nil
3456 `function-documentation' property, return a documentation derived
3457 from that.
3458
3459 * buffer.c (syms_of_buffer): Add default-cursor-type.
3460 (init_buffer_once): Don't let cursor_type have a local value
3461 in every buffer.
3462
3463 * xterm.c (x_display_and_set_cursor): Choose cursor depending
3464 on buffer-local value of cursor_type.
3465 (x_draw_bar_cursor): Add parameter WIDTH.
3466
3467 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
3468 (init_buffer_once): Set default cursor_type value to t.
3469 Mark cursor_type as local everywhere.
3470 (syms_of_buffer): New per-buffer variable cursor-type.
3471
3472 * buffer.h (struct buffer): Remove member local_var_flags,
3473 add local_flags.
3474 (MAX_BUFFER_LOCAL_VARS): New macro.
3475 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
3476 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
3477 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
3478 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
3479
3480 * print.c (print_object): Use new macros for per-buffer
3481 variables.
3482
3483 * category.c (Fset_category_table): Use new macros for per-buffer
3484 variables.
3485
3486 * buffer.c (buffer_permanent_local_flags): Make a char array.
3487 (max_buffer_local_idx): New variable.
3488 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
3489 for new handling of per-buffer variables.
3490 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
3491 (init_buffer_once): Initialize per-buffer vars differently.
3492 Set max_buffer_local_idx.
3493
3494 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
3495 variables.
3496
3497 * lread.c (defvar_per_buffer): Use new macros for per-buffer
3498 variables.
3499
3500 * data.c (do_symval_forwarding, store_symval_forwarding)
3501 (find_symbol_value, set_internal, default_value, Fset_default)
3502 (Fkill_local_variable, Flocal_variable_p): Use new macros for
3503 per-buffer variables.
3504
3505 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
3506
3507 2000-03-24 Gerd Moellmann <gerd@gnu.org>
3508
3509 * xterm.c (x_term_init): Unblock input around call1 of
3510 Qvendor_specific_keysyms.
3511
3512 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
3513 (find_defun_start): Consider an open parenthesis in column 0
3514 a defun start only if open_paren_in_column_0_is_defun_start is set.
3515 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
3516
3517 2000-03-24 Stefan Monnier <monnier@cs.yale.edu>
3518
3519 * eval.c (Fautoload): Add entry in load-history (if after dump).
3520 * lread.c (load-history): Update docstring.
3521
3522 2000-03-24 Gerd Moellmann <gerd@gnu.org>
3523
3524 * indent.c (Fvertical_motion): Always use the current buffer.
3525 Temporarily change the window's buffer, if necessary.
3526
3527 2000-03-23 Gerd Moellmann <gerd@gnu.org>
3528
3529 * xterm.c (fast_find_position): Make sure not to consider rows
3530 not visible in the window.
3531
3532 2000-03-22 Stefan Monnier <monnier@cs.yale.edu>
3533
3534 * regex.c (enum syntaxcode): Provide default for non-Emacs.
3535 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
3536
3537 2000-03-22 Jason Rumney <jasonr@gnu.org>
3538
3539 * w32menu.c (single_submenu): Set help string to NULL if none.
3540 (w32_menu_show): Set help string correctly.
3541 (add-menu-item): Set help string in MIIM_DATA for menu item.
3542 Load SetMenuItemInfoA explicitly.
3543 (w32_menu_display_help): New function.
3544
3545 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
3546 (QCdata): Moved to xdisp.c.
3547
3548 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
3549 (Vw32_charset_to_codepage_alist): Removed.
3550 (Vw32_charset_info_alist): New variable.
3551 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
3552 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
3553 greek, hebrew, thai, johab, mac, unicode]): New symbols.
3554 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
3555 with TODO comment.
3556 (w32_codepage_for_font): Use Vw32_charset_info_alist.
3557 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
3558 Define Vw32_charset_info_alist and w32_charset symbols.
3559
3560 2000-03-22 Jason Rumney <jasonr@gnu.org>
3561
3562 * makefile.nt (w32bdf.obj): Update dependencies.
3563
3564 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
3565
3566 * w32fns.c: Include fontset.h after dispextern.h.
3567 (Fx_create_frame): Do not create fontset.
3568 (w32_load_system_font): Doc fix.
3569 (Fx_close_connection): Free full_name if it is not shared.
3570
3571 * w32term.c: Include fontset.h after dispextern.h.
3572 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
3573 updated.
3574 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
3575 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
3576 (w32_font_is_double_byte): New function, needs body.
3577 (x_append_glyph): Set glyph->glyph_not_available_p.
3578 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3579 it->charset. If it->multibyte_p is zero and it->c is a multibyte
3580 character, convert it to a unibyte character.
3581 (struct glyph_string): Delete member `charset'.
3582 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
3583 calculating it is found.
3584 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3585 the case that per char metric is not available correctly.
3586 (x_fill_glyph_string): Handle the case that the specific glyph is
3587 not available correctly.
3588 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3589 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3590 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3591 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3592 fontset. Don't call FS_LOAD_FONT.
3593
3594 2000-03-22 Ken Raeburn <raeburn@gnu.org>
3595
3596 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
3597 (INT_LISPLIKE): New macro.
3598 (NULL_INTERVAL_P): Use it.
3599 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
3600 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
3601 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
3602
3603 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
3604 explicit references to "parent" field of struct interval and
3605 associated unclean type conversions.
3606 * intervals.c (create_root_interval, root_interval, rotate_right,
3607 rotate_left, balance_possible_root_interval, split_interval_right,
3608 split_interval_left, interval_start_pos, find_interval,
3609 next_interval, previous_interval, update_interval,
3610 adjust_intervals_for_insertion, delete_node, delete_interval,
3611 adjust_intervals_for_deletion, merge_interval_right,
3612 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
3613 copy_intervals_to_string): Likewise.
3614 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
3615 Likewise.
3616 * syntax.c (update_syntax_table): Likewise.
3617
3618 * intervals.c (reproduce_tree_obj): New function, like
3619 reproduce_tree but takes a Lisp_Object for the parent. Declare
3620 with prototype.
3621 (graft_intervals_into_buffer): Use it when appropriate.
3622 (reproduce_tree): Declare with prototype.
3623 (balance_possible_root_interval): Check that the parent is a lisp
3624 object before trying to examine its type.
3625
3626 2000-03-22 Gerd Moellmann <gerd@gnu.org>
3627
3628 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
3629 as strings only if both are known to be strings.
3630
3631 * s/openbsd.h (LIBS_TERMCAP): Undef.
3632
3633 2000-03-21 Stefan Monnier <monnier@cs.yale.edu>
3634
3635 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
3636 definitions for non-Emacs compilation.
3637 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
3638 outside of `#ifdef emacs'.
3639 (print_partial_compiled_pattern): Update.
3640 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
3641 (re_compile_fastmap): Merge handling of charset and charset_not (for
3642 emacs and non-emacs compilation as well).
3643 Similarly for (not)categoryspec and (not)syntaxspec.
3644 Don't use the fastmap when reaching `anychar' since the added
3645 complexity is not justified.
3646 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
3647 and (not)syntaxspec. Merge (not)categoryspec.
3648
3649 2000-03-22 Kenichi Handa <handa@etl.go.jp>
3650
3651 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
3652 FACE_FOR_CHAR): Define them differently for the configuration of
3653 --without-x.
3654
3655 2000-03-21 Dave Love <fx@gnu.org>
3656
3657 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
3658 doc string.
3659
3660 2000-03-21 Gerd Moellmann <gerd@gnu.org>
3661
3662 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
3663 (lface_fully_specified_p): Don't check contents of
3664 LFACE_FONT_INDEX because that attribute is optional.
3665 (realize_x_face): Remove now unwarranted xassert.
3666
3667 2000-03-21 Kenichi HANDA <handa@etl.go.jp>
3668
3669 The following changes are to make font selection based on
3670 characters, not charset. In addition, they recover fontset
3671 facilities while utilizing the new font selection mechanism.
3672
3673 * Makefile.in (fontset.o): Depend on dispextern.h.
3674
3675 * alloc.c (mark_face_cache): Don't mark face->registry.
3676
3677 * dispextern.h (struct glyph): New member glyph_not_available_p.
3678 Use 22 bits for face_id.
3679 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
3680 (struct face): Delete member registry, new member ascii_face.
3681 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
3682 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
3683 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
3684 (struct it): Delete member charset, new member
3685 glyph_not_available_p.
3686
3687 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
3688 (struct fontset_info, struct fontset_data): Structs removed.
3689 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
3690 Vglobale_fontset_alist, font_idx_temp): Externs removed.
3691 (fs_load_font, fs_query_fontset): Adjusted for new argument.
3692 (fs_free_face_fontset, fontset_font_pattern,
3693 face_suitable_for_char_p, face_for_char,
3694 make_fontset_for_ascii_face): Extern them.
3695 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
3696 (FS_LOAD_FACE_FONT): New macro.
3697
3698 * fontset.c: All codes rewritten or adjusted for the change of
3699 fontset implementation. Now fontset is represented by char table.
3700 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
3701 removed.
3702 (my_strcasecmp): Function removed.
3703 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
3704 variables.
3705 (AREF, ASIZE): New macros.
3706 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
3707 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
3708 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
3709 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
3710 fontset_id_valid_p, font_family_registry, fontset_name,
3711 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
3712 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
3713 New functions.
3714 (fs_load_font): New arg FACE. Caller changed.
3715 (fs_query_fontset): Argument changed. Caller changed.
3716 (Fquery_fontset): call fs_query_fontset.
3717 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
3718 Functions removed.
3719 (clear_fontset_elements, check_registry_encoding,
3720 check_fontset_name): New functions.
3721 (syms_of_fontset): Set char-table-extra-slots property of fontset
3722 to 3. Staticpro and initialize Vfontset_table and
3723 Vdefault_fontset. Defsubr fontset_font and fontset_list.
3724
3725 * frame.h (struct frame): Member `fontset_data' removed.
3726 (FRAME_FONTSET_DATA): Macro removed.
3727
3728 * frame.c (make_frame): Don't allocate f->fontset_data.
3729 (Fdelete_frame): Don't free f->fontset_data.
3730
3731 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
3732
3733 * xdisp.c (charset_at_position): Function removed.
3734 (init_iterator): Don't set member charset of struct `it'.
3735 (handle_face_prop, reseat_to_string, set_iterator_to_next,
3736 next_element_from_display_vector, insert_left_trunc_glyphs):
3737 Likewise.
3738 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
3739 FACE_FOR_CHARSET.
3740 (get_next_display_element, append_space,
3741 extend_face_to_end_of_line): Likewise.
3742
3743 * xfaces.c (Qx_charset_registry, Vface_default_registry):
3744 Variables removed.
3745 (clear_font_table, frame_update_line_height, load_face_font):
3746 Adjusted for the change of fontset implementation.
3747 (load_face_fontset_font): Function removed.
3748 (pixel_point_size): New function.
3749 (font_list): Argument type changed. Caller changed.
3750 (LFACE_FONT): New macro.
3751 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
3752 (set_lface_from_font_name): Type of arg FONTNAME is changed to
3753 Lisp_Object. Determine the font name by actually loading a font
3754 by the specified pattern. Set LFACE_FONT (lface) to the specified
3755 pattern. Even if a font is not found, don't try alternatives.
3756 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
3757 (set_font_frame_param): If `font' is specified in lface, use it.
3758 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
3759 (lface_same_font_attributes_p): Likewise.
3760 (make_realized_face): Arguent changed. Caller changed. Set
3761 face->ascii_face to face itself.
3762 (free_realized_face): Free face->fontset if face is for ASCII.
3763 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
3764 deduce_unibyte_registry, x_charset_registry): Functions removed.
3765 (free_realized_multibyte_face): New function.
3766 (lookup_face, lookup_named_face, lookup_derived_face): Argument
3767 changed. Caller changed.
3768 (try_font_list): Argument type changed.
3769 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
3770 (choose_face_font): Argument changed. Handle fontset properly.
3771 (choose_face_fontset_font): Function removed.
3772 (realize_default_face, realize_named_face): Don't remove the
3773 former face here.
3774 (realize_face): Argument changed. Caller changed. Remove face
3775 with the arg former_face_id in advance. Load font for the new
3776 face.
3777 (realize_x_face): Argument changed. Caller changed. For a
3778 multibyte character, share fontset with base_face. For a single
3779 byte character, make a new realized fontset. Don't load a font
3780 here.
3781 (realize_tty_face): Argument changed. Caller changed.
3782 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
3783 (face_at_buffer_position): Don't check multibyte_p for returning
3784 DEFAULT_FACE_ID.
3785 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
3786 FACE_SUITABLE_FOR_CHARSET_P.
3787 (syms_of_xfaces): Remove code for Qx_charset_registry and
3788 Vface_default_registry.
3789
3790 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
3791 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
3792 (x_per_char_metric): Don't try FONT->default_char. Even if
3793 pcm->width is zero, glyph bits may exist.
3794 (x_encode_char): Always initialize char2b->byte1.
3795 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
3796 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
3797 changed.
3798 (x_append_glyph): Set glyph->glyph_not_available_p.
3799 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
3800 it->charset. Handle the case that per char metric is not
3801 available. If it->multibyte_p is zero and it->c is a multibyte
3802 character, convert it to a unibyte character.
3803 (struct glyph_string): Delete member `charset'.
3804 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
3805 the case that per char metric is not available correctly.
3806 (x_fill_glyph_string): Handle the case that the specific glyph is
3807 not available correctly.
3808 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
3809 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
3810 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
3811 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
3812 fontset. Don't call FS_LOAD_FONT.
3813
3814 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
3815 (x_create_tip_frame): Likewise.
3816 (Fx_close_connection): Free full_name of font_info.
3817
3818 * fns.c (optimize_sub_char_table): New function.
3819 (Foptimize_char_table): New function.
3820 (syms_of_fns): Defsubr Soptimize_char_table.
3821
3822 2000-03-20 Gerd Moellmann <gerd@gnu.org>
3823
3824 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
3825 only if buffer is displayed in some window.
3826
3827 * xdisp.c (handle_single_display_prop): Initialize local `value'.
3828 (try_window_reusing_current_matrix): Don't call scroll run
3829 function if run's current and desired position are the same;
3830 this prevents cursor flickering.
3831
3832 2000-03-19 Stefan Monnier <monnier@cs.yale.edu>
3833
3834 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
3835
3836 * regex.c (RE_STRING_CHAR): New macro.
3837 (GET_CHAR_AFER_2): Remove.
3838 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
3839 (enum re_opcode_t): Remove on_failure_jump_exclusive.
3840 (print_partial_compiled_pattern, re_compile_fastmap)
3841 (re_match_2_internal): Remove on_failure_jump_exclusive.
3842 (regex_compile): Turn optimizable P+ loops into PP*, so that the
3843 optimization only need to work for * (ie. can use of_keep_string_jump).
3844 Remove the special case for .*\n since it is now covered by the general
3845 optimization.
3846 (re_search_2): Don't bother with `room'.
3847 (skip_one_char): New function.
3848 (skip_noops): Simplify since `memory' is not needed any more.
3849 (mutually_exclusive_p): Restructure slightly to use `switch' and
3850 add handling for "all" remaining cases.
3851 (re_match_2_internal): Change on_failure_jump_smart to use
3852 on_failure_keep_string_jump (and redirect the end-of-loop jump)
3853 rather than on_failure_jump_exclusive.
3854
3855 2000-03-19 Gerd Moellmann <gerd@gnu.org>
3856
3857 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
3858 number of bits per RGB because it's everywhere used as the depth
3859 of the visual.
3860
3861 * term.c (calculate_costs): Remove code dealing with X frames.
3862
3863 2000-03-19 Richard M. Stallman <rms@gnu.org>
3864
3865 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
3866
3867 2000-03-18 Gerd Moellmann <gerd@gnu.org>
3868
3869 * lread.c (read_integer): Unread the last char not consumed.
3870
3871 2000-03-17 Gerd Moellmann <gerd@gnu.org>
3872
3873 * xterm.c (x_update_window_cursor): Don't update in frames
3874 which are in the process of being deleted.
3875
3876 2000-03-16 Gerd Moellmann <gerd@gnu.org>
3877
3878 * Makefile.in (mostlyclean): Add `*.core'.
3879 (clean): Add `bootstrap-emacs'.
3880
3881 * lread.c (read_integer): New function.
3882 (read1): Support read syntax #o, #x, #b, #r.
3883
3884 2000-03-15 Stefan Monnier <monnier@cs.yale.edu>
3885
3886 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
3887 make sure POINTER_TO_OFFSET gives the same value before and after
3888 PREFETCH. Use `dfail' to guarantee "atomic" matching.
3889 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
3890 (debug): Now only active if > 0 rather than if != 0.
3891 (DEBUG_*): Update for the new meaning of `debug'.
3892 (print_partial_compiled_pattern): Add missing `succeed' case. Use
3893 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
3894 in `succeed_n', `jump_n' and `set_number_at'.
3895 (store_op1, store_op2, insert_op1, insert_op2)
3896 (at_begline_loc_p, at_endline_loc_p): Add prototype.
3897 (group_in_compile_stack): Move to after its arg's types are
3898 declared and add a prototype.
3899 (PATFETCH): Define in terms of PATFETCH_RAW.
3900 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
3901 wrapper.
3902 (QUIT): Redefine as a nop except for NTemacs.
3903 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
3904 indentation of the greedy-op and shy-group code.
3905 (at_(beg|end)line_loc_p): Fix argument's types.
3906 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
3907 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
3908 (MATCHING_IN_FIRST_STRING): Remove.
3909 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
3910 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
3911 QUIT unconditionally.
3912
3913 2000-03-15 Gerd Moellmann <gerd@gnu.org>
3914
3915 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
3916 a sole completion.
3917
3918 * process.c (send_process): Add a hint that the function
3919 can call Lisp code to its comment.
3920
3921 * lread.c (load_dangerous_libraries): New variable.
3922 (Vbytecomp_version_regexp): New variable.
3923 (safe_to_load_p): New function.
3924 (Fload): Handle files not compiled with Emacs specially.
3925 (syms_of_lread): New Lisp variable load-dangerous-libraries.
3926
3927 2000-03-14 Gerd Moellmann <gerd@gnu.org>
3928
3929 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
3930
3931 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
3932 support functions only if HAVE_X11R6_XIM is defined.
3933 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
3934
3935 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
3936
3937 * xfns.c (X_I18N_INHIBITED): Don't define.
3938 (create_frame_xic): Remove conditional compilation on
3939 X_I18N_INHIBITED.
3940 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
3941
3942 * config.in (HAVE_X_I18N): Moved here from xterm.h.
3943 (HAVE_X11R6_XIM): Define.
3944
3945 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
3946
3947 * xterm.c (x_term_init): Add support for X resource `synchronous'.
3948 If set, call XSynchronize.
3949
3950 2000-03-13 Stefan Monnier <monnier@cs.yale.edu>
3951
3952 * regex.c: Declare a new type `re_char' used throughout the code
3953 for the string char type. It's `const unsigned char' to match the
3954 rest of Emacs. Consistently make sure all pointers to strings use
3955 it and make sure all pointers into the pattern use `unsigned
3956 char'.
3957 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
3958 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
3959 code duplication.
3960
3961 * charset.h (GET_CHAR_AFTER_2): Remove.
3962 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
3963
3964 2000-03-12 Ken Raeburn <raeburn@gnu.org>
3965
3966 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
3967 variable before the invocation of YMF_PASS_LDFLAGS, in case both
3968 of them try to use backquotes.
3969
3970 2000-03-12 Dave Love <fx@gnu.org>
3971
3972 * unexelf.c: Restore changes of 1999-10-19.
3973 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
3974 fix its type and alignment; copy it from current process.
3975
3976 2000-03-12 Gerd Moellmann <gerd@gnu.org>
3977
3978 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
3979 has been found. Fix bug not computing timer's predecessor.
3980
3981 * fileio.c (Fread_file_name): Handle case that DIR contains a
3982 file name.
3983
3984 * window.c (Fsave_window_excursion): Doc fix.
3985
3986 * xfns.c (x_defined_color): Rewritten to use
3987 x_allocate_nearest_color.
3988
3989 2000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
3990
3991 * msdos.c (vga_installed): New function, code moved from
3992 dos_set_window_size.
3993 (Qbar, Qcursor_type, outside_cursor): New variables.
3994 (syms_of_msdos): Intern and staticpro them.
3995 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
3996 shape used outside Emacs when called for the first time.
3997 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
3998 cursor shape used outside Emacs.
3999 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
4000 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
4001 type has changed.
4002 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
4003 parameters specify the cursor. Make qreverse a global
4004 variable (renamed to Qreverse).
4005
4006 2000-03-09 Gerd Moellmann <gerd@gnu.org>
4007
4008 * fns.c (Fy_or_n_p): Cancel busy-cursor.
4009
4010 2000-03-08 Stefan Monnier <monnier@cs.yale.edu>
4011
4012 This is a big redesign of failure-stack and register handling, prompted
4013 by bugs revealed when trying to add shy-groups. Overall, what happened
4014 is that loops are now structured a little differently, groups can be
4015 shy and the code is a little simpler.
4016
4017 * regex.h: Update the copyright.
4018 (RE_SHY_GROUPS): New value.
4019 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
4020 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
4021
4022 * regex.c (enum re_opcode_t): Remove jump_past_alt,
4023 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
4024 on_failure_jump_(exclusive, loop and smart). Also fix the comment
4025 for (start|stop)_memory since they now only take one argument (the
4026 second has becomes unnecessary).
4027 (print_partial_compiled_pattern): Adjust for changes in
4028 re_opcode_t.
4029 (print_compiled_pattern): Use %ld to printf long ints and flush to
4030 make debugging a little easier.
4031 (union fail_stack_elt): Make the integer unsigned.
4032 (struct fail_stack_type): Add a `frame' element.
4033 (INIT_FAIL_STACK): Init `frame' as well.
4034 (POP_PATTERN_OP): New macro for re_compile_fastmap.
4035 (DEBUG_PUSH, DEBUG_POP): Remove.
4036 (NUM_REG_ITEMS): Remove.
4037 (NUM_NONREG_ITEMS): Adjust.
4038 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
4039 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
4040 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
4041 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
4042 macros.
4043 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
4044 address pushed is not the destination of the jump but the source
4045 of it instead.
4046 (NUM_FAILURE_ITEMS): Remove.
4047 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
4048 registers before the actual failure point). Don't hardcode any
4049 meaning for str==NULL anymore.
4050 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
4051 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
4052 Remove.
4053 (REG_UNSET_VALUE): Use NULL (why not?).
4054 (compile_range): Remove declaration since it doesn't exist.
4055 (struct compile_stack_elt_t): Remove inner_group_offset.
4056 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
4057 (regex_grow_registers): Remove dead code.
4058 (FIXUP_ALT_JUMP): New macro.
4059 (regex_compile): Add shy-groups Change loops to use
4060 on_failure_jump_smart&jump instead of
4061 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
4062 initial (dummy_failure_)jump. Remove c1_base (looks like unused
4063 variable to me). Use `jump' instead of `jump_past_alt' and don't
4064 bother with push_dummy_failure in alternatives since it is now
4065 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
4066 emacs' for (re)allocating the stack.
4067 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
4068 from loop when bufp->can_be_null rather than jumping to `done'.
4069 Avoid jumping backwards so as to ensure termination. Use
4070 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
4071 backreferences. Remove dead code in handling of `anychar'.
4072 (skip_noops, mutually_exclusive_p): New functions taken from the
4073 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
4074 improve mutually_exclusive_p to handle ".+\n".
4075 (lowest_active_reg, highest_active_reg,
4076 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
4077 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
4078 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
4079 variables. Push register (in `start_memory') on the stack rather
4080 than storing it in old_reg(start|end). Remove the cycle detection
4081 from `stop_memory', replaced by the use of on_failure_jump_loop
4082 for greedy loops. Add code for the new on_failure_jump_<foo>.
4083 Remove ad-hoc code in `on_failure_jump' to push more registers in
4084 the case of a loop. Take out code from `maybe_pop_jump' into
4085 separate functions and adapt it to the semantics of
4086 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
4087 and push_dummy_failure. Remove dummy_failure handling and
4088 handling of `failures to jump to on_failure_jump' (this last one
4089 was already dead code, it seems).
4090 (group_match_null_string_p, alt_match_null_string_p)
4091 (common_op_match_null_string_p): Remove.
4092
4093 2000-03-08 Dave Love <fx@gnu.org>
4094
4095 * config.in: Don't depend on __STDC__ for volatile.
4096 Add POINTER_TYPE, PTR, PROTOTYPES.
4097
4098 * hftctl.c, strftime.c: Use PROTOTYPES.
4099 * eval.c (find_handler_clause): Likewise.
4100
4101 * mem-limits.h: Use POINTER_TYPE.
4102
4103 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
4104 (memory_warnings): Declare using POINTER_TYPE.
4105
4106 2000-03-08 Gerd Moellmann <gerd@gnu.org>
4107
4108 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
4109
4110 * xdisp.c (display_echo_area): Temporarily inhibit garbage
4111 collection.
4112
4113 * xfns.c: Remove obsolete code in #if 0.
4114 (Fx_focus_frame): New function.
4115
4116 2000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4117
4118 * coding.c (coding_category_name): Add coding-category-utf-8,
4119 coding-category-utf-16-be, coding-category-utf-16-le.
4120 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
4121 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
4122 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
4123 (detect_coding_utf_8): New function.
4124 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
4125 UTF_16_LOW_SURROGATE_P): New macros.
4126 (detect_coding_utf_16): New function
4127 (detect_coding_mask): When priorities are specified, skip any
4128 categories that have `nil' coding-system. Fix bug of returning
4129 wrong mask when PRIORITIES is specified and detect_coding_XXX()
4130 returns a mask not set in PRIORITIES.
4131 (detect_eol_type_in_2_octet_form): New function.
4132 (detect_eol): selects detect_eol_type_XXX to call according to
4133 cooding->category_idx.
4134 (detect_coding_system): Remove `nil' coding-system in the result.
4135 (Fupdate_coding_systems_internal): Update all coding-categories.
4136
4137 * coding.h (CODING_CATEGORY_IDX_UTF_8,
4138 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
4139 macros.
4140 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
4141 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
4142 CODING_CATEGORY_IDX_UTF_16_LE.
4143 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
4144 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
4145 (CODING_CATEGORY_MASK_ANY): Include the above macros.
4146 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
4147
4148 2000-03-07 Gerd Moellmann <gerd@gnu.org>
4149
4150 * doc.c (Fdocumentation_property): If value is not a string,
4151 and doesn't refer to etc/DOC, evaluate it to obtain a string.
4152
4153 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
4154 close the display with XtCloseDisplay. This caused a bus error
4155 on OpenWindows.
4156
4157 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
4158 complete but not unique.
4159
4160 2000-03-06 Gerd Moellmann <gerd@gnu.org>
4161
4162 * process.c (send_process): Remove local variable `procname' that
4163 might become invalid when a GC happens. Instead, access the
4164 process name slot directly.
4165
4166 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
4167 orig_height if set.
4168
4169 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
4170 orig_height if set.
4171
4172 2000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
4173
4174 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
4175 glyph matrices have been freed.
4176
4177 2000-03-05 Gerd Moellmann <gerd@gnu.org>
4178
4179 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
4180 (bootstrap-temacs): Set LC_ALL to C like for temacs.
4181
4182 * xfns.c (QCdata): Moved to xdisp.c.
4183
4184 * xdisp.c (QCdata): Moved here from xfns.c.
4185 (syms_of_xdisp): Initialize QCdata.
4186
4187 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
4188
4189 * window.c (coordinates_in_window): Use
4190 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
4191 FRAME_INTERNAL_BORDER_WIDTH.
4192
4193 * xdisp.c (try_window_id): Recompute unchanged information if
4194 it is obviously invalid.
4195
4196 * xterm.c (x_term_init): Create a colormap if not using the
4197 default visual.
4198
4199 * xterm.h (select_visual): Change prototype.
4200
4201 * xfns.c (select_visual): Rewritten. Recognize user-specified
4202 visual classes.
4203 (visual_classes): New variable.
4204
4205 2000-03-04 Gerd Moellmann <gerd@gnu.org>
4206
4207 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
4208 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
4209 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
4210 (x_decode_color): Don't handle allocation of white and black
4211 specially.
4212 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
4213 XtNcolormap resources.
4214 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
4215 (Fx_create_frame): Initialize color members of x_output structure.
4216 (xpm_load): Pass colormap to XPM lib.
4217
4218 * xfaces.c (x_free_colors): Access colormap of frame using
4219 FRAME_X_COLORMAP. Be paranoid about freeing black and white
4220 when default colormap is used.
4221
4222 * xterm.c (x_term_init): Set Colormap member of x_display_info
4223 structure. Copy colormap if resource `privateColormap' is
4224 specified (PseudoColor only).
4225 (x_setup_relief_color): Access colormap of frame using
4226 FRAME_X_COLORMAP.
4227
4228 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
4229 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
4230
4231 2000-03-04 Jason Rumney <jasonr@gnu.org>
4232
4233 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
4234 other non-platform-specific equivalents.
4235 [WINDOWSNT]: Include w32term.h, fontset.h and define X
4236 specific functions and macros as their w32 equivalents where
4237 non-platform-specifics are not available.
4238 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
4239 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
4240 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
4241 (frame_update_line_height): Use macros to access f->output_data.
4242 (defined_color): Remove FIXME comments; fixed.
4243 (x_face_list_fonts, prepare_face_for_display): Put X specifics
4244 into #ifdef blocks. Add WINDOWSNT blocks.
4245 (Fx_list_fonts): Use macros for accessing font data.
4246 (set_lface_from_font_name): Different default fonts for X and
4247 WINDOWSNT.
4248 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
4249 scalable for backward compatibility.
4250 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
4251 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
4252
4253 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
4254 syms_of_w32faces.
4255
4256 * makefile.nt (w32faces.obj): Remove.
4257 (xfaces.obj): Add.
4258
4259 2000-03-03 Jason Rumney <jasonr@gnu.org>
4260
4261 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
4262 correct parameters.
4263
4264 2000-03-03 Ken Raeburn <raeburn@gnu.org>
4265
4266 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
4267 standard ELF definitions here if the system header does not.
4268
4269 2000-03-03 Gerd Moellmann <gerd@gnu.org>
4270
4271 * xterm.c (PER_CHAR_METRIC): Removed.
4272 (x_per_char_metric_1, x_default_char): New functions.
4273 (x_per_char_metric): If font's default char is invalid, return
4274 metrics of a suitably chosen usable default char.
4275 (x_draw_glyph_string_foreground): If font has an invalid default
4276 char, replace occurrences of unprintable chars with a suitably
4277 chosen usable default char.
4278
4279 2000-03-02 Gerd Moellmann <gerd@gnu.org>
4280
4281 * xterm.c (note_mouse_highlight): Return quickly if frame's
4282 glyph matrices have been freed.
4283
4284 * dispnew.c (free_glyphs): Block input while freeing matrices.
4285
4286 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
4287
4288 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
4289 x_free_colors.
4290
4291 * dispextern.h (x_free_colors): Add prototype.
4292
4293 * xfaces.c (x_free_colors): New function.
4294 (unload_color, free_face_colors): Use it.
4295
4296 2000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
4297
4298 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
4299
4300 * window.c [MSDOS]: Include msdos.h.
4301
4302 2000-03-02 Dave Love <fx@gnu.org>
4303
4304 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
4305
4306 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
4307 set C_OPTIMIZE_SWITCH for gcc.
4308
4309 2000-03-02 Kenichi Handa <handa@etl.go.jp>
4310
4311 * coding.c (coding_save_composition): Be sure to allocate
4312 composition data area in coding even if there's no composition in
4313 the current run.
4314
4315 2000-03-01 Jason Rumney <jasonr@gnu.org>
4316
4317 * w32term.c: Equivalent changes to those made to xterm.c on
4318 2000-02-25 and 2000-02-24.
4319
4320 * w32fns.c: Equivalent changes to those made to xfns.c on
4321 2000-02-25 and 2000-02-21.
4322
4323 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
4324 correct line-end convention is followed.
4325
4326 * w32menu.c [HAVE_BOXES]: Remove #undef.
4327 (single_keymap_panes): Remove code for simulating checkmarks.
4328 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
4329 Remove code for drawing simulated checkmarks.
4330 (w32_menu_show): make unibyte help string correctly.
4331 (add_menu_item): draw standard Windows checkmarks. Draw radio
4332 buttons as radio buttons if possible.
4333
4334 2000-03-01 Gerd Moellmann <gerd@gnu.org>
4335
4336 * sysdep.c (start_of_text): Don't define this function for NetBSD
4337 with ELF.
4338
4339 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
4340 Don't define.
4341 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
4342 (LINKER): Don't undef if __NetBSD__ is defined.
4343
4344 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
4345
4346 * fileio.c [__NetBSD__]: Define `unix'.
4347
4348 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
4349
4350 2000-02-29 Gerd Moellmann <gerd@gnu.org>
4351
4352 * atimer.c (start_atimer): Don't abort when timers are stopped.
4353 (append_atimer_lists): New function.
4354 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
4355 arbitrary lists of stopped and running atimers.
4356
4357 * atimer.c (cancel_atimer): Handle canceling an atimer when
4358 some timers are stopped.
4359
4360 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
4361 after canceling it.
4362
4363 * fns.c (maybe_resize_hash_table): Handle case of new size
4364 coming out as being the same as old size.
4365
4366 2000-02-27 Jason Rumney <jasonr@gnu.org>
4367
4368 * makefile.nt: Add atimer.h to dependencies.
4369 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
4370 * w32console.c: Only disable window system features for dispextern.h
4371 (initialize_w32_display): Build a display info for the console.
4372 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
4373 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
4374 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
4375 as 2 button mice.
4376 * w32gui.h (struct W32FontStruct): Revert last change after change
4377 to xdisp.c.
4378 * w32menu.c (single_submenu): Set up help string.
4379 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
4380 (w32_dialog_show): Set up help string.
4381 * w32term.c (w32_display_info_for_display): Remove unused function.
4382 (w32_draw_bitmap): Use pre-built bitmaps.
4383 (w32_initialize_display_info): New function to initialize parts of
4384 display info that are common to both GUI and console frames.
4385 (w32_term_init): Use w32_initialize_display_info. Do not set
4386 Vw32_num_mouse_buttons here, as it is not called for console
4387 frames. Build bitmaps for indicating truncated lines etc.
4388 (x_delete_display): Destroy pre-built bitmaps.
4389 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
4390 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
4391
4392 2000-02-27 Dave Love <fx@gnu.org>
4393
4394 * lisp.h: Add a bunch of prototypes.
4395
4396 2000-02-26 Kenichi Handa <handa@etl.go.jp>
4397
4398 * keyboard.c (read_char): Set `usec' correctly.
4399
4400 2000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
4401
4402 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
4403 `lambda', set reg[RRR] to the map index.
4404 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
4405 reg[RRR] to 0. Otherwise, set it to -1.
4406
4407 2000-02-25 Gerd Moellmann <gerd@gnu.org>
4408
4409 * emacs.c (main): Remove code snippet commented out with `//'.
4410
4411 2000-02-25 Richard M. Stallman <rms@gnu.org>
4412
4413 * fileio.c (Ffile_symlink_p): If result starts with a `/'
4414 and contains a `:', prepend `/:'.
4415
4416 * window.c (select_window_1): If selected_window is nil,
4417 don't "swap out" the buffer's point.
4418 (Fset_window_configuration): Set selected_window to nil
4419 before calling Fselect_window.
4420 (unshow_buffer): Don't set point in buffer from window's point
4421 if another more recently selected window also shows the buffer.
4422
4423 2000-02-25 Gerd Moellmann <gerd@gnu.org>
4424
4425 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
4426
4427 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
4428 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
4429 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
4430 variables.
4431 (DEFAULT_BUSY_CURSOR_DELAY): New define.
4432 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
4433 (hide_busy_cursor): New functions.
4434 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
4435
4436 * minibuf.c (read_minibuf): Cancel busy-cursor.
4437
4438 * keyboard.c (command_loop_1): Call start_busy_cursor before
4439 Fcommand_execute and cancel_busy_cursor after it.
4440 (timer_check): Remove busy-cursor code.
4441 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
4442 cursor timer.
4443
4444 * process.c (wait_reading_process_input): Remove busy-cursor code.
4445
4446 * eval.c (Fsignal): Call cancel_busy_cursor instead of
4447 Fx_hide_busy_cursor.
4448
4449 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
4450 Remove prototyoes.
4451 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
4452
4453 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
4454
4455 * xterm.c (XTread_socket): Remove busy-cursor code.
4456
4457 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
4458 (build_frame_matrix_from_leaf_window): Put code handling
4459 glyph row's not being a slice of a frame row in #if 0.
4460 (sync_window_with_frame_matrix_rows): New function.
4461 (frame_row_to_window): New function.
4462 (mirror_line_dance): Handle copies between windows.
4463
4464 * lread.c (Fload): Use `xfree' instead of `free'.
4465 (init_obarray): Use `xmalloc' instead of `malloc'.
4466
4467 * window.c (Fset_window_buffer): Set WINDOW to the window
4468 after decoding.
4469 (coordinates_in_window): Take frame's internal border width
4470 into account.
4471
4472 2000-02-24 Gerd Moellmann <gerd@gnu.org>
4473
4474 * xterm.c (x_display_and_set_cursor): Display cursor of
4475 non-selected windows depending on the setting of
4476 cursor_in_non_selected_windows.
4477
4478 * xdisp.c (cursor_in_non_selected_windows): New variable.
4479 (syms_of_xdisp): DEFVAR_BOOL it.
4480
4481 2000-02-23 Gerd Moellmann <gerd@gnu.org>
4482
4483 * data.c (Fstring_to_number): If number is greater than what
4484 fits into an integer, return a float.
4485
4486 * eval.c (specbind): Remove references to
4487 keyword_symbols_constant_flag.
4488
4489 * data.c (keyword_symbols_constant_flag): Removed.
4490 (Fmakunbound, set_internal, syms_of_data): Remove references to
4491 keyword_symbols_constant_flag.
4492
4493 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
4494
4495 2000-02-23 Kenichi Handa <handa@etl.go.jp>
4496
4497 * syntax.c (multibyte_syntax_as_symbol): New variable.
4498 (syms_of_syntax): Declare it as a Lisp variable.
4499 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
4500 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
4501 nonzero, treat all multibyte characters as symbol.
4502 (init_syntax_once): Give syntax `word' to all multibyte
4503 characters.
4504
4505 2000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
4506
4507 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
4508 a deleted frame.
4509
4510 2000-02-21 Gerd Moellmann <gerd@gnu.org>
4511
4512 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
4513
4514 * xfns.c (x_window_to_frame, x_any_window_to_frame)
4515 (x_non_menubar_window_to_frame): Check the busy-cursor window.
4516
4517 2000-02-21 Dave Love <fx@gnu.org>
4518
4519 * frame.c (Vmouse_position_function): New variable.
4520 (Fmouse_position): Use it.
4521 (syms_of_frame): Install it.
4522
4523 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
4524
4525 2000-02-20 Gerd Moellmann <gerd@gnu.org>
4526
4527 * fileio.c (Finsert_file_contents): Unbind the binding of
4528 standard-output done by temp_output_buffer_setup.
4529
4530 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
4531 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
4532 (specbind, unbind_to): Handle most common case of non-constant
4533 symbol with trivial value specially.
4534
4535 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
4536
4537 2000-02-20 Richard M. Stallman <rms@gnu.org>
4538
4539 * data.c (Fmake_variable_buffer_local): Doc fix.
4540 Init found_for_buffer to 0.
4541 (Fmake_variable_frame_local): If the variable has already
4542 been buffer-local, set the check_frame field.
4543
4544 2000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
4545
4546 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
4547 produced for CODING_MODE_LAST_BLOCK requires.
4548
4549 2000-02-18 Dave Love <fx@gnu.org>
4550
4551 * keyboard.c (echo_keystrokes): Remove declaration.
4552 (Vecho_keystrokes) New variable.
4553 (read_char, record_menu_key, read_key_sequence): Use it to allow
4554 use of float value.
4555 (syms_of_keyboard): Change Vecho_keystrokes declaration.
4556
4557 * lread.c: Undef feature selection macros before defining.
4558
4559 2000-02-18 Gerd Moellmann <gerd@gnu.org>
4560
4561 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
4562 for symbols other than the symbol in question.
4563
4564 2000-02-17 Dave Love <fx@gnu.org>
4565
4566 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
4567
4568 2000-02-17 Gerd Moellmann <gerd@gnu.org>
4569
4570 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
4571
4572 * alloc.c (enum mem_type): Compile unconditionally.
4573
4574 2000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
4575
4576 * xfaces.c (tty_defined_color): Don't return faulire indication
4577 for unspecified-fg and unspecified-bg pseudo-colors.
4578
4579 2000-02-17 Gerd Moellmann <gerd@gnu.org>
4580
4581 * alloc.c (mark_object): Don't mark symbol names in pure space.
4582 (gc_sweep): Don't unmark symbol names in pure space.
4583
4584 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
4585 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
4586 [GC_MARK_STACK]: New defines.
4587 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
4588 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
4589
4590 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
4591
4592 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
4593 allocate_buffer instead of xmalloc.
4594
4595 * alloc.c (toplevel): Include setjmp.h.
4596 (PURE_POINTER_P): New define.
4597 (enum mem_type) [GC_MARK_STACK]: New enumeration.
4598 (Vdead) [GC_MARK_STACK]: New variable.
4599 (lisp_malloc): Add parameter TYPE, call mem_insert if
4600 GC_MARK_STACK is defined.
4601 (allocate_buffer): New function.
4602 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
4603 (free_float) [GC_MARK_STACK]: Set type to Vdead.
4604 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
4605 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
4606 (MEM_NIL) [GC_MARK_STACK]: New define.
4607 (struct mem_node) [GC_MARK_STACK]: New structure.
4608 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
4609 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
4610 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
4611 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
4612 (mark_stack) [GC_MARK_STACK]: New functions.
4613 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
4614 (clear_marks): Removed.
4615 (gc_sweep): Set free conses' car, free floats' type, free
4616 symbols' function to Vdead. Use lisp_free to free buffers.
4617 (init_alloc_once): Initialize Vdead.
4618 (survives_gc_p): Return non-zero for pure objects.
4619
4620 * alloc.c: Add comments throughout the file.
4621
4622 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
4623 that unblocks alarms.
4624
4625 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
4626 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
4627 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
4628
4629 * frame.c (make_frame): Set frame initiallly to `garbaged'.
4630
4631 2000-02-17 Kenichi Handa <handa@etl.go.jp>
4632
4633 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
4634 avoid infinite error signaling. Allocate sufficient memory for
4635 eol_str in the case that eoltype is Lisp_Int.
4636
4637 2000-02-17 Stefan Monnier <monnier@cs.yale.edu>
4638
4639 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
4640 depends on the previous behavior.
4641
4642 2000-02-16 Gerd Moellmann <gerd@gnu.org>
4643
4644 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
4645
4646 2000-02-15 Gerd Moellmann <gerd@gnu.org>
4647
4648 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
4649
4650 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
4651 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
4652 write(2).
4653
4654 2000-02-15 Richard M. Stallman <rms@gnu.org>
4655
4656 * data.c (set_internal): Don't make variable buffer-local
4657 if within a let-binding for the same buffer.
4658 (let_shadows_buffer_binding_p): New function.
4659
4660 * eval.c (specbind): For buffer-local value,
4661 record the current buffer also.
4662 (unbind_to): Cope with that change.
4663
4664 2000-02-15 Gerd Moellmann <gerd@gnu.org>
4665
4666 * window.c (Fsave_window_excursion): Doc fix.
4667
4668 2000-02-15 Stefan Monnier <monnier@cs.yale.edu>
4669
4670 * syntax.c (back_comment): Make sure we only consider comment-starters
4671 of the relevant style and return -1 in case of a failure to find the
4672 beginning of the comment.
4673 (Fforward_comment): If back_comment fails, go back to the position just
4674 after the comment-end.
4675 (scan_lists): Add comment describing a very minor bug.
4676
4677 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4678
4679 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
4680 `completion-regexp-list' in the docstring.
4681
4682 2000-02-14 Dave Love <fx@gnu.org>
4683
4684 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
4685
4686 2000-02-14 Stefan Monnier <monnier@cs.yale.edu>
4687
4688 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
4689 to Emacs' syntax. Also fix the comment about set/not-set meanings
4690 since Emacs syntax is not the value 0 any more.
4691 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
4692 since it's now part of RE_SYNTAX_EMACS.
4693
4694 2000-02-12 Dave Love <fx@gnu.org>
4695
4696 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
4697 Alpha.
4698
4699 2000-02-12 Gerd Moellmann <gerd@gnu.org>
4700
4701 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
4702
4703 2000-02-12 Dave Love <fx@gnu.org>
4704
4705 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
4706
4707 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
4708 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
4709 * s/hpux.h: Don't define HAVE_VFORK.
4710
4711 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
4712
4713 * s/nextstep.h: Don't define HAVE_ALLOCA.
4714
4715 * config.in: Add vfork bits.
4716
4717 2000-02-12 Gerd Moellmann <gerd@gnu.org>
4718
4719 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
4720 unwind function to undo the effect of stopping atimers.
4721
4722 * keyboard.c (bind_polling_period): Stop all timers except
4723 poll_timer.
4724
4725 * atimer.c (stopped_atimers): New variable.
4726 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
4727 New functions.
4728
4729 * atimer.h (stop_other_atimers, run_all_atimers)
4730 (unwind_stop_other_atimers): Add function prototypes.
4731
4732 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
4733
4734 2000-02-11 Ken Raeburn <raeburn@gnu.org>
4735
4736 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
4737 library may depend on jpeg.
4738 (atimer.o): Depends on atimer.c.
4739
4740 2000-02-11 Kenichi Handa <handa@etl.go.jp>
4741
4742 * insdel.c (del_range_1): Call update_compositions.
4743 (del_range_both): Call update_compositions just once..
4744
4745 2000-02-10 Dave Love <fx@gnu.org>
4746
4747 * xfns.c (create_frame_xic): Fix initialization of automatic
4748 aggregates for pcc.
4749
4750 2000-02-09 Kenichi Handa <handa@etl.go.jp>
4751
4752 * ccl.c (CCL_MAKE_CHAR): New macro.
4753 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
4754 registers by CCL_MAKE_CHAR before calling translate_char.
4755 <CCL_TranslateCharacterConstTbl> Likewise.
4756
4757 2000-02-08 Dave Love <fx@gnu.org>
4758
4759 * lread.c (__EXTENSIONS__): Define.
4760
4761 2000-02-08 Gerd Moellmann <gerd@gnu.org>
4762
4763 * puresize.h (BASE_PURESIZE): Increase to 650000.
4764
4765 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4766
4767 * msdos.c (XMenuActivate): Turn off the cursor after displaying
4768 the help message.
4769
4770 2000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
4771
4772 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
4773 md, mh, mb, mr, and me to the fake termcap entry.
4774
4775 2000-02-06 Ken Raeburn <raeburn@gnu.org>
4776
4777 * sound.c (sound_cleanup): Don't call device close routine if the
4778 function pointer is null.
4779
4780 2000-02-06 Andrew Innes <andrewi@gnu.org>
4781
4782 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
4783 around image definitions and prototypes.
4784 (gamma_correct) [WINDOWSNT]: New prototype.
4785
4786 * w32term.c (x_make_frame_visible): Replace call to
4787 input_poll_signal with poll_for_input.
4788
4789 * window.c [WINDOWSNT]: Include w32term.h.
4790
4791 * xdisp.c [WINDOWSNT]: Include w32term.h.
4792
4793 * makefile.nt: Add dependencies on w32gui.h.
4794 (OBJ1): Include atimer.obj.
4795 ($(BLD)\atimer.obj): New dependency rule.
4796
4797 * w32.c (sigmask): New function (does nothing).
4798 (sigunblock): Ditto.
4799
4800 * frame.c [WINDOWSNT]: Include w32term.h.
4801
4802 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
4803
4804 * lread.c (syms_of_lread): Fix literal newlines.
4805
4806 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
4807 the string constant limit (2048 bytes) in MSVC.
4808 (main): Ditto.
4809
4810 2000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
4811
4812 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
4813 area.
4814 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
4815 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
4816 dispatch the event.
4817
4818 2000-02-04 Dave Love <fx@gnu.org>
4819
4820 * fileio.c: Remove some unused vars.
4821 (_GNU_SOURCE): Define (for euidaccess).
4822
4823 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
4824
4825 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
4826 gcpro1, gcpro2.
4827 (read_minibuf): Deal with allow_props correctly.
4828
4829 2000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
4830
4831 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
4832
4833 2000-02-03 Ken Raeburn <raeburn@gnu.org>
4834
4835 * search.c (compile_pattern): If a cache entry has a nil regexp,
4836 fill in that entry instead of clobbering a previously cached
4837 string regexp.
4838
4839 2000-02-02 Ken Raeburn <raeburn@gnu.org>
4840
4841 * puresize.h (BASE_PURESIZE): Increase to 610000.
4842
4843 2000-02-02 Gerd Moellmann <gerd@gnu.org>
4844
4845 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
4846 can GC.
4847
4848 2000-02-02 Kenichi Handa <handa@etl.go.jp>
4849
4850 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
4851 instead of incrementing ic directly.
4852 <CCL_WriteExprConst> Likewise.
4853 <ccl_set_expr>: Set ic to jump_address.
4854
4855 * fileio.c (e_write): Fix the handling of
4856 CODING_FINISH_INSUFFICIENT_SRC.
4857
4858 2000-02-01 Dave Love <fx@gnu.org>
4859
4860 * editfns.c (Fpropertize): Doc fix.
4861
4862 * process.c (Fstart_process): Doc fix.
4863
4864 * eval.c: Fix various doc strings not to duplicate information
4865 from help-manyarg-func-alist.
4866
4867 * window.c (Fset_window_margins): Don't make interactive. Doc
4868 fix.
4869
4870 * doc.c (Vhelp_manyarg_func_alist): New variable.
4871 (Fdocumentation): Use it.
4872 (syms_of_doc): Define it.
4873
4874 2000-01-31 Gerd Moellmann <gerd@gnu.org>
4875
4876 * xterm.c (xim_open_dpy): Remove unused local variable.
4877
4878 * emacs.c (USAGE): Use term `display options' instead of `X
4879 options'.
4880
4881 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
4882 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
4883
4884 * fns.c (sweep_weak_table): New function.
4885 (sweep_weak_hash_tables): Use it. Keep on marking until there
4886 is no more change.
4887
4888 2000-01-30 Gerd Moellmann <gerd@gnu.org>
4889
4890 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
4891 that XTread_socket does not crash by trying to call XNoOp on a
4892 closed display.
4893
4894 2000-01-30 Jason Rumney <jasonr@gnu.org>
4895
4896 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
4897 Change selected_frame to SELECTED_FRAME ().
4898 (w32_console_mouse_position): Remove #ifndef MULE from around
4899 `insist' parameter.
4900
4901 * makefile.nt: Remove dosfns.obj.
4902
4903 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
4904
4905 * w32fns.c (w32_defined_color): Check for valid frame before
4906 applying gamma correction. Eliminate dependency on frame elsewhere.
4907 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
4908 (w32_to_x_font): Use resx and resy not height_in and width_in.
4909 (x_to_w32_font): Doc fix.
4910 (xlfd_strip_height): New function to strip and return font height.
4911 (w32_font_match): Compare height separately from rest of xlfd
4912 spec, using xlfd_strip_height.
4913
4914 * w32term.c (w32_term_init): Swap resx and height_in, resy and
4915 width_in. Use w32_defined_color in place of defined_color.
4916
4917 * w32faces.c: Merge more of DOS and X specifics in preparation for
4918 merge with xfaces.c.
4919 (defined_color): Remove FIXME comment.
4920 (tty_color_name): Provide w32-specific function.
4921 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
4922
4923 * w32console.c (turn_on_face, turn_off_face): Removed.
4924 (w32_face_attributes): New function.
4925 (Global_variables): Reduce scope where possible.
4926 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
4927 fill attribute.
4928 (hl_mode): Don't modify text attributes.
4929 (write_glyphs): Don't do anything if len <= 0. Use
4930 w32_face_attributes to get attributes for drawing. Write
4931 terminating codes using char_attr_normal.
4932 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
4933 (update_begin, update_end): Likewise.
4934 (vga_stdcolor_name): New function.
4935 (initialize_w32_display): Remove char_attr_reverse and char_attr.
4936 (Fset_screen_color): Remove char_attr_reverse.
4937
4938 2000-01-29 Gerd Moellmann <gerd@gnu.org>
4939
4940 * xfns.c (xic_set_preeditarea): Take window parameter and
4941 window-relative pixel-positions.
4942
4943 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
4944 is its frame's selected window.
4945 (xim_instantiate_callback): Likewise.
4946
4947 * xfns.c (x_create_im): Removed.
4948 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
4949 (supported_xim_styles): Renamed from supported_styles.
4950 (best_xim_style): Renamed from best_style.
4951 (create_frame_xic): Renamed from xic_create_frame.
4952 (free_frame_xic): Renamed from xic_destroy_frame.
4953
4954 2000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
4955
4956 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
4957 our frames, call XFilterEvent with 2nd parameter `None'.
4958 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
4959 returning XBufferOverflow.
4960 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
4961 area.
4962 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
4963 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
4964 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
4965 (xim_initialize, xim_close)
4966 [HAVE_X_I18N && HAVE_X11R6]: New functions.
4967 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
4968 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
4969 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
4970
4971 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
4972 and `xim_styles'.
4973 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
4974 `xic_style' and `xic_xfs'.
4975 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
4976 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
4977 (FRAME_XIM): Removed.
4978
4979 * xfns.c (supported_styles): New variable.
4980 (DEFAULT_STYLE, DEFAULT_FONT): New macros
4981 (xic_create_xfontset, best_style, xic_create_frame)
4982 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
4983 (xic_set_xfontset): New functions.
4984
4985 2000-01-28 Dave Love <fx@gnu.org>
4986
4987 * s/irix6-5.h: Revert last change after change to irix5-0.h.
4988
4989 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
4990
4991 2000-01-28 Gerd Moellmann <gerd@gnu.org>
4992
4993 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
4994 for *scratch* if it already existed.
4995
4996 * emacs.c (USAGE): New macro.
4997 (main): Use it to display usage information.
4998
4999 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
5000
5001 Support for the menu-help feature:
5002
5003 * msdos.h: Change prototypes of XMenuAddSelection and
5004 XMenuActivate.
5005
5006 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
5007 part of the line to the termscript file.
5008 (IT_clear_to_end): Clear the entire line, not just its beginning.
5009 (menu_help_message, prev_menu_help_message): New variables.
5010 (IT_menu_make_room): Make room for the help_text member.
5011 (IT_menu_display): New argument disp_help; all callers changed.
5012 If disp_help is non-zero, store the help text of the active menu
5013 item in menu_help_message.
5014 (XMenuAddPane): Initialize the help_text member to NULL.
5015 (XMenuAddSelection): New argument help_text. Store it in the
5016 XMenu structure.
5017 (XMenuActivate): New argument help_callback. If the value of
5018 menu_help_message has changed since the last time, display the
5019 menu help message text while waiting for the mouse to move. Clear
5020 the echo area before exiting.
5021 (XMenuDestroy): Free the help_text member.
5022
5023 2000-01-27 Gerd Moellmann <gerd@gnu.org>
5024
5025 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
5026 XMenuAddSelection. Pass help callback to XMenuActivate.
5027 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
5028
5029 2000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
5030
5031 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
5032 and EMACS_SET_USECS.
5033
5034 2000-01-26 Dave Love <fx@gnu.org>
5035
5036 * editfns.c (Fchar_after, Fchar_before): Doc fix.
5037
5038 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
5039 an error may be signalled.
5040
5041 2000-01-26 Gerd Moellmann <gerd@gnu.org>
5042
5043 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
5044 LD_SWITCH_SYSTEM inherited from irix5-0.h.
5045
5046 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
5047
5048 2000-01-25 Gerd Moellmann <gerd@gnu.org>
5049
5050 * charset.c (Fstring): If there is a multibyte char among
5051 the args, always return a multibyte string.
5052
5053 2000-01-25 Gerd Moellmann <gerd@gnu.org>
5054
5055 * sysdep.c (sys_select): Turn atimers off and on instead of
5056 recording and restoring old alarm handler
5057
5058 * process.c (toplevel): Include atimer.h.
5059 (create_process_1): Rewritten.
5060 (create_process): Use atimers instead of alarm.
5061 (wait_reading_process_input) [hpux]: Turn atimers off instead
5062 of turning off SIGALRM.
5063 (wait_reading_process_input): Turn off atimers instead off
5064 calling stop_polling.
5065
5066 * emacs.c (main): Call init_atimer.
5067
5068 * keyboard.c (toplevel): Include systime.h and atimer.h.
5069 (polling_for_input): Removed because unused.
5070 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
5071 (poll_timer): New variable.
5072 (poll_for_input, poll_for_input_1): New functions.
5073 (start_polling, stop_polling): Rewritten.
5074
5075 * keyboard.h (polling_for_input): Removed.
5076
5077 * atimer.h, atimer.c: New files.
5078
5079 * Makefile.in (obj): Add atimer.o.
5080 (atimer.o): New target.
5081
5082 * blockinput.h (pending_atimers): Add extern declaration.
5083 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
5084
5085 * lisp.h (popup_activated_flag): Add extern declaration.
5086
5087 * xmenu.c (popup_activated_flag): Make externally visible.
5088 (popup_activate_callback) [USE_MOTIF]: Increment
5089 popup_activated_flag.
5090 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
5091
5092 * xterm.c (toplevel): Include atimer.h.
5093 (toolkit_scroll_bar_interaction): New variable.
5094 (Fxt_process_timeouts): Removed.
5095 (x_process_timeouts): New function.
5096 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
5097 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
5098 (x_make_frame_visible): Call poll_for_input_1 instead of
5099 input_poll_signal. Don't call alarm.
5100 (x_initialize): Install timer calling x_process_timeouts.
5101
5102 2000-01-24 Dave Love <fx@gnu.org>
5103
5104 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
5105 Don't use -cckr -- apparently not now necessary.
5106
5107 2000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
5108
5109 * msdos.c (IT_menu_display): Truncate long menu lines at the right
5110 screen boundary.
5111
5112 2000-01-23 Jason Rumney <jasonr@gnu.org>
5113
5114 * w32fns.c (w32_defined_color): Apply gamma correction before
5115 trying to map to the palette.
5116 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
5117 to w32_clear_rect.
5118
5119 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
5120 here. Callers changed to always pass real device context.
5121 (w32_draw_bitmap): Likewise.
5122 (w32_get_glyph_overhangs): Likewise.
5123 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
5124 one.
5125 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
5126 pfnSetScrollInfo and SetScrollRange.
5127 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
5128 back into MULE characters after decoding them.
5129 (x_get_glyph_face_and_encoding): Likewise.
5130 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
5131 GetCharABCWidthsW fails, since this is defined on Windows 9x.
5132 (x_produce_glyphs): Calculate per char metrics for a character
5133 that we know exists in default font when font_not_found_p is true.
5134
5135 2000-01-22 Jason Rumney <jasonr@gnu.org>
5136
5137 * makefile.nt (intervals.obj, composite.obj): New modules.
5138 (composite.h): Added as dependency where appropriate.
5139
5140 * w32gui.h (XGCValue): New struct for emulating X GCs.
5141
5142 * w32term.h (XCharStruct): New struct for emulating X.
5143
5144 * w32console.c (turn_on_face, turn_off_face): New functions.
5145 (change_line_highlight): New prototype for new redisplay.
5146 (write_glyphs): Support multibyte text. Support faces.
5147
5148 * w32faces.c: Complete rewrite for new redisplay based on new
5149 xfaces.c.
5150
5151 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
5152 throughout. struct frame * in place of FRAME_PTR.
5153 Skeleton support for images, toolbars, tooltips from xfns.c.
5154 (Fx_create_frame): Use system default for default scroll bar
5155 width.
5156 (w32_get_arg): Renamed from x_get_arg.
5157 (Fx_file_dialog): New function.
5158 (w32_list_fonts): Check cache before asking system.
5159 (Vw32_enable_synthesized_fonts): New variable.
5160 (Vw32_enable_italics): Obsolete, removed.
5161
5162 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
5163 Use SELECTED_FRAME macro.
5164
5165 * w32menu.c: Add skeleton support for help strings on menus.
5166 (add_menu_item): Native checkbox and radio support added, but not
5167 yet enabled due to bugs.
5168 (push_menu_item): Add parameters type, selection and help.
5169 Callers updated.
5170 Formatting changes to reduce unnecessary diffs with xmenu.c.
5171
5172 * w32select.c (Fw32_set_clipboard_data): Update call to
5173 find_charset_in_str.
5174
5175 * w32term.c: Complete rewrite for new redisplay based on new
5176 xterm.c with necessary sections merged back in from old w32term.c.
5177
5178 2000-01-21 Richard M. Stallman <rms@gnu.org>
5179
5180 * data.c (set_internal): Further fix in same criterion.
5181
5182 2000-01-20 Richard M. Stallman <rms@gnu.org>
5183
5184 * data.c (set_internal): Fix the criteria for whether
5185 to swap out the old cached binding.
5186
5187 2000-01-19 Dave Love <fx@gnu.org>
5188
5189 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
5190
5191 2000-01-18 Kenichi Handa <handa@etl.go.jp>
5192
5193 * regex.c (re_compile_fastmap): While checking a range table for
5194 `charset', skip flag bits for a character class correctly.
5195
5196 2000-01-17 Gerd Moellmann <gerd@gnu.org>
5197
5198 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
5199
5200 * xfns.c (x_window): Call lw_create_widget with new parameter
5201 list.
5202
5203 * widget.c (EmacsFrameSetCharSize): Change size of children first
5204 because of problems with main window geometry management under
5205 Lesstif.
5206
5207 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
5208 MENU_ITEMS_ITEM_.*.
5209 (MENU_ITEMS_ITEM_HELP): New enumerator.
5210 (push_menu_item): Add parameter HELP. Record help in menu_items.
5211 (single_menu_item, single_submenu, list_of_items): Call
5212 push_menu_item with new parameter.
5213 (single_submenu): Set help string in widget value.
5214 (menu_highlight_callback): New function.
5215 (set_frame_menubar): Call lw_create_widget with new
5216 parameter list.
5217 (xmenu_show, xdialog_show): Ditto.
5218
5219 2000-01-13 Gerd Moellmann <gerd@gnu.org>
5220
5221 * sound.c (Fplay_sound): Improve doc string.
5222
5223 2000-01-11 Richard M. Stallman <rms@gnu.org>
5224
5225 * lisp.h (set_internal): Enter the new arg.
5226
5227 * eval.c (specbind): Record buffer-local variables specially,
5228 indicating which buffer's binding was saved.
5229 (unbind_to): Restore buffer-local variables specially
5230 in the proper buffer.
5231
5232 * data.c (set_internal): New arg BUF.
5233
5234 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
5235 * data.c (Fset): Pass new arg to set_internal.
5236 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
5237
5238 2000-01-11 Gerd Moellmann <gerd@gnu.org>
5239
5240 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
5241 xprintsym.
5242
5243 2000-01-11 Richard M. Stallman <rms@gnu.org>
5244
5245 * minibuf.c (Ftry_completion): Doc fix.
5246
5247 2000-01-11 Gerd Moellmann <gerd@gnu.org>
5248
5249 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
5250 vector, too.
5251
5252 2000-01-11 Andreas Schwab <schwab@suse.de>
5253
5254 * coding.c (code_convert_region): Initialize total_skip.
5255
5256 2000-01-08 Dave Love <fx@gnu.org>
5257
5258 * eval.c (Fuser_variable_p): Check customizability too.
5259
5260 2000-01-07 Gerd Moellmann <gerd@gnu.org>
5261
5262 * minibuf.c (Fcompleting_read): Doc fix.
5263
5264 2000-01-05 Gerd Moellmann <gerd@gnu.org>
5265
5266 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
5267 -L /usr/local/lib.
5268
5269 * xfns.c (x_create_im): New function to set IM and IC of a frame.
5270 Check that input style is supported before trying to create an
5271 IC for it.
5272 (x_window): Call x_create_im.
5273
5274 2000-01-04 Gerd Moellmann <gerd@gnu.org>
5275
5276 * xfns.c (current_gif_memory_src): New variable.
5277 (gif_load): Record the address of the current memory source
5278 in current_gif_memory_src.
5279 (gif_read_from_memory): Use current_gif_memory_src.
5280
5281 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
5282 macros statement form.
5283
5284 * sound.c (struct sound): Renamed from struct sound_file.
5285 (struct sound): Add members `data' and `header_size'.
5286 (enum sound_attr): Add SOUND_DATA.
5287 (current_sound, current_sound_device): Variables renamed from
5288 sound_file and sound_device.
5289 (parse_sound): Parse :data.
5290 (parse_sound): Handle sound data in strings.
5291 (find_sound_type): Function renamed from find_sound_file_type.
5292 (wav_init, au_init): Fail if sound's header_size is smaller than
5293 needed header size.
5294 (wav_play, au_play): Play sounds from string data.
5295
5296 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
5297
5298 * lisp.h: Add prototype for allocate_string_data.
5299
5300 * alloc.c (Fgarbage_collect): Return number of live and free
5301 strings.
5302
5303 * alloc.c (mark_buffer): Remove code in #if 0.
5304 (gc_sweep): Ditto.
5305 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
5306 (strings_consed): New variable.
5307 (allocate_string): Set it.
5308 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
5309 (Fmemory_use_counts): Return strings_consed. Use Flist.
5310
5311 * alloc.c: General cleanup in comments etc. Remove conditional
5312 compilation for `standalone'.
5313
5314 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
5315
5316 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
5317 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
5318 (DONT_COPY_FLAG): Removed.
5319 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
5320 (struct sdata, struct sblock): New
5321 (struct string_block): Rewritten.
5322 (STRINGS_IN_STRING_BLOCK): New macro.
5323 (oldest_sblock, current_sblock, total_strings, total_free_strings)
5324 (large_sblocks, string_blocks, string_free_list): New variables.
5325 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
5326 (init_strings): Rewritten.
5327 (allocate_string, allocate_string_data, compact_small_strings)
5328 (free_large_strings, sweep_strings): New functions.
5329 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
5330 (struct string_block_head, current_string_block)
5331 (first_string_block, large_string_blocks, STRING_FULLSIZE)
5332 (STRING_PAD): Removed.
5333 (make_uninit_multibyte_string, make_pure_string): Rewritten.
5334 (Fgarbage_collect): Don't set mark bit in large strings.
5335 (mark_object): Mark strings differently. Mark symbol names
5336 differently.
5337 (survives_gc_p): Test marked strings differently.
5338 (gc_sweep): Sweep strings differently, unmark strings in
5339 symbol names.
5340 (compact_strings): Removed.
5341
5342 2000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
5343
5344 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
5345 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
5346
5347 2000-01-04 Kenichi Handa <handa@etl.go.jp>
5348
5349 * fileio.c (Finsert_file_contents): Signal error if visiting file
5350 in a non-empty buffer.
5351
5352 * term.c (encode_terminal_code): Fix the previous change.
5353
5354 2000-01-03 Gerd Moellmann <gerd@gnu.org>
5355
5356 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
5357 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
5358
5359 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
5360
5361 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5362
5363 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
5364 need to test for MSDOS frames.
5365
5366 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5367
5368 * dosfns.c (unspecified_colors): Remove.
5369 (msdos_stdcolor_idx): Use global variables unspecified_fg and
5370 unspecified_bg.
5371 (msdos_stdcolor_name): Return strings for unspecified fore- and
5372 back-ground colors.
5373
5374 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
5375 (syms_of_xfaces): Remove their staticpro's.
5376 (tty_color_name): Return Lisp strings for unspecified fore- and
5377 back-ground colors.
5378 (Finternal_set_lisp_face_attribute): Remove the special treatment
5379 for Qunspecified_{f,b}g.
5380 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
5381 string.
5382
5383 2000-01-03 Gerd Moellmann <gerd@gnu.org>
5384
5385 * xdisp.c (reseat_at_next_visible_line_start): Position before
5386 newline only if ending up on a newline.
5387 (next_element_from_ellipsis): Return success. Handle case of
5388 displaying no ellipsis. Fix case of ellipsis defined in display
5389 table.
5390 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
5391 returns 0.
5392
5393 2000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
5394
5395 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
5396 (Fcolor_supported_p): Renamed from face-color-supported-p.
5397
5398 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5399
5400 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
5401 list of colors renamed to tty-defined-color-alist.
5402 (tty_color_name): Pass the frame to tty-color-by-index.
5403 (realize_tty_face): tty-color-alist is now a function which
5404 accepts the frame as argument.
5405
5406 * term.c (Ftty_display_color_p): Accept an optional argument
5407 FRAME.
5408
5409 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5410
5411 * term.c (insert_glyphs): Pass glyph, not &glyph, to
5412 encode_terminal_code.
5413
5414 2000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
5415
5416 * dispnew.c (mode_line_string): Support termcap frames as well.
5417
5418 2000-01-01 Gerd Moellmann <gerd@gnu.org>
5419
5420 * syntax.c (Fforward_word): Undo previous change.
5421
5422 * editfns.c (Fconstrain_to_field): Don't constrain if
5423 inhibit-field-text-motion is non-nil.
5424 (Fline_beginning_position): Undo previous change.
5425 (Fline_end_position): Ditto.
5426
5427 * syntax.c (Fforward_word): Notice field boundaries only if
5428 inhibit-field-text-motion is nil.
5429
5430 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
5431
5432 * editfns.c (Vinhibit_field_text_motion): New variable.
5433 (inhibit-field-text-motion): New DEFVAR_LISP.
5434 (Fline_beginning_position, Fline_end_position): Notice field
5435 boundaries only if inhibit-field-text-motion is nil.
5436
5437 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
5438 All calls adjusted.
5439 (x_build_heuristic_mask): Likewise.
5440 (xbm_load_image_from_file): Change error output.
5441 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
5442 (gif_load, gs_load, x_kill_gs_process): Ditto.
5443
5444 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
5445 color indices when accessing raster pixels.
5446 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
5447 one of :file or :data.
5448 (enum pbm_keyword_index): Add PBM_DATA.
5449 (pbm_format): Add :data.
5450 (pbm_image_p): Allow either :file or :data.
5451 (pbm_read_file): New function.
5452 (pbm_scan_number): Rewritten to read from string.
5453 (pbm_load): Support :data.
5454
5455 See ChangeLog.8 for earlier changes.