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