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