(where_is_cache, where_is_cache_keymaps): New vars.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
d5789b65
MB
12000-10-25 Miles Bader <miles@gnu.org>
2
3 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
4
4ecda532
GM
52000-10-25 Gerd Moellmann <gerd@gnu.org>
6
7 * window.c (pos_fully_visible_p): Removed.
8 (Fpos_visible_in_window_p): Use pos_visible_p to determine
9 if position is visible and/or fully visible.
10
11 * lisp.h (pos_visible_p): Add prototype.
12
13 * xdisp.c (pos_visible_p): New function.
14
68c3a137
KH
152000-10-25 Kenichi Handa <handa@etl.go.jp>
16
17 * process.c (send_process): If OBJECT is t, it means that the data
18 is from C string, but we should encode it. Before calling
19 setup_raw_text_coding_system, be sure to flush out data by the
20 previous coding system.
21
7ae1c032
MB
222000-10-25 Miles Bader <miles@lsi.nec.co.jp>
23
ff4dcd4b
MB
24 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
25 assignment of startpos to prev when startpos == pos.
26
7ae1c032
MB
27 * editfns.c (find_field): Set the field stickiness correctly from
28 overlay fields. Use renamed `text_property_stickiness'.
29 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 30 Only check text properties, not overlays.
7ae1c032
MB
31 * textprop.c (get_char_property_and_overlay): New function.
32 (Fget_char_property): Use it.
33 * intervals.h (get_char_property_and_overlay): Add declaration.
34
49801145
SM
352000-10-25 Stefan Monnier <monnier@cs.yale.edu>
36
37 * keymap.c: Use AREF, ASET and ASIZE macros.
38 (Fmake_sparse_keymap): Docstring fix.
39 (synkey): Remove.
40 (shadow_lookup): Move up.
41 Handle the case where lookup-key returns an integer.
42 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
43 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
44 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
45 Simplify/rewrite the keymap-finding code.
46 Add check for command shadowing, using shadow_lookup.
47
39e776cd
SM
482000-10-24 Stefan Monnier <monnier@cs.yale.edu>
49
50 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
51 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
52 a symbol.
53
2488aba5
AI
542000-10-24 Andrew Innes <andrewi@gnu.org>
55
56 * dired.c (directory_files_internal_unwind): New function.
57 (directory_files_internal): Use it to ensure closedir is called
58 even if expand-file-name or file-attributes throw, eg. because of
59 a user interrupt. Also enable immediate_quit while calling
60 re_search, so that matching can be interrupted as well.
61
1946f901
GM
622000-10-24 Gerd Moellmann <gerd@gnu.org>
63
7ae2f10f
GM
64 * window.c (size_window): Prevent setting window's width or
65 height to a negative value (esp. with XSETFASTINT).
66
5dcab13e
GM
67 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
68 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
69 (protect_malloc_state) [GC_MALLOC_CHECK &&
70 GC_PROTECT_MALLOC_STATE]: New function.
71 (PROTECT_MALLOC_STATE): New macro.
72 (__malloc_initialize, morecore, _malloc_internal)
73 (_free_internal) _realloc_internal): Use it to make _heapinfo
74 read-only outside of gmalloc.
75
63e1b552
GM
76 * keymap.c: Update copyright.
77
1946f901
GM
78 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
79 a symbol.
80
4fa09beb
GM
812000-10-24 Colin Walters <walters@cis.ohio-state.edu>
82
83 * filelock.c (unlock_all_files): Use unlock_file to expand each
84 buffer's file_truename before trying remove its lock file.
85
23afac01
EZ
862000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
87
88 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
89 or CRLF, decode EOLs.
90
04448b95
KH
912000-10-24 Kenichi Handa <handa@etl.go.jp>
92
93 * window.c (Fdisplay_buffer): Fix doc.
94
3090a5a5
JR
952000-10-23 Jason Rumney <jasonr@gnu.org>
96
97 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
98 ASCII font of default fontset on Windows.
99
100 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
101 xterm.c comment below).
102
103 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
104
a83fee2c
GM
1052000-10-23 Gerd Moellmann <gerd@gnu.org>
106
107 * xterm.c (x_connection_closed): Reset handling_signal.
108
109 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
110 null.
111
6ffdb539
MB
1122000-10-23 Miles Bader <miles@gnu.org>
113
114 * window.c (window_scroll_pixel_based, window_scroll_line_based):
115 Pass nil for FULLY argument to Fpos_visible_in_window_p to
116 maintain old behavior.
117 * minibuf.c (Fminibuffer_complete): Likewise.
118
7f1c969b
MB
1192000-10-23 Miles Bader <miles@lsi.nec.co.jp>
120
121 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
122 that when a font can't be exactly centered, it errs up rather than
123 down.
124
23afac01 1252000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
126
127 * fns.c (Fbase64_decode_string): The decoded result should be
128 unibyte.
129
1a578e9b
AC
1302000-10-23 Andrew Choi <akochoi@i-cable.com>
131
132 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
133
134 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 135 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
136
137 * emacs.c (main) [macintosh]: Call syms_of_textprop,
138 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
139 syms_of_search, x_term_init, and init_keyboard before calling
140 init_window_once. Also, call syms_of_xmenu.
141
142 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
143 default fontset to Monaco.
144
145 * frame.c [macintosh]: Include macterm.h. Remove declarations of
146 NewMacWindow and DisposeMacWindow.
147 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
148 instead of calling NewMacWindow and setting fields of
149 f->output_data.mac directly. Call init_frame_faces.
150 (Fdelete_frame) [macintosh]: Remove unused code.
151 (Fmodify_frame_parameters) [macintosh]: Call
152 x_set_frame_parameters instead of mac_set_frame_parameters.
153
154 * frame.h [macintosh]: Define menu_bar_lines field in struct
155 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
156
157 * keyboard.c [macintosh]: Include macterm.h.
158 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
159 and menu_bar_activate_event type events as for X and NT.
160 (make_lispy_event) [macintosh]: Construct lisp events of type
161 MENU_BAR_EVENT as for X and NT.
162
163 * sysdep.c [macintosh]: Remove declaration for sys_signal.
164 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
165 (sys_subshell) [macintosh]: Remove definition entirely.
166 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
167 Vwindow_system_version here. Remove initialization of
168 Vx_bitmap_file_path.
169 (read_input_waiting): Correct the number of parameters passed to
170 read_socket_hook.
171 Move all Macintosh functions to mac/mac.c.
172
173 * term.c [macintosh]: Include macterm.h.
174
175 * window.c [macintosh]: Include macterm.h.
176
177 * xdisp.c [macintosh]: Include macterm.h. Declare
178 set_frame_menubar and pending_menu_activation.
179 (echo_area_display) [macintosh]: Do not return if terminal frame
180 is the selected frame.
181 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
182 Allow only the selected frame to set menu bar.
183 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
184 calling FRAME_EXTERNAL_MENU_BAR (f).
185 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
186
187 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
188 and check_x. Declare XCreateGC. Define x_create_gc and
189 x_free_gc. Initialize font_sort_order.
190 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
191 but call x_list_fonts instead of w32_list_fonts.
192 (Finternal_face_x_get_resource) [macintosh]: Do not call
193 display_x_get_resource.
194 (prepare_face_for_display) [macintosh]: Set xgcv.font.
195 (realize_x_face) [macintosh]: Load the font if it is specified in
196 ATTRS.
197 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
198 to Qt.
199
1ffbabe3
SM
2002000-10-22 Stefan Monnier <monnier@cs.yale.edu>
201
202 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
203 is nil: since we go to the end of submap anyway, we'd end up
204 setting nil to nil.
205 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
206 doesn't obey autoload.
207
bed43f1d
EZ
2082000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
209
1ffbabe3 210 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 211
ea4233a7
JR
2122000-10-21 Jason Rumney <jasonr@gnu.org>
213
214 * w32term.c (w32_cache_char_metrics): Double check that font is
215 really fixed pitch before trusting tmPitchAndFamily.
216
f3d3c491
AI
2172000-10-21 Andrew Innes <andrewi@gnu.org>
218
219 * w32gui.h (w32_char_font_type): Move enum from w32term.c
220
221 * w32term.h: Extern decl for w32_cache_char_metrics.
222
223 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
224
225 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
226 (w32_unload_font): Free per_char array if present.
227
228 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
229 cached information in emulated XFontStruct to handle common cases
230 quickly. Do not allocate XCharStruct for return.
231 (w32_native_per_char_metric): New function.
232 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
233 allocating one.
234 (x_produce_glyphs): Don't get an HDC. Change calls to
235 w32_per_char_metric to match arg change above. Remove calls to
236 free results.
237 (w32_get_glyph_overhangs): Ditto.
238 (w32_cache_char_metrics): New function.
239
240 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
241 ($(BLD)/casefiddle.$(O)): Remove compile command.
242 ($(BLD)/gmalloc.$(O)): Remove compile command.
243 ($(BLD)/dispnew.obj):
244 ($(BLD)/keyboard.obj):
245 ($(BLD)/w32inevt.obj):
246 ($(BLD)/w32bdf.obj):
247 ($(BLD)/alloc.obj):
248 ($(BLD)/buffer.obj):
249 ($(BLD)/editfns.obj):
250 ($(BLD)/emacs.obj):
251 ($(BLD)/fileio.obj):
252 ($(BLD)/fns.obj):
253 ($(BLD)/indent.obj):
254 ($(BLD)/insdel.obj):
255 ($(BLD)/intervals.obj):
256 ($(BLD)/minibuf.obj):
257 ($(BLD)/print.obj):
258 ($(BLD)/scroll.obj):
259 ($(BLD)/sysdep.obj):
260 ($(BLD)/textprop.obj):
261 ($(BLD)/widget.obj):
262 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
263 ($(BLD)/term.obj): Add dependency on dispextern.h.
264
265 * makefile.nt ($(BLD)\dispnew.obj):
266 ($(BLD)\keyboard.obj):
267 ($(BLD)\w32inevt.obj):
268 ($(BLD)\w32bdf.obj):
269 ($(BLD)\alloc.obj):
270 ($(BLD)\buffer.obj):
271 ($(BLD)\editfns.obj):
272 ($(BLD)\emacs.obj):
273 ($(BLD)\fileio.obj):
274 ($(BLD)\fns.obj):
275 ($(BLD)\indent.obj):
276 ($(BLD)\insdel.obj):
277 ($(BLD)\intervals.obj):
278 ($(BLD)\minibuf.obj):
279 ($(BLD)\print.obj):
280 ($(BLD)\scroll.obj):
281 ($(BLD)\sysdep.obj):
282 ($(BLD)\textprop.obj):
283 ($(BLD)\widget.obj):
284 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
285 ($(BLD)\term.obj): Add dependency on dispextern.h
286
18ad4821
EZ
2872000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
288
289 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
290 with an additional argument of Qt.
291
de54681a
MB
2922000-10-21 Miles Bader <miles@gnu.org>
293
294 * window.c (pos_fully_visible_in_window_p): New function.
295 (Fpos_visible_in_window_p): Add FULLY argument.
296 Use pos_fully_visible_in_window_p.
297 (window_scroll_pixel_based, window_scroll_line_based): Update
298 calls to Fpos_visible_in_window_p.
299 * lisp.h (Fpos_visible_in_window_p): Update prototype
300
13c844fb
GM
3012000-10-20 Gerd Moellmann <gerd@gnu.org>
302
303 * alloc.c (toplevel): Conditionalize compilation of mem_*
304 functions differently.
305
d9506268
JR
3062000-10-20 Jason Rumney <jasonr@gnu.org>
307
308 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
309 mem_init where it used to be. mem_z etc not defined otherwise.
310
8094989b
GM
3112000-10-20 Gerd Moellmann <gerd@gnu.org>
312
313 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
314 GC_MALLOC_CHECK.
315 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
316 structure definition and related variabled to the top of the file.
317 Include this code when GC_MALLOC_CHECK is defined.
318 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
319 register/unregister allocated region.
320 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
321 which isn't allocated.
322 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
323 something which is already in use.
324 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
325 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
326 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
327 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
328
329 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
330 _malloc_internal instead of malloc.
331 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
332 of free.
333
ea456eb4
AI
3342000-10-20 Andrew Innes <andrewi@gnu.org>
335
336 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
337 Windows.
338 (my_strftime) <macro>: Don't use macro arg list when redefining as
339 _strftime_copytm.
340 (my_strftime) <function>: Supply 0 as ut argument.
341
e64c3a75
JR
3422000-10-19 Jason Rumney <jasonr@altavista.net>
343
344 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
345 including dispextern.h, as it stops faces from working.
346
347 * w32fns.c (Fx_create_frame): Don't bother calling
348 face-set-after-frame-default since the caller does it for us
349 anyway. Clean up calls to x_get_arg to be consistent with X.
350
351 * w32term.c (x_produce_glyphs): Handle
352 unibyte_display_via_language_environment correctly.
353 (w32_draw_box_rect): Fix the calculation of width and height.
354
355 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
356 as it has stopped working.
357 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
358 menu-bar.
359
17401c97
GM
3602000-10-19 Gerd Moellmann <gerd@gnu.org>
361
362 * eval.c (skip_debugger): Prevent a compiler warning.
363 (Fcondition_case): Likewise.
364 (Fbacktrace_frame): Use a null interactive spec.
365
773272d8
KH
3662000-10-19 Kenichi Handa <handa@etl.go.jp>
367
368 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
369
a42943e9
GM
3702000-10-18 Gerd Moellmann <gerd@gnu.org>
371
e50517d9
GM
372 * strftime.c: Sync with glibc, file version 1.78.
373 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
374 should no longer be used according to ISO 8601.
375
9035a35a
GM
376 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
377 no map for meta_prefix_char, don't try to use it as a keymap.
378 Instead, if T_OK is non-zero, look up a default binding, if any,
379 otherwise, if T_OK is zero, return nil.
380
a42943e9
GM
381 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
382 (x_to_xcolors, png_load): Use x_query_color.
383
384 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
385 functions.
386 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
387 which can be slow.
388 (x_copy_color, x_alloc_lighter_color): Likewise.
389
390 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
391 (x_query_color, x_query_colors): Add prototype.
392
393 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
394 check_string_bytes only if not noninteractive, increase count to 50.
395
00de2987
MB
3962000-10-18 Miles Bader <miles@lsi.nec.co.jp>
397
398 * insdel.c (adjust_markers_for_delete): Handle before-insertion
399 markers correctly.
400
54918e2b
GM
4012000-10-17 Gerd Moellmann <gerd@gnu.org>
402
1f0b3fd2
GM
403 * alloc.c (pure_bytes_used): Renamed from pureptr.
404 (ALIGN): New macro.
405 (pure_alloc): New function.
406 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
407 Use it.
408 (Fpurecopy): Use PURE_POINTER_P.
409
68c5d1db
GM
410 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
411 PT has moved backward.
412
9a038881
GM
413 * xdisp.c (cursor_row_p): Take continued lines into account.
414
361b097f
GM
415 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
416 string's size_byte.
417 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
418 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
419 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
420 string allocated.
421
54918e2b
GM
422 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
423 of selective display off while searching for the next line start.
424
03ed0806
KH
4252000-10-17 Kenichi Handa <handa@etl.go.jp>
426
427 * Makefile.in (term.o): Depend on dispextern.h.
428
7e05cdaf
SM
4292000-10-16 Stefan Monnier <monnier@cs.yale.edu>
430
431 * keymap.c (keymap_memberp): Ensure that nil is not a member.
432
a6801fd1
GM
4332000-10-16 Gerd Moellmann <gerd@gnu.org>
434
483de32b
GM
435 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
436 the iterator at the beginning, so that they can be set later on,
437 for instance in reseat_at_next_visible_line_start, without being
438 overwritten.
439
a6801fd1
GM
440 * xfns.c (pbm_format): Add :foreground and :background keywords.
441 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 442 (xbm_load): Recognize foreground and background color
a6801fd1
GM
443 specifications.
444
dbf1fcc1
EZ
4452000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
446
447 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
448
449 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
450 declaration.
451
452 * msdos.c (IT_set_face): Compare highlighted face with the default
453 face, and invert colors if these faces' colors are identical.
454 (Fmsdos_remember_default_colors): Don't swap foreground and
455 background colors in initial_colors[].
456 (IT_set_frame_parameters): Don't swap frame's foreground and
457 background pixels. If ALIST includes "(reverse . t)", swap
458 foreground-color and background-color properties in frame's
459 param_alist. If the original frame's param_alist doesn't specify
460 the colors, store unspecified-fg and unspecified-bg, reversed if
461 required.
462
463 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
464 the colors are unspecified and reversed, reverse fore- and back-
465 ground in the returned value.
466 (Fframe_parameter): Ditto.
467
b41fe2c3
GM
4682000-10-16 Gerd Moellmann <gerd@gnu.org>
469
3a6b59d9
GM
470 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
471 get_last_unchanged_at_beg_row.
472 (find_first_unchanged_at_end_row): Renamed from
473 get_first_unchanged_at_end_row.
474 (find_first_unchanged_at_end_row): Convert assertions to
475 unconditional tests which abort. When looking for a row in
476 unchanged text, don't go further back than first_text_row.
477
b41fe2c3
GM
478 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
479 Don't add in the last line's height when deciding if the new
480 position is below the scroll margin.
9d1af64f 481
b41fe2c3 4822000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
483
484 * editfns.c (Fconstrain_to_field): Check carefully for field
485 boundaries if either OLD_POS or NEW_POS has a non-nil field
486 property, even if they're the same.
487
c412cb7b
KH
4882000-10-16 Kenichi Handa <handa@etl.go.jp>
489
490 * xterm.c (x_draw_box_rect): Fix the calculation of width and
491 height for XFillRectangle.
492
5586f3eb
SM
4932000-10-15 Stefan Monnier <monnier@cs.yale.edu>
494
495 * syntax.c (Fstring_to_syntax): New function extracted from
496 Fmodify_syntax_entry.
497 (Fmodify_syntax_entry): Use it and document the ! and | fences.
498 (skip_chars, Fforward_comment): Remove unused variables.
499 (syms_of_syntax): Add defsubr for string-to-syntax.
500 (describe_syntax): Add code for comment and string fences.
501
db785038
SM
5022000-10-14 Stefan Monnier <monnier@cs.yale.edu>
503
504 * keymap.c (access_keymap): Add AUTOLOAD parameter.
505 Do the meta->esc mapping. Call get_keyelt before returning.
506 Start scanning from the second element (the first is always `keymap')
507 to make it easier to detect when we reach a parent map.
508 Handle the case of inheriting from a symbol whose function is a map.
509 (Fkeymap_parent): Also handle the `inherit from symbol' case.
510 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
511 (get_keyelt, Flookup_key): Update call to access_keymap.
512 Remove the meta->esc mappings.
513 (define_as_prefix): Delete old disabled code.
514 (menu_item_p): New function.
515 (where_is_internal_1): Skip over the few remaining menu items.
516 * lisp.h (access_keymap): Update prototype.
517 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
518 Update call to access_keymap.
519 (follow_key, read_key_sequence): Update calls to access_keymap.
520 Remove the meta->esc mappings.
521
cafafe0b
GM
5222000-10-13 Gerd Moellmann <gerd@gnu.org>
523
a2e2a7f6
GM
524 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
525 with additional argument.
526
cafafe0b
GM
527 * xdisp.c (cursor_row_p): New function.
528 (try_cursor_movement, display_line): Use it.
529
530 * xdisp.c (append_space): Also save/restore iterator's current
531 character and its length.
532
533 * xdisp.c (init_from_display_pos): Add an assertion.
534 (handle_stop): Don't set iterator's add_overlay_start.
535 (handle_invisible_prop): Likewise.
536 (load_overlay_strings): If text under an overlay is invisible,
537 take both before- and after-strings into account when the iterator
538 is positioned either at the start or at the end of the overlay.
539 (forward_to_next_line_start): Rewritten.
540 (reseat_at_next_visible_line_start): Rewritten.
541 (set_iterator_to_next): Add parameter RESEAT_P.
542
543 * dispextern.h (struct it): Remove member add_overlay_start.
544 (set_iterator_to_next): Change prototype.
545
c744452b
KH
5462000-10-13 Kenichi Handa <handa@etl.go.jp>
547
548 * coding.c (code_convert_region): Be sure to initialize
549 coding->category_idx.
e4a3f4e1
KH
550 (decode_coding_string): Set coding->src_multibyte and
551 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
552 (encode_coding_string): Set coding->src_multibyte and
553 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 554
321fd26f
SM
5552000-10-12 Stefan Monnier <monnier@cs.yale.edu>
556
557 * xfns.c (Fx_create_frame): Don't bother calling
558 face-set-after-frame-default since the caller does it for us anyway.
559
76832439
EZ
5602000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
561
562 * window.c (coordinates_in_window): Fix detection of vertical line
563 on character terminals.
564
2483cf58
GM
5652000-10-12 Gerd Moellmann <gerd@gnu.org>
566
567 * editfns.c (save_excursion_save): Additionally record the
568 selected window.
569 (save_excursion_restore): If buffer was visible in a window, and a
570 different window was selected, and the old selected window is
571 still live, restore point in that window.
572
eb991b25
KH
5732000-10-12 Kenichi Handa <handa@etl.go.jp>
574
8a0eba09
KH
575 * xterm.c (x_produce_glyphs): Handle
576 unibyte_display_via_language_environment correctly.
577
20401fcc
KH
578 * regex.c (regex_compile): Change the way of handling a range from
579 unibyte char to multibyte char.
580
581 * syntax.c (skip_chars): Change the way of handling a range from
582 unibyte char to multibyte char.
583
eb991b25
KH
584 * process.c (read_process_output): Cancel previous change.
585
365dd325
EZ
5862000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
587
c1b096cb
EZ
588 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
589
365dd325
EZ
590 * charset.c (Ffind_charset_string): Doc fix.
591 (Ffind_charset_region): Doc fix.
592
eb483c2b
KH
5932000-10-11 Kenichi Handa <handa@mule.m17n.org>
594
595 * process.c (read_process_output): Fix previous change. Adjust
596 multibyteness of text to insert in a buffer by
df3c11b9 597 string_make_unibyte/multibyte instead of
eb483c2b
KH
598 Fstring_as_unibyte/multibyte.
599
b40bfb99
AS
6002000-10-10 Andreas Schwab <schwab@suse.de>
601
602 * alloc.c (mark_object): Remove all workarounds installed on
603 1993-08-08.
604
caff31d4
KH
6052000-10-10 Kenichi Handa <handa@etl.go.jp>
606
607 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
608 returning.
609 (base64_encode_1): Make it work for a text of multibyte form.
610 (Fbase64_decode_region): Allocate sufficient memory for multibyte
611 case. Don't call str_to_multibyte because base64_decode_1
612 produces correct multibyte form for eight-bit codes.
613 (Fbase64_decode_string): Adjusted for the change of
614 base64_decode_1.
615 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
616 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
617 codes.
618
619 * charset.h (CHAR_STRING): Optimized for single byte characters.
620
cba026ef
AS
6212000-10-09 Andreas Schwab <schwab@suse.de>
622
623 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
624 -1 after socket is closed, to fall through to error processing.
625
1e21fe48
EZ
6262000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
627
628 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 629 variables. If ALIST includes foreground-color or
1e21fe48
EZ
630 background-color, change also the colors of the default face for
631 this frame.
632
a640322e
EZ
6332000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
634
635 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
636 them extern (they are defined on xfaces.c).
637 (syms_of_msdos): Don't intern and don't staticpro
638 Qbackground_color and Qforeground_color.
639
a115794c
EZ
6402000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
641
642 * frame.c (Fframe_parameter): For non-windowed frames, if
643 f->param_alist says foreground or background color is unspecified,
644 call tty_color_name to return the color name computed from the
645 frame's current colors.
646
f5533b63
DL
6472000-10-06 Dave Love <fx@gnu.org>
648
649 * terminfo.c (ospeed): Don't declare.
650
651 * sysdep.c: Don't include string.h.
652 (h_errno): Declare conditional also on TRY_AGAIN.
653
654 * charset.c (Ffind_charset_string): Doc fix.
655
656 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
657 (Fbase64_decode_region, Fbase64_decode_string): More explicit
658 error messages.
659
2b06561a
DL
6602000-10-05 Dave Love <fx@gnu.org>
661
662 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
663 position like menu-bar.
664
ca839c85
GM
6652000-10-05 Gerd Moellmann <gerd@gnu.org>
666
667 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
668
669 * xdisp.c (handle_single_display_prop): Use safe_call1.
670 (safe_call): Renamed from call_function.
671 (safe_call1): New function.
672 (handle_fontified_prop): Use safe_call1 instead of call1.
673 (safe_eval): Renamed from eval_form.
674 (safe_eval_handler): Renamed from eval_handler.
675 (handle_single_display_prop, display_mode_element): Use safe_eval
676 instead of eval_form.
677
678 * xfaces.c (merge_face_heights): Use safe_call instead of
679 call_function.
680
681 * keyboard.c (show_help_echo): Use safe_call instead of
682 call_function; use safe_eval instead of eval_form.
683
684 * lisp.h (safe_call): Renamed from call_function.
685 (safe_eval): Renamed from eval_form.
686 (safe_call1): Add prototype.
687
a3489ece
MB
6882000-10-05 Miles Bader <miles@lsi.nec.co.jp>
689
690 * xfns.c (image_ascent): Rearrange ascent calculation for the
691 has-a-font case.
692
35810b6f
SM
6932000-10-04 Stefan Monnier <monnier@cs.yale.edu>
694
695 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
696 (where_is_internal_1): Don't bother ignoring menu-items any more.
697
3dc78168
GM
6982000-10-04 Gerd Moellmann <gerd@gnu.org>
699
700 * keyboard.c (update_menu_bindings): New variable.
701 (parse_menu_item): Use AREF. If update_menu_bindings
702 is 0, don't update menu bindings.
703 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
704
1efc2bb9
EZ
7052000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
706
707 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
708 to `mark_object'.
709
3f679f55
SM
7102000-10-02 Stefan Monnier <monnier@cs.yale.edu>
711
712 * syntax.c (forw_comment): Match nestedness of ender/starter.
713 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
714 (prev_char_comstart_first): Remove.
715 (back_comment): Check two-char comment markers more carefully
716 to better handle overlapping cases like *//* or /* */* */ ...
717 Match nestedness of ender/starter.
718
2021ab61
DL
7192000-10-02 Dave Love <fx@gnu.org>
720
721 * config.in (HAVE_GAI_STRERROR): Add undef.
722
723 * process.c (Fopen_network_stream): Use it.
724
725 * m/alpha.h (NO_REMAP): Don't define.
726
64e6cc18
GM
7272000-10-02 Gerd Moellmann <gerd@gnu.org>
728
729 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
730 return with a string converted to an integer or vice versa when
731 Vmocklisp_arguments is t.
732 (Fsignal): Likewise. The function can return for `quit'.
733 (struct gcpro): Declare member `var' to point to a volatile
734 Lisp_Object.
735
736 * eval.c (error): Prevent compiler warning.
737
b1904cd9
SM
7382000-09-30 Stefan Monnier <monnier@cs.yale.edu>
739
740 * keymap.c (keymap_memberp): New function.
741 (Fset_keymap_parent): Use it.
742 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
743 Use keymap_memberp to avoid creating cycles.
744 (access_keymap): Use KEYMAPP.
745
71c9ec51
GM
7462000-09-30 Gerd Moellmann <gerd@gnu.org>
747
748 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
749 gai_strerror. Make sure xerrno is set if connect fails. Improve
750 error recovery.
71c9ec51 751
c70c6b58
JR
7522000-09-29 Jason Rumney <jasonr@gnu.org>
753
754 * w32term.c (w32_char_font_type, w32_encode_char)
755 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
756 (w32_bdf_per_char_metric): New function.
757 (w32_per_char_metric): Use it.
758 (x_draw_glyph_string_background): Always draw background for BDF
759 glyphs.
760
761 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
762 GDI object which is a scarce resource.
763
764 * w32bdf.c (search_file_line): Fix skipping of whitespace.
765 (get_quoted_string): Fix limit on memchr search.
766 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
767 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
768 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
769 (get_cached_font_char, cache_char_offset): Use macro
770 BDF_CODEPOINT_RANGE_COVER_P.
771 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
772 (clear_cached_bitmap_slots): New function.
773 (GET_HEX_VALUE): G-Z, g-z are not hex.
774 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
775 (get_bitmap_with_cache): Use new cache implementation.
776 (create_offscreen_bitmap): New function.
777 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
778
779 * w32term.c (x_produce_glyphs): If the distance from the current
780 position to the next tab stop is less than a canonical character
781 width, use the tab stop after that.
782 (x_draw_glyphs): Handle case START and END are out of bounds more
783 carefully.
784 (x_clear_mouse_face): Block/unblock input.
785 (x_display_and_set_cursor): Don't show a hollow box cursor for
786 buffers whose cursor_type is nil.
787
fe01239f
GM
7882000-09-29 Gerd Moellmann <gerd@gnu.org>
789
790 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
791 disappears.
792
793 * dispextern.h (updating_frame): Declare extern.
794
e7c52f1f
AS
7952000-09-29 Andreas Schwab <schwab@suse.de>
796
797 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
798
de6e1f7c
GM
7992000-09-29 Gerd Moellmann <gerd@gnu.org>
800
25126faa
GM
801 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
802 use its function definition.
803 (tool_bar_items): Likewise.
804
de6e1f7c
GM
805 * lisp.h (fatal): Declare NO_RETURN.
806
454ee39b
KH
8072000-09-29 Kenichi Handa <handa@etl.go.jp>
808
809 * keymap.c: Remove the line "#undef NULL".
810
96301c5f
GM
8112000-09-28 Gerd Moellmann <gerd@gnu.org>
812
813 * xterm.c (x_make_frame_visible): Try harder to make the frame
814 visible.
815
efffeeb4
DL
8162000-09-28 Dave Love <fx@gnu.org>
817
ecb8b666
DL
818 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
819
dc3cd20f
DL
820 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
821
822 * .gdbinit (xreload): Note its need on GNU/Linux.
823
efffeeb4
DL
824 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
825 r_alloc, r_alloc_free.
826
8610d903
KH
8272000-09-28 Kenichi Handa <handa@etl.go.jp>
828
829 * syntax.c (skip_chars): Handle negation correctly.
830
8901d1ac
GM
8312000-09-27 Gerd Moellmann <gerd@gnu.org>
832
6f22f1ad
GM
833 * xfaces.c (realize_default_face): Call set_lface_from_font_name
834 with non-zero FORCE_P argument.
835
8901d1ac
GM
836 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
837 Add assertions.
838
839 * xdisp.c (window_box_height): Add an assertion.
840
841 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
842 tool-bar than is available.
843 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
844
36f1966f
DL
8452000-09-27 Dave Love <fx@gnu.org>
846
efffeeb4 847 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 848
31d929e5
GM
8492000-09-26 Gerd Moellmann <gerd@gnu.org>
850
c98863bf
GM
851 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
852 instead of BITS_PER_INT.
853 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
854 EMACS_UINT, respectively.
855 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
856
857 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
858
859 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
860
77072ab1
GM
861 * window.c (freeze_window_starts): Construct last argument for
862 foreach_window differently.
863
864 * xfns.c (x_decode_color): Don't return a Lisp_Object.
865
866 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
867 EMACS_UINT instead of `int' and `unsigned int'.
868 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
869
870 * frame.h (struct frame): Make the `nothing' member of union
871 output_data an EMACS_INT.
872
31d929e5
GM
873 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
874 hunting.
875 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
876 size in the sdata structure.
877 (SDATA_NBYTES, SDATA_DATA): New macros.
878 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
879 differently for the different layout of the sdata structure.
880 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
881 in sdata.
882 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
883 Check that size recorded in the string size and size recorded in
884 the sdata structure agree.
885
3e60b029
DL
8862000-09-25 Dave Love <fx@gnu.org>
887
888 * buffer.c: Include stdio.h.
889
890 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
891
892 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
893
894 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
895 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
896 size_t.
897 (__malloc_extra_blocks): Declare as __malloc_size_t.
898
8ff16b4e
GM
8992000-09-25 Gerd Moellmann <gerd@gnu.org>
900
755a2ccd
GM
901 * alloc.c (mark_image): Use GC_NILP instead of NILP.
902
d8b4516f
GM
903 * keyboard.c (show_help_echo): Set help_echo_showing_p.
904 (read_char): If help-echo is showing, preserve the echo area
905 when redisplaying.
906
907 * xdisp.c (help_echo_showing_p): New variable.
908 (set_message): Reset it to 0.
909 (init_xdisp): Initialize help_echo_showing_p.
910
911 * dispextern.h (help_echo_showing_p): Declare extern.
912
913 * config.in: Fix typo in __GNUC_MINOR__.
914
915 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
916
b11af2dd
GM
917 * s/freebsd.h (POSIX_SIGNALS): Define.
918
8ff16b4e
GM
919 * xterm.c (x_clear_mouse_face): Block/unblock input.
920
844eb643
DL
9212000-09-24 Dave Love <fx@gnu.org>
922
923 * fns.c (base64_encode_1): Fix last change.
924
b30ab1b3
GM
9252000-09-22 Gerd Moellmann <gerd@gnu.org>
926
927 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
928
929 * xdisp.c (try_window_reusing_current_matrix): More fixes
930 for the case window has a header-line.
931
c6cbe5f0
DL
9322000-09-22 Dave Love <fx@gnu.org>
933
4c7c1f3f
DL
934 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
935 a doc string.
936
937 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
938
c6cbe5f0
DL
939 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
940
550a625e
GM
9412000-09-21 Gerd Moellmann <gerd@gnu.org>
942
4c7c1f3f 943 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
944 for GCC >= 2.5.
945
946 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
947 NO_RETURN.
948
80d26f99
GM
949 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
950 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
951 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
952 warnings.
953
954 * marker.c (byte_char_debug_check): Return void.
955
623a0aae
GM
956 * xfns.c (Fx_create_frame): Set default frame parameter value
957 for tool-bar-lines to 1.
958
959 * dispnew.c (scrolling_window): Compare y-positions of rows
960 equal at the start. Some simplification.
961
962 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
963 reused rows' y-position in the case window has a header-line, and
964 new window start is greater than old window start.
965
42ac0ae5
GM
966 * process.c (process_sent_to): New variable.
967 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
968 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
969 Declare more parameters volatile.
970
550a625e
GM
971 * lread.c (Vrecursive_load_depth_limit): New variable.
972 (Fload): Check recursive loads whose recursion depth exceeds
973 Vrecursive_load_depth_limit.
974 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
975
8320414c
GM
9762000-09-20 Gerd Moellmann <gerd@gnu.org>
977
f46c275e
GM
978 * fileio.c (Fread_file_name): Doc fix.
979
980 * editfns.c (Fmessage_or_box): Doc fix.
981
982 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
983
b7e11c5b
GM
984 * xfns.c (xbm_scan): Allow C-style comments.
985
8320414c
GM
986 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
987 symbols are specified, add color translations to the cache.
988 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
989 functions.
990 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
991 xpm_cache_color.
992 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
993 structures to xpm_init_color_cache.
994
da1608d9
GM
9952000-09-19 Gerd Moellmann <gerd@gnu.org>
996
997 * dispnew.c (update_window_line): Make sure to always draw
998 mode-lines.
999
6badfa25
AI
10002000-09-19 Andrew Innes <andrewi@gnu.org>
1001
1002 * makefile.nt (bootstrap-emacs): Don't change directory.
1003
3a5f42bb
KH
10042000-09-19 Kenichi Handa <handa@etl.go.jp>
1005
1b7649bd
KH
1006 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
1007
3a5f42bb
KH
1008 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
1009 If output buffer is too small, signal an appropriated error.
1010
9f83cf0b
DL
10112000-09-18 Dave Love <fx@gnu.org>
1012
1013 * keyboard.c (menu_bar_items, tool_bar_items)
1014 (current_active_maps): Remove redundant get_local_map call.
1015
28c7826c
GM
10162000-09-18 Gerd Moellmann <gerd@gnu.org>
1017
5cefa566
GM
1018 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
1019 cursor for buffers whose cursor_type is nil.
1020
6fed3546
GM
1021 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
1022 a feature to implement that is already implemented.
1023 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
1024 warnings.
1025
1026 * xfns.c (x_clear_image_1): New function.
1027 (x_clear_image): Use it.
1028 (x_from_xcolors): Use x_clear_image_1; don't free the image's
1029 mask.
1030
05b1f851
GM
1031 * dispnew.c (update_window): Move test for invisible lines
1032 at the top to update_window_line.
1033 (update_window_line): Handle invisible lines here.
1034
f4779de9
GM
1035 * xfns.c (clear_image_cache): Clear current matrices of all
1036 frames sharing an image cache. Block input while freeing
1037 images. Fix timestamp comparison.
1038 (x_clear_image): Also free the mask.
1039
28c7826c
GM
1040 * xfns.c (lookup_image): Block input while loading the image so
1041 that we won't get interrupted in a state where the image isn't yet
1042 set up completely.
1043 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
1044 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
1045 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
1046 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
1047 input.
1048
b7412313
GM
10492000-09-16 Gerd Moellmann <gerd@gnu.org>
1050
1051 * dispnew.c (update_window): Make sure to make desired rows
1052 current even if they are completely invisible at the top
1053 of a window.
1054
47e351a3
GM
10552000-09-15 Gerd Moellmann <gerd@gnu.org>
1056
7f8f1edc
GM
1057 * xfns.c (lookup_image): Build mask before applying an algorithm.
1058 Recognize algorithm `disabled'.
1059 (cross_disabled_images): New variable.
1060 (COLOR_INTENSITY): New macro.
1061 (x_detect_edges): Use COLOR_INTENSITY.
1062 (x_disable_image): New function.
1063 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
1064
1065 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
1066 disabled state, don't apply an image transformation algorithm if
1067 the user specified an image for the disabled state. Use
28c7826c 1068 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
1069 user hasn't specified an image.
1070
ebb8f116
GM
1071 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
1072 allocation functions with the XPM lib.
1073 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
1074 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
1075 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
1076 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
1077 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
1078 functions.
1079 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
1080 functions, if possible, because these handle color allocation
1081 failure more gracefully.
1082 (Fimage_mask_p): New function.
1083
47e351a3
GM
1084 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
1085 (Qedge_detection, Qheuristic): New symbols.
1086 (syms_of_xfns): Initialize new symbols.
1087 (lookup_image): Handle `:mask X', `:algorithm emboss', and
1088 `algorithm (edge-detection ...)'.
1089 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
1090 (tiff_format, gif_format, gs_format): Add `:mask'.
1091 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
1092 (GIF_MASK, GS_MASK): New enumerators.
1093 (x_laplace_read_row, x_laplace_write_row): Functions removed.
1094 (emboss_matrix, laplace_matrix): New variables.
1095 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
1096 (x_edge_detection): New functions.
1097 (x_laplace): Rewritten in terms of x_detect_edges.
1098 (x_build_heuristic_mask): If image has a mask, free it.
1099
fe83b953
AI
11002000-09-14 Andrew Innes <andrewi@gnu.org>
1101
1102 * makefile.w32-in: Revert to Unix line endings.
1103
3021e816
AI
11042000-09-14 Andrew Innes <andrewi@gnu.org>
1105
1106 * makefile.w32-in: Standardize indentation somewhat.
1107 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
1108 cater for differences between shells.
1109
1110 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
1111
2a32b5ea
GM
11122000-09-14 Gerd Moellmann <gerd@gnu.org>
1113
1114 * xterm.c (x_produce_glyphs): If the distance from the current
1115 position to the next tab stop is less than a canonical character
1116 width, use the tab stop after that.
1117
b4331e96
DL
11182000-09-14 Dave Love <fx@gnu.org>
1119
1120 * buffer.c (alloc_buffer_text): Fix xmalloc call.
1121
ef9e4345
GM
11222000-09-14 Gerd Moellmann <gerd@gnu.org>
1123
085536c2
GM
1124 * xdisp.c (handle_fontified_prop): While running fontification
1125 functions, bind `fontification-functions' and
1126 `after-change-functions' to nil.
1127
ef9e4345
GM
1128 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
1129 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
1130
1131 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
1132
1133 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
1134 USE_MMAP_FOR_BUFFERS.
1135
1136 * insdel.c (make_gap): Use enlarge_buffer_text.
1137
1138 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
1139 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
1140 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
1141 from former r_alloc_* functions in ralloc.c.
1142 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
1143 variables.
1144 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
1145 (mmap_init) [REL_ALLOC_MMAP]: New function.
1146 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
1147 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
1148 BUFFER_FREE.
1149
1150 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
1151 (enlarge_buffer_text): Add prototype.
1152
1153 * ralloc.c: Remove everything having to do with the use of mmap.
1154
f8608968
GM
11552000-09-13 Gerd Moellmann <gerd@gnu.org>
1156
2a494b2d
GM
1157 * sound.c (Fplay_sound): Doc fix.
1158
8c907a56
GM
1159 * keyboard.c: Avoid some more compiler warnings.
1160 (parse_tool_bar_item): Ignore cached key bindings.
1161
f8608968
GM
1162 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
1163 and allocation of Lisp data.
1164
6ab70e9a
GM
11652000-09-12 Gerd Moellmann <gerd@gnu.org>
1166
d12d0a9b
GM
1167 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
1168 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
1169 defaults first.
1170
6ab70e9a
GM
1171 * lread.c (Fload): Put code checking for recursive loads in #if 0.
1172
63c36c3c
KH
11732000-09-12 Miyashita Hisashi <himi@meadowy.org>
1174
1175 * ccl.c: Comment fixed.
1176 (MAX_MAP_SET_LEVEL): Increased to 30.
1177 (PUSH_MAPPING_STACK): Enclose with do-while block.
1178 (POP_MAPPING_STACK): Likewise.
1179 (stack_idx_of_map_multiple): New variable.
1180 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
1181 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
1182 call the corresponding CCL program by
1183 CCL_CALL_FOR_MAP_INSTRUCTION.
1184 (ccl_driver) <CCL_MapSingle>: Likewise.
1185 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
1186 with the case where looking up process reaches to the end of
1187 map-set, and call CCL programs as the above change.
1188
7ee3bd7b
GM
11892000-09-11 Gerd Moellmann <gerd@gnu.org>
1190
8ec8a5ec
GM
1191 * xfns.c (png_load, jpeg_load): Declare some variables volatile
1192 that might be clobbered by longjmp.
1193 (check_x_display_info, x_decode_color, create_frame_xic)
1194 (Fx_display_backing_store, Fx_display_visual_class)
1195 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
1196 warnings.
1197
f74b0705
GM
1198 * lread.c (init_lread): Set Vloads_in_progress to nil.
1199 (Fload): Show list of recursively loaded files, when signaling an
1200 error.
1201
7ee3bd7b
GM
1202 * lread.c (Vloads_in_progress): New variable.
1203 (record_load_unwind): New function.
1204 (Fload): Check for recursive loads.
1205 (syms_of_lread): Initialize Vloads_in_progress.
1206 (read_integer, read1): Avoid some compiler warnings.
1207
1208 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
1209 compiler warnings.
1210
974e1e5b
MB
12112000-09-11 Miles Bader <miles@gnu.org>
1212
1213 * editfns.c (Fbuffer_string): Doc fix.
1214
9824c4e3
GM
12152000-09-10 Gerd Moellmann <gerd@gnu.org>
1216
1217 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
1218
6a72fdd1
KR
12192000-09-09 Ken Raeburn <raeburn@gnu.org>
1220
1221 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
1222 whether to include other header files.
1223
28e6fb66
GM
12242000-09-09 Gerd Moellmann <gerd@gnu.org>
1225
1226 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 1227 by Fmemq as a boolean.
28e6fb66 1228
7f8b6551
SM
12292000-09-08 Stefan Monnier <monnier@cs.yale.edu>
1230
1231 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
1232
a8710abf
GM
12332000-09-08 Gerd Moellmann <gerd@gnu.org>
1234
d1a02881
GM
1235 * ralloc.c (mmap_fd): Remove initializer which can make it
1236 read-only in a dumped Emacs.
1237 (mmap_fd_1): New variable.
1238 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
1239 restore it from there.
1240 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
1241 unconditionally so that mmap_fd can be initialized there.
1242 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
1243 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
1244 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
1245
c454aac1
GM
1246 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
1247
1248 * xdisp.c (dump_glyph_row): Fix printf format string.
1249 (display_line, move_it_in_display_line_to): Avoid compiler
1250 warnings.
1251
fc653ef2
GM
1252 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
1253
3015eec0
GM
1254 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
1255 inheritance.
1256
bfe0ee88
GM
1257 * xdisp.c (try_window_id): When trying to locate cursor in
1258 unchanged rows at the top, handle the case that we can't find it.
1259
a8710abf
GM
1260 * xterm.c (x_draw_glyphs): Handle case START and END are out
1261 of bounds more carefully.
1262
6b7d4ae4
DL
12632000-09-08 Dave Love <fx@gnu.org>
1264
423193c5
DL
1265 * s/sol2.h (REL_ALLOC_MMAP): Define.
1266 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
1267
1268 * ralloc.c: Don't include string.h (redundant).
1269 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
1270 [!MAP_ANON]: Include fcntl.h.
1271 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
1272 (r_alloc, r_re_alloc, r_alloc_free)
1273 (mmap_enlarge, mmap_set_vars): Use it.
1274 (r_alloc_init_fd): New function.
1275 (__morecore) [SYSTEM_MALLOC]: Don't declare.
1276 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
1277 malloc type.
1278
1279 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
1280 Remove vm-limit.o.
1281
6b7d4ae4
DL
1282 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
1283 change to __NetBSD__.
1284
44d31981
KH
12852000-09-08 Kenichi Handa <handa@etl.go.jp>
1286
1287 * search.c (compile_pattern): Check the multibyteness of cached
1288 string and PATTERN.
1289
aad40737
MB
12902000-09-08 Miles Bader <miles@gnu.org>
1291
1292 * xfaces.c (default_face_vector): Function removed.
1293 (Finternal_merge_in_global_face): Restore old global/local
1294 attribute override order. Use inline loop instead of calling
1295 default_face_vector.
1296
91a211b5
GM
12972000-09-07 Gerd Moellmann <gerd@gnu.org>
1298
1299 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
1300 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
1301 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
1302 where necessary, in case POINTER_TYPE is `void'.
1303
03419440
EZ
13042000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
1305
1306 * frame.c (make_terminal_frame): Initialize frame foreground and
1307 background colors to unspecified, for the initial instance of an
1308 MSDOS frame.
1309
f46f845b
GM
13102000-09-07 Gerd Moellmann <gerd@gnu.org>
1311
24f76fbf
GM
1312 * ralloc.c (mmap_find): Fix overlap computation.
1313 (mmap_enlarge): Compute nbytes before trying to find an
1314 overlapping region.
1315
f46f845b
GM
1316 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
1317 instead of `!='.
1318
1319 * lread.c (syms_of_lread): Change value of regexp
1320 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
1321
1322 * xmenu.c (xdialog_show): When looking up the selection in
1323 menu_items, take `quote' boundaries into account; this corresponds
1324 to a nil ITEM in x-popup-dialog.
1325
3c014385
KH
13262000-09-07 Kenichi Handa <handa@etl.go.jp>
1327
fd6f711b
KH
1328 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
1329 not 0x81.
1330 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
1331
3c014385 1332 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
1333 encoding, not decoding. Fix the handling of latin-jisx0201.
1334 Check for the charset katakana-jisx0201 too.
3c014385 1335 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 1336 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 1337
0da3ecef
GM
13382000-09-07 Gerd Moellmann <gerd@gnu.org>
1339
ab0ee409
GM
1340 * xfaces.c (Vparam_value_alist): New variable.
1341 (syms_of_xfaces): Initialize it.
1342 (Finternal_set_lisp_face_attribute): Avoid more consing.
1343
1344 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
1345 specially.
1346 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
1347 (Qbackground_mode): New variable.
1348 (syms_of_frame_1): Initialize Qbackground_mode.
1349
1350 * lisp.h (Qdisplay): Declare extern.
1091dd67 1351
0da3ecef
GM
1352 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
1353 change face on all frames, and change the default for new frames.
1354
b14654b9
DL
13552000-09-07 Dave Love <fx@gnu.org>
1356
1357 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
1358
d24fd56f
KH
13592000-09-07 Kenichi Handa <handa@etl.go.jp>
1360
794f3670
KH
1361 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
1362
0fddd0dc
KH
1363 * charset.c: Include composite.h
1364 (lisp_string_width): New function.
1365 (Fstring_width): Call lisp_string_width instead of strwidth.
1366
1367 * Makefile.in (charset.o): Depends on composite.h.
1368
d24fd56f
KH
1369 * process.c (read_process_output): Before inserting the decoded
1370 text in the buffer, adjust the multibyteness.
1371
fa0b693c
GM
13722000-09-06 Gerd Moellmann <gerd@gnu.org>
1373
73b77ee5
GM
1374 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
1375 buffer's text buffer is null, map new memory.
1376
0a58f946
GM
1377 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
1378 POINTER_TYPE and size_t.
1379 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
1380 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
1381 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
1382 [REL_ALLOC_MMAP]: New macros.
1383 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
1384 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
1385 [REL_ALLOC_MMAP]: New functions.
1386
1387 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
1388 before and after unexec.
1389
1390 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
1391 text buffers if necessary.
1392
1393 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
1394 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
1395 in prototypes.
1396
fa0b693c
GM
1397 * config.in (HAVE_MMAP): Add #undef.
1398
877055f6
GM
13992000-09-05 Gerd Moellmann <gerd@gnu.org>
1400
08ba3862
GM
1401 * frame.c (Qdisplay_type): New variable.
1402 (syms_of_frame_1): Initialize it.
1403 (Fframe_parameter): New function that avoids consing.
1404 (syms_of_frame): Defsubr it.
1405
66ffe51c
GM
1406 * buffer.c (Fother_buffer): Consider buffers as invisible when
1407 they are displayed in a window on an invisible frame.
1408
877055f6
GM
1409 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
1410 get-largest-window always return nil.
1411
bb970e67
GM
14122000-09-04 Gerd Moellmann <gerd@gnu.org>
1413
1414 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
1415 variable; recognize Emacs 19 elc files.
1416
7a3d0e0e
MB
14172000-09-04 Miles Bader <miles@gnu.org>
1418
1419 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
1420 before initially popping up the menu, so the menu doesn't flash
1421 when the face settings are significantly different from the
1422 defaults.
1423
14473664
SM
14242000-09-04 Stefan Monnier <monnier@cs.yale.edu>
1425
1426 * regex.c (WIDE_CHAR_SUPPORT): New macro.
1427 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
1428 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
1429 (BIT_UNIBYTE): Remove.
1430 (re_match_2_internal): Delete corresponding code and streamline the
1431 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
1432 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
1433 (re_wctype_t): New type.
1434 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
1435 (regex_compile): Use them and fix handling of overly long char classes.
1436
c1174479
AI
14372000-09-03 Andrew Innes <andrewi@gnu.org>
1438
f8803e97
AI
1439 * makefile.w32-in: Change to DOS line endings.
1440
c1174479
AI
1441 * s/ms-w32.h (ORDINARY_LINK): New define.
1442
1443 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
1444 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
1445
1446 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
1447 (distclean): Delete them here instead.
1448
44ef7cf6
AI
1449 * w32proc.c (compare_env): Convert to uppercase for comparison,
1450 not lowercase, to match how the native Windows shell works.
1451
49b3bd82
JR
14522000-09-03 Jason Rumney <jasonr@gnu.org>
1453
1454 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
1455 CVS changes the line-ends when checking in/out on DOS/Windows.
1456
1457 * makefile.nt (emacs): Do not change directory to run temacs, as
1458 the load-path is set relative to current directory.
1459
a3d35a39
MB
14602000-09-03 Miles Bader <miles@gnu.org>
1461
1462 * xterm.c (x_alloc_lighter_color_for_widget): New function.
1463
d276b0cf
GM
14642000-09-02 Gerd Moellmann <gerd@gnu.org>
1465
715e84c9
GM
1466 * xdisp.c (redisplay_mode_lines): New function.
1467 (display_mode_lines): Return number of mode lines displayed.
1468 (echo_area_display): Use redisplay_mode_lines to draw garbaged
1469 mode lines. Don't temporarily bind redisplay-dont-pause to t.
1470
8892f40b
GM
1471 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
1472 string.h and strings.h.
1473 (index) [HAVE_INDEX]: Add prototype.
1474
d276b0cf
GM
1475 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
1476 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
1477
1478 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
1479 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
1480
38404229
GM
14812000-09-01 Gerd Moellmann <gerd@gnu.org>
1482
1483 * lread.c (read1): Accept `?' as symbol constituent, for
1484 compatiblity with XEmacs.
1485
c0f9ea08
SM
14862000-08-31 Stefan Monnier <monnier@cs.yale.edu>
1487
1488 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
1489 (struct re_pattern_buffer): Remove newline_anchor.
1490 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
1491 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
1492 (re_max_failures, fail_stack): Use size_t rather than unsigned.
1493 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
1494 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
1495 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
1496 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
1497 Get rid of references to newline_anchor.
1498 (regcomp): Allocate and precompute a fastmap.
1499
8c0f83fe
GM
15002000-08-31 Gerd Moellmann <gerd@gnu.org>
1501
1502 * lread.c (openp): GCPRO local variable `filename'.
1503
4bb91c68
SM
15042000-08-30 Stefan Monnier <monnier@cs.yale.edu>
1505
1506 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
1507
1508 * regex.c: Merge some changes from GNU libc. Add prototypes.
1509 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
1510 Use memcmp and memcpy instead of bcopy and bcmp.
1511 (init_syntax_once): Use ISALNUM.
1512 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
1513 (REG_UNSET_VALUE): Remove. Use NULL instead.
1514 (REG_UNSET, re_match_2_internal): Use NULL.
1515 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
1516 New macros.
1517 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
1518 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
1519 (regex_compile): In handle_interval, return an error rather than try to
1520 unfetch the interval if we can't find the closing brace.
1521 Obey the RE_NO_GNU_OPS syntax bit.
1522 (TOLOWER): New macro.
1523 (regcomp): Use it.
1524 (regexec): Allocate regs.start and regs.end as one block.
1525
5226a931
GM
15262000-08-30 Gerd Moellmann <gerd@gnu.org>
1527
868dd24b
GM
1528 * xdisp.c (echo_area_display): Check display_completed instead
1529 of calling detect_input_pending.
1530
1531 * dispnew.c (update_frame): Only set display_completed here; move
1532 the update_begin and update_end calls here from update_frame_1.
1533 (update_frame_1): Don't set display_completed here, don't call
1534 update_begin/update_end.
1535
5226a931
GM
1536 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
1537 instead of store_frame_param.
1538
2a8bd25f
GM
15392000-08-29 Gerd Moellmann <gerd@gnu.org>
1540
1541 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
1542 desired window matrix hasn't been displayed, use the current row
1543 instead. Make sure that only those frame rows are updated for
1544 which there exists a corresponding enabled desired row.
1545
ba3478d9
MB
15462000-08-29 Miles Bader <miles@gnu.org>
1547
1548 * xfaces.c (default_face_vector): New function.
1549 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
1550
87d0f685
GM
15512000-08-29 Gerd Moellmann <gerd@gnu.org>
1552
1553 * lread.c (openp): Prevent temporary string passed to
1554 Ffile_readable_p from being garbage collected.
1555
6fa86045
DL
15562000-08-28 Dave Love <fx@gnu.org>
1557
1558 * keymap.c (store_in_keymap): Add `static' to declaration.
1559
bb17930d
GM
15602000-08-28 Gerd Moellmann <gerd@gnu.org>
1561
1562 * emacs.c, callint.c, doc.c, editfns.c
1563 (toplevel) [HAVE_STRING_H]: Include string.h.
1564 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
1565 (index): Remove prototypes which might conflict with non-standard
1566 definitions of index/strchr.
1567
1568 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
1569 (rindex): Define only if !HAVE_RINDEX.
1570
1571 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
1572
1573 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
1574
87188200
MB
15752000-08-28 Miles Bader <miles@gnu.org>
1576
1577 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
1578 made inconsistent by a font-related attribute in FROM.
1579 (merge_face_inheritance): Add function comment.
1580
41a68aef
KH
15812000-08-28 Kenichi Handa <handa@etl.go.jp>
1582
1583 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
1584 the 4th arg (PREV_EVENT) Qt to suppress input method.
1585
f7c436c1
SM
15862000-08-27 Stefan Monnier <monnier@cs.yale.edu>
1587
0b32bf0e
SM
1588 * regex.c: Indent cpp directives and remove parens after `defined'.
1589 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
1590 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
1591 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
1592 (re_compile_pattern): Use size_t for length.
1593 (init_syntax_once): Move to a better place.
1594 * regex.h: Merge changes from GNU libc. Indent cpp directives.
1595 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
1596
f7c436c1
SM
1597 * syntax.c (back_comment): Detect cases where a comment-starter is
1598 actually inside another comment as in: /* a // b */ c // d \n.
1599 Make it clear that `comstart_pos' is unused for nested comments.
1600
1601 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
1602 (KEYMAPP): New macro.
1603 (Fkeymap_parent, Fset_keymap_parent): Use it.
1604 (fix_submap_inheritance): Mark it static.
1605 (define_as_prefix, describe_buffer_bindings, describe_command)
1606 (describe_translation, describe_map): Complete prototypes.
1607
1608 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
1609
1610 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
1611 to better match the key-lookup behavior.
1612
6288c62f
GM
16132000-08-27 Gerd Moellmann <gerd@gnu.org>
1614
1615 * xfaces.c (lface_fully_specified_p): Handle :inherit.
1616 (Finternal_set_lisp_face_attribute): Fix typo in error message.
1617
e931344e
EZ
16182000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
1619
1620 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
1621 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
1622 (xterm.o): Depend on coding.h
1623
d10dfeef
KH
16242000-08-26 Kenichi Handa <handa@etl.go.jp>
1625
1626 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
1627 the corresponding '#endif'.
1628
2d73e8d3
MB
16292000-08-26 Miles Bader <miles@gnu.org>
1630
1631 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
1632 * xfaces.c (QCinherit): New variable.
1633 (syms_of_xfaces): Initialize it.
1634 (LFACE_INHERIT): New macro.
1635 (Finternal_get_lisp_face_attribute)
1636 (merge_face_vector_with_property)
1637 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
1638 (check_lface_attrs): Allow new types of face height. Check
1639 inherit attribute.
1640 (CYCLE_CHECK): New macro.
1641 (merge_face_inheritance): New function.
1642 (merge_face_vectors): Merge inherited faces too. Add F and
1643 CYCLE_CHECK arguments.
1644 (merge_face_vector_with_property, Finternal_merge_in_global_face)
1645 (lookup_named_face, lookup_derived_face, realize_named_face)
1646 (face_at_string_position, face_at_buffer_position): Supply
1647 new F and CYCLE_CHECK arguments to merge_face_vectors.
1648 (merge_face_heights): New function.
1649 (merge_face_vectors, merge_face_vector_with_property)
1650 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
1651 handle relative face heights.
1652 (lface_same_font_attributes_p): Compare heights using EQ.
1653
6ce974d4
KH
16542000-08-26 Kenichi Handa <handa@etl.go.jp>
1655
1656 * charset.c (char_to_string): Check the character validity.
1657 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
1658 0.
1659
dc1e502d
SM
16602000-08-25 Stefan Monnier <monnier@cs.yale.edu>
1661
1662 * regex.c (PUSH_FAILURE_COUNT): New macro.
1663 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
1664 Handle popping of a register's or a counter's data.
1665 (POP_FAILURE_POINT): Use the new name.
1666 (re_match_2_internal): Push counter data on the stack for succeed_n,
1667 jump_n and set_number_at and remove misleading dead code in succeed_n.
1668
bd9d0f3f
GM
16692000-08-25 Gerd Moellmann <gerd@gnu.org>
1670
1671 * xdisp.c (redisplay_internal): If considering all windows on all
1672 frames, update the display for each frame as soon as possible,
1673 instead of first building all desired matrices for all frames, and
1674 then updating them all.
1675 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
1676
aa5b8e15
GM
16772000-08-24 Gerd Moellmann <gerd@gnu.org>
1678
17494071
GM
1679 * bytecode.c (mark_byte_stack): Add a comment.
1680
aa5b8e15
GM
1681 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
1682 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
1683 a graphical frame.
1684
c543db81
KH
16852000-08-24 Kenichi Handa <handa@etl.go.jp>
1686
d246d5f5
KH
1687 * minibuf.c (do_completion): Always use compare-string, not
1688 string-equal because the latter doesn't pay attention to
1689 multibyteness of strings.
1690
c543db81
KH
1691 * process.c (create_process): Don't setup raw-text coding here.
1692 (Fopen_network_stream): Don't set coding->src_multibyte and
1693 coding->dst_multibyte here.
1694 (read_process_output): For process filter, return unibyte string
1695 if default-enable-multibyte-characters is nil.
1696 (send_process): If OBJECT is multibyte text, be sure to encoded it
1697 by the specified coding system for the process. Otherwise, setup
1698 raw-text coding.
1699 (init_process): Don't initialize default-process-coding-system
1700 here.
1701
9b47cfe0
EZ
17022000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
1703
1704 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
1705 <scroll-down-aggressively>: Likewise.
1706
f5a36960
KH
17072000-08-23 Kenichi Handa <handa@etl.go.jp>
1708
1709 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
1710 zero. Set coding->produced_char correctly.
1711
69a7ffa7
AI
17122000-08-22 Andrew Innes <andrewi@gnu.org>
1713
1714 * makefile.w32-in: New file.
1715
1716 * unexw32.c (unexec): Ignore old_name, and use the actual location
1717 of the current executable instead. Base new_name on this.
1718
1719 * w32proc.c (create_child): Remove reference to security
1720 descriptor, which isn't needed and doesn't compile with mingw32.
1721
1722 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1723 up dllimport attributes.
1724 (x_update_window_end): Update prototype.
1725
1726 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
1727 extern, which screws up dllimport attributes.
1728
1729 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1730 up dllimport attributes.
1731
1732 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
1733 screws up dllimport attributes.
1734
1735 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1736 up dllimport attributes.
1737 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
1738 screws up dllimport attributes.
1739
1740 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1741 up dllimport attributes.
1742
1743 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
1744 screws up dllimport attributes.
1745
1746 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
1747 screws up dllimport attributes.
1748
1749 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1750 up dllimport attributes.
1751
1752 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
1753 unnecessary extern, which screws up dllimport attributes.
1754 (main): Ditto.
1755
1756 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1757 up dllimport attributes.
1758
1759 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
1760 unnecessary extern, which screws up dllimport attributes.
1761
1762 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
1763 screws up dllimport attributes.
1764
1765 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
1766 up dllimport attributes.
1767
1768 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
1769
1770 * w32bdf.c (search_file_line):
1771 (set_bdf_font_info):
1772 (seek_char):
1773 (w32_get_bdf_glyph):
1774 (w32_BDF_to_x_font): Fix compile warnings.
1775
1776 * w32menu.c: Include keyboard.h before frame.h. Fix compile
1777 warnings.
1778
1779 * w32select.c: Include keyboard.h before frame.h.
1780
1781 * w32fns.c (max): Define macro.
1782 (JOHAB_CHARSET): Define if not known.
1783 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
1784 (Fx_show_tip): Synch with X version.
1785
1786 * w32xfns.c: Include keyboard.h before frame.h.
1787
1788 * w32fns.c: Include keyboard.h before frame.h.
1789
1790 * w32term.c: Include keyboard.h before frame.h.
1791
1792 * fontset.c: Include keyboard.h before frame.h.
1793
1794 * w32inevt.c: Include keyboard.h before frame.h.
1795 (MOUSE_MOVED): Define if not known.
1796
1797 * minibuf.c: Include keyboard.h before frame.h.
1798
1799 * keyboard.c: Include keyboard.h before frame.h.
1800
1801 * indent.c: Include keyboard.h before frame.h.
1802
1803 * dispnew.c: Include keyboard.h before frame.h.
1804
1805 * buffer.c: Include keyboard.h before frame.h.
1806
1807 * alloc.c: Include keyboard.h before frame.h.
1808
1809 * print.c: Include keyboard.h before frame.h.
1810
1811 * process.c: Include keyboard.h before frame.h.
1812
1813 * scroll.c: Include keyboard.h before frame.h.
1814
1815 * sysdep.c: Include keyboard.h before frame.h.
1816
1817 * term.c: Include keyboard.h before frame.h.
1818
1819 * window.c: Include keyboard.h before frame.h.
1820
1821 * xdisp.c: Include keyboard.h before frame.h.
1822 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
1823
1824 * frame.c: Include keyboard.h before frame.h.
1825
1826 * w32heap.h: Undefine min, max.
1827
1828 * w32gui.h: Undefine min, max.
1829
1830 * unexw32.c: Change PUCHAR to PCHAR.
1831 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
1832 (relocate_offset):
1833 (get_section_info):
1834 (copy_executable_and_dump_data): Remove unnecessary static defs.
1835 (copy_executable_and_dump_data): Fix compile warnings.
1836
1837 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
1838
1839 * w32console.c (min): Define macro.
1840 (clear_frame, write_glyphs): Fix compile warning.
1841
1842 * w32proc.c (compare_env):
1843 (find_child_console): Fix compile warning.
1844
1845 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
1846 sys_errlist instead of _sys_errlist.
1847 (get_emacs_configuration_options): New function.
1848
1849 * s/ms-w32.h (sys_nerr): Provide default definition.
1850 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
1851 name with _ prepended.
1852 (NSIG): Define if not known.
1853 (get_emacs_configuration): Provide extern declaration.
1854 (get_emacs_configuration_options): Provide extern declaration.
1855 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
1856
1857 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
1858 (map_w32_filename):
1859 (read_unc_volume): Fix compile warning.
1860
1861 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
1862 definitions from being used.
1863
1864 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
1865
1866 * w32.c (unc_volume_file_attributes):
1867 (open_unc_volume): Make arg const.
1868
1869 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
1870 (read_input_waiting): Remove excess parameter.
1871
1872 * w32.c (init_environment): Call _access.
1873 (check_windows_init_file): Call _close.
1874 (init_user_info): Call _putenv.
1875 (init_environment): Call _putenv and _strdup.
1876 (init_ntproc): Reset volume info cache on startup.
1877
1878 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
1879 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
1880 cannot override the CRT malloc.
1881
1882 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
1883 (LINK_FLAGS): Append to original value of LINK_FLAGS.
1884
1885 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
1886 unless we are linking with a static CRT.
1887 (RVA_TO_PTR): Cast result to unsigned char*.
1888
1889 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
1890 (add_volume_info): Use xstrdup.
1891
25060080
SM
18922000-08-22 Stefan Monnier <monnier@cs.yale.edu>
1893
1894 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
1895 (do_completion, Fminibuffer_complete_word): Use it.
1896 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
1897 var so it can take non-boolean values.
1898
6917e6bb
GM
18992000-08-21 Gerd Moellmann <gerd@gnu.org>
1900
acb7cc89
GM
1901 * editfns.c (find_field): Formatting changes.
1902 (toplevel): Some old-style function forward declarations
1903 changed to prototypes, some new protypes added, some functions
1904 made static.
1905
1906 * lisp.h (set_time_zone_rule): Add prototype.
1907 (use_dialog_box): External declaration.
1908
0bbfdc25
GM
1909 * keyboard.c (gen_help_event): Add parameter SIZE.
1910 (kbd_buffer_events_waiting): Slightly rewritten.
1911 (clear_event): New function.
1912 (kbd_buffer_get_event): Use it, and clear the input_events of
1913 HELP_EVENTs.
1914 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
1915 don't fill the newly created array with nils.
1916 (toplevel): Convert some old-style function forward declarations
1917 to prototypes.
1918
1919 * keyboard.h (gen_help_event): Change prototype.
1920
1921 * xterm.c (XTread_socket): Change calls to gen_help_event.
1922
1923 * w32term.c (w32_read_socket): Change calls to gen_help_event.
1924
6917e6bb
GM
1925 * eval.c (Fmacroexpand): Doc fix.
1926
e5cd3d11
JR
19272000-08-20 Jason Rumney <jasonr@gnu.org>
1928
1929 * w32term.h (x_display_info_for_display): Remove as this function
1930 does not exist on W32.
1931
1932 * w32term.c (help_echo_window): New variable.
1933 (syms_of_w32term): staticpro it.
1934 (note_mode_line_highlight): Set it.
1935 (XTextExtents16): Removed as there is no equivalent on W32.
1936 (x_compute_glyph_string_overhangs): Incomplete body removed, as
1937 the X way of doing this will not work for W32.
1938 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
1939 (x_draw_image_foreground): Avoid drawing outside of the clip area
1940 when image doesn't have a mask.
1941 (note_mouse_highlight): Process overlays in the right order of
1942 priority. Set help_echo_window.
1943 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
1944 because that's more visible for large images.
1945
1946 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
1947 name to single_keymap_panes.
1948 (w32_menu_show): Set wv->title when dealing with titles.
1949 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
1950
6e69ab8c
MB
19512000-08-21 Miles Bader <miles@gnu.org>
1952
1953 * minibuf.c (do_completion): Try again if we rewrite the input
1954 string, but no completion was done, so that any completion message
1955 will be correct.
1956
511bd4eb
GM
19572000-08-20 Gerd Moellmann <gerd@gnu.org>
1958
1959 * xfaces.c (lface_equal_p): Compare strings differently.
1960 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
1961 (realize_tty_face): Use them.
1962 (syms_of_xfaces): Initialize new variables.
1963 (map_tty_color): New function, extracted from realize_tty_face.
1964 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
1965 foreground or background color, store the new color name in the
1966 realized face; previous code trying to do this had no effect.
1967 (realize_tty_face): Use map_tty_color.
1968 (Fclear_face_cache): Set face_change_count and ensure thorough
1969 redisplay.
1970
1433385f
GM
19712000-08-19 Gerd Moellmann <gerd@gnu.org>
1972
511bd4eb
GM
1973 * undo.c (record_first_change, record_marker_adjustment): Don't
1974 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 1975
419ac0a2
KH
19762000-08-18 Kenichi Handa <handa@etl.go.jp>
1977
1978 * coding.c (decode_coding_string): Set members consumed,
1979 consumed_char, produced, produced_char of *coding correctly. If
1980 decode_coding doesn't consume any byte, don't try anymore.
1981 (encode_coding_string): Likewise.
1982
7eb9e30d
GM
19832000-08-18 Gerd Moellmann <gerd@gnu.org>
1984
511bd4eb
GM
1985 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
1986 conditional have void type, for Standard C compilers.
7eb9e30d
GM
1987
1988 * xdisp.c (redisplay_internal): Compare windows for equality with
1989 EQ, instead of applying XWINDOW to something that might not
1990 be a window.
1991
dd34a735
KH
19922000-08-18 Kenichi Handa <handa@etl.go.jp>
1993
1994 * fontset.c (Finternal_char_font): Search only the selected frame
1995 for a window of the current buffer.
1996
385ff9e3
GM
19972000-08-18 Gerd Moellmann <gerd@gnu.org>
1998
511bd4eb 1999 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
2000 Lisp_Objects.
2001
385ff9e3
GM
2002 * keyboard.c (kbd_buffer_get_event): Handle the case that the
2003 second half of a HELP_EVENT is found at the start of kbd_buffer.
2004
d6abb4c7
MB
20052000-08-18 Miles Bader <miles@gnu.org>
2006
4618074a
MB
2007 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
2008
d6abb4c7
MB
2009 * editfns.c (save_restriction_save): Rewrite to use markers.
2010 (save_restriction_restore): Rewrite to understand new form of data
2011 saved by save_restriction_save.
2012 (Fsave_restriction): Remove cautionary note in doc-string.
2013
a7b28523
GM
20142000-08-17 Gerd Moellmann <gerd@gnu.org>
2015
2016 * fileio.c (build_annotations): Add a comment explaining the
2017 return value of format-annotate-function. Replace a spurious call
2018 to Flength with a CONSP test. Call format-annotate-function with
2019 a fifth arg specifying how many times the function is been called
2020 in a row, to let it choose temporary buffers appropriately.
2021
03c9ed77
DL
20222000-08-17 Dave Love <fx@gnu.org>
2023
2024 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
2025 declare make_temp_name twice.
2026
2027 * lread.c: Prototype readevalloop, load_unwind,
2028 load_descriptor_unwind.
2029 (unreadpure): Give it an arg.
2030
2031 * unexalpha.c: Prototype fatal_unexec, mark_x,
2032 update_dynamic_symbols. Declare unexec as void.
2033
2034 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
2035 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
2036
2037 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
2038 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
2039 DOUG_LEA_MALLOC.
2040
2041 * alloca.c: Use #error.
2042 [POINTER_TYPE]: Use it.
2043
2044 * eval.c (Fdefvar): Doc fix.
2045
2046 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
2047 INITIALIZE_INTERVAL.
2048
2049 * buffer.h: Avoid DECLARE_INTERVALS.
2050
2051 * config.in: Add size_t.
2052
aae41d97
EZ
20532000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
2054
2055 * w16select.c (set_clipboard_data): If there's not enough memory
2056 to put text into clipboard, return 1, as Fw16_set_clipboard_data
2057 expects. In case of other failures, return 3.
2058 (system_error_msg): New error message.
2059 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
2060 system_error_msg.
2061
65aa5e85
GM
20622000-08-16 Gerd Moellmann <gerd@gnu.org>
2063
2064 * term.c (write_glyphs): Also turn off inverse video after turning
2065 off other appearances in case TS_exit_attribute_mode is not equal
2066 to TS_end_standout_mode.
2067 (insert_glyphs): Turn inverse video on/off for each run of glyphs
2068 with the same face.
2069 (turn_off_face): Reset standout_mode only if
2070 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
2071 is equal to TS_end_standout_mode.
2072
ece23901
KH
20732000-08-16 Kenichi Handa <handa@etl.go.jp>
2074
9d7bcb2e
KH
2075 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
2076 sequence at the end of the source block.
2077
ece23901
KH
2078 * ccl.c (Fccl_program_p): Docstring modified.
2079 (Fccl_execute): Likewise.
2080 (Fccl_execute_on_string): Likewise.
2081
5e30eaa2
EZ
20822000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
2083
2084 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
2085
290602fd
KH
20862000-08-16 Kenichi Handa <handa@etl.go.jp>
2087
2088 The following changes are mainly to fix bugs of
2089 encode/decode-coding-string failing if encoding/decoding return
2090 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
2091 variable conversion_buffer.
2092
2093 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
2094 decrement dst_end to avoid buffer overflow in the later call of
2095 string_as_multibyte
2096
2097 * coding.h (conversion_buffer_size, conversion_buffer)
2098 (get_conversion_buffer): Extern deleted.
2099
2100 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
2101 (conversion_buffer, conversion_buffer_size): Variables deleted.
2102 (get_conversion_buffer): Function deleted.
2103 (struct conversion_buffer): New structure.
2104 (MAX_ALLOCA): New macro.
2105 (allocate_conversion_buffer): New macro.
2106 (extend_conversion_buffer, free_conversion_buffer): New functions.
2107 (ccl_coding_driver): Set coding->result.
2108 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
2109 this is the last block of source.
2110 (encode_coding): Likewise. Handle the source block as the last
2111 one only when the whole source text is consumed.
2112 (decode_coding_string): Handle the case that the output buffer is
2113 too small to decode the whole source text. Use
2114 allocate_conversion_buffer, extend_conversion_buffer and
2115 free_conversion_buffer, not get_conversion_buffer.
2116 (encode_coding_string): Likewise.
2117 (init_coding): Function deleted.
2118 (init_coding_once): Delete code to initialize
2119 conversion_buffer_size.
2120
2121 * emacs.c (main): Don't call init_coding.
2122
2123 * msdos.c (IT_write_glyphs): Use a locally declared
2124 conversion_buffer.
2125
2126 * term.c (write_glyphs): Use a locally declared conversion_buffer.
2127 (insert_glyphs): Likewise.
2128
2129 * w32console.c (write_glyphs): Use a locally declared
2130 conversion_buffer.
2131
b9f80d41
EZ
21322000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
2133
2134 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
2135 member of display_info is NULL.
2136
32dc52f7
GM
21372000-08-15 Gerd Moellmann <gerd@gnu.org>
2138
58ed0d3b
GM
2139 * alloc.c (compact_small_strings): Use safe_bcopy, add an
2140 assertion.
2141
32dc52f7 2142 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 2143 appearances with capability `me'.
32dc52f7
GM
2144 (write_glyphs): Switch on inverse video before each face change.
2145
4eb22d33
DL
21462000-08-14 Dave Love <fx@gnu.org>
2147
2148 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
2149 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
2150 (lisp_free): Declare and make static.
2151
2152 * window.c: Fix embedded comment.
2153 (syms_of_window): Fix doc string.
2154
90cbf47e
GM
21552000-08-14 Gerd Moellmann <gerd@gnu.org>
2156
2157 * keymap.c (push_key_description): If C without modifiers is < 32,
2158 make sure to print `C-' before `M-', like in the manual.
2159
440fc135
GM
21602000-08-11 Gerd Moellmann <gerd@gnu.org>
2161
2162 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
2163 since they aren't relocated anymore.
2164 (sxhash_string): Make sure returned hash code fits in a Lisp
2165 integer.
2166
2167 * xdisp.c (try_cursor_movement): Fix handling of cursor in
2168 partially visible line which is smaller than the window's
2169 height.
2170
6e264fad
KH
21712000-08-11 Kenichi Handa <handa@etl.go.jp>
2172
2173 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
2174 the multibyte form of eight-bit-control characters.
2175 (Fccl_execute_on_string): Initialize ccl->multibyte.
2176
2177 * ccl.h (struct ccl_program): New member multibyte.
2178
2179 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
2180
c371f69a
KH
21812000-08-11 Kenichi Handa <handa@etl.go.jp>
2182
2183 * regex.c (regex_compile) <normal_char>: Pay attention to
2184 multibyteness.
2185 (analyse_first) <exactn>: Setup fastmap correctly for
2186 eight-bit-control characters.
2187
21882000-08-11 Kenichi Handa <handa@etl.go.jp>
2189
2190 * termhooks.h (enum event_kind): New member
2191 multibyte_char_keystroke.
2192
2193 * keyboard.c (make_lispy_event): Handle the new event type
2194 multibyte_char_keystroke.
2195
2196 * xterm.c: Include coding.h.
2197 (XTread_socket): Work around a bug of XmbLookupString. If the
2198 input is from XIM, decode it according to the current locale. In
2199 that case, generate multibyte_char_keystroke events.
2200
b8ddbe71
KH
22012000-08-11 Kenichi Handa <handa@etl.go.jp>
2202
2203 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
2204 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
2205
47589c8c
GM
22062000-08-10 Gerd Moellmann <gerd@gnu.org>
2207
2208 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
2209 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
2210 (move_it_in_display_line_to): Record iterator's ascent and descent
2211 before producing glyphs, and restore them when we know the glyph
2212 doesn't fit on the line.
2213 (move_it_to): Restructured so that it's easier to debug. If
2214 moving to a vpos, and not moving to an x or character position,
2215 stop as soon as the specified vpos is reached; don't move further
2216 into that line because that might change the computed line height.
2217 (try_cursor_movement): New function, extracted from the cursor
2218 movement branch of redisplay_window. If ending on a partially
2219 visible line, don't try to scroll if the cursor line is taller
2220 than the window.
2221 (redisplay_window): Use try_cursor_movement.
2222
2223 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
2224 because that function doesn't cope with variable-height lines.
2225
2226 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
2227 box cursor because that's better visible for large images.
2228
c51bacd6
MB
22292000-08-10 Miles Bader <miles@gnu.org>
2230
2231 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
2232
bea56df7
GM
22332000-08-10 Gerd Moellmann <gerd@gnu.org>
2234
2235 * xdisp.c (Vmessages_buffer_name): New variable.
2236 (message_dolog): Use it.
2237 (syms_of_xdisp): Initialize it.
2238
99cd7364
EZ
22392000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
2240
2241 * msdos.c (IT_note_mouse_highlight): Update the calls to
2242 overlays_at.
2243 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
2244 redundant now that keyboard.h is included.
2245
7d093d56
EZ
22462000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
2247
2248 * keyboard.c (kbd_buffer_events_waiting): New function.
2249
2250 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
2251
2252 * msdos.c: Include keyboard.h.
2253 (XMenuActivate): Empty no_event events from the event buffer. If
2254 no events are left after that, call clear_input_pending.
2255 (mouse_clear_clicks): New function, code moved from mouse_init.
2256 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
2257 mouse driver to ``forget'' any past clicks.
2258
2259 * Makefile.in (msdos.o): Depend on keyboard.h.
2260
41e757a6
GM
22612000-08-09 Gerd Moellmann <gerd@gnu.org>
2262
8e7bd231
GM
2263 * lisp.h (input_pending): External declaration.
2264
2265 * dispextern.h (Qredisplay_dont_pause): Declare extern.
2266
2267 * xdisp.c (echo_area_display): Display thoroughly if input is
2268 pending. Bind redisplay-dont-pause to t during the redisplay.
2269 in case input is pending.
2270
2271 * dispnew.c (Qredisplay_dont_pause): New variable.
2272 (syms_of_display): Initialize and staticpro it.
2273 (update_frame_1): Don't interrupt the display for pending input if
2274 redisplay_dont_pause is set.
2275
43028b7e
GM
2276 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
2277
41e757a6
GM
2278 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
2279
2f2174fa
KH
22802000-08-09 Miles Bader <miles@lsi.nec.co.jp>
2281
2282 * callproc.c (Fcall_process): Terminate the unwind-protect around
2283 the post-read-conversion of coding system.
2284
0a6fd67e
MB
2285 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
2286 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
2287 * buffer.h (overlays_at): Update prototype.
2288 * xdisp.c (next_overlay_change): Update call to overlays_at.
2289 * xfaces.c (face_at_buffer_position): Likewise.
2290 * textprop.c (Fget_char_property): Likewise.
2291 * xterm.c (note_mouse_highlight): Likewise.
2292
0c80756e
MB
2293 * minibuf.c (do_completion): Don't consider a simple change of
2294 case as `completion'.
2295
975f250a
KR
22962000-08-08 Ken Raeburn <raeburn@gnu.org>
2297
b347b3fd
KR
2298 * keyboard.c (syms_of_keyboard): Initialize
2299 last_point_position_buffer.
2300 * undo.c (record_delete): Make sure last_point_position_buffer is
2301 a buffer before comparing pointers.
2302
2303 * coding.h (decode_coding_string): Declare.
2304
2305 * intervals.h (Fprevious_single_char_property_change): Declare.
2306
2307 * textprop.c (Fprevious_single_char_property_change): Don't do
2308 arithmetic directly on lisp objects.
2309
25ad1371 2310 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
2311 objects.
2312
2313 * keyboard.h (menu_item_eval_property): Declare.
2314
2315 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
2316 reuse as buffer name, instead of recreating (and discarding) every
2317 time a message is logged.
2318 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
2319 (current_message_1, truncate_message_1, set_message_1)
2320 (display_echo_area_1, resize_mini_window_1): Signatures changed.
2321 (current_message, truncate_echo_area, display_echo_area)
2322 (resize_echo_area_axactly): Changed calls.
b347b3fd 2323
975f250a 2324 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 2325 Lisp object.
975f250a 2326 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 2327 must be an integer, not a Lisp object.
975f250a 2328
46dc9912
KH
23292000-08-08 Kenichi Handa <handa@etl.go.jp>
2330
2331 * charset.c (Fchar_width): Doc fix.
2332
9f6d1a6c
GM
23332000-08-08 Gerd Moellmann <gerd@gnu.org>
2334
2335 * charset.c (Fstring_width): Doc fix.
2336
ff3d9573
GM
23372000-08-07 Gerd Moellmann <gerd@gnu.org>
2338
41e757a6 2339 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
2340 line, clear ascent and descent members of the iterator structure;
2341 the height of the continued line does not affect the height of the
2342 continuation line.
2343 (make_cursor_line_fully_visible): Do nothing if cursor is on a
2344 line taller than the window.
2345 (redisplay_window) <forced window start>: Handle case that the
2346 middle of the window is not found in any row.
2347 (dump_glyph_row): Show more information.
2348 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
2349 first text line in a glyph matrix.
2350
2351 * xterm.c (x_draw_image_foreground): Avoid drawing outside
2352 of the clip area when image doesn't have a mask.
2353
70fc58b3
GM
2354 * fns.c (sweep_weak_table): Fix survival conditions for
2355 key-or-value and key-and-value weakness.
2356
2357 * .gdbinit (xhashtable): New command.
2358
ac0e96ee
GM
2359 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
2360 tables out of the list of all weak hash tables.
2361
ff3d9573
GM
2362 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
2363 a new buffer is created, make sure echo_area_buffer[] references
2364 the new buffer.
2365
e0d8827b
EZ
23662000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
2367
2368 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
2369 the doc string.
2370
c6f35378
KH
23712000-08-07 Kenichi Handa <handa@etl.go.jp>
2372
2373 * syntax.c (skip_chars): Fix previous change. Make the handling
2374 of unibyte string consistent with that of regex search.
2375
1fd4c450
GM
23762000-08-05 Gerd Moellmann <gerd@gnu.org>
2377
e49aa397
GM
2378 * xmenu.c (popup_get_selection): Use xfree instead of free.
2379
2380 * fileio.c (Finsert_file_contents): Use xfree instead of free.
2381
2382 * editfns.c (Ftranspose_regions): Use xfree instead of free.
2383
2384 * callproc.c (child_setup): Use xfree instead of free.
2385
2386 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
2387 instead of malloc.
2388 (run_mac_command, closedir): Use `xfree' instead of `free'.
2389
2390 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
2391
2392 * eval.c (error): Use xfree instead of free.
2393
1fd4c450
GM
2394 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
2395
2396 * fns.c: Replace `illegal' with `invalid'.
e49aa397 2397 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 2398
82d497fc
KH
23992000-08-05 Kenichi Handa <handa@etl.go.jp>
2400
2401 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
2402 conversion.
2403
59f953a2
NF
24042000-08-04 Noah Friedman <friedman@splode.com>
2405
2406 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
2407 docstring.
2408
688351f2
GM
24092000-08-04 Gerd Moellmann <gerd@gnu.org>
2410
2411 * syntax.c (skip_chars): Fix typo in error message.
2412
2dad51cc
AS
24132000-08-04 Andreas Schwab <schwab@suse.de>
2414
2415 * m/ia64.h: Moved from s/ia64.h.
2416
99bb2c60
KH
24172000-08-04 Kenichi Handa <handa@etl.go.jp>
2418
082a1df2
KH
2419 * process.c (read_process_output): Big simplification. Handle
2420 composition and post-read-conversion of coding system correctly.
2421 (send_process): Handle composition correctly.
2422
2423 * callproc.c (Fcall_process): Handle post-read-conversion of
2424 coding system if any.
2425
99bb2c60
KH
2426 * coding.c (decode_coding_iso2022): More strict check for handling
2427 single shifting.
082a1df2
KH
2428 (coding_restore_composition): Pay attention to the case that
2429 cmp_data is not set properly (because of invalid code in the
2430 source text).
2431 (run_pre_post_conversion_on_str): Include text properties in the
2432 resulting string.
2433 (decode_coding_string): Set members of coding correctly.
99bb2c60 2434
f4988be7
GM
24352000-08-03 Gerd Moellmann <gerd@gnu.org>
2436
2437 * s/ia64.h: New file.
2438
2439 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
2440 Use NULL instead of 0 at the end of variable argument list of
2441 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
2442 sizeof (int) < sizeof (void *).
2443
2444 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
2445 of variable argument lists of XtVaGetValues and XtVaSetValues.
2446
2447 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
2448 variable argument lists of XtVaGetValues and XtVaSetValues.
2449
ead53494
GM
24502000-08-02 Gerd Moellmann <gerd@gnu.org>
2451
2452 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
2453 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
2454
2455 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
2456 prototype.
2457
2458 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
2459 in call to Fsingle_key_description.
2460
2461 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
2462 Callers changed.
2463
24642000-08-02 Colin Walters <walters@cis.ohio-state.edu>
2465
2466 * window.c (display_buffer_reuse_frames): New variable.
2467 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
2468 frames displaying BUFFER.
2469 (syms_of_window): Define Lisp variable
2470 display-buffer-reuse-frames.
2471
10b0f752
MB
24722000-08-01 Miles Bader <miles@gnu.org>
2473
2474 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
2475 when to constrain NEW_POS (they were pretty screwed up before).
2476
16425c4a
EZ
24772000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
2478
2479 * msdos.c (run_msdos_command): Save and restore the master
2480 environment, for the case that child_setup signals an error.
2481 When mirroring slashes in DOS shell commands, don't fail when
2482 argv[2] has embedded blanks.
da288c14
EZ
2483 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
2484 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
2485 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
2486
2487 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
2488 using alloca; free it after run_msdos_command returns.
2489
27f73852
DL
24902000-07-27 Dave Love <fx@gnu.org>
2491
2492 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
2493 define.
2494 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
2495 working.
2496
2497 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
2498
c0261b5e
EZ
24992000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
2500
2501 * editfns.c (lisp_time_argument): Fix last change.
2502
b548072f
GM
25032000-07-27 Gerd Moellmann <gerd@gnu.org>
2504
3ab82477
GM
2505 * fns.c (Fdelete): Make it work on vectors and strings in addition
2506 to lists.
2507
b548072f
GM
2508 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
2509 (syms_of_fns): Initialize new variables.
2510 (sweep_weak_table): Handle weakness `key-or-value' and
2511 `key-and-value'.
2512 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
2513 weakness, with t meaning the same as `key-and-value'.
2514
91ae8751
KH
25152000-07-27 Kenichi Handa <handa@etl.go.jp>
2516
2517 * coding.h (struct coding_system): Member safe_charset deleted.
2518
2519 * coding.c (Qsafe_charsets): This variable deleted.
2520 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
2521 variables.
2522 (coding_safe_chars): New function.
2523 (CODING_SAFE_CHAR_P): New macro.
2524 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
2525 checking safe_charsets member of the coding system. Caller
2526 changed.
2527 (detect_coding_iso2022): New local variable safe_chars.
2528 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
2529 safe_charsets member of the coding system.
2530 (decode_coding_iso2022): New local variable safe_chars.
2531 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
2532 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
2533 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
2534 (ENCODE_UNSAFE_CHARACTER): New macro.
2535 (encode_coding_iso2022): New local variable safe_chars. Check
2536 unsafe chars.
2537 (setup_coding_system): Delete the code to initialize
2538 coding->safe_charses
2539 (intersection, find_safe_codings): New functions.
2540 (Ffind_coding_systems_region_internal): New function.
2541 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
2542 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
2543 variable and initialize it.
2544
2545 * fns.c (char_table_ref_and_index): New function.
2546
2547 * lisp.h (char_table_ref_and_index): Add prototype.
2548
34a7a267
SS
25492000-07-26 Sam Steingold <sds@gnu.org>
2550
2551 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 2552 (Ffloat_time): New built-in Lisp function.
34a7a267 2553
a95cb10a
GM
25542000-07-26 Gerd Moellmann <gerd@gnu.org>
2555
3353ef5a
GM
2556 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
2557 for the character code.
2558
2559 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
2560 GNU/Linux.
2561
a95cb10a
GM
2562 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
2563 if called for a popup menu.
2564 (xmenu_show): Store help string in widget values.
2565
b4a12321
DL
25662000-07-26 Dave Love <fx@gnu.org>
2567
2568 * syswait.h: Move some definitions.
2569 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
2570 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
2571 perspicuous definitions.
2572 (WTERMSIG): Fix bit pattern used.
2573
13f5ad37
KH
25742000-07-26 Kenichi Handa <handa@etl.go.jp>
2575
2576 * print.c (print_object): If vector printing is truncated, print
2577 "..." to indicate it as well as the case of list printing.
2578
070fe99c
GM
25792000-07-25 Gerd Moellmann <gerd@gnu.org>
2580
969065c3
GM
2581 * xdisp.c (next_element_from_display_vector): Improve comments.
2582
2583 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
2584 for the character code, and the rest for the face id as in 20.x.
2585 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
2586
2587 * window.c (window_display_table): Cleaned up.
2588
070fe99c
GM
2589 * syntax.c (Fforward_word): Add last arg nil in call of
2590 Fconstrain_to_field.
2591
bad77ef7
EZ
25922000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
2593
969065c3 2594 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
2595 identical but for the letter-case, don't call
2596 barf_or_query_if_file_exists.
2597
c28da489
MB
25982000-07-25 Miles Bader <miles@gnu.org>
2599
2600 * editfns.c (find_field): Honor special `boundary' fields.
2601 (Qboundary): New variables.
2602 (syms_of_editfns): Initialize Qboundary.
2603 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
2604 Use scan_buffer instead of find_before_next_newline, because it
2605 allows us to detect the boundary case where there's a newline at
2606 the search limit.
2607 * lisp.h (Fconstrain_to_field): Update external declaration.
2608
e3c31fd5
GM
26092000-07-24 Gerd Moellmann <gerd@gnu.org>
2610
2611 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
2612 if that is nil.
c28da489 2613
c66c29a2
DL
26142000-07-24 Dave Love <fx@gnu.org>
2615
2616 * s/sunos4-0.h, s/sol2.h:
2617 (LIBS_TERMCAP): Move from m/sparc.h.
2618
2619 * m/sparc.h (TERMINFO): Moved to system files (probably only
2620 relevant for sunos4 judging by its vintage).
2621 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
2622 __arch64__.
2623
fbe0a958
EZ
26242000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
2625
2626 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
2627 name to single_keymap_panes.
2628
7d88e5c9
AS
26292000-07-24 Andreas Schwab <schwab@suse.de>
2630
2631 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
2632
e024b101
GM
26332000-07-24 Gerd Moellmann <gerd@gnu.org>
2634
2635 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
2636 parameters instead of using int parameters. Expect FN to accept
2637 EMACS_INT parameters.
2638 (display_echo_area, resize_echo_area_axactly, current_message)
2639 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
2640 with new argument list.
2641 (resize_mini_window_1): New callback function.
2642 (current_message_1, truncate_message_1, set_message_1): Change
2643 parameter lists to the new format expected by
2644 with_echo_area_buffer.
2645
25c1a9ce
KH
26462000-07-24 Kenichi Handa <handa@etl.go.jp>
2647
2648 * fontset.c (fontset_ref): Remove INLINE declaration.
2649 (fontset_ref_via_base): Likewise.
2650 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
2651 to downcase.
2652
7f987ac0
EZ
26532000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
2654
2655 * msdos.c (IT_note_mouse_highlight): Process overlays in the
2656 correct order of priority. If help echo was found in an overlay,
2657 use that overlay as the object in which the help echo was found.
2658
e2db3069
MB
26592000-07-22 Miles Bader <miles@gnu.org>
2660
2661 * textprop.c (Fprevious_single_char_property_change): The initial
2662 property value should be from the position preceding POSITION, not
2663 following it.
2664
5e3203e4
EZ
26652000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
2666
2667 * coding.c (syms_of_coding): Doc fix for
2668 inhibit-iso-escape-detection.
2669
62145073
GM
26702000-07-21 Gerd Moellmann <gerd@gnu.org>
2671
c20aeb83
GM
2672 * xterm.c (note_mouse_highlight): Process overlays in the right
2673 order of priority.
34a7a267 2674
743934db
GM
2675 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
2676
2677 * xterm.c (note_mouse_highlight): If help-echo was found in an
2678 overlay, use that overlay as the object in which the help was
2679 found.
2680
d1dc7e43 2681 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 2682
62145073
GM
2683 * window.c (foreach_window): Instead of a fake variable argument
2684 list, take one USER_DATA argument.
2685 (foreach_window_1): Likewise, and call callback functions with two
2686 args, the window and USER_DATA.
2687 (struct check_window_data): New struct.
2688 (check_window_containing): Use it.
2689 (window_from_coordinates): Set up a struct check_window_data for
2690 foreach_window.
2691 (add_window_to_list, freeze_window_start): Change parameters
2692 according to new calling convention.
2693
2694 * window.h (foreach_window): Change prototype.
2695
2696 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
2697
26982000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
2699
2700 * xmenu.c (menu_help_callback): Call show_help_echo with
2701 additional arguments OBJECT and POS.
2702
11270583
KH
27032000-07-21 Kenichi Handa <handa@etl.go.jp>
2704
07b14857
KH
2705 * data.c (Faset): Allow storing any multibyte character in a
2706 string. Convert unibyte string to multibyte if necessary.
2707
11270583
KH
2708 * xfns.c (x_encode_text): New function.
2709 (x_set_name): Use x_encode_text.
2710 (x_set_title): Likewise.
2711
2712 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
2713
2714 * xterm.h (x_encode_text): Add prototype.
2715
bc75b4fd
DL
27162000-07-20 Dave Love <fx@gnu.org>
2717
2718 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
2719 xfree, not free.
2720
48c14970
EZ
27212000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
2722
2723 * msdos.c (help_echo_window): New variable.
2724 (syms_of_msdos): Initialize and staticpro it.
2725 (IT_note_mode_line_highlight): Set help_echo_window.
2726 (IT_note_mouse_highlight): Ditto.
2727 (dos_rawgetc): Store help_echo_window in the second event produced
2728 for HELP_EVENTs.
2729
2730 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
2731 Record the object that generated the help echo and the position of
2732 that object in help_echo_object and help_echo_pos. Record that
2733 some glyphs in a row are displayed in mouse-face.
2734 (IT_update_begin): Don't clear mouse highlight unless one of the
2735 enabled glyph rows is marked as being displayed in mouse-face.
2736 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
2737 and position recorded in help_echo_object and help_echo_pos to the
2738 event queue.
2739 (IT_menu_display): Accept a new argument PN: the pane number of
2740 the current menu pane. Record the pane number and the item
2741 number of the item which has associated help string.
2742 (XMenuActivate): Update the prototype for help_callback in
2743 function declaration. Call IT_menu_display with the current menu
2744 pane number as an additional argument. Call help_callback with
2745 two additional arguments: the pane number and the item number of
2746 the menu item associated with the help text.
2747 (help_echo_object, help_echo_pos): New variables.
2748 (syms_of_msdos): Initialize them and staticpro help_echo_object.
2749
2750 * msdos.h (XMenuActivate): Update prototype.
2751
4279296d
GM
27522000-07-19 Gerd Moellmann <gerd@gnu.org>
2753
47db06aa
GM
2754 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
2755 Add some more prototypes.
2756
2757 * xterm.c, xterm.h: Add some more prototypes.
2758
2759 * lisp.h (Fnext_single_char_property_change): Add prototype.
2760
2761 * dispnew.c (direct_output_for_insert): Remove confusing
2762 outer local variable mouse_face_overwritten_p.
2763 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
2764
4279296d
GM
2765 * alloc.c (allocate_string_data): Don't copy old string contents.
2766
670acd62
KH
27672000-07-19 Kenichi Handa <handa@etl.go.jp>
2768
2769 * coding.c (code_convert_region): Delete text properties before
2770 shrinking the conversion region.
2771
7cea38bc
GM
27722000-07-18 Gerd Moellmann <gerd@gnu.org>
2773
dc1cac59
GM
2774 * dispnew.c (update_text_area): Write the whole row if it
2775 has mouse-face in it.
2776
85a8aca9
GM
2777 * xfaces.c (face-alternative-font-family-alist): Remove
2778 DEFVAR_LISP; staticpro instead.
2779
34a7a267 2780 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
2781 new arguments.
2782
2783 * keyboard.c (show_help_echo): Add parameter WINDOW.
2784 (read_char): Call show_help_echo with window extracted from Lisp
2785 help event.
2786 (gen_help_event): Add parameter WINDOW.
2787
2788 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
2789
2790 * xterm.c (help_echo_window): New variable.
2791 (note_mouse_highlight, note_tool_bar_highlight): Set
2792 help_echo_window.
2793 (XTread_socket): Pass help_echo_window to gen_help_event.
2794 (syms_of_xterm): Initialize and staticpro help_echo_window.
2795
f8276b77
DL
27962000-07-18 Dave Love <fx@gnu.org>
2797
2798 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
2799 systime.h.
2800
088831a6
GM
28012000-07-18 Gerd Moellmann <gerd@gnu.org>
2802
3d6cd763
GM
2803 * alloc.c (allocate_string_data): If string had already data
2804 assigned, copy old contents to new string data.
2805
2806 * coding.c (syms_of_coding): Fix typo in spelling of variable
2807 `inhibit-iso-escape-detection'.
2808
088831a6
GM
2809 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
2810
2811 * Makefile.in: Add dependencies on dispextern.h.
2812 (alloca.o): Don't define malloc and define EMACS_FREE instead of
2813 `free'; both can conflict with system header files.
2814
bc8a8d55
KH
28152000-07-18 Kenichi Handa <handa@etl.go.jp>
2816
2817 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
2818 undefined.
2819
069f5950
DL
28202000-07-18 Dave Love <fx@gnu.org>
2821
2822 * window.c (Fwindow_list): Declare arg `window'.
2823
aa96c820
KH
28242000-07-18 Kenichi Handa <handa@etl.go.jp>
2825
2826 * coding.c (setup_coding_system): Don't override the explicitly
2827 specified designations.
2828
06be8d32
MB
28292000-07-15 Miles Bader <miles@gnu.org>
2830
2831 * editfns.c (char_property_eq, char_property_stickiness): Renamed
2832 from `text_property_eq' and `text_property_stickiness', respectively.
2833 (find_field, Fconstrain_to_field, char_property_eq)
2834 (char_property_stickiness): Changed to call char-property functions
2835 instead of text-property-only ones.
2836
2837 * textprop.c (Fnext_single_char_property_change): Made a subr (was
2838 `next_single_char_property_change'). Do more error checking, and
2839 cleanup limit behavior.
2840 (Fprevious_single_char_property_change): New function.
2841 (syms_of_textprop): Initialize new subrs.
2842
2843 * xdisp.c (display_prop_end, invisible_text_between_p):
2844 Call Fnext_single_char_property_change instead of
2845 next_single_char_property_change.
2846
3fddcdc3
JR
28472000-07-15 Jason Rumney <jasonr@gnu.org>
2848
2849 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
2850 after menu is finished with.
2851 (add_menu_item): Only consider wv->title as a menu title.
2852 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
2853
2854 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
2855 null title.
2856 (FONT_REGEXP): Remove unused macro, and its sub-components.
2857 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
2858
2859 * w32term.c (help_echo_object, help_echo_pos): New variables.
2860 (note_mode_line_highlight): Store additional information about the
2861 help-echo in help_echo_object and help_echo_pos. Check both
2862 `local-map' and `keymap' properties for changing the cursor
2863 (note_mouse_highlight): Store additional information about the
2864 help-echo in help_echo_object and help_echo_pos.
2865 (note_tool_bar_highlight): Set help_echo_object to nil and
2866 help_echo_pos to -1.
2867 (w32_read_socket): Use gen_help_event instead of filling
2868 input_events manually.
2869 (syms_of_w32term): Staticpro help_echo_object.
2870 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
2871 set, arrange for a mouse-highlight redisplay in
2872 XTframe_up_to_date.
2873 (x_clear_mouse_face): New function.
2874 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
2875 (x_update_window_begin): No need to turn off the mouse
2876 highlight here.
2877 (show_mouse_face): Set the mouse_face_p flag of glyph rows
2878 depending on whether they contain glyphs highlighted in
2879 mouse-face.
2880 (x_fill_stretch_glyph_string): Consume runs of stretch
2881 glyphs instead of a single one.
2882 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
2883 with new argument list.
2884 (x_set_glyph_string_gc): Make sure the face's GC is valid.
2885 (x_append_glyph, x_append_composite_glyph)
2886 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
2887 changes in struct glyph starting 1999-12-27. See comments for
2888 xterm.c on 2000-07-05.
2889
178c5d9c
SS
28902000-07-14 Sam Steingold <sds@gnu.org>
2891
2892 * xfaces.c (realize_x_face): Fix the last patch:
2893 check `default_face' before dereferencing.
2894
6fe533f6
DL
28952000-07-14 Dave Love <fx@gnu.org>
2896
069f5950 2897 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 2898
dd7b81cf
KH
28992000-07-14 Kenichi Handa <handa@etl.go.jp>
2900
0693904a 2901 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 2902 default_face's fontset, not using the default fontset.
0693904a 2903
dd7b81cf
KH
2904 * coding.c (inhibit_iso_escape_detection): New variable.
2905 (syms_of_coding): Make it a Lisp variable.
2906 (detect_coding_iso2022): If inhibit_iso_escape_detection is
2907 nonzero, ignore ISO2022's escape sequence.
2908
d5aa31d8
GM
29092000-07-14 Gerd Moellmann <gerd@gnu.org>
2910
e5acf0ca
GM
2911 * alloca.c (malloc) [emacs]: Define as xmalloc.
2912
bd23a692
GM
2913 * xfns.c (Fx_show_tip): If frame parameters contain a position,
2914 use that instead of the mouse position. Add parameters DX and DY.
2915
2916 * dispextern.h (Fx_show_tip): Adjust number of parameters
2917 in prototype.
2918
9662da0b
GM
2919 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
2920 if HELP is a function, call it with OBJECT and POS as parameters
2921 to get the help to display.
2922 (gen_help_event, kbd_buffer_store_help_event): New functions.
2923 (kbd_buffer_get_event): Construct the Lisp help-event differently.
2924 (read_char): Call show_help_echo with new parameters.
2925
178c5d9c 2926 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
2927 Add prototypes.
2928
2929 * xterm.c (help_echo_object, help_echo_pos): New variables.
2930 (note_mode_line_highlight): Store additional information about the
2931 help-echo in help_echo_object and help_echo_pos. Check both
2932 `local-map' and `keymap' properties for changing the cursor
2933 (note_mouse_highlight): Store additional information about the
2934 help-echo in help_echo_object and help_echo_pos.
2935 (note_tool_bar_highlight): Set help_echo_object to nil and
2936 help_echo_pos to -1.
2937 (XTread_socket): Use gen_help_event instead of filling
2938 input_events manually.
2939 (syms_of_xterm): Staticpro help_echo_object.
2940
2941 * xmenu.c (menu_highlight_callback): Use
2942 kbd_buffer_store_help_event instead of setting up and input_event
2943 structure manually.
2944
2945 * xdisp.c (eval_form): GCPRO argument sexpr.
2946 (call_function): New function.
2947 (handle_single_display_prop): Use call_function and FUNCTIONP
2948 instead of checking whether if font_height is a symbol and
2949 using eval_form.
2950
2951 * eval.c (internal_condition_case_2): New function.
2952
2953 * lisp.h (FUNCTIONP): New macro.
2954 (internal_condition_case_2, call_function): Add prototypes.
2955
d5aa31d8
GM
2956 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
2957 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
2958 Always set `arg' member of input_events.
2959 (construct_menu_click): Unused function removed.
2960
2961 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
2962
2963 * w32term.c (construct_mouse_click, construct_mouse_wheel)
2964 (construct_drag_n_drop, x_scroll_bar_handle_click)
2965 (w32_read_socket): Always set `arg' member of input_events.
2966
2967 * keyboard.c (show_help_echo): Use eval_form. Add comment.
2968
2969 * lisp.h (eval_form): Add prototype.
2970
2971 * xdisp.c (eval_form): Make it externally visible.
2972
0f1a9b23
GM
29732000-07-13 Gerd Moellmann <gerd@gnu.org>
2974
2975 * xterm.c (x_handle_tool_bar_click): Store the frame in the
2976 frame_or_window slot of TOOL_BAR_EVENT input events instead of
2977 consing. For prefix events, store the frame in the `arg' slot of
2978 the event, otherwise store the key there.
2979 (XTread_socket): Instead of consing, use the frame_or_window slot
2980 of HELP_EVENTs for the frame, and the `arg' slot for the help
2981 string.
2982
2983 * xmenu.c (menu_highlight_callback): Store help string in the
2984 `arg' member of the input event; don't cons.
2985 (menubar_selection_callback): Use the `arg' slot of input events
2986 to queue additional information, instead of consing.
2987
2988 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
2989
2990 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
2991 TOOL_BAR_EVENTs.
2992 (w32_read_socket): Adapt to changes in HELP_EVENTs.
2993
2994 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
2995 input events to queue additional information, instead of consing.
2996
2997 * keyboard.c (kbd_buffer_gcpro): Renamed from
2998 kbd_buffer_frame_or_window. Now used for all Lisp objects
2999 referenced from the input queue.
3000 (kbd_buffer_store_event): Always use structure assignment for
3001 copying input events. Record all Lisp objects referenced from
3002 events in kbd_buffer_gcpro.
3003 (kbd_buffer_get_event): Construct Lisp `help-echo' events
3004 differently from input events. Test for prefix menu_bar_events
3005 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
3006 event in kbd_buffer_gcpro to nil.
3007 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
3008 frame_or_window is equal to its arg member as prefix events.
3009 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
3010 used by an input event to nil.
3011 (init_keyboard): Use two times the size of the input queue
3012 for kbd_buffer_gcpro.
3013 (syms_of_keyboard): Likewise.
3014
3015 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
3016 USER_SIGNAL_EVENT.
3017
3018 * termhooks.h (struct input_event): Add member `arg'.
3019 (MENU_BAR_EVENT): Renamed from menu_bar_event.
3020 (USER_SIGNAL_EVENT): Renamed from user_signal.
3021
3022 * xfaces.c (ASET): Remove definition.
3023
3024 * lisp.h (AREF, ASET, ASIZE): New macros.
3025
3026 * fontset.c (AREF, ASIZE): Remove definitions.
3027
3028 * fns.c (AREF): Remove definition.
178c5d9c 3029
0f1a9b23
GM
3030 * composite.c (AREF): Remove definition.
3031
712eaef2
GM
30322000-07-12 Gerd Moellmann <gerd@gnu.org>
3033
d8ee7803
GM
3034 * dispnew.c (redraw_overlapped_rows): Add missing local.
3035 (scrolling_window): Remove debug code.
3036
712eaef2
GM
3037 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
3038 Before scrolling, turn off a mouse-highlight in the window
3039 being scrolled.
3040
3041 * xterm.c (x_update_window_end): Add parameter
3042 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
3043 redisplay in XTframe_up_to_date.
3044 (x_clear_mouse_face): New function.
3045 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
3046
3047 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
3048 current glyph row.
3049 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
3050 it when any row is written to that contains glyphs highlighted in
3051 mouse-face.
3052 (update_window): Call the window update end hook with new
3053 parameter MOUSE_FACE_OVERWRITTEN_P.
3054 (direct_output_for_insert): Give up if row contains mouse-face.
3055
3056 * dispextern.h (struct redisplay_interface): Add parameter
3057 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
3058 (clear_mouse_face): New function pointer member.
3059
02010917
SM
30602000-07-11 Stefan Monnier <monnier@cs.yale.edu>
3061
3062 * syntax.c (back_comment): Use one switch rather than a few `if's.
3063 Obey open_paren_in_column_0_is_defun_start.
3064 When reverting to the `slow' method, try to nicely handle the case
3065 of nested comments by checking that the comment-starter we found
3066 does indeed match the comment-ender.
3067 (scan_sexps_forward, scan_sexps_forward):
3068 Ignore excessive opening parenthesis rather than throwing an error.
3069
d76c03ea
GM
30702000-07-11 Gerd Moellmann <gerd@gnu.org>
3071
3072 * doc.c (Fsubstitute_command_keys): Handle case that a GC
3073 in Fwhere_is_internal or get_keymap_1 relocates string contents.
3074
3075 * dispnew.c (direct_output_forward_char): Give up if currently
3076 displaying a message instead of the minibuffer contents.
3077
3078 * xterm.c (x_update_window_begin): No need to turn off the mouse
3079 highlight here.
3080 (show_mouse_face): Set the mouse_face_p flag of glyph rows
3081 depending on whether they contain glyphs highlighted in
3082 mouse-face.
3083
3084 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
3085 compare the mouse_face_p flags of both rows.
3086
3087 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
3088
d55ead18
EZ
30892000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
3090
3091 * keyboard.c (show_help_echo): Accept additional parameter
3092 ok_to_overwrite_keystroke_echo.
3093 (read_char): Call show_help_echo with a zero
3094 ok_to_overwrite_keystroke_echo argument.
3095 * keyboard.h (show_help_echo): Update prototype of
3096 show_help_echo.
3097 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
3098 ok_to_overwrite_keystroke_echo argument.
3099 * w32menu.c (w32_menu_display_help): Call show_help_echo with
3100 non-zero ok_to_overwrite_keystroke_echo argument.
3101
df75b1a3
GM
31022000-07-10 Gerd Moellmann <gerd@gnu.org>
3103
4b92c49a
GM
3104 * xdisp.c (try_window_id): If changes are all below what is
3105 displayed in the window, and point is in the window, we still
3106 might have to find point on the display.
3107
3108 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
3109 glyphs instead of a single one.
3110 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
3111 with new argument list.
3112 (x_set_glyph_string_gc): Make sure the face's GC is valid.
3113
df75b1a3
GM
3114 * keymap.c (get_keymap_1): Add comment that this function can GC.
3115 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
3116 comment that functions can GC.
3117 (Fset_keymap_parent): GCPRO arg KEYMAP.
3118
4314cf3e
EZ
31192000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
3120
3121 * msdos.c (XMenuActivate): After exiting the menu, restore the
3122 echo area message and erase it.
3123
ab49ce15
KH
31242000-07-10 Kenichi Handa <handa@etl.go.jp>
3125
3126 * fontset.c (Ffontset_info): Make the return value more compatible
3127 with that of Emacs 20.
3128
090a072f
GM
31292000-07-07 Gerd Moellmann <gerd@gnu.org>
3130
3131 * eval.c (Fsignal): Handle case that backtrace_list is null.
3132
f92de4a6
KH
31332000-07-07 Kenichi Handa <handa@etl.go.jp>
3134
3135 * ccl.c (Fccl_execute): Typo fixed.
3136
dd8888a1
GM
31372000-07-06 Gerd Moellmann <gerd@gnu.org>
3138
e5c81191 3139 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 3140
dd8888a1
GM
3141 * window.c (Fwindow_list): Reverse list at the end.
3142 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
3143 means allow windows on OWINDOW's frame, only.
3144 (window_loop): Simplified; use Fwindow_list.
3145
3146 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
3147
485266d0
GM
31482000-07-05 Gerd Moellmann <gerd@gnu.org>
3149
3150 * xterm.c (XTread_socket): Increment handling_signal at the start,
3151 decrement it at the end.
3152
3153 * eval.c (handling_signal): New variable.
3154 (Fsignal): Abort if handling_signal is non-zero.
3155
3156 * lisp.h (handling_signal): External declaration.
178c5d9c 3157
485266d0
GM
3158 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
3159
80fcd514
KR
31602000-07-05 Ken Raeburn <raeburn@gnu.org>
3161
3162 Sound support for NetBSD through "Linux emulation" support:
3163 * config.in (HAVE_SOUNDCARD_H): Undef.
3164 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
3165 * Makefile.in (LIBSOUND): New variable.
3166 (LIBES): Include it.
3167 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
3168 <soundcard.h>.
3169 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
3170 elsewhere.
3171 (vox_open): Use DEFAULT_SOUND_DEVICE.
3172 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
3173
d5c5cddd
GM
31742000-07-05 Gerd Moellmann <gerd@gnu.org>
3175
3176 * print.c (print_error_message): If Vsignaling_function is set,
3177 show it in *Messages*.
3178
3179 * lisp.h (Vsignaling_function): External declaration.
3180
3181 * eval.c (Vsignaling_function): New variable.
3182 (Fsignal): Compute it.
3183 (syms_of_eval): Staticpro it.
3184
65171e3a
DL
31852000-07-05 Dave Love <fx@gnu.org>
3186
3187 * syswait.h: Use the autoconf recommended approach. Old code
3188 #if'd out in case we need to revert.
3189
178c5d9c 3190 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 3191
e2c46326
AI
31922000-07-05 Andrew Innes <andrewi@gnu.org>
3193
3194 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
3195 when non-NULL instead of __morecore, to take account of buffer
3196 memory. This also solves a problem with spurious memory warnings
3197 on Windows.
3198
3199 * ralloc.c: Make real_morecore non-static.
3200
3201 * eval.c (internal_condition_case): Comment out abort if
3202 interrupt_input_blocked is not zero.
3203
3204 * makefile.nt: Add support for `bootstrap' and related targets.
3205 Include minimal debug info in emacs.exe in release build.
3206 Remove all dependencies on lisp.h, and fixup some others.
3207
3208 * w32.c (init_environment): Install code from 20.7 for providing
3209 default values for environment variables, based on the
3210 executable's own location.
3211 (map_w32_filename): Handle filenames that are longer than
3212 MAX_PATH.
3213 (sys_socket): Install socket inheritance bug fix from 20.7.
3214
3215 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
3216 here via blockinput.h).
3217
a027a91b
SM
32182000-07-05 Stefan Monnier <monnier@cs.yale.edu>
3219
e4b31601
SM
3220 * w32menu.c (w32_menu_display_help):
3221 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
3222
3223 * keyboard.h (show_help_echo): Declare.
3224
3225 * keyboard.c (show_help_echo): New function, extracted from read_char.
3226 Feval its `msg' argument if it's a cons cell.
3227 (read_char): Use it.
4cf8d9d5 3228 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 3229
178c5d9c 3230 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 3231 (note_tool_bar_highlight, XTread_socket):
178c5d9c 3232 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
3233 (dos_rawgetc):
3234 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
3235 (note_tool_bar_highlight, w32_read_socket):
3236 Do not gratuitously ignore non-string `help-echo' properties.
3237
88d75730
GM
32382000-07-05 Gerd Moellmann <gerd@gnu.org>
3239
969f7e79
GM
3240 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
3241
71201b00
GM
3242 * window.c (delete_all_subwindows): Reset Vwindow_list.
3243
88d75730
GM
3244 * xterm.c (x_append_glyph, x_append_composite_glyph)
3245 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
3246 changes in struct glyph starting 1999-12-27. Some bit-fields of
3247 struct glyph were not set, which made glyphs unequal when compared
3248 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
3249 effects were the result. This also depended on the contents of
3250 memory returned by xmalloc. If flickering happens again, activate
3251 the code in clear_glyph_row that's in #if 0. If the flickering is
3252 gone with that, chances are that it is caused by something
3253 similar.
3254
3255 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 3256
88d75730
GM
3257 * dispextern.h: Add some comments.
3258
3259 * window.c (add_window_to_list): Add parameter LIST.
3260 (window_list): Order list so that, for each frame, windows are
3261 in canonical order, and so that frames appear in the list in
3262 the order given by Vframe_list.
3263 (next_window): Reverse the handling of NEXT_P.
3264
53654733
GM
32652000-07-04 Gerd Moellmann <gerd@gnu.org>
3266
87efd256
GM
3267 * window.c (Vwindow_list): New variable.
3268 (make_window, delete_window): Set Vwindow_list to nil.
3269 (check_window_containing): New function.
3270 (window_from_coordinates): Rewritten.
3271 (add_window_to_list, window_list, candidate_window_p)
3272 (decode_next_window_args, next_window): New functions.
3273 (Fnext_window, Fprevious_window): Rewritten in terms of
3274 next_window.
3275 (Fwindow_list): New function.
3276 (Fother_window): Cleaned up.
3277 (foreach_window): Add a longer "variable argument list". Let
3278 callback function return 0 to indicate that cycling over windows
3279 should stop.
3280 (foreach_window_1): Likewise.
3281 (freeze_window_start): Return int.
3282 (init_window): New function.
3283 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
3284
3285 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
3286 input_event with bzero.
3287 (main): Call init_window.
3288
53654733
GM
3289 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
3290 a menu filter.
3291
4a8c194f
KH
32922000-07-04 Kenichi Handa <handa@etl.go.jp>
3293
3294 * composite.h (make_composition_value_copy): Extern it.
3295
3296 * composite.c (make_composition_value_copy): New function.
3297
3298 * editfns.c (Fformat): While copying text properties, make each
3299 composition property value a copy.
3300
3301 * fns.c (concat): While copying text properties, make each
3302 composition property value a copy.
3303
831a6cb0
GM
33042000-07-03 Gerd Moellmann <gerd@gnu.org>
3305
2f516940
GM
3306 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
3307
178c5d9c 3308 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
3309 marked already.
3310
831a6cb0
GM
3311 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
3312 include those frames as candidates which have their focus
3313 redirected to the minibuffer frame.
3314
d9c4f922
SM
33152000-07-03 Stefan Monnier <monnier@cs.yale.edu>
3316
3317 * fns.c (Fputhash): Return `value' rather than nil.
3318
3780bc22
GM
33192000-06-30 Gerd Moellmann <gerd@gnu.org>
3320
97d176db
GM
3321 * frame.c (next_frame): Don't check focus redirection in case
3322 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
3323 unless their focus is redirected, which contradicts the
3324 specification of next-frame, and leads to infinite loops in
3325 certain situations when cycling through windows with next-window.
3326
dca9961d
KH
33272000-06-30 Kenichi Handa <handa@etl.go.jp>
3328
3329 * coding.c (code_convert_region): Even if the length of text is
3330 zero, try to convert it if coding->type is coding_type_ccl.
3331 (decode_coding_string, encode_coding_string): Likewise.
3332
d5483ab1
GM
33332000-06-28 Gerd Moellmann <gerd@gnu.org>
3334
af5c25e1 3335 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 3336 the display if windows_or_buffers_changed.
af5c25e1
GM
3337
3338 * dispnew.c (struct row_entry): New structure.
3339 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
3340 (row_table_size, old_lines, new_lines, old_lines_size)
3341 (new_lines_size, run_pool, runs_size, runs): New variables.
3342 (add_row_entry): New function.
3343 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 3344 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
3345 holding them in local variables. Use a larger hash table whose
3346 size depends on glyph matrix sizes. Don't use bzero to clear the
3347 hash table; instead, clear used slots only.
3348
3349 * fns.c (next_almost_prime): Make it externally visible.
3350
3351 * lisp.h (next_almost_prime): Add prototype.
3352
d5483ab1
GM
3353 * s/isc4-0.h (sigunblock): Define.
3354
3355 * s/sco5.h (sigunblock): Define.
3356
93e40f40
DL
33572000-06-27 Dave Love <fx@gnu.org>
3358
3359 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
3360 (moved to osf5-0.h).
3361 [!NOT_C_CODE]: Protect string.h stuff.
3362
3363 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
3364 (sys_siglist, NSIG): Definitions moved here from osf1.h.
3365
3c4b7685
GM
33662000-06-27 Gerd Moellmann <gerd@gnu.org>
3367
97d176db 3368 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
3369 below the last line from the needed window height.
3370
32cad0aa
SM
33712000-06-26 Stefan Monnier <monnier@cs.yale.edu>
3372
3373 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
3374 (Fwidget_get): Use it.
3375 (syms_of_fns): Defsubr it.
3376
2c69ced2
GM
33772000-06-26 Gerd Moellmann <gerd@gnu.org>
3378
178c5d9c 3379 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
3380 display info for XIM.
3381 (xim_open_dpy): Likewise.
3382 (xim_close_dpy): Don't free the display info's XIM.
3383
3384 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
3385
3386 * config.in (USE_XIM): New define.
3387
3fc720e4
GM
3388 * keymap.c (get_keyelt): For menu-items containing a `:filter
3389 FILTER', apply FILTER to the menu-item's definition to get the
3390 real definition to use.
3391
3392 * lisp.h (QCfilter): External declaration.
3393
2c69ced2
GM
3394 * xfns.c (Fimage_size): New function.
3395 (syms_of_xfns): Defsubr it.
3396
f978b2a2
AS
33972000-06-26 Andreas Schwab <schwab@suse.de>
3398
3399 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
3400 Fstring_as_unibyte.
3401
94cc7892
DL
34022000-06-25 Dave Love <fx@gnu.org>
3403
3404 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
3405 tgetnum.
3406
3407 * Makefile.in (blockinput.h): Depend on atimer.h.
3408 (atimer.h): Depend on systime.h.
3409
3410 * blockinput.h: Protect against multiple inclusion. Include
3411 atimer.h.
3412
3413 * atimer.h: Protect against multiple inclusion. Include
3414 systime.h.
3415
3416 * lisp.h (swap_in_global_binding): Declare.
3417
b8c24556
KR
34182000-06-24 Ken Raeburn <raeburn@gnu.org>
3419
3420 * process.c (Fopen_network_stream): Turn off atimers for duration
3421 of call to connect. (Patch from Gerd.)
3422
8cf8560b
DL
34232000-06-23 Dave Love <fx@gnu.org>
3424
511c7541
DL
3425 * ralloc.c: Maybe include unistd.h
3426
8cf8560b
DL
3427 * emacs.c (setgrp): Undefine before defining.
3428 (malloc_warning, set_time_zone_rule, index): Prototype.
3429
3430 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
3431 HAVE_STRUCT_TIMEZONE.
3432
3433 * s/osf1.h: Move string.h hack here from alpha.h and make it
3434 conditional.
3435 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
3436 _XOPEN_SOURCE.
3437 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
3438 (SOCKLEN_TYPE): Don't define.
3439
3440 * m/alpha.h: Remove string.h hack.
3441
3442 * s/osf5-0.h: New file.
3443
3444 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
3445 include time.h, done by systime.h.
3446 [__FreeBSD__]: Remove redundant includes.
3447
3fc720e4 3448 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
3449 (delete_temp_file): Return Qnil to avoid warning.
3450
3451 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
3452
3453 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
3454 HAVE_X_WINDOWS.
3455
3456 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
3457
3458 * composite.h (compose_text): Declare.
3459
3460 * xterm.c: Don't include sys/types.h unconditionally. Don't
3461 protect its inclusion with !USG (following xmenu.c).
3462
ea055732
GM
34632000-06-23 Gerd Moellmann <gerd@gnu.org>
3464
3465 * xfns.c (x_create_tip_frame): Initialize frame's colors like
3466 in x_create_frame.
3467
74b01b80
EZ
34682000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
3469
3470 * coding.c (decode_eol_post_ccl): Special handling for undecided
3471 and inconsistent EOL types.
3472
64f3a166
GM
34732000-06-22 Gerd Moellmann <gerd@gnu.org>
3474
16cf31f7
GM
3475 * xrdb.c (x_load_resources): Add default resource for scroll bar's
3476 trough color and main window's background color.
3477
178c5d9c 3478 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
3479 differently.
3480
3481 * xterm.h (Xt_app_con): External declaration.
3482
3483 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 3484
486a103d
GM
3485 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
3486
64f3a166
GM
3487 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
3488 (handle_invisible_prop): Record the start of invisible text in
3489 it->add_overlay_start.
3490 (struct overlay_entry): Add member `overlay'.
3491 (handle_overlay_change): Simplify.
3492 (next_overlay_string): After having processed overlay strings at the
3493 end of the buffer, record that fact in
3494 it->overlay_strings_at_end_processed_p.
3495 (compare_overlay_entries): If before- and after-strings come
3496 from the same overlay, let before-strings come first.
3497 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
3498 (load_overlay_strings): Take it->add_overlay_start into account
3499 when adding overlay strings.
3500
3501 * dispextern.h (struct it): Add member add_overlay_start.
3502
bb746ea6
DL
35032000-06-22 Dave Love <fx@gnu.org>
3504
3505 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
3506
3507 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
3508
a8f573f3
KH
35092000-06-22 Kenichi Handa <handa@etl.go.jp>
3510
3511 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
3512 is greater than 0.
3513
9f2bbc92
DL
35142000-06-21 Dave Love <fx@gnu.org>
3515
178c5d9c 3516 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 3517
3ee5041c
SM
35182000-06-21 Stefan Monnier <monnier@cs.yale.edu>
3519
3520 * syntax.c (back_comment): Simplify string-parity counting (with
3521 the added benefit of handling multiple string-styles as long as
3522 they are not intertwined).
3523 Jump to the slow code as soon as a comment starter is found in
3524 a "string_lossage" position. Fixes the case: " /* " /* " */.
3525
4c343001
DL
35262000-06-21 Dave Love <fx@gnu.org>
3527
3528 * Makefile.in: Use GETLOADAVG_LIBS.
3529
3530 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
3531 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
3532
e6365855
SM
35332000-06-20 Stefan Monnier <monnier@cs.yale.edu>
3534
3535 * syntax.c (describe_syntax): Recognize the `n'estable bit.
3536 (Fforward_comment, scan_lists):
3537 Check the comstyle of single-char comment-starters.
3538 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
3539 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
3540 Check the comstyle of single-char comment-starters.
3541 Clarify control-flow around the Scomment case.
e6365855 3542
5700d2cc
DL
35432000-06-20 Dave Love <fx@gnu.org>
3544
d355bd8a
SM
3545 * fns.c (make_hash_table, maybe_resize_hash_table):
3546 Cast arg of next_almost_prime.
5700d2cc 3547
178c5d9c 3548 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
3549
3550 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
3551 and unistd.h.
3552
4a27bdfb
GM
35532000-06-20 Gerd Moellmann <gerd@gnu.org>
3554
a61d762c
GM
3555 * keyboard.c (adjust_point_for_property): Check if display
3556 property should be treated as intangible by looking at its
3557 value.
3558
178c5d9c 3559 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
3560 (display_prop_intangible_p): New functions.
3561
3562 * dispextern.h (display_prop_intangible_p): Add prototype.
3563
3564 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 3565
4a27bdfb
GM
3566 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
3567 argument to sigprocmask.
3568
3569 * s/sco5.h (sigblock): Redefined to pass a pointer as second
3570 argument to sigprocmask.
3571
3572 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
3573 sigprocmask_set, and pass a pointer to it to sigprocmask.
3574
3575 * sysdep.c (sigprocmask_set): New variable.
3576
3577 * fileio.c (make_temp_name): Don't use `%s' in string passed to
3578 report_file_error.
3579
427ec082
SS
35802000-06-20 Sam Steingold <sds@gnu.org>
3581
3582 * xrdb.c: Don't declare xmalloc, xrealloc.
3583
8972fe79 35842000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
3585
3586 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
3587 (re_comp): Cast gettext return value to avoid complaints when
3588 !HAVE_LIBINTL.
3589
074b6efe
DL
35902000-06-20 Dave Love <fx@gnu.org>
3591
f85c008a
DL
3592 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
3593 HAVE_GETTIMEOFDAY.
3594
5700d2cc 3595 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 3596
d355bd8a 3597 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
3598
3599 * m/alpha.h: Don't declare xmalloc, xrealloc.
3600
0af4f205
DL
3601 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
3602
3603 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
3604
3605 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
3606
3607 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
3608 HAVE_GETWD.
3609
074b6efe
DL
3610 * keyboard.h (poll_for_input_1): Declare.
3611
3612 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
3613
3614 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
3615
3616 * doprnt.c: Don't declare xmalloc, xrealloc.
3617
3618 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
3619 (getenv, ctime, getwd): Removed.
3620 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
3621
3622 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
3623 x_set_tool_bar_lines.
3624
3625 * config.in: Add HAVE_GETWD. Move some definitions above
3626 machine/system includes.
3627
68a5e97b
KH
36282000-06-20 Kenichi Handa <handa@etl.go.jp>
3629
95417e1e
KH
3630 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
3631
68a5e97b
KH
3632 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
3633 contain information about ENCODING.
3634
3635 * fontset.c (FONTSET_ASCII): Use the first element of char table
3636 for an ASCII font, not defalt slot.
3637 (fontset_ref_via_base): If FONTSET doesn't contain information for
3638 C, try the default fontset.
3639 (make_fontset): Don't copy the default fontset.
3640 (fontset_font_pattern): Likewise.
3641 (accumulate_font_info): If ELT is nil, use the corresponding
3642 element in the default fontset.
3643
3b4fa1b2
DL
36442000-06-19 Dave Love <fx@gnu.org>
3645
943e731c
DL
3646 * syntax.c (Fparse_partial_sexp): Doc fix.
3647
3648 * regex.h: Test PROTOTYPES as well as __STDC__.
3649
3b4fa1b2
DL
3650 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
3651 errno, strerror. Put text after #endif in comment.
3652
3653 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
3654 pcc).
3655
3656 * xterm.c (x_frame_of_widget): Likewise.
3657
cdf0357b
GM
36582000-06-19 Gerd Moellmann <gerd@gnu.org>
3659
3660 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
3661 to Vfundamental_mode_abbrev_table.
3662
3663 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
3664 bogus objects are marked. This slows down GC by ~80 percent, but
3665 it might be worth trying when debugging GC-related problems.
3666 This feature requires conservative stack marking to be enabled.
3667
3668 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
3669 returns XLookupChars, reset `modifiers' to zero.
3670
998e9f8c
DL
36712000-06-19 Dave Love <fx@gnu.org>
3672
3673 * mktime.c: Unprotoized.
3674
18e21ce8 36752000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
3676
3677 * data.c (set_internal): If variable is frame-local,
3678 store the new value immediately into the frame parameter alist.
3679
140c4ac6
KR
36802000-06-19 Ken Raeburn <raeburn@gnu.org>
3681
14358466
KR
3682 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
3683 in the custom handler pointer.
3684
140c4ac6
KR
3685 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
3686 value, or checks for CHAR_META can fail when Lisp_Object is a
3687 union type.
3688 * keymap.c (get_keyelt): Likewise.
3689
10d7bf84
KH
36902000-06-19 Kenichi Handa <handa@etl.go.jp>
3691
3692 * ccl.h (struct ccl_program): New member eol_type.
3693 (struct ccl_spec): New member cr_carryover.
3694
3695 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
3696 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
3697
3698 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
3699 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
3700 (decode_eol_post_ccl): New function.
3701 (decode_coding): Don't detect EOL format here for CCL based coding
3702 systems.
3703 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
3704 decode_eol_post_ccl after running the CCL program.
3705 (code_convert_region): Don't detect EOL format here for CCL based
3706 coding systems.
3707 (decode_coding_string): Likewise.
3708
52e386c2
KR
37092000-06-18 Ken Raeburn <raeburn@gnu.org>
3710
3711 * charset.c (update_charset_table): Use XINT on "iso_final_char"
3712 when treating it as an integer.
3713
3714 * coding.h (encode_coding_string): Declare.
3715
3716 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
3717 it as an integer.
3718
3719 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
3720 "xkeymap" to avoid shadowing the "enum map_type" value that needs
3721 to be passed to get_local_map.
3722
3723 * sound.c (Fplay_sound): Don't call make_number on
3724 Frun_hook_with_args count argument.
3725
3726 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
3727 for lisp objects in X event structure data field, when lisp
3728 objects are represented with unions.
3729 (x_scroll_bar_to_input_event): Ditto.
3730
b357b9d4
KR
37312000-06-16 Ken Raeburn <raeburn@gnu.org>
3732
3733 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
3734 termination of string. Fix sense of test whether
3735 Vline_number_display_limit is an integer.
b357b9d4 3736
a871441d
GM
37372000-06-16 Gerd Moellmann <gerd@gnu.org>
3738
a9021acd
GM
3739 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
3740 only if HAVE_X_WINDOWS.
3741
6344985d
GM
3742 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
3743 of titles.
3744
427ec082 3745 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
3746 out of bounds.
3747
228b083e
EZ
37482000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
3749
3750 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
3751 of its headers.
3752
c25b53a2
KH
37532000-06-15 Kenichi Handa <handa@etl.go.jp>
3754
3755 * coding.c (decode_coding_emacs_mule): Always set src_base at the
3756 start of the while loop.
3757
a6981b11
GM
37582000-06-15 Gerd Moellmann <gerd@gnu.org>
3759
e9924e52
GM
3760 * atimer.c (alarm_signal_handler): Add forward declaration.
3761
a6981b11
GM
3762 * data.c (set_internal): Remove debug code.
3763
25fa6deb
GM
37642000-06-14 Gerd Moellmann <gerd@gnu.org>
3765
dce6b995
GM
3766 * Makefile.in (bootstrap-temacs): Add `-I../src'.
3767
9f817ea4
GM
3768 * unexec.c (toplevel) [COFF]: Include coff.h.
3769
3770 * s/lynxos.h: New file.
3771
3772 * keymap.c (Fsingle_key_description): Enclose function key and
3773 event symbol names in angle brackets.
3774
8a4e3c0c
GM
3775 * xdisp.c (setup_echo_area_for_printing): Call
3776 message_log_maybe_newline if message_buf_print is not set.
3777
3778 * print.c (printchar, strout): Don't check message_buf_print
427ec082 3779 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
3780 function does something useful even when message_buf_print is
3781 already set.
3782
25fa6deb
GM
3783 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
3784 variables.
3785 (ensure_echo_area_buffers): Initialize echo buffer's
3786 truncate lines setting to nil.
3787 (with_echo_area_buffer): Don't set the echo buffer's truncate
3788 lines setting here.
8a4e3c0c 3789 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
3790 of message_truncate_lines.
3791 (resize_mini_window): Handle case that lines are truncated.
3792 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
3793 message-truncate-lines.
3794
3795 * keyboard.c (read_char): Bind message-truncate-lines to t
3796 while displaying a help-echo.
3797
3798 * lisp.h (Qmessage_truncate_lines): External declaration.
3799
163dcff3
GM
38002000-06-13 Gerd Moellmann <gerd@gnu.org>
3801
1681ead6
GM
3802 * xdisp.c (Vline_number_display_limit): Renamed from
3803 line_number_display_limit.
3804 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
3805 Extend documentation string. Initialize
3806 Vline_number_display_limit to nil meaning no limit.
3807 (decode_mode_spec): Use Vline_number_display_limit with its new
3808 meaning.
3809
163dcff3
GM
3810 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
3811
18e21ce8 38122000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
3813
3814 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 3815
163dcff3
GM
3816 * xfns.c (x_set_frame_parameters): Comment fix.
3817
3818 * frame.c (store_frame_param): Call swap_in_global_binding if the
3819 variable's current binding was chosen based on this frame.
3820
3821 * data.c (swap_in_global_binding): New function.
3822
a704139d
EZ
38232000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3824
3825 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
3826 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
3827
9b6610db
EZ
38282000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
3829
3830 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
3831
c68833d2
JR
38322000-06-12 Jason Rumney <jasonr@gnu.org>
3833
3834 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
3835
3836 * w32.h (EMACS_W32_H): Renamed from _NT_H_
3837
3838 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
3839
3840 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
3841
ed1056b3
GM
38422000-06-12 Gerd Moellmann <gerd@gnu.org>
3843
3844 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
3845 (syms_of_xfaces): Defsubr Sdump_colors.
3846 (x_free_colors): Don't treat b&w specially on default visual.
3847 (x_free_dpy_colors): New function.
3848 (free_face_colors): Don't check visual class; it's done
3849 in x_free_colors.
3850
3851 * xterm.c (x_frame_of_widget): New function.
3852 (x_alloc_nearest_color_for_widget): Use it.
3853 (x_copy_dpy_color): New function.
3854 (x_destroy_window): Free various colors.
3855
5050a2ef
KH
38562000-06-12 Kenichi Handa <handa@etl.go.jp>
3857
3858 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
3859
3860 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
3861
3862 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
3863
3864 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
3865
3866 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
3867
fb1b041d
DL
38682000-06-11 Dave Love <fx@gnu.org>
3869
3870 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
3871
ff96b5f4
EZ
38722000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
3873
3874 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
3875
db8eeecd
GM
38762000-06-11 Gerd Moellmann <gerd@gnu.org>
3877
ed1056b3 3878 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
3879 to `XEvent *'.
3880
49b71c5f
KH
38812000-06-10 Kenichi Handa <handa@etl.go.jp>
3882
c479bd55
KH
3883 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
3884 (regex_compile): Fix the code for handling the case of single byte
3885 char and multibyte char being mixed in a range within [...].
3886
ff6a65c2
KH
3887 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
3888 and dst_multibyte members of coding.
3889
49b71c5f
KH
3890 * charset.c (update_charset_table): Update the table
3891 bytes_by_char_head.
3892 (init_charset_once): Initialize elements of bytes_by_char_head to
3893 1 except for leading codes for private charases.
3894
3895 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
3896 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
3897 sequence.
3898
9e80b57d
KR
38992000-06-09 Ken Raeburn <raeburn@gnu.org>
3900
3901 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
3902 access the data it doesn't point to.
3903
f83fe4b4
GM
39042000-06-08 Gerd Moellmann <gerd@gnu.org>
3905
3906 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 3907 will be translated to a switch-frame event when reading the
f83fe4b4
GM
3908 event queue. This is necessary because Emacs otherwise won't
3909 perform a switch-frame to a new frame until some other event, for
3910 example a keystroke event, forces it to do so. This has various
3911 effects, one visible being that the cursor of a frame created with
3912 C-x 5 2 or switched to with a window manager key binding like
3913 A-TAB stays hollow because selected_window isn't on the newly
3914 focused frame until the switch-frame is performed.
3915
3916 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
3917 generating a switch-frame event if necessary.
3918
3919 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
3920
3921 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
3922 it's an integer.
3923
0890801b
KH
39242000-06-08 Kenichi Handa <handa@etl.go.jp>
3925
3926 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
3927 charset.
3928
173cbca8
GM
39292000-06-07 Gerd Moellmann <gerd@gnu.org>
3930
3091c2a6
GM
3931 * window.c (displayed_window_lines): Take empty lines at
3932 the bottom of a window into account.
427ec082 3933
f38952fe
GM
3934 * window.c (displayed_window_lines): New function.
3935 (Fmove_to_window_line): Use displayed_window_lines to determine
3936 the number of lines to move, instead of using the window's height.
3937
3938 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
3939 to stop reading, even if the form read sets point to a different
3940 value when evaluated.
3941
427ec082 3942 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
3943 put the cursor.
3944
6ba6c818
KH
39452000-06-07 Kenichi Handa <handa@etl.go.jp>
3946
3947 * fileio.c (e_write): Free composition data if stored in
3948 coding->cmp_data.
3949
5f1aea9a
GM
39502000-06-06 Gerd Moellmann <gerd@gnu.org>
3951
666852af
GM
3952 * xdisp.c (display_line): Set row's and iterator's
3953 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
3954 Set cursor even if row ends in the middle of a character.
3955 (dump_glyph_row): Print values of new flags.
3956 (redisplay_window) <cursor movement in unchanged window>: When
3957 point has been moved forward, and PT is at the end of the cursor
3958 row, don't place the cursor in the next row if the cursor row ends
3959 in the middle of a character or at ZV.
3960
3961 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
3962 (struct glyph_row): Add starts_in_middle_of_char_p and
3963 ends_in_middle_of_char_p.
3964 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
3965 ends_in_middle_of_char_p flag.
3966 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
3967
d13f3e2e
GM
3968 * term.c (append_glyph): Revert change of 2000-06-06.
3969
3970 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
3971 padding glyph not fitting on line as whole character not
3972 fitting on line.
3973
5f1aea9a
GM
3974 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
3975 this isn't true for images with `:ascent 100'.
3976
10cda9b0
KH
39772000-06-06 Kenichi Handa <handa@etl.go.jp>
3978
ed00559d
KH
3979 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
3980 as modified if it is originally unmodified.
3981
10cda9b0
KH
3982 * term.c (encode_terminal_code): Change the way to check if
3983 terminal coding does any conversion.
3984 (append_glyph): Set glyph->pixel_width correctly.
3985
3986 * xdisp.c (display_line): While checking line continuation, pay
3987 attention to a padding glyph.
3988
1969fae2
GM
39892000-06-05 Gerd Moellmann <gerd@gnu.org>
3990
3991 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
3992
162ccef4
DL
39932000-06-05 Dave Love <fx@gnu.org>
3994
f19f32dd
DL
3995 * xdisp.c: Include fontset.h.
3996
3997 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
3998
3999 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
4000
4001 * dispnew.c: Conditionally include term.h.
4002
4003 * coding.h: Declare code_convert_string_norecord.
4004
4005 * frame.h (struct frame): Use volatile unconditionally.
4006
4007 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
4008
4009 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
4010
4011 * systime.h: Protect against multiple inclusion.
4012 (timezone) [USG5_4]: Define as time_t.
4013
4014 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
4015 (Foptimize_char_table, make_temp_name): Declare.
4016
4017 * Makefile.in (xdisp.o): Depend on fontset.h.
4018
4019 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
4020
4021 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
4022 (Foptimize_char_table, make_temp_name): Declare.
4023
427ec082 4024 * s/irix4-0.h:
162ccef4
DL
4025 * s/irix5-0.h:
4026 * s/netbsd.h: Don't define autoconfiscated MATHERR.
4027
2082fe81
DL
40282000-06-02 Dave Love <fx@gnu.org>
4029
4030 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
4031
dcf671d2
GM
40322000-06-02 Gerd Moellmann <gerd@gnu.org>
4033
4034 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 4035 result face, set flags in that face indicating that colors may not
dcf671d2
GM
4036 be freed.
4037
4038 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
4039 glyph, use the ASCII NUL character to determine the face.
4040
d42122a3
DL
40412000-06-02 Dave Love <fx@gnu.org>
4042
4043 * sysdep.c: Conditionally include stdlib.h, unistd.h.
4044 (VFORK_RETURN_TYPE): Remove.
427ec082 4045
d42122a3
DL
4046 * config.in: Add NO_MATHERR.
4047
dd432f16
DL
40482000-06-01 Dave Love <fx@gnu.org>
4049
90aa4ea8
DL
4050 * cmds.c (internal_self_insert): Don't check
4051 Vbefore_change_function, Vafter_change_function.
4052
4053 * insdel.c (signal_before_change, signal_after_change): Likewise.
4054
4055 * buffer.c (Vbefore_change_function, Vafter_change_function):
4056 Variables and their initializations deleted.
4057
2330c9d4
DL
4058 * callint.c (Fcall_interactively): Doc fix.
4059
dd432f16
DL
4060 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
4061
bf9e8804
DL
40622000-05-31 Dave Love <fx@gnu.org>
4063
4064 * textprop.c: Revert last change -- duplicated.
4065
3694b4ab
GM
40662000-05-31 Gerd Moellmann <gerd@gnu.org>
4067
4068 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
4069 in #if 0.
4070
4071 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
4072
f14156cd
JR
40732000-05-31 Jason Rumney <jasonr@gnu.org>
4074
8119aab8
JR
4075 * search.c (Fre_search_forward, Fre_search_backward)
4076 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
4077
f14156cd
JR
4078 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
4079
4aab9be3
JR
40802000-05-30 Jason Rumney <jasonr@gnu.org>
4081
4082 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
4083 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
4084
4085 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
4086 member.
4087
4088 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
4089 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
4090 expand a nil default_filename.
4091
4092 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
4093 pointer to glyph_to_pixel_coords, not a frame.
4094
4095 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
4096 coding.h to dependencies.
4097
4098 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
4099
4100 * w32console.c (glyph_to_pixel_coords): Change first parameter to
4101 window pointer to be consistent with w32term.c and xterm.c.
4102
4103 * w32fns.c: Format and doc changes to bring closer to xfns.c.
4104 (VIETNAMESE_CHARSET): Define if not defined in system headers.
4105 (Qline_spacing, Qcenter): New variables.
4106 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
4107 (x_set_line_spacing): New function.
4108 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
4109 macros.
4110 (x_specified_cursor_type): New function.
4111 (x_set_cursor_type): Use it.
4112 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
4113 and icon strings.
4114 (validate_x_resource_name, x_get_resource_string): Measure lengths
4115 of external strings in bytes.
4116 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
4117 GetTextExtentPoint32 with NULL title.
4118 (Fx_create_frame): Initialize Qline_spacing.
4119 (w32_load_system_font): Initialize font->double_byte_p.
4120 (x_to_w32_charset): Use Vw32_charset_info_alist.
4121 (Image, busy cursor, tooltip functions): Merged changes from
4122 xfns.c. Not yet functional on Windows.
4123
4124 * w32gui.h (W32FontStruct): Add double_byte_p member.
4125
4126 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
4127 (emacs_button_translation): Use it.
4128 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
4129 in `mask' to be set.
4130
4131 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
4132 menu strings.
4133
4134 * w32term.c: Format and doc changes to bring closer to xterm.c.
4135 (w32_char_font_type): New enum.
4136 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
4137 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
4138 (w32_encode_char): New function.
4139 (x_encode_char): Removed.
4140 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
4141 x_encode_char and w32_font_is_double_byte.
4142 (x_produce_image_glyph): Use image_ascent.
4143 (x_produce_glyphs): Use new version of w32_per_char_metric and
4144 handle NULL return value. Allow extra line spacing.
4145 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
4146 (w32_get_glyph_overhangs): Remove unicode_p param. Use
4147 w32_font_type member of glyph instead.
4148 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
4149 (fast_find_position): Make sure not to consider rows not visible
4150 in the window.
4151 (w32_read_socket) [WM_MENUSELECT]: Cannot call
4152 w32_menu_display_help with input blocked, as it can abort.
4153 (x_display_and_set_cursor): Choose cursor depending
4154 on buffer-local value of cursor_type.
4155 (x_draw_bar_cursor): Add parameter WIDTH.
4156
4157 * w32term.h (CP_DEFAULT): Define.
4158 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
4159
10fc3187
GM
41602000-05-30 Gerd Moellmann <gerd@gnu.org>
4161
4162 * search.c (Fre_search_forward, Fre_search_backward)
4163 (Fposix_search_backward, Fposix_search_forward): Doc fix.
4164
d0555360
KH
41652000-05-30 Kenichi Handa <handa@etl.go.jp>
4166
4167 * coding.c (detect_coding_iso2022): Fix code for checking
4168 CODING_CATEGORY_MASK_ISO_8_2.
4169
f1ad044f
SM
41702000-05-29 Stefan Monnier <monnier@cs.yale.edu>
4171
4172 * regex.c (PREFETCH_NOLIMIT): New function.
4173 (re_match_2_internal): Use it and adjust the end_match_2 logic.
4174
84ec3b4b
GM
41752000-05-29 Gerd Moellmann <gerd@gnu.org>
4176
66254a13
GM
4177 * syntax.c (find_defun_start): Move test for
4178 open_paren_in_column_0_is_defun_start outside of the loop.
4179
49e70dec
GM
4180 * xdisp.c (redisplay_window): Really switch buffers when
4181 displaying mode lines, and temporarily set selected_frame to the
4182 frame of the window that's redisplayed.
4183
84ec3b4b
GM
4184 * xfaces.c (free_realized_faces): Block/unblock input.
4185 (free_realized_multibyte_face): Ditto.
4186
869a3a14
DL
41872000-05-29 Dave Love <fx@gnu.org>
4188
4189 * textprop.c (Qkeymap): New variable.
4190 (syms_of_textprop): Intern it.
4191
4192 * keymap.c: Include intervals.h.
4193 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
4194
4195 * Makefile.in (keymap.o): Depend on intervals.h.
4196
4197 * keyboard.c (menu_bar_items, tool_bar_items)
4198 (Fexecute_extended_command): Deal with `keymap' property.
4199 (read_key_sequence): Track map from `keymap' property as well as
4200 `local_map'.
4201
4202 * intervals.c (get_local_map): Extra arg to allow looking for
4203 `keymap' too.
4204
4205 * intervals.h (map_property): New enum.
4206 (get_local_map): Extra arg using it.
4207 (Qkeymap): Declare.
4208
84ec3b4b 4209 * lisp.h (get_local_map): Don't declare here.
869a3a14 4210
89d0c844
KH
42112000-05-29 Kenichi Handa <handa@etl.go.jp>
4212
4213 * Makefile.in (callproc.o): Depend on composite.h.
4214
4215 * callproc.c: Include composite.h.
4216 (Fcall_process): Handle composition correctly.
4217
4218 * coding.h (coding_allocate_composition_data): Extern it.
4219 (coding_restore_composition): Likewise.
4220
4221 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
4222 yet allocated, finish decoding with result
4223 CODING_FINISH_INSUFFICIENT_CMP.
4224 (coding_allocate_composition_data): Make it non-static.
4225 (coding_restore_composition): Likewise.
4226
797a084a
EZ
42272000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
4228
4229 * charset.c (syms_of_charset): Revert last change.
4230
cf872af5
EZ
42312000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
4232
4233 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
4234 charsets as unibyte, with 1-column screen width. Sent by Kenichi
4235 Handa.
cf872af5 4236
5b1ae051
EZ
42372000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
4238
4239 * charset.c (syms_of_charset): Set width of character sets
4240 eight-bit-control and eight-bit-graphic to 1 column.
4241
34ec9ebe
GM
42422000-05-26 Gerd Moellmann <gerd@gnu.org>
4243
4244 * config.in (HAVE_SPEED_T): New define.
4245
4246 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
4247 `extern speed_t'.
4248
dd854dc2
DL
42492000-05-26 Dave Love <fx@gnu.org>
4250
4251 * coding.c (shrink_decoding_region): Initialize eol_conversion.
4252
4253 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
4254 (Fsubr_arity): New function.
4255 (syms_of_data): Install them.
4256
ba9f8f95
KH
42572000-05-26 Kenichi Handa <handa@etl.go.jp>
4258
0f3e0672
KH
4259 * charset.c (init_charset_once): Set the table bytes_by_char_head
4260 correctly.
4261
cebefb44
KH
4262 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
4263 the default fontset to what Emacs uses by default.
0f3e0672
KH
4264 (check_registry_encoding): This function deleted.
4265 (Fset_fontset_font): Remove the adhoc condition for the default
4266 fontset. Allow cons in FONTNAME.
cebefb44 4267
0f3e0672
KH
4268 * fns.c (map_char_table): Ignore char-table entries for
4269 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 4270
7a18af49
KR
42712000-05-25 Ken Raeburn <raeburn@gnu.org>
4272
4273 * emacs.c (main): Initialize keyboard syms before initializing
4274 window code, so face names are available.
4275
d2af47df
SM
42762000-05-25 Stefan Monnier <monnier@cs.yale.edu>
4277
4278 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
4279 of an anchor at the beginning of a shy-group.
4280
fc6a6a4e
GM
42812000-05-25 Gerd Moellmann <gerd@gnu.org>
4282
4283 * xdisp.c (handle_invisible_prop): Don't try to skip over
4284 invisible text if end of text is already reached.
4285
005f0d35
DL
42862000-05-25 Dave Love <fx@gnu.org>
4287
02513cdd
DL
4288 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
4289
005f0d35
DL
4290 * coding.c (encode_eol): Add null statement after label.
4291
89f6ca4e
EZ
42922000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
4293
4294 * w16select.c (Fw16_set_clipboard_data): Fix the change from
4295 2000-05-20.
4296
a4e1759e
KH
42972000-05-25 Kenichi Handa <handa@etl.go.jp>
4298
4299 * ccl.c (ccl_driver): Fix previous change.
4300
eacfd7fe
KH
43012000-05-25 Kenichi Handa <handa@etl.go.jp>
4302
46ab33a9
KH
4303 * coding.c (run_pre_post_conversion_on_str): Set point to the
4304 beginning of buffer before calling coding->post_read_conversion.
4305 (decode_coding_string): Give correct args to
4306 run_pre_post_conversion_on_str.
4307 (encode_coding_string): Likewise.
4308
eacfd7fe
KH
4309 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
4310 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
4311 eight-bit-graphic correctly.
4312
f8569325
DL
43132000-05-24 Kenichi HANDA <handa@etl.go.jp>
4314
4315 * fileio.c (Finsert_file_contents): Even if a file is not found,
4316 execute codes for setting up coding system. Call
4317 after-insert-file-functions unconditionally.
4318
04545643
GM
43192000-05-24 Gerd Moellmann <gerd@gnu.org>
4320
4321 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
4322 BSD_PGRPS are not defined.
4323
747d90ea
KH
43242000-05-24 Kenichi Handa <handa@etl.go.jp>
4325
4326 * charset.c (update_charset_table): Accept nil in LONG_NAME and
4327 DESCRIPTION.
4328 (syms_of_charset): Avoid building same strings.
4329
716e3b88
GM
43302000-05-23 Gerd Moellmann <gerd@gnu.org>
4331
4332 * lread.c (Fload): Add a comment about the meaning of
4333 Vuser_init_file being t.
4334
4335 * puresize.h (BASE_PURESIZE): Increase to 675000.
4336
4337 * s/gnu-linux.h (setpgrp): Don't define it here because this
4338 prevents compilation on GNU/Linux systems with glib 2.2.
4339
4340 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
4341 as setpgid.
427ec082 4342
9aeb39fa
EZ
43432000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
4344
4345 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
4346 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
4347 version.
4348 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
4349
29ced61b
KH
43502000-05-23 Kenichi Handa <handa@etl.go.jp>
4351
0574a2ed
KH
4352 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
4353 unconditionally.
4354
3d80f24d
KH
4355 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
4356
4357 * term.c (encode_terminal_code): Set coding->src_multibyte
4358 properly.
4359
29ced61b
KH
4360 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
4361
d7e00792
KH
43622000-05-22 Kenichi Handa <handa@etl.go.jp>
4363
c9d80d38
KH
4364 * keyboard.c (read_char): Allow character codes 128..255 to be
4365 handled by input-method-function.
4366
d7e00792
KH
4367 * insdel.c (adjust_markers_for_replace): Fix previous change.
4368 (adjust_after_replace): If PREV_TEXT is nil, call
4369 adjust_markers_for_insert, not adjust_markers_for_replace.
4370
087121cc 43712000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 4372
087121cc
GM
4373 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
4374 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
4375 [HAVE_GRANDPT]: Define.
4376 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
4377
4378 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
4379 like SYSV_PTYS.
4380
4381 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
4382
4383 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
4384
c9671f81
KH
43852000-05-20 Kenichi Handa <handa@etl.go.jp>
4386
4387 The following changes are to handle 8-bit characters in a
4388 multibyte buffer/string without facing with byte combining
4389 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
4390 eight-bit-graphic (for 0xA0..0xFF) are introduced.
4391
4392 * Makefile.in (fns.o): Depend on charset.h.
4393
4394 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
4395 convert it to unibyte.
4396 (make_string): Use parse_str_as_multibyte, not chars_in_text.
4397
4398 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
4399 apparent char boundary.
4400 (Fset_buffer_multibyte): Convert 8-bit characters in the range
4401 0x80..0x9F to/from multibyte form.
4402
4403 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
4404 to unibyte.
4405
4406 * callproc.c (Fcall_process): Always encode an argument string if
4407 it is multibyte. Setup src_multibyte and dst_multibyte members of
4408 process_coding properly.
ce75fd23 4409
c9671f81
KH
4410 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
4411 SPLIT_NON_ASCII_CHAR.
4412
4413 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
4414 as is.
4415 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
4416
4417 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
4418 variables.
4419 (SPLIT_CHARACTER_SEQ): This macro deleted.
4420 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
4421 valid.
4422 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
4423 and eight-bit-graphic.
4424 (char_to_string): Likewise. Signal an error for too large
4425 character code.
4426 (char_printable_p): Return 0 for 8-bit characters.
4427 (update_charset_table): Update iso_charset_table only when a final
4428 character is non-negative.
4429 (find_charset_in_text): Renamed from find_charset_in_str.
4430 Arguments and return value changed. Callers changed.
4431 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
4432 be -1 if CHARSET is used only internally.
4433 (Fmake_char_internal): Handle new charsets; eight-bit-control and
4434 eight-bit-graphic.
4435 (Fcharset_after): Simplified.
4436 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
4437 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
4438 (multibyte_chars_in_text): Simplified by assuming there's no
4439 invalid multibyte sequence.
4440 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4441 str_as_unibyte): New functions.
4442 (Fstring): Simpified by assuming that byte combining never
4443 happens.
4444 (init_charset_once): Initialization for
4445 LEADING_CODE_8_BIT_CONTROL.
4446 (syms_of_charset): Intern and staticpro Qeight_bit_control and
4447 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
4448 eight-bit-control and eight-bit-graphic.
4449
4450 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
4451 CHARSET_8_BIT_GRAPHIC): New macros.
4452 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
4453 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
4454 (CHARSET_REVERSE_CHARSET): Likewise.
4455 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
4456 eight-bit-graphic.
4457 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
4458 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
4459 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
4460 encounter an invalid multibyte sequence.
4461 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
4462 sequence is always valid.
4463 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
4464 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
4465 macros.
4466 (CHAR_STRING): For 8-bit characters, call char_to_string.
4467 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
4468 multibyte sequence is always valid.
4469 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
4470 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
4471 str_as_unibyte): Extern them.
4472 (BCOPY_SHORT): Fix a bug.
4473 (CHAR_LEN): This macro deleted. Callers changed to use
4474 CHAR_BYTES.
4475 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
4476 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
4477 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
4478
bd4bde7f 4479 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
4480 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
4481 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
4482 EMIT_BYTES): New macros.
4483 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
4484 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
4485 macros deleted.
4486 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
4487 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
4488 check the validity of multibyte sequence.
4489 (decode_coding_emacs_mule): New function.
4490 (encode_coding_emacs_mule): New macro.
4491 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
4492 the source.
4493 (DECODE_ISO_CHARACTER): Just return a character code.
4494 (DECODE_COMPOSITION_START): Set coding->result instead of result.
4495 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
4496 EMIT_CHAR to produced decoded characters. Exit the loop only by
4497 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
4498 block here.
4499 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
4500 only position codes for an invalid character.
4501 (encode_designation_at_bol): Return new destination pointer. 5th
4502 arg DSTP is changed to DST.
4503 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
4504 from the source by ONE_MORE_CHAR. Don't handle the case of last
4505 block here.
4506 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
4507 macros deleted.
4508 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
4509 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
4510 TWO_MORE_BYTES to fetch a byte from the source.
4511 (encode_eol): Pay attention to coding->src_multibyte.
4512 (detect_coding, detect_eol): Preserve members src_multibyte and
4513 dst_multibyte.
4514 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
4515 (encoding_buffer_size): Set magnification to 3 for all coding
4516 systems that require encoding.
4517 (ccl_coding_driver): For decoding, be sure that the result is
4518 valid multibyte sequence.
4519 (decode_coding): Initialize coding->errors and coding->result.
4520 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
4521 and raw-text, always call decode_eol. Handle the case of last
4522 block here. If not coding->dst_multibyte, convert the resulting
4523 sequence to unibyte.
4524 (encode_coding): Initialize coding->errors and coding->result.
4525 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
4526 and raw-text, always call encode_eol. Handle the case of last
4527 block here.
4528 (shrink_decoding_region, shrink_encoding_region): Detect cases
4529 that we can't skip data more rigidly.
4530 (code_convert_region): Setup src_multibyte and dst_multibyte
4531 members of coding. For decoding, if the buffer is multibyte,
4532 convert the source sequence to unibyte in advance. For encoding,
4533 if the buffer is multibyte, convert the resulting sequence to
4534 multibyte afterward.
4535 (run_pre_post_conversion_on_str): New function.
4536 (code_convert_string): Deleted and divided into the following two.
4537 (decode_coding_string, encode_coding_string): New functions.
4538 (code_convert_string1, code_convert_string_norecord): Call one of
4539 above.
4540 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
4541 MAKE_NON_ASCII_CHAR.
4542 (Fset_terminal_coding_system_internal,
4543 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
4544 and dst_multibyte members.
4545 (init_coding_once): Initialize iso_code_class with new enum
4546 ISO_control_0 and ISO_control_1.
4547
4548 * coding.h (enum iso_code_class_type): Member ISO_control_code is
4549 devided into ISO_control_0 and ISO_control_1.
4550 (struct coding_system): New members src_multibyte, dst_multibyte,
4551 errors, and result. Delete member fake_multibyte.
4552 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
4553 nonzero.
4554 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
4555 nonzero.
4556
4557 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
4558 (Faset): Likewise.
4559
4560 * editfns.c (Fformat): Be sure to convert 8-bit characters to
4561 multibyte form.
4562 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
4563 combining occurs.
4564 (Ftranspose_region): Delete codes for handling byte combining.
4565
4566 * fileio.c (Finsert_file_contents): Setup src_multibyte and
4567 dst_multibyte members of coding. On handling REPLACE on unibyte
4568 buffer, convert the result of decode_coding to unibyte. On
4569 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 4570 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
4571 multibyteness of the source (buffer or string).
4572
4573 * fns.c (concat): Handle 8-bit characters correctly.
4574 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
4575 unibyte in the result.
4576 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
4577 valid multibyte form in the result.
4578 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4579 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
4580 return -1, signal an error.
4581 (base64_encode_1): New arg MULTIBYTE. Get each character by
4582 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
4583 character is found, return -1.
4584 (Fbase64_decode_region): Delete codes for handling byte-combining.
4585 Treat each decoded byte as a unibyte character.
4586 (Fbase64_decode_string): Return unibyte string.
4587 (Fcompare_strings, concat, string_byte_to_char): Use
4588 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
4589 FETCH_STRING_CHAR_ADVANCE.
4590 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4591 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
4592
4593 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
4594 SPLIT_NON_ASCII_CHAR.
4595 (fontset_ref_via_base, fontset_set): Likewise
4596
4597 * insdel.c (adjust_markers_for_record_delete): Deleted.
4598 (adjust_markers_for_insert): Argument changed. Caller changed.
4599 (adjust_markers_for_replace): Likewise.
4600 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
4601 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
4602 (copy_text): Delete unused local varialbe c_save. For converting
4603 to multibyte, be sure to make all 8-bit characters in valid
4604 multibyte form.
4605 (count_size_as_multibyte): Handle 8-bit characters correctly.
4606 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4607 adjust_after_replace, replace_range, del_range_2)
4608 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
4609 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
4610 adjust_after_replace, replace_range, del_range_2) Delete codes for
4611 handling byte combining.
4612 (adjust_before_replace): Deleted.
427ec082 4613
c9671f81
KH
4614 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
4615 SPLIT_NON_ASCII_CHAR.
4616 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
4617 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
4618 unconditionally.
4619 (Fkey_description): Likewise.
4620
4621 * lread.c (read1): On reading multibyte string, be sure to make
4622 all 8-bit chararacters in valid multibyte form.
4623 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
4624
4625 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
4626 unconditionally.
4627
4628 * process.c (Fstart_process): GCPRO current_dir before calling
4629 Ffind_operation_coding_system. Encode arguments here.
4630 (create_process): Don't encode arguments here. Setup
4631 src_multibyte and dst_multibyte members of struct coding.
4632 (read_process_output): Setup src_multibyte and dst_multibyte
4633 members of struct coding. If the output is to multibyte buffer,
4634 always decode the output of the process. Adjust the
4635 representation of 8-bit characters to the multibyteness of the
4636 output.
4637 (send_process): Setup coding->src_multibyte according to the
4638 multibyteness of the source.
4639
4640 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
4641 unconditionally.
4642 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
4643 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
4644
4645 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
4646 CHAR_LEN.
4647
4648 * w16select.c (Fw16_set_clipboard_data): Setup members
4649 src_multibyte and dst_multibyte of coding. Adjusted for the
4650 change for find_charset_in_str.
4651 (Fw16_get_clipboard_data): Likewise.
4652
4653 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
4654 dst_multibyte of coding.
4655 (x_to_w32_font): Likewise.
4656
4657 * w32select.c (Fw32_set_clipboard_data): Setup members
4658 src_multibyte and dst_multibyte of coding. Adjusted for the
4659 change for find_charset_in_str.
4660 (Fw32_get_clipboard_data): Likewise.
4661
4662 * xdisp.c (get_next_display_element): Handle 8-bit characters
4663 correctly.
4664 (next_element_from_display_vector): Use CHAR_BYTES instead of
4665 CHAR_LEN.
4666 (disp_char_vector): Use SPLIT_CHAR instead of
4667 SPLIT_NON_ASCII_CHAR.
4668
4669 * xselect.c (selection_data_to_lisp_data): Setup members
4670 src_multibyte and dst_multibyte of coding. Adjusted for the
4671 change for find_charset_in_str.
4672 (lisp_data_to_selection_data): Likewise.
4673
5f64c9e0
GM
46742000-05-19 Gerd Moellmann <gerd@gnu.org>
4675
2b63d473
GM
4676 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
4677 buffer.
4678
5f64c9e0
GM
4679 * dispextern.h (Vimage_types): Add extern declaration.
4680
4681 * xdisp.c (Vimage_types): Moved here from xfns.c.
4682 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
4683
4684 * xfns.c (Vimages_types): Moved to xdisp.c.
4685 (syms_of_xfns): Move `image-types' to xdisp.c.
4686
4687 * w32fns.c (Vimage_types): Removed.
4688 (syms_of_w32fns): Remove `image-types'.
4689
813086ea
KH
46902000-05-18 Kenichi Handa <handa@etl.go.jp>
4691
4692 * fns.c (map_char_table): Pay attention to character number of
4693 charset. Check the validity of charset at the first level. For
4694 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
4695 the default value.
4696
4697 * fontset.c: Include "buffer.h".
4698 (fs_load_font): If the face has fontset, record the face ID in
4699 that fontset.
4700 (Finternal_char_font): New function.
4701 (accumulate_font_info): New function.
4702 (Ffontset_info): Rewritten for the new fontset implementation.
4703 (syms_of_fontset): Register Vdefault_fontset in the first element
4704 of Vfontset_table. Include Vdefault_fontset in
4705 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
4706 function.
4707
bdaebbf0
DL
47082000-05-16 Dave Love <fx@gnu.org>
4709
4710 * m/iris5d.h: Deleted -- unused.
4711
cb613bb8
GM
47122000-05-16 Gerd Moellmann <gerd@gnu.org>
4713
b15f3b77
GM
4714 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
4715 `invalid' instead of `illegal'.
4716
4717 * indent.c (Fmove_to_column): When ending within a tab, insert
4718 spaces first so that markers at the end of the tab get adjusted.
4719
835c1b36
GM
4720 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
4721 buffer list that wasn't selected in that frame.
4722
cb613bb8
GM
4723 * filelock.c (get_boot_time): To obtain an 8 char file name, which
4724 is needed on mescaline, use a 2 char prefix, and call
4725 make_temp_name with second arg non-zero.
4726
4727 * fileio.c (make_temp_name): New function, extracted from
4728 Fmake_temp_name.
4729 (Fmake_temp_name): Use it.
4730
f685bea9
EZ
47312000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
4732
4733 * window.c (coordinates_in_window): Subtract 1 when computing
4734 right_x.
4735
a1b8d58b
GM
47362000-05-15 Gerd Moellmann <gerd@gnu.org>
4737
4738 * Makefile.in (lisp): Add env.elc.
4739
4740 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
4741
a265079f
GM
47422000-05-12 Gerd Moellmann <gerd@gnu.org>
4743
4744 * search.c (Freplace_match): Handle case of `\N' in the
4745 replacement when there's no group N.
4746
da4496b6
GM
47472000-05-11 Gerd Moellmann <gerd@gnu.org>
4748
0ace421a
GM
4749 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
4750 of the message to message_dolog.
4751
1172eb8d
GM
4752 * keyboard.c (read_char): Don't clear current message for help
4753 events; let the code handling help events handle this. Change
4754 code detecting help events that should be ignored.
4755
da4496b6
GM
4756 * xdisp.c (handle_single_display_prop): Don't try to set PT if
4757 we're interating over a string.
4758
0623e40f
DL
47592000-05-09 Dave Love <fx@gnu.org>
4760
4761 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
4762 that offset before writing. Move gcpro region past call of
4763 Ffile_regular_p.
4764
bae2503b
DL
47652000-05-04 Dave Love <fx@gnu.org>
4766
4767 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
4768
ec82fb2f
GM
47692000-05-04 Gerd Moellmann <gerd@gnu.org>
4770
4771 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
4772 of inserted characters when BUF equals the current buffer, and PT
4773 is in front of or equal to FROM.
4774
cbf18892
GM
47752000-05-03 Gerd Moellmann <gerd@gnu.org>
4776
4ff40dd0
GM
4777 * xdisp.c (handle_single_display_prop): If display property value
4778 is invalid, or something not supported on the frame, restore
4779 iterator's position to what it was initially. Make sure to return
4780 0 for invalid and unsupported property values.
4781
cbf18892
GM
4782 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
4783 that x_per_char_metric returns null.
4784
1b0672c3
GM
47852000-05-02 Gerd Moellmann <gerd@gnu.org>
4786
576da55d
GM
4787 * xterm.h (struct face): Add forward declaration.
4788 (struct image): Ditto.
4789 (image_ascent): Add prototype.
4790
4791 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
4792 (x_draw_image_relief, x_draw_image_foreground_1): Call function
4793 image_ascent instead of using IMAGE_ASCENT.
4794
4795 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
4796 (IMAGE_ASCENT): Removed.
4797
4798 * xfns.c (Qcenter): New variable.
4799 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
4800 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
4801 (image_ascent): New function.
4802 (lookup_image): Recognize `:ascent center'.
4803 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
4804 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
4805 (xbm_load): Don't set image's ascent here.
4806 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
4807 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
4808 check ascent values here.
4809 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
4810 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
4811 (syms_of_xfns): Initialize Qcenter.
4812
1b0672c3
GM
4813 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
4814 to the limits, increase the limits.
4815
0d7811ed
KH
48162000-05-01 Kenichi Handa <handa@etl.go.jp>
4817
4818 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
4819 Check Vfont_encoding_alist against the full name of the opened
4820 font.
4821
a943a5ca
GM
48222000-04-28 Gerd Moellmann <gerd@gnu.org>
4823
4824 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
4825 taller than the window.
4826
5dba1e29
KH
48272000-04-28 Kenichi Handa <handa@etl.go.jp>
4828
4829 * xfaces.c (realize_x_face): Fix the argument of the second
4830 xassert. BASE_FACE may not be a face for ASCII.
4831
353964e3
GM
48322000-04-27 Gerd Moellmann <gerd@gnu.org>
4833
c76e04a8
GM
4834 * print.c (print_object): Treat print-length < 0 as nil.
4835
4836 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
4837
4838 * s/freebsd.h (TERMCAP_OBJ): Removed.
4839 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
4840
4841 * lread.c (read1): Don't treat period followed by certain
4842 characters as symbol start.
4843
4844 * xfns.c (slurp_file): New function.
4845 (xbm_image_p): Handle case of in-memory XBM files.
4846 (xbm_scan): Rewritten to work on memory buffers instead of files.
4847 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
4848 Work on memory buffers instead of files. If DATA is null test
4849 if buffer looks like an in-memory XBM file.
4850 (xbm_load_image): Renamed from xbm_load_image_file. Work on
4851 memory buffers instead of files.
4852 (xbm_file_p): New function.
4853 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
4854
353964e3
GM
4855 * lread.c (end_of_file_error): New function.
4856 (read1): Call it instead of signaling `end-of-file' directly.
4857
427ec082 4858 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
4859 with Fprinc instead of Fprin1.
4860
24d744ac
KR
48612000-04-26 Ken Raeburn <raeburn@gnu.org>
4862
4863 * window.c (freeze_window_start): Check that minibuffer scroll
4864 window isn't nil before extracting the window structure pointer
4865 from it.
4866
4867 * undo.c (record_delete): If we hit the end of the undo list, stop
4868 picking elements apart.
4869
7464346d
GM
48702000-04-26 Gerd Moellmann <gerd@gnu.org>
4871
4872 * xdisp.c (display_line): If lines are continued, restore
4873 iterator's ascent/descent information to the values before the
4874 first glyph not fitting on the line.
4875
612839b6
GM
48762000-04-25 Gerd Moellmann <gerd@gnu.org>
4877
4878 * xdisp.c (try_window_id) <all changes above window start>: Adjust
4879 positions in glyph matrix. Don't compute new window end
4880 positions.
4881
4882 * dispnew.c (increment_matrix_positions): Renamed from
4883 increment_glyph_matrix_buffer_positions.
4884 (increment_row_positions): Renamed from
4885 increment_glyph_row_buffer_positions.
4886
4887 * dispextern.h: Change names of renamed functions from dispnew.c
4888 in prototypes.
4889
cc181e95
GM
48902000-04-24 Gerd Moellmann <gerd@gnu.org>
4891
abfcc168
GM
4892 * fileio.c (Fdo_auto_save): Create directories for auto-save
4893 list file if necessary.
4894
cc181e95
GM
4895 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
4896 from buffer or frame.
4897 (automatic_hscrolling_p): New variable.
4898 (hscroll_windows): Scroll windows horizontally only if automatic
4899 hscrolling is allowed.
4900 (syms_of_xdisp): New variable `automatic-hscrolling'.
4901
4902 * frame.h (struct frame): Add member extra_line_spacing.
4903
4904 * xfns.c (x_set_line_spacing): New function.
4905 (Fx_create_frame): Set line spacing from resources.
4906 (Qline_spacing): New variable.
4907 (syms_of_xfns): Initialize Qline_spacing.
427ec082 4908
cc181e95
GM
4909 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
4910
4911 * buffer.c (init_buffer_once): Handle extra_line_spacing.
4912 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 4913 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
4914 extra_line_spacing from default value.
4915 (init_buffer_once): Initialize default value of extra_line_spacing.
4916
4917 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
4918 and extra3.
4919
4920 * xterm.c (x_produce_glyphs): Remove reference to struct it's
4921 prompt_width. Add extra line spacing.
4922
4923 * term.c (produce_glyphs): Remove reference to struct it's
4924 prompt_width.
4925
4926 * dispextern.h (struct it): Remove member prompt_width, add
4927 extra_line_spacing.
4928
58827478
GM
49292000-04-22 Gerd Moellmann <gerd@gnu.org>
4930
4931 * dispnew.c (update_frame_line): When writing a whole line, make
4932 sure cursor is in the right row afterwards, otherwise a use of
4933 capability `ch' in cmgoto might leave the cursor in the row below.
4934
25a87f42
GM
49352000-04-21 Gerd Moellmann <gerd@gnu.org>
4936
4937 * lisp.h (struct Lisp_Buffer_Cons): Remove.
4938
4939 * keyboard.c (timer_check): Fix typo in comment.
4940
54edf5c2
KH
49412000-04-21 Kenichi Handa <handa@etl.go.jp>
4942
4943 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
4944 name change: ch -> character.
4945
3a64eef5
GM
49462000-04-20 Gerd Moellmann <gerd@gnu.org>
4947
4948 * keyboard.c (echo_message_buffer): New variable.
4949 (echo_now): Set echo_message_buffer to the echo area buffer used
4950 to display the echo.
4951 (cancel_echoing): Reset echo_message_buffer to nil.
4952 (read_char): Code rewritten that handles canceling an echo or
4953 echoing a dash, respectively.
4954
4955 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
4956 directory doesn't exist.
4957
6142fdcb
DL
49582000-04-19 Dave Love <fx@gnu.org>
4959
4960 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
4961 (concat): Don't allow numeric args.
4962 (Fconcat): Doc change.
6142fdcb 4963
ac6b5352
SM
49642000-04-19 Stefan Monnier <monnier@cs.yale.edu>
4965
4966 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
4967 instead define end_match(1|2) more carefully.
4968 Use GET_CHAR_BEFORE_2 for `begline'.
4969
cb9215e4
GM
49702000-04-19 Gerd Moellmann <gerd@gnu.org>
4971
5e3dac3f
GM
4972 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
4973 on 64-bit systems where NULL is defined as `0'.
4974
4975 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
4976 the `variable argument list' to make it work on Alpha.
4977
cb9215e4
GM
4978 * m/alpha.h (_LP64) [!_LP64]: Define.
4979 (ORDINARY_LINK): Define for NetBSD.
4980
4981 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 4982
f532dca0
DL
49832000-04-19 Dave Love <fx@gnu.org>
4984
c750667e
DL
4985 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
4986 change.
4987
4988 * Makefile.in (LIBS): Don't use.
4989 (GETLOADAVG_OBJ): Define again.
4990 (otherobj): Add GETLOADAVG_OBJ.
4991
f532dca0
DL
4992 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
4993
1c7e22fd
GM
49942000-04-18 Gerd Moellmann <gerd@gnu.org>
4995
f6d3257b
GM
4996 * lread.c (read_filtered_event): Cancel and start busy cursor.
4997
427ec082 4998 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
4999 that the per-character metrics may be null.
5000
e10f64e7
GM
50012000-04-17 Gerd Moellmann <gerd@gnu.org>
5002
0daee095
GM
5003 * buffer.c (clone_per_buffer_values): New function.
5004 (Fmake_indirect_buffer): Add optional argument CLONE. Call
5005 clone_per_buffer_values if CLONE is not nil.
5006
e10f64e7
GM
5007 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
5008
38687d43
DL
50092000-04-16 Dave Love <fx@gnu.org>
5010
5011 * Makefile.in: Remove obsolete localcpp stuff.
5012 (GETLOADAVG_OBJ): Don't define.
5013 (obj): Move LIBOBJS...
5014 (otherobj): ... to here.
5015 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
5016 whitespace-only lines after the continuation (Irix).
5017
c21c7262
GM
50182000-04-14 Gerd Moellmann <gerd@gnu.org>
5019
5020 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
5021
5022 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
5023
314767c0
DL
50242000-04-14 Dave Love <fx@gnu.org>
5025
5026 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
5027 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
5028 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
5029 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
5030 NLIST_STRUCT.
5031
5032 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
5033 autoconfiscated HAVE_GETLOADAVG.
5034
5035 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
5036 BROKEN_MKTIME.
5037
a2522dca
GM
50382000-04-14 Gerd Moellmann <gerd@gnu.org>
5039
5040 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
5041 (fill_in_lock_file_name): Avoid existing files that aren't
5042 links.
5043
33744b5d
DL
50442000-04-14 Dave Love <fx@gnu.org>
5045
c21c7262 5046 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
5047 (INTERVAL_SRC): Convert to make variable.
5048 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
5049 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
5050 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
5051 add LIBOBJS.
5052 (SOME_MACHINE_OBJECTS): Remove interval stuff.
5053 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
5054 (shortlisp): Add facemenu, float-sup, frame.
5055 (SOME_MACHINE_LISP): Remove them from here.
5056 (LIBES): Change unused LDLIBS to autoconf LIBS.
5057
5058 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
5059
9d3d5916
KH
50602000-04-14 Kenichi Handa <handa@etl.go.jp>
5061
5062 * composite.c (update_compositions): If FROM and TO are not in a
5063 valid range, do nothing.
5064
198e3c7a
GM
50652000-04-13 Gerd Moellmann <gerd@gnu.org>
5066
5067 * tparam.c (tparam1): Abort when encountering an unknown
5068 `%'-specifier.
5069
5070 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
5071 terminfo.o.
5072
5073 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
5074 as TERMCAP_OBJ.
5075
055a28c9
EZ
50762000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
5077
5078 * fileio.c (a_write): Remove redundant semi-colons.
5079 (e_write): Return -1 if failed to write all the data.
5080 This fixes the changes made at 1999-12-15.
5081
f5c75033
DL
50822000-04-12 Dave Love <fx@gnu.org>
5083
5084 * fns.c (mapcar1): Test for null vals to support mapc.
5085 (Fmapc): New function.
5086
0c3cfc51
EZ
50872000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
5088
5089 * msdos.c (NUM_MOUSE_BUTTONS): Define.
5090 (IT_frame_up_to_date): Support the buffer local value of
5091 cursor-type, if defined.
5092
33465a31
DL
50932000-04-10 Dave Love <fx@gnu.org>
5094
5095 * editfns.c (preceding-char, following-char): Doc fix.
5096
6ed56568
KR
50972000-04-10 Ken Raeburn <raeburn@gnu.org>
5098
5099 * Makefile.in (temacs): Revert 2000-03-12 change.
5100
7cf80d4e
JR
51012000-04-10 Jason Rumney <jasonr@gnu.org>
5102
5103 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
5104
34f3f342
GM
51052000-04-10 Gerd Moellmann <gerd@gnu.org>
5106
1a1b1895
GM
5107 * xdisp.c (setup_echo_area_for_printing): Choose an echo
5108 area buffer, if it's not set up yet.
5109
34f3f342
GM
5110 * indent.c (compute_motion): Set immediate_quit.
5111
be0dbdab
GM
51122000-04-09 Gerd Moellmann <gerd@gnu.org>
5113
c45be9ac
GM
5114 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
5115 variable.
5116 (realize_tty_face): Suppress boldness if colors are the inverse of
5117 the default colors, and tty_suppress_bold_inverse_default_colors_p
5118 is set.
5119 (Ftty_suppress_bold_inverse_default_colors): New function.
5120 (syms_of_xfaces): Defsubr it.
5121
be0dbdab
GM
5122 * buffer.c (Frestore_buffer_modified_p): New function.
5123 (syms_of_buffer): Defsubr it.
5124
e8413c3b
KR
51252000-04-08 Ken Raeburn <raeburn@gnu.org>
5126
87f67317
KR
5127 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
5128 charset id (int) argument, not a charset (Lisp_Object).
5129
e8413c3b
KR
5130 * coding.h (code_convert_string): Declare.
5131 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
5132 object, as the fourth argument to code_convert_string.
5133
5134 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
5135 value.
5136 (Fset_fontset_font): Use EQ to compare lisp objects.
5137
7c752c80
KR
51382000-04-05 Ken Raeburn <raeburn@gnu.org>
5139
c0333abc
KR
5140 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
5141 a pointer that looks like a lisp object.
5142 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
5143 zero, instead see whether it's an integer object, since they can't
5144 have intervals.
5145 (GET_INTERVAL_OBJECT): Simply assign to the destination.
5146
7c752c80
KR
5147 * dispnew.c (allocate_matrices_for_frame_redisplay,
5148 direct_output_forward_char): Use X(U)INT and make_number as needed
5149 to convert between (unsigned) int values and lisp integers.
5150 * keyboard.c (read_key_sequence): Likewise.
5151 * lread.c (substitute_object_recurse): Likewise.
5152 * fns.c (concat, hash_lookup, hash_remove): Likewise.
5153 * minibuf.c (do_completion, Fminibuffer_complete_word,
5154 Fminibuffer_completion_help): Likewise.
5155 * term.c (produce_special_glyphs): Likewise.
5156
5157 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
5158 * print.c (print_preprocess, print_object): Likewise.
5159
5160 * search.c (compile_pattern): Use NILP when checking for nil.
5161
74e49b38
KR
5162 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
5163 __OPTIMIZE__]: Provide a GNU C macro version that handles
5164 lisp-object unions.
5165 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
5166 field, to better cope with ENABLE_CHECKING and calls that modify a
5167 Lisp_Object using its old value.
5168
685e5ed2
GM
51692000-04-04 Gerd Moellmann <gerd@gnu.org>
5170
c407c570
GM
5171 * window.c (compare_window_configurations): Signal an error
5172 if parameters C1 or C2 aren't window configurations.
5173
685e5ed2
GM
5174 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
5175 AFTER_POTENTIAL_GC calls around calls to functions that can
5176 signal an error and thus invoke the debugger.
5177
587a49ab
GM
51782000-04-03 Gerd Moellmann <gerd@gnu.org>
5179
62f20204
GM
5180 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
5181 an error if decoding fails.
5182
587a49ab
GM
5183 * keyboard.c (lispy_mouse_names): Variable removed.
5184 (Vlispy_mouse_stem): New variable.
5185 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
5186 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
5187 for any mouse button number. Increase size of mouse_syms and
5188 button_down_location as needed. Call modify_event_symbol with
5189 different arguments.
5190 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
5191 Call modify_event_symbol with different arguments.
5192 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
5193 for any button number. Call modify_event_symbol with different
5194 arguments.
5195 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
5196 Accept a string for NAME_ALIST_OR_STEM.
5197
5198 * lisp.h (larger_vector): Add prototype.
5199
5200 * fns.c (larger_vector): Make externally visible.
5201
5202 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
5203
2d1675e4
SM
52042000-04-02 Stefan Monnier <monnier@cs.yale.edu>
5205
5206 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
5207 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
5208 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
5209 we are between str1 and str2.
5210 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
5211 (PATFETCH): Use `TRANSLATE'.
5212 (PATFETCH_RAW): Fetch multibyte char if applicable.
5213 (PATUNFETCH): Remove.
5214 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
5215 When writing a char, write it directly into the pattern buffer rather
5216 than going needlessly through a temp char-array.
5217 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
5218 multibyte magic and remove the useless `#ifdef emacs'.
5219 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
5220 buffer.
5221
5222 * regex.h (struct re_pattern_buffer): Make field `multibyte'
5223 conditional on `emacs'.
5224
5225 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
5226
cc2d8c6b
KR
52272000-04-01 Ken Raeburn <raeburn@gnu.org>
5228
5229 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
5230 non-union-type versions of XMARK and friends here, because XMARK
5231 and friends won't work on an integer field if NO_UNION_TYPE is not
5232 defined.
5233 (make_number): Define as a function if it's not defined as a
5234 macro.
5235
09654086
KR
5236 * composite.c (run_composite_function): Use NILP when checking for
5237 nil.
5238 (syms_of_composite): Delete local var NARGS, pass an int as first
5239 argument to Fmake_hash_table.
5240
2387b382
KR
5241 * editfns.c (text_property_stickiness): Use NILP to test
5242 Lisp_Object boolean value.
5243 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
5244 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
5245 problems reading from and changing the same lisp value in an
5246 XSETSTRING call.
5247
27660e89
GM
52482000-04-01 Gerd Moellmann <gerd@gnu.org>
5249
5250 * term.c (TN_no_color_video): New variable.
5251 (term_init): Intitialize TN_no_color_video.
5252 (enum no_color_bit): New enumeration.
5253 (MAY_USE_WITH_COLORS_P): New macro.
5254 (turn_on_face): Use it to determine if attributes may be used
5255 combined with colors.
5256
3578db3c
KR
52572000-04-01 Ken Raeburn <raeburn@gnu.org>
5258
5259 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
5260 with int lvalues via casts; instead, just yield lisp object
5261 lvalues.
5262 (enlarge_window): Variable sizep now points to Lisp_Object. Use
5263 proper accessor macros.
5264 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
5265 (grow_mini_window): Fix typo getting int value of root->height.
5266
6fc556fd
KR
5267 * xdisp.c (compute_string_pos): Fix order of arguments to
5268 string_pos_nchars_ahead.
5269 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
5270 count arg to variable-arg routines like Frun_hook_with_args and
5271 Fformat.
587a49ab
GM
5272 (back_to_previous_visible_line_start)
5273 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
5274 fixed-arg routines like Fget_char_property and Fmake_string.
5275 (reconsider_clip_changes): Use XINT when comparing integer lisp
5276 objects, or passing them as int arguments.
587a49ab
GM
5277 (mark_window_display_accurate, insert_left_trunc_glyphs)
5278 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
5279 storing or passing integer values as lisp objects.
5280 (set_cursor_from_row, highlight_trailing_whitespace): Use
5281 INTEGERP, not implicit test against zero, for glyph object.
5282 (try_window_id): Don't use make_number when we want an int value.
5283
5284 * xfaces.c (xlfd_symbolic_value): Make last argument a
5285 Lisp_Object, to be consistent with callers.
5286 (Fbitmap_spec_p): Use XINT to get numeric value of height.
5287 (lface_hash): Apply XFASTINT to lisp values before folding in.
5288
5289 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
5290 fill in window width and height. Pass an int, not a lisp object,
5291 as first arg to Finsert.
5292
6e7b2457
GM
52932000-04-01 Gerd Moellmann <gerd@gnu.org>
5294
610d841e
GM
5295 * xfaces.c (realize_basic_faces): Block input while realizing
5296 the faces.
5297
6e7b2457
GM
5298 * keyboard.c (lispy_mouse_names): Add additional mouse names.
5299
5300 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
5301
aa110c0c
GM
53022000-03-31 Gerd Moellmann <gerd@gnu.org>
5303
5304 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 5305 or ASCII, handle case that per-char metric is null.
aa110c0c 5306
8801a864
KR
53072000-03-30 Ken Raeburn <raeburn@gnu.org>
5308
c6129d7e
KR
5309 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
5310
8801a864
KR
5311 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
5312 XSUBR, XBUFFER): Verify correct object type before returning
5313 pointer, using eassert.
5314 * frame.h (XFRAME): Likewise.
5315
5316 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
5317 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
5318 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
5319 type.
5320 * data.c (set_internal): Likewise.
5321 * dispextern.h (WINDOW_WANTS_MODELINE_P,
5322 WINDOW_WANTS_HEADER_LINE_P): Likewise.
5323 * fileio.c (auto_save_1): Likewise.
5324 * insdel.c (check_markers): Likewise.
5325 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
5326 * undo.c (record_insert): Likewise.
5327 * vmsproc.c (child_sig): Likewise.
5328 * window.c (unshow_buffer, window_loop): Likewise.
5329 * xterm.c (x_erase_phys_cursor): Likewise.
5330
8e7af858
GM
53312000-03-30 Gerd Moellmann <gerd@gnu.org>
5332
5333 * xfns.c (free_image_cache): Free the cache structure itself
5334 last, after all its members have been freed.
5335
5336 * lisp.h (xstrdup): Add prototype.
5337
5338 * alloc.c (xstrdup): Moved here from xfaces.c.
5339 (allocating_for_lisp): Variable removed.
5340 (lisp_malloc): Block input around the calls to malloc and
5341 mem_insert.
5342
5343 * xfaces.c (realize_tty_face): Use find_symbol_value instead
5344 of Fsymbol_value.
5345 (xstrdup): Moved to alloc.c.
5346
e0b8c689
KR
53472000-03-29 Ken Raeburn <raeburn@gnu.org>
5348
b96f9fb7
KR
5349 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
5350
5351 * emacs.c (main): Fix sense of no-loadup test.
5352
e0b8c689
KR
5353 * config.in (ENABLE_CHECKING): Undef.
5354
5355 * lisp.h (struct interval): Replace "parent" field with a union of
5356 interval pointer and Lisp_Object; add new bitfield to use as
5357 discriminant. Change other flag fields to bitfields.
5358 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
5359 is defined and the supplied test fails, print a message and
5360 abort.
5361 (eassert): New macro. Use CHECK to provide an assert-like
5362 facility.
5363
5364 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
5365 pointers; abort if the value looks like a lisp object.
5366 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
5367 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
5368 Modify for new interval parent definition.
5369
5370 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
5371 UNMARK_BALANCE_INTERVALS): Update references that need an
5372 addressable lisp object in the interval structure.
5373 (die): New function.
5374 (suppress_checking): New variable.
5375
5376 * intervals.c (interval_start_pos): Just return 0 if there's no
5377 parent object.
5378
f83c5440
GM
53792000-03-29 Gerd Moellmann <gerd@gnu.org>
5380
5381 * lread.c (read1): Accept `.' (period) as symbol start like in CL
5382 and earlier Emacs versions.
5383
5384 * keyboard.c (Ftop_level): Cancel busy-cursor.
5385
5386 * eval.c (call_debugger): Cancel busy-cursor.
5387
fdce64ff
KH
53882000-03-29 Kenichi Handa <handa@etl.go.jp>
5389
5390 * search.c (Freplace_match): Adjust multibyteness of the current
5391 buffer and NEWTEXT. Free allocated memory before signaling an
5392 error.
5393
f6a3f532
SM
53942000-03-28 Stefan Monnier <monnier@cs.yale.edu>
5395
5396 * regex.c (analyse_first): New function obtained by ripping out most
5397 of re_compile_fastmap and generalizing it a little bit so that it
5398 can also just return whether a given (sub)pattern can match the empty
5399 string or not.
5400 (regex_compile): Use `analyse_first' to decide whether the loop-check
5401 needs to be done or not for *, +, *? and +? (the loop check is costly
5402 for non-greedy repetition).
5403 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
5404
e9b309ac
DL
54052000-03-28 Dave Love <fx@gnu.org>
5406
bb15bd9a
DL
5407 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
5408 alpha.
5409
e9b309ac
DL
5410 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
5411
ed0767d8
SM
54122000-03-27 Stefan Monnier <monnier@cs.yale.edu>
5413
5414 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
5415 an expression.
5416 (enum re_opcode_t): Update description of succeed_n.
5417 (PATFETCH): Always define.
5418 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
5419 operators, char classes, shy-groups and intervals).
5420 Optimize special cases of intervals so as to only use succeed_n and
5421 jump_n when really needed.
5422 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
5423 that we don't have to handle the special cases any more.
5424 Simplify on_failure_jump handling as well.
5425
e11e7e46
JR
54262000-03-28 Jason Rumney <jasonr@gnu.org>
5427
5428 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
5429
88faab89
GM
54302000-03-27 Gerd Moellmann <gerd@gnu.org>
5431
182ff242
GM
5432 * s/freebsd.h (GC_SETJMP_WORKS): Define.
5433
5434 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 5435
182ff242
GM
5436 * alloc.c (mark_maybe_object): New function.
5437 (mark_memory): Use it.
5438 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
5439 (setjmp_tested_p, longjmp_done): New variables.
5440 (test_setjmp): New function.
5441 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
5442 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
5443
c1005d06
GM
5444 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
5445 to DEC_TEXT_POS and INC_TEXT_POS.
5446
5447 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
5448 with parameter MULTIBYTE_P.
5449
427ec082 5450 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
5451 MULTIBYTE_P.
5452
7439e5b9 5453 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
5454 buffers because it looks for multibyte character byte sequences
5455 which don't exist in unibyte text.
7439e5b9 5456
d9c545da
GM
5457 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
5458
11fd416e 5459 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
5460 [DEBUG_X_COLORS]: New functions.
5461 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
5462
5463 * xfns.c (x_set_cursor_color): Get color reference counts right.
5464
5465 * xterm.c (x_copy_color): New function.
5466 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
5467
5468 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
5469 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
5470 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
5471 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
5472 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
5473 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
5474 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
5475 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
5476 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
5477 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
5478
11fd416e
GM
5479 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
5480 names for handling per-buffer variables.
d9c545da
GM
5481
5482 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
5483 instead of MAX_BUFFER_LOCAL_VARS.
5484 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
5485
5486 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
5487
88faab89
GM
5488 * xfns.c (x_specified_cursor_type): New function.
5489 (x_set_cursor_type): Use it.
5490
5491 * buffer.h (struct buffer): Add cursor_type.
5492
d80f42b7
SM
54932000-03-26 Stefan Monnier <monnier@cs.yale.edu>
5494
5495 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 5496 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 5497 opcode.
d80f42b7
SM
5498 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
5499 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
5500 executing it as well as when popping it off the stack to find infinite
5501 loops in non-greedy repetition operators.
5502
89e80928
GM
55032000-03-26 Gerd Moellmann <gerd@gnu.org>
5504
3d4ff2dd
GM
5505 * doc.c (Qfunction_documentation): New variable.
5506 (syms_of_doc): Initialize Qfunction_documentation.
5507 (Fdocumentation): If FUNCTION is a symbol with non-nil
5508 `function-documentation' property, return a documentation derived
5509 from that.
5510
bd96bd79
GM
5511 * buffer.c (syms_of_buffer): Add default-cursor-type.
5512 (init_buffer_once): Don't let cursor_type have a local value
5513 in every buffer.
5514
19d1bc27
GM
5515 * xterm.c (x_display_and_set_cursor): Choose cursor depending
5516 on buffer-local value of cursor_type.
5517 (x_draw_bar_cursor): Add parameter WIDTH.
5518
5519 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
5520 (init_buffer_once): Set default cursor_type value to t.
5521 Mark cursor_type as local everywhere.
5522 (syms_of_buffer): New per-buffer variable cursor-type.
5523
89e80928
GM
5524 * buffer.h (struct buffer): Remove member local_var_flags,
5525 add local_flags.
5526 (MAX_BUFFER_LOCAL_VARS): New macro.
5527 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
5528 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
5529 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
5530 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
5531
5532 * print.c (print_object): Use new macros for per-buffer
5533 variables.
5534
5535 * category.c (Fset_category_table): Use new macros for per-buffer
5536 variables.
5537
5538 * buffer.c (buffer_permanent_local_flags): Make a char array.
5539 (max_buffer_local_idx): New variable.
5540 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
5541 for new handling of per-buffer variables.
5542 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
5543 (init_buffer_once): Initialize per-buffer vars differently.
5544 Set max_buffer_local_idx.
5545
5546 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
5547 variables.
5548
5549 * lread.c (defvar_per_buffer): Use new macros for per-buffer
5550 variables.
5551
5552 * data.c (do_symval_forwarding, store_symval_forwarding)
5553 (find_symbol_value, set_internal, default_value, Fset_default)
5554 (Fkill_local_variable, Flocal_variable_p): Use new macros for
5555 per-buffer variables.
5556
5557 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
5558
9a0dd3dc
GM
55592000-03-24 Gerd Moellmann <gerd@gnu.org>
5560
b68c375f
GM
5561 * xterm.c (x_term_init): Unblock input around call1 of
5562 Qvendor_specific_keysyms.
5563
9a0dd3dc
GM
5564 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
5565 (find_defun_start): Consider an open parenthesis in column 0
5566 a defun start only if open_paren_in_column_0_is_defun_start is set.
5567 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
5568
7973e637
SM
55692000-03-24 Stefan Monnier <monnier@cs.yale.edu>
5570
5571 * eval.c (Fautoload): Add entry in load-history (if after dump).
5572 * lread.c (load-history): Update docstring.
5573
39210e90
GM
55742000-03-24 Gerd Moellmann <gerd@gnu.org>
5575
5576 * indent.c (Fvertical_motion): Always use the current buffer.
5577 Temporarily change the window's buffer, if necessary.
5578
72db3ab5
GM
55792000-03-23 Gerd Moellmann <gerd@gnu.org>
5580
5581 * xterm.c (fast_find_position): Make sure not to consider rows
5582 not visible in the window.
5583
990b2375
SM
55842000-03-22 Stefan Monnier <monnier@cs.yale.edu>
5585
5586 * regex.c (enum syntaxcode): Provide default for non-Emacs.
5587 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
5588
ff4df011
JR
55892000-03-22 Jason Rumney <jasonr@gnu.org>
5590
5591 * w32menu.c (single_submenu): Set help string to NULL if none.
5592 (w32_menu_show): Set help string correctly.
5593 (add-menu-item): Set help string in MIIM_DATA for menu item.
5594 Load SetMenuItemInfoA explicitly.
5595 (w32_menu_display_help): New function.
427ec082 5596
ff4df011
JR
5597 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
5598 (QCdata): Moved to xdisp.c.
5599
5600 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
5601 (Vw32_charset_to_codepage_alist): Removed.
5602 (Vw32_charset_info_alist): New variable.
5603 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
5604 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
5605 greek, hebrew, thai, johab, mac, unicode]): New symbols.
5606 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
5607 with TODO comment.
5608 (w32_codepage_for_font): Use Vw32_charset_info_alist.
5609 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
5610 Define Vw32_charset_info_alist and w32_charset symbols.
5611
56122000-03-22 Jason Rumney <jasonr@gnu.org>
5613
5614 * makefile.nt (w32bdf.obj): Update dependencies.
5615
5616 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
5617
5618 * w32fns.c: Include fontset.h after dispextern.h.
5619 (Fx_create_frame): Do not create fontset.
5620 (w32_load_system_font): Doc fix.
5621 (Fx_close_connection): Free full_name if it is not shared.
5622
5623 * w32term.c: Include fontset.h after dispextern.h.
5624 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
5625 updated.
5626 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
5627 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
5628 (w32_font_is_double_byte): New function, needs body.
5629 (x_append_glyph): Set glyph->glyph_not_available_p.
5630 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5631 it->charset. If it->multibyte_p is zero and it->c is a multibyte
5632 character, convert it to a unibyte character.
5633 (struct glyph_string): Delete member `charset'.
5634 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
5635 calculating it is found.
5636 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5637 the case that per char metric is not available correctly.
5638 (x_fill_glyph_string): Handle the case that the specific glyph is
5639 not available correctly.
5640 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5641 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5642 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5643 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5644 fontset. Don't call FS_LOAD_FONT.
5645
439d5cb4
KR
56462000-03-22 Ken Raeburn <raeburn@gnu.org>
5647
5648 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
5649 (INT_LISPLIKE): New macro.
5650 (NULL_INTERVAL_P): Use it.
5651 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
5652 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
5653 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
5654
5655 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
5656 explicit references to "parent" field of struct interval and
5657 associated unclean type conversions.
5658 * intervals.c (create_root_interval, root_interval, rotate_right,
5659 rotate_left, balance_possible_root_interval, split_interval_right,
5660 split_interval_left, interval_start_pos, find_interval,
5661 next_interval, previous_interval, update_interval,
5662 adjust_intervals_for_insertion, delete_node, delete_interval,
5663 adjust_intervals_for_deletion, merge_interval_right,
5664 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
5665 copy_intervals_to_string): Likewise.
5666 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
5667 Likewise.
5668 * syntax.c (update_syntax_table): Likewise.
5669
5670 * intervals.c (reproduce_tree_obj): New function, like
5671 reproduce_tree but takes a Lisp_Object for the parent. Declare
5672 with prototype.
5673 (graft_intervals_into_buffer): Use it when appropriate.
5674 (reproduce_tree): Declare with prototype.
5675 (balance_possible_root_interval): Check that the parent is a lisp
5676 object before trying to examine its type.
5677
ee1c5b21
GM
56782000-03-22 Gerd Moellmann <gerd@gnu.org>
5679
5680 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
5681 as strings only if both are known to be strings.
5682
5683 * s/openbsd.h (LIBS_TERMCAP): Undef.
5684
1fb352e0
SM
56852000-03-21 Stefan Monnier <monnier@cs.yale.edu>
5686
5687 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
5688 definitions for non-Emacs compilation.
5689 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
5690 outside of `#ifdef emacs'.
5691 (print_partial_compiled_pattern): Update.
5692 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
5693 (re_compile_fastmap): Merge handling of charset and charset_not (for
5694 emacs and non-emacs compilation as well).
5695 Similarly for (not)categoryspec and (not)syntaxspec.
5696 Don't use the fastmap when reaching `anychar' since the added
5697 complexity is not justified.
5698 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
5699 and (not)syntaxspec. Merge (not)categoryspec.
5700
fdaa1f77
KH
57012000-03-22 Kenichi Handa <handa@etl.go.jp>
5702
ff1a0d8e
KH
5703 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
5704 FACE_FOR_CHAR): Define them differently for the configuration of
5705 --without-x.
fdaa1f77 5706
d152fb46
DL
57072000-03-21 Dave Love <fx@gnu.org>
5708
5709 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
5710 doc string.
5711
d2cafc8c
GM
57122000-03-21 Gerd Moellmann <gerd@gnu.org>
5713
5714 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
5715 (lface_fully_specified_p): Don't check contents of
5716 LFACE_FONT_INDEX because that attribute is optional.
5717 (realize_x_face): Remove now unwarranted xassert.
5718
9111d4b5
KH
57192000-03-21 Kenichi HANDA <handa@etl.go.jp>
5720
5721 The following changes are to make font selection based on
5722 characters, not charset. In addition, they recover fontset
5723 facilities while utilizing the new font selection mechanism.
5724
6c4bfdc0
KH
5725 * Makefile.in (fontset.o): Depend on dispextern.h.
5726
5727 * alloc.c (mark_face_cache): Don't mark face->registry.
5728
9111d4b5
KH
5729 * dispextern.h (struct glyph): New member glyph_not_available_p.
5730 Use 22 bits for face_id.
5731 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
5732 (struct face): Delete member registry, new member ascii_face.
5733 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
5734 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
5735 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
5736 (struct it): Delete member charset, new member
5737 glyph_not_available_p.
5738
5739 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
5740 (struct fontset_info, struct fontset_data): Structs removed.
5741 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
5742 Vglobale_fontset_alist, font_idx_temp): Externs removed.
5743 (fs_load_font, fs_query_fontset): Adjusted for new argument.
5744 (fs_free_face_fontset, fontset_font_pattern,
5745 face_suitable_for_char_p, face_for_char,
5746 make_fontset_for_ascii_face): Extern them.
5747 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
5748 (FS_LOAD_FACE_FONT): New macro.
5749
5750 * fontset.c: All codes rewritten or adjusted for the change of
5751 fontset implementation. Now fontset is represented by char table.
5752 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
5753 removed.
5754 (my_strcasecmp): Function removed.
5755 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
5756 variables.
5757 (AREF, ASIZE): New macros.
5758 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
5759 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
5760 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
5761 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
5762 fontset_id_valid_p, font_family_registry, fontset_name,
5763 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
5764 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
5765 New functions.
5766 (fs_load_font): New arg FACE. Caller changed.
5767 (fs_query_fontset): Argument changed. Caller changed.
5768 (Fquery_fontset): call fs_query_fontset.
5769 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
5770 Functions removed.
5771 (clear_fontset_elements, check_registry_encoding,
5772 check_fontset_name): New functions.
5773 (syms_of_fontset): Set char-table-extra-slots property of fontset
5774 to 3. Staticpro and initialize Vfontset_table and
5775 Vdefault_fontset. Defsubr fontset_font and fontset_list.
5776
5777 * frame.h (struct frame): Member `fontset_data' removed.
5778 (FRAME_FONTSET_DATA): Macro removed.
5779
5780 * frame.c (make_frame): Don't allocate f->fontset_data.
5781 (Fdelete_frame): Don't free f->fontset_data.
5782
6c4bfdc0
KH
5783 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
5784
9111d4b5
KH
5785 * xdisp.c (charset_at_position): Function removed.
5786 (init_iterator): Don't set member charset of struct `it'.
5787 (handle_face_prop, reseat_to_string, set_iterator_to_next,
5788 next_element_from_display_vector, insert_left_trunc_glyphs):
5789 Likewise.
5790 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
5791 FACE_FOR_CHARSET.
5792 (get_next_display_element, append_space,
5793 extend_face_to_end_of_line): Likewise.
5794
5795 * xfaces.c (Qx_charset_registry, Vface_default_registry):
5796 Variables removed.
5797 (clear_font_table, frame_update_line_height, load_face_font):
5798 Adjusted for the change of fontset implementation.
5799 (load_face_fontset_font): Function removed.
5800 (pixel_point_size): New function.
5801 (font_list): Argument type changed. Caller changed.
5802 (LFACE_FONT): New macro.
5803 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
5804 (set_lface_from_font_name): Type of arg FONTNAME is changed to
5805 Lisp_Object. Determine the font name by actually loading a font
5806 by the specified pattern. Set LFACE_FONT (lface) to the specified
5807 pattern. Even if a font is not found, don't try alternatives.
5808 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
5809 (set_font_frame_param): If `font' is specified in lface, use it.
5810 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
5811 (lface_same_font_attributes_p): Likewise.
5812 (make_realized_face): Arguent changed. Caller changed. Set
5813 face->ascii_face to face itself.
5814 (free_realized_face): Free face->fontset if face is for ASCII.
5815 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
5816 deduce_unibyte_registry, x_charset_registry): Functions removed.
5817 (free_realized_multibyte_face): New function.
5818 (lookup_face, lookup_named_face, lookup_derived_face): Argument
5819 changed. Caller changed.
5820 (try_font_list): Argument type changed.
5821 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
5822 (choose_face_font): Argument changed. Handle fontset properly.
5823 (choose_face_fontset_font): Function removed.
5824 (realize_default_face, realize_named_face): Don't remove the
5825 former face here.
5826 (realize_face): Argument changed. Caller changed. Remove face
5827 with the arg former_face_id in advance. Load font for the new
5828 face.
5829 (realize_x_face): Argument changed. Caller changed. For a
5830 multibyte character, share fontset with base_face. For a single
5831 byte character, make a new realized fontset. Don't load a font
5832 here.
5833 (realize_tty_face): Argument changed. Caller changed.
5834 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
5835 (face_at_buffer_position): Don't check multibyte_p for returning
5836 DEFAULT_FACE_ID.
5837 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
5838 FACE_SUITABLE_FOR_CHARSET_P.
5839 (syms_of_xfaces): Remove code for Qx_charset_registry and
5840 Vface_default_registry.
5841
6c4bfdc0
KH
5842 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
5843 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
5844 (x_per_char_metric): Don't try FONT->default_char. Even if
5845 pcm->width is zero, glyph bits may exist.
5846 (x_encode_char): Always initialize char2b->byte1.
5847 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
5848 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
5849 changed.
5850 (x_append_glyph): Set glyph->glyph_not_available_p.
5851 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
5852 it->charset. Handle the case that per char metric is not
5853 available. If it->multibyte_p is zero and it->c is a multibyte
5854 character, convert it to a unibyte character.
5855 (struct glyph_string): Delete member `charset'.
5856 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
5857 the case that per char metric is not available correctly.
5858 (x_fill_glyph_string): Handle the case that the specific glyph is
5859 not available correctly.
5860 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
5861 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
5862 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
5863 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
5864 fontset. Don't call FS_LOAD_FONT.
5865
5866 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
5867 (x_create_tip_frame): Likewise.
5868 (Fx_close_connection): Free full_name of font_info.
5869
5870 * fns.c (optimize_sub_char_table): New function.
5871 (Foptimize_char_table): New function.
5872 (syms_of_fns): Defsubr Soptimize_char_table.
5873
b33dd3b0
GM
58742000-03-20 Gerd Moellmann <gerd@gnu.org>
5875
5876 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
5877 only if buffer is displayed in some window.
5878
5879 * xdisp.c (handle_single_display_prop): Initialize local `value'.
5880 (try_window_reusing_current_matrix): Don't call scroll run
5881 function if run's current and desired position are the same;
5882 this prevents cursor flickering.
5883
4e8a9132
SM
58842000-03-19 Stefan Monnier <monnier@cs.yale.edu>
5885
5886 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
5887
5888 * regex.c (RE_STRING_CHAR): New macro.
5889 (GET_CHAR_AFER_2): Remove.
5890 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
5891 (enum re_opcode_t): Remove on_failure_jump_exclusive.
5892 (print_partial_compiled_pattern, re_compile_fastmap)
5893 (re_match_2_internal): Remove on_failure_jump_exclusive.
5894 (regex_compile): Turn optimizable P+ loops into PP*, so that the
5895 optimization only need to work for * (ie. can use of_keep_string_jump).
5896 Remove the special case for .*\n since it is now covered by the general
5897 optimization.
5898 (re_search_2): Don't bother with `room'.
5899 (skip_one_char): New function.
5900 (skip_noops): Simplify since `memory' is not needed any more.
5901 (mutually_exclusive_p): Restructure slightly to use `switch' and
5902 add handling for "all" remaining cases.
5903 (re_match_2_internal): Change on_failure_jump_smart to use
5904 on_failure_keep_string_jump (and redirect the end-of-loop jump)
5905 rather than on_failure_jump_exclusive.
5906
2136fdd4
GM
59072000-03-19 Gerd Moellmann <gerd@gnu.org>
5908
5909 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
5910 number of bits per RGB because it's everywhere used as the depth
5911 of the visual.
5912
5913 * term.c (calculate_costs): Remove code dealing with X frames.
5914
18e21ce8 59152000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
5916
5917 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
5918
d7b511c4
GM
59192000-03-18 Gerd Moellmann <gerd@gnu.org>
5920
5921 * lread.c (read_integer): Unread the last char not consumed.
5922
16b5d424
GM
59232000-03-17 Gerd Moellmann <gerd@gnu.org>
5924
5925 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 5926 which are in the process of being deleted.
16b5d424 5927
1fa28578
GM
59282000-03-16 Gerd Moellmann <gerd@gnu.org>
5929
83488cce
GM
5930 * Makefile.in (mostlyclean): Add `*.core'.
5931 (clean): Add `bootstrap-emacs'.
5932
1fa28578
GM
5933 * lread.c (read_integer): New function.
5934 (read1): Support read syntax #o, #x, #b, #r.
5935
99633e97
SM
59362000-03-15 Stefan Monnier <monnier@cs.yale.edu>
5937
1fa28578
GM
5938 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
5939 make sure POINTER_TO_OFFSET gives the same value before and after
5940 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
5941 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
5942 (debug): Now only active if > 0 rather than if != 0.
5943 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
5944 (print_partial_compiled_pattern): Add missing `succeed' case. Use
5945 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
5946 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
5947 (store_op1, store_op2, insert_op1, insert_op2)
5948 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
5949 (group_in_compile_stack): Move to after its arg's types are
5950 declared and add a prototype.
99633e97 5951 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
5952 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
5953 wrapper.
99633e97 5954 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
5955 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
5956 indentation of the greedy-op and shy-group code.
99633e97
SM
5957 (at_(beg|end)line_loc_p): Fix argument's types.
5958 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
5959 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
5960 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
5961 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
5962 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
5963 QUIT unconditionally.
99633e97 5964
699238d9
GM
59652000-03-15 Gerd Moellmann <gerd@gnu.org>
5966
5967 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
5968 a sole completion.
5969
5970 * process.c (send_process): Add a hint that the function
5971 can call Lisp code to its comment.
5972
5973 * lread.c (load_dangerous_libraries): New variable.
5974 (Vbytecomp_version_regexp): New variable.
5975 (safe_to_load_p): New function.
5976 (Fload): Handle files not compiled with Emacs specially.
5977 (syms_of_lread): New Lisp variable load-dangerous-libraries.
5978
34e23e5a
GM
59792000-03-14 Gerd Moellmann <gerd@gnu.org>
5980
9c763cca
GM
5981 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
5982
5983 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
5984 support functions only if HAVE_X11R6_XIM is defined.
5985 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
5986
5987 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
5988
5989 * xfns.c (X_I18N_INHIBITED): Don't define.
5990 (create_frame_xic): Remove conditional compilation on
5991 X_I18N_INHIBITED.
5992 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
5993
5994 * config.in (HAVE_X_I18N): Moved here from xterm.h.
5995 (HAVE_X11R6_XIM): Define.
5996
5997 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
5998
34e23e5a
GM
5999 * xterm.c (x_term_init): Add support for X resource `synchronous'.
6000 If set, call XSynchronize.
6001
66f0296e
SM
60022000-03-13 Stefan Monnier <monnier@cs.yale.edu>
6003
34e23e5a
GM
6004 * regex.c: Declare a new type `re_char' used throughout the code
6005 for the string char type. It's `const unsigned char' to match the
6006 rest of Emacs. Consistently make sure all pointers to strings use
6007 it and make sure all pointers into the pattern use `unsigned
6008 char'.
66f0296e 6009 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
6010 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
6011 code duplication.
66f0296e
SM
6012
6013 * charset.h (GET_CHAR_AFTER_2): Remove.
6014 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
6015
854a025c
KR
60162000-03-12 Ken Raeburn <raeburn@gnu.org>
6017
6018 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
6019 variable before the invocation of YMF_PASS_LDFLAGS, in case both
6020 of them try to use backquotes.
6021
b9d2c7e2
DL
60222000-03-12 Dave Love <fx@gnu.org>
6023
6024 * unexelf.c: Restore changes of 1999-10-19.
6025 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
6026 fix its type and alignment; copy it from current process.
6027
5e5dff44
GM
60282000-03-12 Gerd Moellmann <gerd@gnu.org>
6029
9b2f3c38
GM
6030 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
6031 has been found. Fix bug not computing timer's predecessor.
6032
427ec082 6033 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
6034 file name.
6035
e1cff360
GM
6036 * window.c (Fsave_window_excursion): Doc fix.
6037
5e5dff44
GM
6038 * xfns.c (x_defined_color): Rewritten to use
6039 x_allocate_nearest_color.
6040
e411ce4b
EZ
60412000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
6042
6043 * msdos.c (vga_installed): New function, code moved from
6044 dos_set_window_size.
6045 (Qbar, Qcursor_type, outside_cursor): New variables.
6046 (syms_of_msdos): Intern and staticpro them.
6047 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
6048 shape used outside Emacs when called for the first time.
6049 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
6050 cursor shape used outside Emacs.
6051 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
6052 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
6053 type has changed.
6054 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
6055 parameters specify the cursor. Make qreverse a global
6056 variable (renamed to Qreverse).
6057
80460654
GM
60582000-03-09 Gerd Moellmann <gerd@gnu.org>
6059
6060 * fns.c (Fy_or_n_p): Cancel busy-cursor.
6061
95cd4c40
SM
60622000-03-08 Stefan Monnier <monnier@cs.yale.edu>
6063
6064 This is a big redesign of failure-stack and register handling, prompted
6065 by bugs revealed when trying to add shy-groups. Overall, what happened
6066 is that loops are now structured a little differently, groups can be
6067 shy and the code is a little simpler.
6068
6069 * regex.h: Update the copyright.
6070 (RE_SHY_GROUPS): New value.
6071 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
6072 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
6073
80460654
GM
6074 * regex.c (enum re_opcode_t): Remove jump_past_alt,
6075 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
6076 on_failure_jump_(exclusive, loop and smart). Also fix the comment
6077 for (start|stop)_memory since they now only take one argument (the
6078 second has becomes unnecessary).
6079 (print_partial_compiled_pattern): Adjust for changes in
6080 re_opcode_t.
6081 (print_compiled_pattern): Use %ld to printf long ints and flush to
6082 make debugging a little easier.
95cd4c40
SM
6083 (union fail_stack_elt): Make the integer unsigned.
6084 (struct fail_stack_type): Add a `frame' element.
6085 (INIT_FAIL_STACK): Init `frame' as well.
6086 (POP_PATTERN_OP): New macro for re_compile_fastmap.
6087 (DEBUG_PUSH, DEBUG_POP): Remove.
6088 (NUM_REG_ITEMS): Remove.
6089 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
6090 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
6091 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 6092 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
6093 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
6094 macros.
6095 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
6096 address pushed is not the destination of the jump but the source
6097 of it instead.
95cd4c40
SM
6098 (NUM_FAILURE_ITEMS): Remove.
6099 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
6100 registers before the actual failure point). Don't hardcode any
6101 meaning for str==NULL anymore.
95cd4c40 6102 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
6103 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
6104 Remove.
95cd4c40
SM
6105 (REG_UNSET_VALUE): Use NULL (why not?).
6106 (compile_range): Remove declaration since it doesn't exist.
6107 (struct compile_stack_elt_t): Remove inner_group_offset.
6108 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
6109 (regex_grow_registers): Remove dead code.
6110 (FIXUP_ALT_JUMP): New macro.
80460654
GM
6111 (regex_compile): Add shy-groups Change loops to use
6112 on_failure_jump_smart&jump instead of
6113 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
6114 initial (dummy_failure_)jump. Remove c1_base (looks like unused
6115 variable to me). Use `jump' instead of `jump_past_alt' and don't
6116 bother with push_dummy_failure in alternatives since it is now
6117 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
6118 emacs' for (re)allocating the stack.
6119 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
6120 from loop when bufp->can_be_null rather than jumping to `done'.
6121 Avoid jumping backwards so as to ensure termination. Use
6122 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
6123 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 6124 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
6125 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
6126 improve mutually_exclusive_p to handle ".+\n".
6127 (lowest_active_reg, highest_active_reg,
6128 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
6129 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
6130 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
6131 variables. Push register (in `start_memory') on the stack rather
6132 than storing it in old_reg(start|end). Remove the cycle detection
6133 from `stop_memory', replaced by the use of on_failure_jump_loop
6134 for greedy loops. Add code for the new on_failure_jump_<foo>.
6135 Remove ad-hoc code in `on_failure_jump' to push more registers in
6136 the case of a loop. Take out code from `maybe_pop_jump' into
6137 separate functions and adapt it to the semantics of
6138 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
6139 and push_dummy_failure. Remove dummy_failure handling and
6140 handling of `failures to jump to on_failure_jump' (this last one
6141 was already dead code, it seems).
6142 (group_match_null_string_p, alt_match_null_string_p)
6143 (common_op_match_null_string_p): Remove.
95cd4c40 6144
7397acc4
DL
61452000-03-08 Dave Love <fx@gnu.org>
6146
6147 * config.in: Don't depend on __STDC__ for volatile.
6148 Add POINTER_TYPE, PTR, PROTOTYPES.
6149
6150 * hftctl.c, strftime.c: Use PROTOTYPES.
6151 * eval.c (find_handler_clause): Likewise.
6152
6153 * mem-limits.h: Use POINTER_TYPE.
6154
6155 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
6156 (memory_warnings): Declare using POINTER_TYPE.
6157
5e91ff9e
GM
61582000-03-08 Gerd Moellmann <gerd@gnu.org>
6159
feab4fba
GM
6160 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
6161
25edb08f
GM
6162 * xdisp.c (display_echo_area): Temporarily inhibit garbage
6163 collection.
6164
5e91ff9e
GM
6165 * xfns.c: Remove obsolete code in #if 0.
6166 (Fx_focus_frame): New function.
6167
a735b7e1
KH
61682000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
6169
6170 * coding.c (coding_category_name): Add coding-category-utf-8,
6171 coding-category-utf-16-be, coding-category-utf-16-le.
6172 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
6173 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
6174 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
6175 (detect_coding_utf_8): New function.
6176 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
6177 UTF_16_LOW_SURROGATE_P): New macros.
6178 (detect_coding_utf_16): New function
6179 (detect_coding_mask): When priorities are specified, skip any
6180 categories that have `nil' coding-system. Fix bug of returning
6181 wrong mask when PRIORITIES is specified and detect_coding_XXX()
6182 returns a mask not set in PRIORITIES.
6183 (detect_eol_type_in_2_octet_form): New function.
6184 (detect_eol): selects detect_eol_type_XXX to call according to
6185 cooding->category_idx.
6186 (detect_coding_system): Remove `nil' coding-system in the result.
6187 (Fupdate_coding_systems_internal): Update all coding-categories.
6188
6189 * coding.h (CODING_CATEGORY_IDX_UTF_8,
6190 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
6191 macros.
6192 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
6193 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
6194 CODING_CATEGORY_IDX_UTF_16_LE.
6195 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
6196 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
6197 (CODING_CATEGORY_MASK_ANY): Include the above macros.
6198 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
6199
9994cc69
GM
62002000-03-07 Gerd Moellmann <gerd@gnu.org>
6201
e9b4e5ff
GM
6202 * doc.c (Fdocumentation_property): If value is not a string,
6203 and doesn't refer to etc/DOC, evaluate it to obtain a string.
6204
f7daf1e1
GM
6205 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
6206 close the display with XtCloseDisplay. This caused a bus error
6207 on OpenWindows.
6208
9994cc69
GM
6209 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
6210 complete but not unique.
6211
4336c705
GM
62122000-03-06 Gerd Moellmann <gerd@gnu.org>
6213
18bb0684
GM
6214 * process.c (send_process): Remove local variable `procname' that
6215 might become invalid when a GC happens. Instead, access the
6216 process name slot directly.
6217
4336c705
GM
6218 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
6219 orig_height if set.
6220
6221 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
6222 orig_height if set.
6223
515d0d0e
EZ
62242000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
6225
6226 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
6227 glyph matrices have been freed.
6228
100b3cbb
GM
62292000-03-05 Gerd Moellmann <gerd@gnu.org>
6230
50df5e5a 6231 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 6232 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
6233
6234 * xfns.c (QCdata): Moved to xdisp.c.
6235
6236 * xdisp.c (QCdata): Moved here from xfns.c.
6237 (syms_of_xdisp): Initialize QCdata.
6238
6239 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
6240
6241 * window.c (coordinates_in_window): Use
6242 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
6243 FRAME_INTERNAL_BORDER_WIDTH.
6244
100b3cbb 6245 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 6246 it is obviously invalid.
100b3cbb
GM
6247
6248 * xterm.c (x_term_init): Create a colormap if not using the
6249 default visual.
6250
6251 * xterm.h (select_visual): Change prototype.
6252
6253 * xfns.c (select_visual): Rewritten. Recognize user-specified
6254 visual classes.
6255 (visual_classes): New variable.
6256
64d739c4
GM
62572000-03-04 Gerd Moellmann <gerd@gnu.org>
6258
6259 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
6260 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
6261 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
6262 (x_decode_color): Don't handle allocation of white and black
6263 specially.
6264 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
6265 XtNcolormap resources.
6266 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
6267 (Fx_create_frame): Initialize color members of x_output structure.
6268 (xpm_load): Pass colormap to XPM lib.
6269
6270 * xfaces.c (x_free_colors): Access colormap of frame using
6271 FRAME_X_COLORMAP. Be paranoid about freeing black and white
6272 when default colormap is used.
6273
6274 * xterm.c (x_term_init): Set Colormap member of x_display_info
6275 structure. Copy colormap if resource `privateColormap' is
6276 specified (PseudoColor only).
6277 (x_setup_relief_color): Access colormap of frame using
6278 FRAME_X_COLORMAP.
6279
6280 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
6281 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
6282
c3cee013
JR
62832000-03-04 Jason Rumney <jasonr@gnu.org>
6284
6285 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
6286 other non-platform-specific equivalents.
64d739c4 6287 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
6288 specific functions and macros as their w32 equivalents where
6289 non-platform-specifics are not available.
6290 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
6291 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
6292 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
6293 (frame_update_line_height): Use macros to access f->output_data.
6294 (defined_color): Remove FIXME comments; fixed.
6295 (x_face_list_fonts, prepare_face_for_display): Put X specifics
6296 into #ifdef blocks. Add WINDOWSNT blocks.
6297 (Fx_list_fonts): Use macros for accessing font data.
6298 (set_lface_from_font_name): Different default fonts for X and
6299 WINDOWSNT.
6300 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
6301 scalable for backward compatibility.
64d739c4 6302 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
6303 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
6304
64d739c4 6305 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
6306 syms_of_w32faces.
6307
6308 * makefile.nt (w32faces.obj): Remove.
6309 (xfaces.obj): Add.
6310
807cc41c
JR
63112000-03-03 Jason Rumney <jasonr@gnu.org>
6312
6313 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
6314 correct parameters.
6315
0007072a
KR
63162000-03-03 Ken Raeburn <raeburn@gnu.org>
6317
6318 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
6319 standard ELF definitions here if the system header does not.
6320
71a6ba55
GM
63212000-03-03 Gerd Moellmann <gerd@gnu.org>
6322
6323 * xterm.c (PER_CHAR_METRIC): Removed.
6324 (x_per_char_metric_1, x_default_char): New functions.
6325 (x_per_char_metric): If font's default char is invalid, return
6326 metrics of a suitably chosen usable default char.
6327 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
6328 char, replace occurrences of unprintable chars with a suitably
6329 chosen usable default char.
71a6ba55 6330
900fa1f1
GM
63312000-03-02 Gerd Moellmann <gerd@gnu.org>
6332
42f55fe0
GM
6333 * xterm.c (note_mouse_highlight): Return quickly if frame's
6334 glyph matrices have been freed.
6335
6336 * dispnew.c (free_glyphs): Block input while freeing matrices.
6337
900fa1f1
GM
6338 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
6339
6340 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
6341 x_free_colors.
6342
6343 * dispextern.h (x_free_colors): Add prototype.
6344
6345 * xfaces.c (x_free_colors): New function.
6346 (unload_color, free_face_colors): Use it.
6347
2f950292
EZ
63482000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
6349
6350 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
6351
6352 * window.c [MSDOS]: Include msdos.h.
6353
54d04320
DL
63542000-03-02 Dave Love <fx@gnu.org>
6355
6356 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
6357
6358 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
6359 set C_OPTIMIZE_SWITCH for gcc.
6360
0ba93ac4
KH
63612000-03-02 Kenichi Handa <handa@etl.go.jp>
6362
6363 * coding.c (coding_save_composition): Be sure to allocate
6364 composition data area in coding even if there's no composition in
6365 the current run.
6366
a2bc11d4
JR
63672000-03-01 Jason Rumney <jasonr@gnu.org>
6368
6369 * w32term.c: Equivalent changes to those made to xterm.c on
6370 2000-02-25 and 2000-02-24.
6371
6372 * w32fns.c: Equivalent changes to those made to xfns.c on
6373 2000-02-25 and 2000-02-21.
6374
6375 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
6376 correct line-end convention is followed.
6377
6378 * w32menu.c [HAVE_BOXES]: Remove #undef.
6379 (single_keymap_panes): Remove code for simulating checkmarks.
6380 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
6381 Remove code for drawing simulated checkmarks.
6382 (w32_menu_show): make unibyte help string correctly.
6383 (add_menu_item): draw standard Windows checkmarks. Draw radio
6384 buttons as radio buttons if possible.
6385
72d19d75
GM
63862000-03-01 Gerd Moellmann <gerd@gnu.org>
6387
2df636f4
GM
6388 * sysdep.c (start_of_text): Don't define this function for NetBSD
6389 with ELF.
6390
427ec082 6391 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
6392 Don't define.
6393 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
6394 (LINKER): Don't undef if __NetBSD__ is defined.
6395
6396 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
6397
6398 * fileio.c [__NetBSD__]: Define `unix'.
6399
72d19d75
GM
6400 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
6401
ed4d0512
GM
64022000-02-29 Gerd Moellmann <gerd@gnu.org>
6403
50b1039f
GM
6404 * atimer.c (start_atimer): Don't abort when timers are stopped.
6405 (append_atimer_lists): New function.
6406 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
6407 arbitrary lists of stopped and running atimers.
6408
ed4d0512
GM
6409 * atimer.c (cancel_atimer): Handle canceling an atimer when
6410 some timers are stopped.
6411
6412 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
6413 after canceling it.
6414
6415 * fns.c (maybe_resize_hash_table): Handle case of new size
6416 coming out as being the same as old size.
6417
387023ee
JR
64182000-02-27 Jason Rumney <jasonr@gnu.org>
6419
6420 * makefile.nt: Add atimer.h to dependencies.
6421 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
6422 * w32console.c: Only disable window system features for dispextern.h
6423 (initialize_w32_display): Build a display info for the console.
6424 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
6425 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
6426 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
6427 as 2 button mice.
6428 * w32gui.h (struct W32FontStruct): Revert last change after change
6429 to xdisp.c.
6430 * w32menu.c (single_submenu): Set up help string.
6431 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
6432 (w32_dialog_show): Set up help string.
6433 * w32term.c (w32_display_info_for_display): Remove unused function.
6434 (w32_draw_bitmap): Use pre-built bitmaps.
6435 (w32_initialize_display_info): New function to initialize parts of
6436 display info that are common to both GUI and console frames.
6437 (w32_term_init): Use w32_initialize_display_info. Do not set
6438 Vw32_num_mouse_buttons here, as it is not called for console
6439 frames. Build bitmaps for indicating truncated lines etc.
6440 (x_delete_display): Destroy pre-built bitmaps.
6441 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
6442 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
6443
4516715a
DL
64442000-02-27 Dave Love <fx@gnu.org>
6445
6446 * lisp.h: Add a bunch of prototypes.
6447
171ca836
KH
64482000-02-26 Kenichi Handa <handa@etl.go.jp>
6449
6450 * keyboard.c (read_char): Set `usec' correctly.
6451
4013921d
KH
64522000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
6453
6454 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
6455 `lambda', set reg[RRR] to the map index.
6456 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
6457 reg[RRR] to 0. Otherwise, set it to -1.
6458
9244a058
GM
64592000-02-25 Gerd Moellmann <gerd@gnu.org>
6460
2df636f4 6461 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 6462
18e21ce8 64632000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 6464
f43d79c1
GM
6465 * fileio.c (Ffile_symlink_p): If result starts with a `/'
6466 and contains a `:', prepend `/:'.
6467
6468 * window.c (select_window_1): If selected_window is nil,
6469 don't "swap out" the buffer's point.
6470 (Fset_window_configuration): Set selected_window to nil
6471 before calling Fselect_window.
6472 (unshow_buffer): Don't set point in buffer from window's point
6473 if another more recently selected window also shows the buffer.
6474
bed0c171
GM
64752000-02-25 Gerd Moellmann <gerd@gnu.org>
6476
449c3c52
GM
6477 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
6478
f5b58615
GM
6479 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
6480 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
6481 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
6482 variables.
6483 (DEFAULT_BUSY_CURSOR_DELAY): New define.
6484 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
6485 (hide_busy_cursor): New functions.
6486 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
6487
6488 * minibuf.c (read_minibuf): Cancel busy-cursor.
6489
6490 * keyboard.c (command_loop_1): Call start_busy_cursor before
6491 Fcommand_execute and cancel_busy_cursor after it.
6492 (timer_check): Remove busy-cursor code.
6493 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
6494 cursor timer.
6495
6496 * process.c (wait_reading_process_input): Remove busy-cursor code.
6497
6498 * eval.c (Fsignal): Call cancel_busy_cursor instead of
6499 Fx_hide_busy_cursor.
6500
6501 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
6502 Remove prototyoes.
6503 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
6504
6505 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
6506
6507 * xterm.c (XTread_socket): Remove busy-cursor code.
6508
4eb8436f
GM
6509 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
6510 (build_frame_matrix_from_leaf_window): Put code handling
6511 glyph row's not being a slice of a frame row in #if 0.
6512 (sync_window_with_frame_matrix_rows): New function.
6513 (frame_row_to_window): New function.
6514 (mirror_line_dance): Handle copies between windows.
6515
3cb65b0e
GM
6516 * lread.c (Fload): Use `xfree' instead of `free'.
6517 (init_obarray): Use `xmalloc' instead of `malloc'.
6518
bed0c171
GM
6519 * window.c (Fset_window_buffer): Set WINDOW to the window
6520 after decoding.
2add4349
GM
6521 (coordinates_in_window): Take frame's internal border width
6522 into account.
bed0c171 6523
42088c12
GM
65242000-02-24 Gerd Moellmann <gerd@gnu.org>
6525
6526 * xterm.c (x_display_and_set_cursor): Display cursor of
6527 non-selected windows depending on the setting of
6528 cursor_in_non_selected_windows.
6529
6530 * xdisp.c (cursor_in_non_selected_windows): New variable.
6531 (syms_of_xdisp): DEFVAR_BOOL it.
6532
d1e103b2
GM
65332000-02-23 Gerd Moellmann <gerd@gnu.org>
6534
723e779c
GM
6535 * data.c (Fstring_to_number): If number is greater than what
6536 fits into an integer, return a float.
6537
d1e103b2
GM
6538 * eval.c (specbind): Remove references to
6539 keyword_symbols_constant_flag.
6540
6541 * data.c (keyword_symbols_constant_flag): Removed.
6542 (Fmakunbound, set_internal, syms_of_data): Remove references to
6543 keyword_symbols_constant_flag.
6544
6545 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
6546
214f877f
KH
65472000-02-23 Kenichi Handa <handa@etl.go.jp>
6548
6549 * syntax.c (multibyte_syntax_as_symbol): New variable.
6550 (syms_of_syntax): Declare it as a Lisp variable.
6551 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
6552 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
6553 nonzero, treat all multibyte characters as symbol.
42088c12 6554 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
6555 characters.
6556
130adcb7
EZ
65572000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
6558
3cb65b0e 6559 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 6560 a deleted frame.
130adcb7 6561
17cbbf95
GM
65622000-02-21 Gerd Moellmann <gerd@gnu.org>
6563
6564 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
6565
6566 * xfns.c (x_window_to_frame, x_any_window_to_frame)
6567 (x_non_menubar_window_to_frame): Check the busy-cursor window.
6568
beb0bc36
DL
65692000-02-21 Dave Love <fx@gnu.org>
6570
6571 * frame.c (Vmouse_position_function): New variable.
6572 (Fmouse_position): Use it.
6573 (syms_of_frame): Install it.
6574
6575 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
6576
1d92afcd
GM
65772000-02-20 Gerd Moellmann <gerd@gnu.org>
6578
6579 * fileio.c (Finsert_file_contents): Unbind the binding of
6580 standard-output done by temp_output_buffer_setup.
329eed9f
GM
6581
6582 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
6583 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
6584 (specbind, unbind_to): Handle most common case of non-constant
6585 symbol with trivial value specially.
6586
6587 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
6588
18e21ce8 65892000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
6590
6591 * data.c (Fmake_variable_buffer_local): Doc fix.
6592 Init found_for_buffer to 0.
6593 (Fmake_variable_frame_local): If the variable has already
6594 been buffer-local, set the check_frame field.
6595
1d4311c3
EZ
65962000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
6597
6598 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
6599 produced for CODING_MODE_LAST_BLOCK requires.
6600
2dc95ddd
DL
66012000-02-18 Dave Love <fx@gnu.org>
6602
6603 * keyboard.c (echo_keystrokes): Remove declaration.
6604 (Vecho_keystrokes) New variable.
6605 (read_char, record_menu_key, read_key_sequence): Use it to allow
6606 use of float value.
6607 (syms_of_keyboard): Change Vecho_keystrokes declaration.
6608
6609 * lread.c: Undef feature selection macros before defining.
6610
f0930f35
GM
66112000-02-18 Gerd Moellmann <gerd@gnu.org>
6612
6613 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
6614 for symbols other than the symbol in question.
6615
e3d4de90
DL
66162000-02-17 Dave Love <fx@gnu.org>
6617
6618 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
6619
0b378936
GM
66202000-02-17 Gerd Moellmann <gerd@gnu.org>
6621
d621caf7
GM
6622 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
6623
0b378936
GM
6624 * alloc.c (enum mem_type): Compile unconditionally.
6625
3b451f74
EZ
66262000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
6627
6628 * xfaces.c (tty_defined_color): Don't return faulire indication
6629 for unspecified-fg and unspecified-bg pseudo-colors.
6630
10689a01
GM
66312000-02-17 Gerd Moellmann <gerd@gnu.org>
6632
1216f5e4
GM
6633 * alloc.c (mark_object): Don't mark symbol names in pure space.
6634 (gc_sweep): Don't unmark symbol names in pure space.
6635
6636 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
6637 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
6638 [GC_MARK_STACK]: New defines.
427ec082 6639 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
6640 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
6641
6642 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
6643
6644 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
6645 allocate_buffer instead of xmalloc.
6646
6647 * alloc.c (toplevel): Include setjmp.h.
6648 (PURE_POINTER_P): New define.
6649 (enum mem_type) [GC_MARK_STACK]: New enumeration.
6650 (Vdead) [GC_MARK_STACK]: New variable.
6651 (lisp_malloc): Add parameter TYPE, call mem_insert if
6652 GC_MARK_STACK is defined.
6653 (allocate_buffer): New function.
427ec082 6654 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
6655 (free_float) [GC_MARK_STACK]: Set type to Vdead.
6656 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
6657 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
6658 (MEM_NIL) [GC_MARK_STACK]: New define.
6659 (struct mem_node) [GC_MARK_STACK]: New structure.
6660 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
6661 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
6662 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
6663 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
6664 (mark_stack) [GC_MARK_STACK]: New functions.
6665 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
6666 (clear_marks): Removed.
6667 (gc_sweep): Set free conses' car, free floats' type, free
6668 symbols' function to Vdead. Use lisp_free to free buffers.
6669 (init_alloc_once): Initialize Vdead.
6670 (survives_gc_p): Return non-zero for pure objects.
6671
6672 * alloc.c: Add comments throughout the file.
6673
2503c8b1
GM
6674 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
6675 that unblocks alarms.
6676
8389e1e2
GM
6677 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
6678 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
6679 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
6680
10689a01 6681 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 6682
bfc17d18
KH
66832000-02-17 Kenichi Handa <handa@etl.go.jp>
6684
4a09dee0
KH
6685 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
6686 avoid infinite error signaling. Allocate sufficient memory for
6687 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 6688
2b927d02
SM
66892000-02-17 Stefan Monnier <monnier@cs.yale.edu>
6690
6691 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
6692 depends on the previous behavior.
6693
b49cb764
GM
66942000-02-16 Gerd Moellmann <gerd@gnu.org>
6695
6696 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
6697
99e95407
GM
66982000-02-15 Gerd Moellmann <gerd@gnu.org>
6699
6700 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
6701
6702 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 6703 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
6704 write(2).
6705
6ffd3cf7
RS
67062000-02-15 Richard M. Stallman <rms@gnu.org>
6707
6708 * data.c (set_internal): Don't make variable buffer-local
6709 if within a let-binding for the same buffer.
6710 (let_shadows_buffer_binding_p): New function.
6711
6712 * eval.c (specbind): For buffer-local value,
6713 record the current buffer also.
6714 (unbind_to): Cope with that change.
6715
cad53475
GM
67162000-02-15 Gerd Moellmann <gerd@gnu.org>
6717
6718 * window.c (Fsave_window_excursion): Doc fix.
6719
1aa963c8
SM
67202000-02-15 Stefan Monnier <monnier@cs.yale.edu>
6721
6722 * syntax.c (back_comment): Make sure we only consider comment-starters
6723 of the relevant style and return -1 in case of a failure to find the
6724 beginning of the comment.
6725 (Fforward_comment): If back_comment fails, go back to the position just
6726 after the comment-end.
6727 (scan_lists): Add comment describing a very minor bug.
6728
b9b84fd3
SM
67292000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6730
6731 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
6732 `completion-regexp-list' in the docstring.
6733
3a28db80
DL
67342000-02-14 Dave Love <fx@gnu.org>
6735
6736 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
6737
fb4a568d
SM
67382000-02-14 Stefan Monnier <monnier@cs.yale.edu>
6739
6740 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
6741 to Emacs' syntax. Also fix the comment about set/not-set meanings
6742 since Emacs syntax is not the value 0 any more.
6743 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
6744 since it's now part of RE_SYNTAX_EMACS.
6745
1063ebb5
DL
67462000-02-12 Dave Love <fx@gnu.org>
6747
6748 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
6749 Alpha.
6750
fb07a302
GM
67512000-02-12 Gerd Moellmann <gerd@gnu.org>
6752
6753 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
6754
aaf2320c
DL
67552000-02-12 Dave Love <fx@gnu.org>
6756
6757 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
6758
6759 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
6760 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
6761 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
6762
6763 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
6764
6765 * s/nextstep.h: Don't define HAVE_ALLOCA.
6766
6767 * config.in: Add vfork bits.
6768
eedf8bde
GM
67692000-02-12 Gerd Moellmann <gerd@gnu.org>
6770
6771 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
6772 unwind function to undo the effect of stopping atimers.
6773
6774 * keyboard.c (bind_polling_period): Stop all timers except
6775 poll_timer.
6776
6777 * atimer.c (stopped_atimers): New variable.
6778 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
6779 New functions.
6780
6781 * atimer.h (stop_other_atimers, run_all_atimers)
6782 (unwind_stop_other_atimers): Add function prototypes.
427ec082 6783
eedf8bde
GM
6784 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
6785
8476c2f8
KR
67862000-02-11 Ken Raeburn <raeburn@gnu.org>
6787
6788 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
6789 library may depend on jpeg.
6790 (atimer.o): Depends on atimer.c.
6791
0e85e4a3
KH
67922000-02-11 Kenichi Handa <handa@etl.go.jp>
6793
6794 * insdel.c (del_range_1): Call update_compositions.
6795 (del_range_both): Call update_compositions just once..
6796
97fa0cc8
DL
67972000-02-10 Dave Love <fx@gnu.org>
6798
6799 * xfns.c (create_frame_xic): Fix initialization of automatic
6800 aggregates for pcc.
6801
25566a3c
KH
68022000-02-09 Kenichi Handa <handa@etl.go.jp>
6803
6804 * ccl.c (CCL_MAKE_CHAR): New macro.
6805 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
6806 registers by CCL_MAKE_CHAR before calling translate_char.
6807 <CCL_TranslateCharacterConstTbl> Likewise.
6808
69da54ba
DL
68092000-02-08 Dave Love <fx@gnu.org>
6810
6811 * lread.c (__EXTENSIONS__): Define.
6812
f7136ee8
GM
68132000-02-08 Gerd Moellmann <gerd@gnu.org>
6814
6815 * puresize.h (BASE_PURESIZE): Increase to 650000.
6816
7768790b
EZ
68172000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6818
6819 * msdos.c (XMenuActivate): Turn off the cursor after displaying
6820 the help message.
6821
38fd211b
EZ
68222000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
6823
6824 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
6825 md, mh, mb, mr, and me to the fake termcap entry.
6826
66e4690f
KR
68272000-02-06 Ken Raeburn <raeburn@gnu.org>
6828
6829 * sound.c (sound_cleanup): Don't call device close routine if the
6830 function pointer is null.
6831
a75dfea0
AI
68322000-02-06 Andrew Innes <andrewi@gnu.org>
6833
6834 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
6835 around image definitions and prototypes.
6836 (gamma_correct) [WINDOWSNT]: New prototype.
6837
6838 * w32term.c (x_make_frame_visible): Replace call to
6839 input_poll_signal with poll_for_input.
6840
6841 * window.c [WINDOWSNT]: Include w32term.h.
6842
6843 * xdisp.c [WINDOWSNT]: Include w32term.h.
6844
6845 * makefile.nt: Add dependencies on w32gui.h.
6846 (OBJ1): Include atimer.obj.
6847 ($(BLD)\atimer.obj): New dependency rule.
6848
6849 * w32.c (sigmask): New function (does nothing).
6850 (sigunblock): Ditto.
6851
6852 * frame.c [WINDOWSNT]: Include w32term.h.
6853
6854 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
6855
6856 * lread.c (syms_of_lread): Fix literal newlines.
6857
6858 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
6859 the string constant limit (2048 bytes) in MSVC.
6860 (main): Ditto.
6861
59ddecde
GM
68622000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
6863
6864 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
6865 area.
6866 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
6867 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
6868 dispatch the event.
6869
07590973
DL
68702000-02-04 Dave Love <fx@gnu.org>
6871
6872 * fileio.c: Remove some unused vars.
6873 (_GNU_SOURCE): Define (for euidaccess).
6874
6875 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
6876
6877 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
6878 gcpro1, gcpro2.
6879 (read_minibuf): Deal with allow_props correctly.
6880
649351f9
EZ
68812000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
6882
6883 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
6884
66e4690f 68852000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
6886
6887 * search.c (compile_pattern): If a cache entry has a nil regexp,
6888 fill in that entry instead of clobbering a previously cached
6889 string regexp.
6890
66e4690f 68912000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
6892
6893 * puresize.h (BASE_PURESIZE): Increase to 610000.
6894
d240a249
GM
68952000-02-02 Gerd Moellmann <gerd@gnu.org>
6896
6897 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
6898 can GC.
6899
ca91fb26
KH
69002000-02-02 Kenichi Handa <handa@etl.go.jp>
6901
25660570
KH
6902 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
6903 instead of incrementing ic directly.
6904 <CCL_WriteExprConst> Likewise.
6905 <ccl_set_expr>: Set ic to jump_address.
6906
ca91fb26
KH
6907 * fileio.c (e_write): Fix the handling of
6908 CODING_FINISH_INSUFFICIENT_SRC.
6909
2ede9689
DL
69102000-02-01 Dave Love <fx@gnu.org>
6911
6912 * editfns.c (Fpropertize): Doc fix.
6913
6914 * process.c (Fstart_process): Doc fix.
6915
6916 * eval.c: Fix various doc strings not to duplicate information
6917 from help-manyarg-func-alist.
6918
6919 * window.c (Fset_window_margins): Don't make interactive. Doc
6920 fix.
6921
6922 * doc.c (Vhelp_manyarg_func_alist): New variable.
6923 (Fdocumentation): Use it.
6924 (syms_of_doc): Define it.
6925
b6680a0e
GM
69262000-01-31 Gerd Moellmann <gerd@gnu.org>
6927
2cb750ba
GM
6928 * xterm.c (xim_open_dpy): Remove unused local variable.
6929
74e9213b
GM
6930 * emacs.c (USAGE): Use term `display options' instead of `X
6931 options'.
6932
6933 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
6934 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
6935
b6680a0e
GM
6936 * fns.c (sweep_weak_table): New function.
6937 (sweep_weak_hash_tables): Use it. Keep on marking until there
6938 is no more change.
6939
994c5afe
GM
69402000-01-30 Gerd Moellmann <gerd@gnu.org>
6941
6942 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
6943 that XTread_socket does not crash by trying to call XNoOp on a
6944 closed display.
427ec082 6945
f00276e3
JR
69462000-01-30 Jason Rumney <jasonr@gnu.org>
6947
6948 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
6949 Change selected_frame to SELECTED_FRAME ().
6950 (w32_console_mouse_position): Remove #ifndef MULE from around
6951 `insist' parameter.
6952
6953 * makefile.nt: Remove dosfns.obj.
6954
6955 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
6956
6957 * w32fns.c (w32_defined_color): Check for valid frame before
6958 applying gamma correction. Eliminate dependency on frame elsewhere.
6959 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
6960 (w32_to_x_font): Use resx and resy not height_in and width_in.
6961 (x_to_w32_font): Doc fix.
6962 (xlfd_strip_height): New function to strip and return font height.
6963 (w32_font_match): Compare height separately from rest of xlfd
6964 spec, using xlfd_strip_height.
6965
6966 * w32term.c (w32_term_init): Swap resx and height_in, resy and
6967 width_in. Use w32_defined_color in place of defined_color.
6968
6969 * w32faces.c: Merge more of DOS and X specifics in preparation for
6970 merge with xfaces.c.
6971 (defined_color): Remove FIXME comment.
6972 (tty_color_name): Provide w32-specific function.
6973 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
6974
6975 * w32console.c (turn_on_face, turn_off_face): Removed.
6976 (w32_face_attributes): New function.
6977 (Global_variables): Reduce scope where possible.
6978 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
6979 fill attribute.
6980 (hl_mode): Don't modify text attributes.
6981 (write_glyphs): Don't do anything if len <= 0. Use
6982 w32_face_attributes to get attributes for drawing. Write
6983 terminating codes using char_attr_normal.
6984 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
6985 (update_begin, update_end): Likewise.
6986 (vga_stdcolor_name): New function.
6987 (initialize_w32_display): Remove char_attr_reverse and char_attr.
6988 (Fset_screen_color): Remove char_attr_reverse.
6989
b08e8bb2
GM
69902000-01-29 Gerd Moellmann <gerd@gnu.org>
6991
6992 * xfns.c (xic_set_preeditarea): Take window parameter and
6993 window-relative pixel-positions.
6994
6995 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
6996 is its frame's selected window.
6997 (xim_instantiate_callback): Likewise.
6998
6999 * xfns.c (x_create_im): Removed.
7000 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
7001 (supported_xim_styles): Renamed from supported_styles.
7002 (best_xim_style): Renamed from best_style.
7003 (create_frame_xic): Renamed from xic_create_frame.
7004 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 7005
b08e8bb2
GM
70062000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
7007
7008 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
7009 our frames, call XFilterEvent with 2nd parameter `None'.
7010 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
7011 returning XBufferOverflow.
7012 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
7013 area.
7014 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
7015 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
7016 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
7017 (xim_initialize, xim_close)
7018 [HAVE_X_I18N && HAVE_X11R6]: New functions.
7019 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
7020 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
7021 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
7022
7023 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
7024 and `xim_styles'.
7025 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
7026 `xic_style' and `xic_xfs'.
7027 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
7028 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
7029 (FRAME_XIM): Removed.
7030
7031 * xfns.c (supported_styles): New variable.
7032 (DEFAULT_STYLE, DEFAULT_FONT): New macros
7033 (xic_create_xfontset, best_style, xic_create_frame)
7034 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
7035 (xic_set_xfontset): New functions.
7036
142e109c
DL
70372000-01-28 Dave Love <fx@gnu.org>
7038
7039 * s/irix6-5.h: Revert last change after change to irix5-0.h.
7040
7041 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
7042
b02786f9
GM
70432000-01-28 Gerd Moellmann <gerd@gnu.org>
7044
d060bc9f
GM
7045 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
7046 for *scratch* if it already existed.
7047
b02786f9
GM
7048 * emacs.c (USAGE): New macro.
7049 (main): Use it to display usage information.
7050
2c52d7e4
EZ
70512000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
7052
7053 Support for the menu-help feature:
7054
7055 * msdos.h: Change prototypes of XMenuAddSelection and
7056 XMenuActivate.
7057
7058 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
7059 part of the line to the termscript file.
7060 (IT_clear_to_end): Clear the entire line, not just its beginning.
7061 (menu_help_message, prev_menu_help_message): New variables.
7062 (IT_menu_make_room): Make room for the help_text member.
7063 (IT_menu_display): New argument disp_help; all callers changed.
7064 If disp_help is non-zero, store the help text of the active menu
7065 item in menu_help_message.
7066 (XMenuAddPane): Initialize the help_text member to NULL.
7067 (XMenuAddSelection): New argument help_text. Store it in the
7068 XMenu structure.
7069 (XMenuActivate): New argument help_callback. If the value of
7070 menu_help_message has changed since the last time, display the
7071 menu help message text while waiting for the mouse to move. Clear
7072 the echo area before exiting.
7073 (XMenuDestroy): Free the help_text member.
7074
ffe0bcd1
GM
70752000-01-27 Gerd Moellmann <gerd@gnu.org>
7076
7077 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
7078 XMenuAddSelection. Pass help callback to XMenuActivate.
7079 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
7080
50dbd23f
EZ
70812000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
7082
7083 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
7084 and EMACS_SET_USECS.
7085
f5941bf8
GM
70862000-01-26 Dave Love <fx@gnu.org>
7087
6c67ddee
DL
7088 * editfns.c (Fchar_after, Fchar_before): Doc fix.
7089
f5941bf8
GM
7090 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
7091 an error may be signalled.
7092
9e49c990
GM
70932000-01-26 Gerd Moellmann <gerd@gnu.org>
7094
fc3cb460
GM
7095 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
7096 LD_SWITCH_SYSTEM inherited from irix5-0.h.
7097
9e49c990
GM
7098 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
7099
d0c037d8
GM
71002000-01-25 Gerd Moellmann <gerd@gnu.org>
7101
7102 * charset.c (Fstring): If there is a multibyte char among
7103 the args, always return a multibyte string.
7104
e12489f9
GM
71052000-01-25 Gerd Moellmann <gerd@gnu.org>
7106
7107 * sysdep.c (sys_select): Turn atimers off and on instead of
7108 recording and restoring old alarm handler
7109
7110 * process.c (toplevel): Include atimer.h.
7111 (create_process_1): Rewritten.
7112 (create_process): Use atimers instead of alarm.
7113 (wait_reading_process_input) [hpux]: Turn atimers off instead
7114 of turning off SIGALRM.
7115 (wait_reading_process_input): Turn off atimers instead off
7116 calling stop_polling.
7117
7118 * emacs.c (main): Call init_atimer.
7119
7120 * keyboard.c (toplevel): Include systime.h and atimer.h.
7121 (polling_for_input): Removed because unused.
7122 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
7123 (poll_timer): New variable.
7124 (poll_for_input, poll_for_input_1): New functions.
7125 (start_polling, stop_polling): Rewritten.
7126
7127 * keyboard.h (polling_for_input): Removed.
427ec082 7128
e12489f9
GM
7129 * atimer.h, atimer.c: New files.
7130
7131 * Makefile.in (obj): Add atimer.o.
7132 (atimer.o): New target.
7133
7134 * blockinput.h (pending_atimers): Add extern declaration.
7135 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
7136
7137 * lisp.h (popup_activated_flag): Add extern declaration.
7138
7139 * xmenu.c (popup_activated_flag): Make externally visible.
7140 (popup_activate_callback) [USE_MOTIF]: Increment
7141 popup_activated_flag.
7142 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
7143
7144 * xterm.c (toplevel): Include atimer.h.
7145 (toolkit_scroll_bar_interaction): New variable.
7146 (Fxt_process_timeouts): Removed.
7147 (x_process_timeouts): New function.
7148 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
7149 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
7150 (x_make_frame_visible): Call poll_for_input_1 instead of
7151 input_poll_signal. Don't call alarm.
7152 (x_initialize): Install timer calling x_process_timeouts.
427ec082 7153
1e5279b9
DL
71542000-01-24 Dave Love <fx@gnu.org>
7155
6c67ddee 7156 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
7157 Don't use -cckr -- apparently not now necessary.
7158
edf6aeb8
EZ
71592000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
7160
7161 * msdos.c (IT_menu_display): Truncate long menu lines at the right
7162 screen boundary.
7163
9badad41
JR
71642000-01-23 Jason Rumney <jasonr@gnu.org>
7165
7166 * w32fns.c (w32_defined_color): Apply gamma correction before
7167 trying to map to the palette.
7168 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
7169 to w32_clear_rect.
7170
7171 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
7172 here. Callers changed to always pass real device context.
7173 (w32_draw_bitmap): Likewise.
7174 (w32_get_glyph_overhangs): Likewise.
7175 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
7176 one.
7177 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
7178 pfnSetScrollInfo and SetScrollRange.
7179 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
7180 back into MULE characters after decoding them.
7181 (x_get_glyph_face_and_encoding): Likewise.
7182 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
7183 GetCharABCWidthsW fails, since this is defined on Windows 9x.
7184 (x_produce_glyphs): Calculate per char metrics for a character
7185 that we know exists in default font when font_not_found_p is true.
7186
63bd786b
JR
71872000-01-22 Jason Rumney <jasonr@gnu.org>
7188
7189 * makefile.nt (intervals.obj, composite.obj): New modules.
7190 (composite.h): Added as dependency where appropriate.
7191
7192 * w32gui.h (XGCValue): New struct for emulating X GCs.
7193
7194 * w32term.h (XCharStruct): New struct for emulating X.
7195
7196 * w32console.c (turn_on_face, turn_off_face): New functions.
7197 (change_line_highlight): New prototype for new redisplay.
7198 (write_glyphs): Support multibyte text. Support faces.
7199
7200 * w32faces.c: Complete rewrite for new redisplay based on new
7201 xfaces.c.
7202
7203 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
7204 throughout. struct frame * in place of FRAME_PTR.
7205 Skeleton support for images, toolbars, tooltips from xfns.c.
7206 (Fx_create_frame): Use system default for default scroll bar
7207 width.
7208 (w32_get_arg): Renamed from x_get_arg.
7209 (Fx_file_dialog): New function.
7210 (w32_list_fonts): Check cache before asking system.
7211 (Vw32_enable_synthesized_fonts): New variable.
7212 (Vw32_enable_italics): Obsolete, removed.
7213
7214 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
7215 Use SELECTED_FRAME macro.
7216
7217 * w32menu.c: Add skeleton support for help strings on menus.
7218 (add_menu_item): Native checkbox and radio support added, but not
7219 yet enabled due to bugs.
7220 (push_menu_item): Add parameters type, selection and help.
7221 Callers updated.
7222 Formatting changes to reduce unnecessary diffs with xmenu.c.
7223
7224 * w32select.c (Fw32_set_clipboard_data): Update call to
7225 find_charset_in_str.
7226
7227 * w32term.c: Complete rewrite for new redisplay based on new
7228 xterm.c with necessary sections merged back in from old w32term.c.
7229
6ffd3cf7 72302000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
7231
7232 * data.c (set_internal): Further fix in same criterion.
7233
6ffd3cf7 72342000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
7235
7236 * data.c (set_internal): Fix the criteria for whether
7237 to swap out the old cached binding.
7238
60af03f1
DL
72392000-01-19 Dave Love <fx@gnu.org>
7240
7241 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
7242
f9be074f
KH
72432000-01-18 Kenichi Handa <handa@etl.go.jp>
7244
7245 * regex.c (re_compile_fastmap): While checking a range table for
7246 `charset', skip flag bits for a character class correctly.
7247
52b8dbf9
GM
72482000-01-17 Gerd Moellmann <gerd@gnu.org>
7249
d36100c9
GM
7250 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
7251
52b8dbf9
GM
7252 * xfns.c (x_window): Call lw_create_widget with new parameter
7253 list.
7254
7255 * widget.c (EmacsFrameSetCharSize): Change size of children first
7256 because of problems with main window geometry management under
7257 Lesstif.
7258
7259 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
7260 MENU_ITEMS_ITEM_.*.
7261 (MENU_ITEMS_ITEM_HELP): New enumerator.
7262 (push_menu_item): Add parameter HELP. Record help in menu_items.
7263 (single_menu_item, single_submenu, list_of_items): Call
7264 push_menu_item with new parameter.
7265 (single_submenu): Set help string in widget value.
7266 (menu_highlight_callback): New function.
7267 (set_frame_menubar): Call lw_create_widget with new
7268 parameter list.
7269 (xmenu_show, xdialog_show): Ditto.
7270
3139018f
GM
72712000-01-13 Gerd Moellmann <gerd@gnu.org>
7272
7273 * sound.c (Fplay_sound): Improve doc string.
7274
83c8f461
RS
72752000-01-11 Richard M. Stallman <rms@gnu.org>
7276
7277 * lisp.h (set_internal): Enter the new arg.
7278
7279 * eval.c (specbind): Record buffer-local variables specially,
7280 indicating which buffer's binding was saved.
7281 (unbind_to): Restore buffer-local variables specially
7282 in the proper buffer.
7283
7284 * data.c (set_internal): New arg BUF.
427ec082 7285
83c8f461
RS
7286 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
7287 * data.c (Fset): Pass new arg to set_internal.
7288 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 7289
1fab1775
GM
72902000-01-11 Gerd Moellmann <gerd@gnu.org>
7291
7292 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
7293 xprintsym.
7294
83c8f461 72952000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
7296
7297 * minibuf.c (Ftry_completion): Doc fix.
7298
7a85e4df
GM
72992000-01-11 Gerd Moellmann <gerd@gnu.org>
7300
7301 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
7302 vector, too.
7303
a970dae4
AS
73042000-01-11 Andreas Schwab <schwab@suse.de>
7305
7306 * coding.c (code_convert_region): Initialize total_skip.
7307
c65d14ee
DL
73082000-01-08 Dave Love <fx@gnu.org>
7309
7310 * eval.c (Fuser_variable_p): Check customizability too.
7311
834938d2
GM
73122000-01-07 Gerd Moellmann <gerd@gnu.org>
7313
7314 * minibuf.c (Fcompleting_read): Doc fix.
7315
e0303cd6
GM
73162000-01-05 Gerd Moellmann <gerd@gnu.org>
7317
8a26744b
GM
7318 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
7319 -L /usr/local/lib.
7320
e0303cd6
GM
7321 * xfns.c (x_create_im): New function to set IM and IC of a frame.
7322 Check that input style is supported before trying to create an
7323 IC for it.
7324 (x_window): Call x_create_im.
427ec082 7325
2e471eb5
GM
73262000-01-04 Gerd Moellmann <gerd@gnu.org>
7327
560a7bd2
GM
7328 * xfns.c (current_gif_memory_src): New variable.
7329 (gif_load): Record the address of the current memory source
7330 in current_gif_memory_src.
7331 (gif_read_from_memory): Use current_gif_memory_src.
7332
f9ee84a3
GM
7333 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
7334 macros statement form.
7335
d1299cde
GM
7336 * sound.c (struct sound): Renamed from struct sound_file.
7337 (struct sound): Add members `data' and `header_size'.
7338 (enum sound_attr): Add SOUND_DATA.
7339 (current_sound, current_sound_device): Variables renamed from
7340 sound_file and sound_device.
7341 (parse_sound): Parse :data.
7342 (parse_sound): Handle sound data in strings.
7343 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 7344 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
7345 needed header size.
7346 (wav_play, au_play): Play sounds from string data.
7347
2e471eb5
GM
7348 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
7349
7350 * lisp.h: Add prototype for allocate_string_data.
7351
7352 * alloc.c (Fgarbage_collect): Return number of live and free
7353 strings.
7354
7355 * alloc.c (mark_buffer): Remove code in #if 0.
7356 (gc_sweep): Ditto.
7357 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
7358 (strings_consed): New variable.
7359 (allocate_string): Set it.
7360 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
7361 (Fmemory_use_counts): Return strings_consed. Use Flist.
7362
7363 * alloc.c: General cleanup in comments etc. Remove conditional
7364 compilation for `standalone'.
7365
7366 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
7367
7368 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
7369 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
7370 (DONT_COPY_FLAG): Removed.
7371 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
7372 (struct sdata, struct sblock): New
7373 (struct string_block): Rewritten.
7374 (STRINGS_IN_STRING_BLOCK): New macro.
7375 (oldest_sblock, current_sblock, total_strings, total_free_strings)
7376 (large_sblocks, string_blocks, string_free_list): New variables.
7377 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
7378 (init_strings): Rewritten.
7379 (allocate_string, allocate_string_data, compact_small_strings)
7380 (free_large_strings, sweep_strings): New functions.
7381 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
7382 (struct string_block_head, current_string_block)
7383 (first_string_block, large_string_blocks, STRING_FULLSIZE)
7384 (STRING_PAD): Removed.
7385 (make_uninit_multibyte_string, make_pure_string): Rewritten.
7386 (Fgarbage_collect): Don't set mark bit in large strings.
7387 (mark_object): Mark strings differently. Mark symbol names
7388 differently.
7389 (survives_gc_p): Test marked strings differently.
427ec082 7390 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
7391 symbol names.
7392 (compact_strings): Removed.
7393
42608ba8
EZ
73942000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
7395
7396 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
7397 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
7398
e0a09e1a
KH
73992000-01-04 Kenichi Handa <handa@etl.go.jp>
7400
dd9f0750 7401 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 7402 in a non-empty buffer.
dd9f0750 7403
3c0f3b15 7404 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 7405
44cd3ae5
GM
74062000-01-03 Gerd Moellmann <gerd@gnu.org>
7407
7408 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
7409 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
7410
7411 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
7412
c182a70f
EZ
74132000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7414
7415 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
7416 need to test for MSDOS frames.
7417
24480d5b
EZ
74182000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7419
7420 * dosfns.c (unspecified_colors): Remove.
7421 (msdos_stdcolor_idx): Use global variables unspecified_fg and
7422 unspecified_bg.
7423 (msdos_stdcolor_name): Return strings for unspecified fore- and
7424 back-ground colors.
7425
7426 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 7427 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
7428 (tty_color_name): Return Lisp strings for unspecified fore- and
7429 back-ground colors.
7430 (Finternal_set_lisp_face_attribute): Remove the special treatment
7431 for Qunspecified_{f,b}g.
7432 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
7433 string.
7434
047f434a
GM
74352000-01-03 Gerd Moellmann <gerd@gnu.org>
7436
7437 * xdisp.c (reseat_at_next_visible_line_start): Position before
7438 newline only if ending up on a newline.
7439 (next_element_from_ellipsis): Return success. Handle case of
7440 displaying no ellipsis. Fix case of ellipsis defined in display
7441 table.
7442 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
7443 returns 0.
7444
d684c676
EZ
74452000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
7446
7447 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
7448 (Fcolor_supported_p): Renamed from face-color-supported-p.
7449
5fe1d139
EZ
74502000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7451
7452 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
7453 list of colors renamed to tty-defined-color-alist.
7454 (tty_color_name): Pass the frame to tty-color-by-index.
7455 (realize_tty_face): tty-color-alist is now a function which
7456 accepts the frame as argument.
7457
7458 * term.c (Ftty_display_color_p): Accept an optional argument
7459 FRAME.
7460
816be8b8
EZ
74612000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7462
7463 * term.c (insert_glyphs): Pass glyph, not &glyph, to
7464 encode_terminal_code.
7465
b635321e
EZ
74662000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
7467
7468 * dispnew.c (mode_line_string): Support termcap frames as well.
7469
9b784e96
GM
74702000-01-01 Gerd Moellmann <gerd@gnu.org>
7471
27189709
GM
7472 * syntax.c (Fforward_word): Undo previous change.
7473
7474 * editfns.c (Fconstrain_to_field): Don't constrain if
7475 inhibit-field-text-motion is non-nil.
7476 (Fline_beginning_position): Undo previous change.
7477 (Fline_end_position): Ditto.
7478
7479 * syntax.c (Fforward_word): Notice field boundaries only if
7480 inhibit-field-text-motion is nil.
7481
7482 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
7483
7484 * editfns.c (Vinhibit_field_text_motion): New variable.
7485 (inhibit-field-text-motion): New DEFVAR_LISP.
7486 (Fline_beginning_position, Fline_end_position): Notice field
7487 boundaries only if inhibit-field-text-motion is nil.
7488
45158a91
GM
7489 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
7490 All calls adjusted.
7491 (x_build_heuristic_mask): Likewise.
7492 (xbm_load_image_from_file): Change error output.
7493 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
7494 (gif_load, gs_load, x_kill_gs_process): Ditto.
7495
9b784e96
GM
7496 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
7497 color indices when accessing raster pixels.
63cec32f
GM
7498 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
7499 one of :file or :data.
7500 (enum pbm_keyword_index): Add PBM_DATA.
7501 (pbm_format): Add :data.
7502 (pbm_image_p): Allow either :file or :data.
7503 (pbm_read_file): New function.
7504 (pbm_scan_number): Rewritten to read from string.
7505 (pbm_load): Support :data.
9b784e96 7506
2cb085db 7507See ChangeLog.8 for earlier changes.
6922b018
KH
7508
7509;; Local Variables:
49b3bd82 7510;; coding: iso-2022-7bit
6922b018 7511;; End: