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