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