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