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