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