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