Set maintainer to FSF.
[bpt/emacs.git] / src / ChangeLog
CommitLineData
101922c3
GM
12001-03-06 Kenichi Handa <handa@etl.go.jp>
2
3 * xterm.c (XTflash): Make the timeout of select shorter, and call
4 select repeatedly until the desired time expires.
5
45d051a7
GM
62001-03-06 Gerd Moellmann <gerd@gnu.org>
7
8 * w32fns.c (Fx_create_frame): Clear Vwindow_list.
9
10 * xfns.c (Fx_create_frame): Clear Vwindow_list.
11
12 * lisp.h (Vwindow_list): Declare extern.
13
8f372c46
EZ
142001-03-06 Eli Zaretskii <eliz@is.elta.co.il>
15
16 * dispnew.c (syms_of_display) <glyph-table>: Doc fix.
17
f16a7aa5
GM
182001-03-06 Gerd Moellmann <gerd@gnu.org>
19
157ae273
GM
20 * xterm.c (note_mouse_highlight): Call mouse_face_overlay_overlaps
21 to detect a case where we have to highlight a different region
22 despite not having left the currently highlighted region.
23 Set mouse_face_overlay in the x_display_info.
45d051a7 24 (x_term_init): Initialize the x_display_info's mouse_face_overlay.
157ae273
GM
25
26 * xterm.h (struct x_display_info): Add mouse_face_overlay.
27
28 * buffer.c (mouse_face_overlay_overlaps): New function.
29
30 * lisp.h (mouse_face_overlay_overlaps): Add prototype.
31 (Qmouse_face): Declare extern.
32
f16a7aa5
GM
33 * xdisp.c (redisplay_internal): Set windows_or_buffers_changed
34 if face_change_count is non-zero.
35
827afcac
KH
362001-03-06 Kenichi Handa <handa@etl.go.jp>
37
38 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>: Fix for the case
39 that the source is unibyte.
40
14c7242e
DL
412001-03-05 Dave Love <fx@gnu.org>
42
827afcac 43 * xterm.c (XTmouse_position): Fix typo.
14c7242e 44
c28b847b
GM
452001-03-05 Gerd Moellmann <gerd@gnu.org>
46
47 * minibuf.c (read_minibuf): Clean up the binding stack if
48 called noninteractively.
49
b86644f2
KH
502001-03-05 Kenichi Handa <handa@etl.go.jp>
51
52 * coding.c (syms_of_coding): Docstring modified.
53
203682cc 542001-03-05 Kenichi Handa <handa@etl.go.jp>
b86644f2
KH
55
56 * charset.c (char_to_string): If a single byte char has modifier
57 bits that can't be reflected to the character code, ignore them
45d051a7 58 instead of signaling an error.
b86644f2 59
e30bd7b7
EZ
602001-03-04 Eli Zaretskii <eliz@is.elta.co.il>
61
62 * s/msdos.h: Update copyright notice.
63
64 * dosfns.h: Update copyright notice.
65
66 * dosfns.c: Update copyright notice.
67
68 * msdos.c: Update copyright notice.
69
b52b65bd
GM
702001-03-02 Gerd Moellmann <gerd@gnu.org>
71
72 * xterm.c (glyph_rect): New function.
73 (XTmouse_position): Use it to raise the threshold for mouse
74 movement event generation.
75
53c4b1e6
EZ
762001-03-02 Eli Zaretskii <eliz@is.elta.co.il>
77
78 * msdos.c (Fmsdos_remember_default_colors): If default-frame-alist
79 specifies (reverse . t), reverse the initial screen colors.
80 (IT_set_frame_parameters): If the property is foreground-color,
81 but we are reversing the colors, set bg_set, not fg_set. Likewise
82 for setting background-color and reversing: set fg_set. Set
83 unspecified-fg and unspecified-bg correctly when (reverse . t) is
84 in effect.
85
86 * xfaces.c (Finternal_set_lisp_face_attribute)
87 [!HAVE_WINDOW_SYSTEM]: Record the new attribute in the frame's
88 parameters alist.
89
f964b4d7
GM
902001-03-02 Gerd Moellmann <gerd@gnu.org>
91
ef53d75e
GM
92 * fileio.c (Fexpand_file_name): Collapse sequences of slashes
93 to a single slash in the middle of file names.
94
cda0f4da
GM
95 * editfns.c (Fcurrent_time_zone) [HAVE_TM_ZONE || HAVE_TZNAME]:
96 Accept only alphanumeric time zone names.
97
f964b4d7
GM
98 * xterm.c (XTset_vertical_scroll_bar): Don't clear a zero height
99 or width area.
100 (XTset_vertical_scroll_bar, x_scroll_bar_create): Don't configure
101 a widget to zero height.
102
c3c45f65
GM
1032001-03-01 Gerd Moellmann <gerd@gnu.org>
104
105 * window.c (Fwindow_end): Call move_it_past_eol only if
106 ending up on a partially visible line.
107
028d739a
DL
1082001-03-01 Dave Love <fx@gnu.org>
109
110 * ccl.c (Fccl_execute): Doc fix.
111
57c5889c
GM
1122001-03-01 Gerd Moellmann <gerd@gnu.org>
113
35f59f6b
GM
114 * xfns.c (Fx_create_frame): Adjust the frame's height for presence
115 of the tool bar before calling x_figure_window_size.
116
f84ff02c
GM
117 * xmenu.c (free_frame_menubar): Set the frame's menubar_widget to
118 NULL after destroying it, otherwise XTread_socket can access a
119 destroyed widget when input is unblocked.
120
420f628c
GM
121 * xfns.c (x_set_foreground_color): Set the background of the
122 cursor GC.
123
57c5889c
GM
124 * xfns.c (x_set_font): Handle case of x_new_fontset returning the
125 same name as before, although there was a change in fontsets.
126
224227d1
KR
1272001-02-28 Ken Raeburn <raeburn@gnu.org>
128
4560730a
KR
129 * lisp.h (Fframe_parameter): Declare.
130
224227d1 131 * window.c (set_window_buffer): Field vscroll is an int, not a
57c5889c 132 Lisp_Object.
224227d1 133
ece93c02
GM
1342001-02-28 Gerd Moellmann <gerd@gnu.org>
135
11ef99b9
GM
136 * xterm.c (x_set_window_size): Don't use `None' with widgets; use
137 NULL instead.
138
139 * xfns.c (Fx_hide_tip): Don't use `None' with widgets; use
140 NULL instead.
141
ece93c02
GM
142 * alloc.c (toplevel): Include process.h.
143 (enum mem_type): Add MEM_TYPE_PROCESS, MEM_TYPE_HASH_TABLE,
144 MEM_TYPE_FRAME, MEM_TYPE_WINDOW enumerators.
145 (allocate_vectorlike): Make it a static function. Add parameter TYPE.
146 (allocate_vector, allocate_hash_table, allocate_window)
147 (allocate_frame, allocate_process, allocate_other_vector): New
148 functions.
149 (Fmake_vector): Call allocate_vector instead of allocate_vectorlike.
150 (mark_maybe_pointer): New function.
151 (mark_memory): Also mark Lisp data to which only pointers
152 remain and not Lisp_Objects.
153 (min_heap_address, max_heap_address): New variables.
154 (mem_find): Return MEM_NIL if START is below min_heap_address or
155 above max_heap_address.
156 (mem_insert): Compute min_heap_address and max_heap_address.
157
158 * process.c (make_process): Use allocate_process.
159
160 * frame.c (make_frame): Use allocate_frame.
161
162 * window.c (make_window, make_dummy_parent): Use allocate_window.
163 (Fcurrent_window_configuration): Use allocate_other_vector.
164
165 * lisp.h (allocate_vectorlike): Remove prototype.
166 (allocate_vector, allocate_other_vector, allocate_frame)
167 (allocate_window, allocate_process, allocate_hash_table):
168 Add prototypes.
169
170 * fns.c (Fdelete, larger_vector): Use allocate_vector.
171 (make_hash_table, copy_hash_table): Use allocate_hash_table.
172
063af457
KH
1732001-02-27 Kenichi Handa <handa@etl.go.jp>
174
175 * coding.c (ccl_coding_driver): If ccl->eight_bit_control is zero,
176 treat the produced bytes as a valid multibyte sequence.
177
178 * ccl.c (CCL_WRITE_MULTIBYTE_CHAR): New macro.
179 (ccl_driver) <CCL_WriteMultibyteChar2>: Use
180 CCL_WRITE_MULTIBYTE_CHAR instead of CCL_WRITE_CHAR.
181 <ccl_finish>: Set ccl->eight_bit_control properly.
182
183 * ccl.h (struct ccl_program): New member eight_bit_control.
184
f58c6494
SM
1852001-02-26 Stefan Monnier <monnier@cs.yale.edu>
186
187 * keymap.c (Faccessible_keymaps): Pass `is_metized' to
188 accessible_keymaps_char_table.
189 (accessible_keymaps_char_table): Obey `is_metized'.
190 (where_is_internal, Fwhere_is_internal): Don't confuse int and
191 Lisp_Object.
192
c596c392
GM
1932001-02-26 Gerd Moellmann <gerd@gnu.org>
194
195 * dispnew.c: Check HAVE_TERM_H before including term.h.
196
425de386
AI
1972001-02-24 Andrew Innes <andrewi@gnu.org>
198
199 * makefile.w32-in: Update copyright notice.
200
2ba11bbd
SM
2012001-02-24 Stefan Monnier <monnier@cs.yale.edu>
202
203 * keymap.c (where_is_internal): Accept non-ascii integer prefixes.
204
66c56ed1
KH
2052001-02-24 Kenichi Handa <handa@etl.go.jp>
206
4c1593ce
KH
207 * Makefile.in (lisp): Add international/utf-8.elc.
208
66c56ed1
KH
209 * fontset.c (Fnew_fontset): Fix handling of the case that an
210 element of FONTLIST is a cons of family and registry.
211
796ead7e
JR
2122001-02-23 Jason Rumney <jasonr@gnu.org>
213
214 * w32fns.c (Fx_create_frame): Don't add FRAME_TOOL_BAR_LINES
215 to height unconditionally.
216
217 * w32term.c (x_set_glyph_string_background_width): Extend the
218 background face to the end of the drawing area in the text area,
219 only.
220 (x_insert_glyphs): Call window_box_left to obtain the left
221 x-coordinate of the area to shift.
222
223 * w32menu.c (set_frame_menubar): Run activate-menu-bar-hook with
224 safe_run_hooks.
225
f6839838
AI
2262001-02-22 Andrew Innes <andrewi@gnu.org>
227
228 * makefile.nt ($(BLD)\dired.obj): Remove reference to VMS header
229 files.
230 ($(BLD)\dispnew.obj):
231 ($(BLD)\editfns.obj):
232 ($(BLD)\fileio.obj):
233 ($(BLD)\filelock.obj):
234 ($(BLD)\keyboard.obj):
235 ($(BLD)\w32proc.obj):
236 ($(BLD)\process.obj):
237 ($(BLD)\sysdep.obj): Ditto.
238
239 * makefile.w32-in ($(BLD)/dired.$(O)): Remove reference to VMS
240 header files.
241 ($(BLD)/dispnew.$(O)):
242 ($(BLD)/editfns.$(O)):
243 ($(BLD)/fileio.$(O)):
244 ($(BLD)/filelock.$(O)):
245 ($(BLD)/keyboard.$(O)):
246 ($(BLD)/w32proc.$(O)):
247 ($(BLD)/process.$(O)):
248 ($(BLD)/sysdep.$(O)): Ditto.
249
c224f70b
GM
2502001-02-22 Gerd Moellmann <gerd@gnu.org>
251
51695746
GM
252 * xdisp.c (forward_to_next_line_start): When taking the shortcut
253 at the start of the function, check that the \n in it->c is
254 from the iterator's current position.
255
a61b7058
GM
256 * xdisp.c (handle_single_display_prop): Add parameter
257 DISPLAY_REPLACED_BEFORE_P. If it is non-zero ignore display
258 properties which replace the display of text with something else.
259 (handle_display_prop): Call handle_single_display_prop with
260 additional argument saying if we already replaced text display
261 with something else. Use AREF.
262 (with_echo_area_buffer_unwind_data, display_menu_bar)
263 (decode_mode_spec_coding): Use AREF and ASIZE.
264
3473f362
GM
265 * vms-pp.c, vmsdir.h, vmsmap.c, vmsproc.h, vms-pp.trans, vmsfns.c,
266 * vmspaths.h, vmstime.c, vms-pwd.h, vmsgmalloc.c, vmsproc.c,
267 * vmstime.h: Files removed.
268
2bb58df3
GM
269 * unexencap.c, unexfx2800.c: Files removed.
270
c224f70b
GM
271 * dispnew.c (direct_output_for_insert): Give up if we are showing
272 a message or just cleared the message because we might need to
273 resize the echo area window or display an empty echo area.
274
ffc9ff0c
GM
2752001-02-21 Gerd Moellmann <gerd@gnu.org>
276
0528abe1
GM
277 * xdisp.c (redisplay_internal): Do the
278 mark_window_display_accurate after all windows have been
279 redisplayed because this call resets flags in buffers which are
280 needed for proper redisplay.
281
ffc9ff0c
GM
282 * keyboard.c, minibuf.c, lread.c, fns.c, eval.c: Use
283 display_hourglass_p, start_hourglass, cancel_hourglass instead of
284 the old names.
285
286 * w32term.h (struct x_output): Rename busy_cursor to
287 hourglass_cursor, busy_window to hourglass_window, busy_p to
288 hourglass_p.
289
290 * msdos.h (struct x_output): Rename busy_window to
291 hourglass_window, busy_p to hourglass_p.
292
293 * xterm.h (struct x_output): Rename busy_cursor to
294 hourglass_cursor, busy_window to hourglass_window, busy_p to
295 hourglass_p.
296
297 * xfns.c: Rename everything containing *busy_cursor* and similar
298 to *hourglass*.
299 (syms_of_w32fns): Rename x-busy-pointer-shape to
300 x-hourglass-pointer-shape, display-busy-cursor to
301 display-hourglass, busy-cursor-delay to hourglass-delay.
302
303 * w32fns.c: Rename everything containing *busy_cursor* and similar
304 to *hourglass*.
305 (syms_of_w32fns): Rename x-busy-pointer-shape to
306 x-hourglass-pointer-shape, display-busy-cursor to
307 display-hourglass, busy-cursor-delay to hourglass-delay.
308
309 * xterm.c (XTread_socket): Test x_output's hourglass_p instead
310 of its busy_p flag.
311
312 * dispextern.h (start_hourglass, cancel_hourglass)
313 (display_hourglass_p): Renamed from *busy_cursor*.
314
ab2c5f0a
GM
3152001-02-20 Gerd Moellmann <gerd@gnu.org>
316
d17e49a8
GM
317 * keyboard.c (read_char): When an event from unread-command-events
318 is from the tool or menu bar, set *USE_MOUSE_MENU to 1.
319
fa97adf6
GM
320 * window.c (Fwindow_end): Handle case that WINDOW's buffer is not
321 equal to the current buffer.
322
ab2c5f0a
GM
323 * xdisp.c (setup_echo_area_for_printing): Set truncate_lines to
324 nil, otherwise we're left with truncate_lines t when a message
325 is printed with message-truncate-lines bound to t.
326
aeac019e
GM
3272001-02-19 Gerd Moellmann <gerd@gnu.org>
328
c8bc6f65
GM
329 * window.c (Fmove_to_window_line): Undo last change.
330 (displayed_window_lines): Call line_bottom_y to determine
331 the line's bottom position.
332
333 * dispextern.h (line_bottom_y): Add prototype.
334
335 * xdisp.c (line_bottom_y): New function extracted from
336 pos_visible_p.
337 (pos_visible_p): Use it.
338
980a2d69
GM
339 * keyboard.c (recursive_edit_1): Bind `inhibit-redisplay' and
340 set redisplaying_p to 0 here instead of in Frecursive_edit.
341 (Frecursive_edit): Don't bind `inhibit-redisplay' and don't
342 set redisplaying_p.
343
184d2372
GM
344 * xdisp.c (Qinhibit_menubar_update, inhibit_menubar_update):
345 New variables.
346 (syms_of_xdisp): Initialize new variables.
347 (update_menu_bar): Do nothing if inhibit_menubar_update is set.
348 Specbind `inhibit-menubar-update' when updating the menu bar.
349
65048e97
GM
350 * xmenu.c (set_frame_menubar): Run activate-menu-bar-hook with
351 safe_run_hooks.
352
353 * xdisp.c (update_menu_bar): Run activate-menu-bar-hook with
354 safe_run_hooks.
355
a57c4026
GM
356 * emacs.c (malloc_initialize_hook): Handle case thet `environ'
357 is null.
358
aeac019e
GM
359 * ralloc.c (__morecore) [!SYSTEM_MALLOC]: Move declaration
360 to the start of the file.
361
76846b31
GM
3622001-02-16 Gerd Moellmann <gerd@gnu.org>
363
f3f053f3 364 * window.c (set_window_buffer): Fix last change.
25237df5 365
f3f053f3
GM
366 * window.c (set_window_buffer): Set window's vscroll to 0.
367
dad75588
GM
368 * window.c (coordinates_in_window): Increase width of area
369 where the vertical line can be dragged.
370
c220b753
GM
371 * xterm.c (x_set_glyph_string_background_width): Extend the
372 background face to the end of the drawing area in the text
373 area, only.
374
c56b1c1b
GM
375 * xdisp.c (handle_single_display_prop): Set iterator's position
376 to where the `display' property starts, like for images.
377 (dump_glyph): New function.
378 (dump_glyph_row): Use it. Dump info about marginal areas.
379
380 * dispnew.c (direct_output_for_insert): Recognize more cases where
381 glyphs can be written instead of being inserted.
382
383 * xterm.c (x_insert_glyphs): Call window_box_left to obtain
384 the left x-coordinate of the area to shift.
385
76846b31
GM
386 * dired.c (directory_files_internal): Set result list to nil
387 before retrying.
388
0fc71a77
KH
3892001-02-15 Kenichi Handa <handa@etl.go.jp>
390
391 * ccl.c (ccl_driver) [CCL_ReadMultibyteChar2]: If SRC points an
392 invalid multibyte sequence, treat *SRC as a character of
393 eight-bit-graphic.
394
25078b54
EZ
3952001-02-15 Eli Zaretskii <eliz@is.elta.co.il>
396
397 * textprop.c (Fset_text_properties): Doc fix.
398
8399f8a0
GM
3992001-02-15 Gerd Moellmann <gerd@gnu.org>
400
401 * dispnew.c (update_text_area): Undo change of 2001-01-12.
402
9a2a6f73
DL
4032001-02-14 Dave Love <fx@gnu.org>
404
405 * coding.c: Doc and message fixes.
406
bf853fee
AI
4072001-02-14 Andrew Innes <andrewi@gnu.org>
408
409 * w32fns.c (w32_wnd_proc) <WM_GETMINMAXINFO>: Allow resizing the
410 Emacs frame above the screen size.
411
78c663d8
GM
4122001-02-14 Gerd Moellmann <gerd@gnu.org>
413
414 * xdisp.c (reseat_1): Set iterator's end_charpos to ZV.
415
7cc9f69f
GM
4162001-02-13 Gerd Moellmann <gerd@gnu.org>
417
0a411995
GM
418 * insdel.c (del_range_1, del_range_byte, del_range_both): Handle
419 case that TO ends up beyond ZV after running before-change-functions.
420
5ddc1b75
GM
421 * window.c (window_loop) <GET_BUFFER_WINDOW>: Prefer to return
422 the selected window if it is showing the buffer in question.
423
7cc9f69f
GM
424 * dired.c (directory_files_internal): Initialize errno.
425 (toplevel): Include errno.h.
426
2e6621ca
GM
4272001-02-13 Kenichi Handa <handa@etl.go.jp>
428
429 * xfaces.c (best_matching_font): New parameter width_ratio.
430 Multiply avgwidth by width_ratio.
431 (choose_face_font): Call best_matching_font with width_ratio
432 calculated from the column width of C.
433
60222d69
AI
4342001-02-12 Andrew Innes <andrewi@gnu.org>
435
436 The following changes are to draw box lines inside characters area
437 if line-width is negative.
438
439 * w32term.c (x_produce_image_glyph): Pay attention to the case that
440 face->box_line_width is negative.
441 (x_produce_stretch_glyph): Likewise.
442 (x_produce_glyphs): Likewise.
443 (x_estimate_mode_line_height): Likewise.
444 (x_draw_glyph_string_background): Likewise.
445 (x_draw_glyph_string_foreground): Likewise.
446 (x_draw_composite_glyph_string_foreground): Likewise.
447 (x_draw_glyph_string_box): Likewise.
448 (x_draw_image_foreground): Likewise.
449 (x_draw_image_relief): Likewise.
450 (x_draw_image_foreground_1): Likewise.
451 (x_draw_image_glyph_string): Likewise.
452
9804b846
KH
4532001-02-09 Kenichi Handa <handa@etl.go.jp>
454
455 The following changes are to draw box lines inside characters area
456 if line-width is negative.
457
458 * xterm.c (x_produce_image_glyph): Pay attention to the case that
459 face->box_line_width is negative.
460 (x_produce_stretch_glyph): Likewise.
461 (x_produce_glyphs): Likewise.
462 (x_estimate_mode_line_height): Likewise.
463 (x_draw_glyph_string_background): Likewise.
464 (x_draw_glyph_string_foreground): Likewise.
465 (x_draw_composite_glyph_string_foreground): Likewise.
466 (x_draw_glyph_string_box): Likewise.
467 (x_draw_image_foreground): Likewise.
468 (x_draw_image_relief): Likewise.
469 (x_draw_image_foreground_1): Likewise.
470 (x_draw_image_glyph_string): Likewise.
471
472 * xfaces.c (Finternal_set_lisp_face_attribute): The value of :box
473 and :line-width can be negative.
474 (realize_x_face): The value of attrs[LFACE_BOX_INDEX] can be
475 negative.
476
49be9f70
JR
4772001-02-09 Jason Rumney <jasonr@gnu.org>
478
479 * w32term.c (w32_encode_char): Treat eight bit graphic and control
480 characters the same as ASCII and latin-1.
481 (x_display_and_set_cursor): Check for the focus frame's selected
482 window instead of selected_window.
483 (x_after_update_window_line): Don't clear if frame's internal
484 border width is zero.
485 (x_new_font): Don't change a tooltip's size.
486 (w32_initialize): Set char_ins_del_ok to 1.
487
488 * w32fns.c (Fx_show_tip): Fix calls to make_number.
489 (x_set_font): If font hasn't changed, avoid recomputing
490 faces and other things.
491 (x_set_tool_bar_lines): Do nothing if frame is
492 minibuffer-only,
493 (Fx_create_frame): Add the tool bar height to the frame
494 height.
495 (x_create_tip_frame): Prevent changing the tooltip's
496 background color by specifying a color for the default font
497 in .Xdefaults.
498 (Qcancel_timer): New variable.
499 (syms_of_w32fns): Initialize and staticpro it.
500 (Fx_hide_tip, Fx_show_tip): Use it.
501 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
502 the timer.
503 (toplevel): Lisp code for generating parts of syms_of_w32fns removed.
504
505 * w32.c (init_environment): Duplicate local string before putenv.
506
555e35d2
SZ
5072001-02-09 ShengHuo ZHU <zsh@cs.rochester.edu>
508
509 * charset.c (Fstring): A typo.
510
19c92c94
KH
5112001-02-09 Kenichi Handa <handa@etl.go.jp>
512
e47a1c33
KH
513 * charset.c (Fstring): If all arguments are less than 256, return
514 a unibyte string.
515
516 * editfns.c (Fchar_to_string): If CHARACTER is less than 256,
517 return a unibyte string.
518
19c92c94
KH
519 * coding.c (code_convert_region): After detecting a coding, if
520 nothing found, set coding->composing to COMPOSITION_NO.
521 (decode_coding_string): Likewise.
522
d8e675f5
SM
5232001-02-08 Stefan Monnier <monnier@cs.yale.edu>
524
525 * w32term.c (w32_set_scroll_bar_thumb): Use `double' for `range'
526 to avoid overflow.
527
bd503487
KH
5282001-02-07 Kenichi Handa <handa@etl.go.jp>
529
530 * charset.c (parse_str_to_multibyte): New function.
531
532 * charset.h (parse_str_to_multibyte): Extern it.
533
534 * print.c (print_string): If we are going to print a unibyte
535 string into a multibyte buffer, convert the string to multibyte by
536 str_to_multibyte.
537
a8370d72
AI
5382001-02-06 Andrew Innes <andrewi@gnu.org>
539
540 * w32xfns.c (select_palette): Do nothing if palette hasn't yet
541 been created. It seems we can get sent window messages such as
542 WM_ERASEBKGND before we properly update a frame.
543
c363a1d6
GM
5442001-02-06 Gerd Moellmann <gerd@gnu.org>
545
546 * dispnew.c (update_frame_line): Rename parameter FRAME to F.
547 Avoid some unnecessary cursor positioning.
548
a08332c0
GM
5492001-02-05 Gerd Moellmann <gerd@gnu.org>
550
551 * xfaces.c (split_font_name): Compute numeric value of
552 XLFD_AVGWIDTH.
553 (LFACE_AVGWIDTH): New macro.
554 (LFACEP): Use AREF.
555 (check_lface_attrs): Check LFACE_AVGWIDTH.
556 (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
557 (set_lface_from_font_name): Set LFACE_AVGWIDTH.
558 (merge_face_vectors): Check LFACE_AVGWIDTH.
559 (Finternal_make_lisp_face): Use AREF.
560 (xm_set_menu_resources_from_menu_face)
561 (xl_set_menu_resources_from_menu_face): Check LFACE_AVGWIDTH.
562 (Finternal_lisp_face_empty_p): Use AREF.
563 (lface_same_font_attributes_p): Compare LFACE_AVGWIDTH.
564 (better_font_p, exact_face_match_p): Add parameter AVGWIDTH.
565 Compare average widths..
566 (best_matching_font): Arrange for comparing average widths.
567
568 * dispextern.h (enum lface_attribute_index): Add
569 LFACE_AVGWIDTH_INDEX (invisible from Lisp).
570
5cb3c8d4
DL
5712001-02-05 Dave Love <fx@gnu.org>
572
573 * puresize.h: Revert last change following loadup.el change.
574
193fba87
AI
5752001-02-05 Andrew Innes <andrewi@gnu.org>
576
577 * makefile.w32-in ($(EMACS)): Use $(THISDIR) instead of . in
578 invocation of temacs, to work with Windows 2000.
579 (bootstrap-emacs): Ditto.
580
e16f52ce
GM
5812001-02-05 Gerd Moellmann <gerd@gnu.org>
582
7a58ab59
GM
583 * xterm.c (x_display_and_set_cursor): Check for the focus
584 frame's selected window instead of selected_window.
585
e89aaabd
GM
586 * xdisp.c (try_scrolling): If point is in the line below the
587 window, make sure to move the iterator at least a canonical
588 char height down.
589
e16f52ce
GM
590 * window.c (Fmove_to_window_line): Don't add 1 if window is
591 vscrolled.
592
789ce875
KH
5932001-02-05 Kenichi Handa <handa@etl.go.jp>
594
595 * ccl.c (CCL_WRITE_CHAR): Check if CH is valid or not. If
596 invalid, execute CCL_INVALID_CMD.
597 (ccl_driver): If the CCL program is terminated because of
598 CCL_STAT_INVALID_CMD, copy the remaining source data to the
599 destination instead of throwing them away.
600
20b28f82
GM
6012001-02-02 Gerd Moellmann <gerd@gnu.org>
602
79fb38c0
GM
603 * xfns.c (x_set_font): If font hasn't changed, avoid recomputing
604 faces and other things.
605
20b28f82
GM
606 * xdisp.c (get_next_display_element): Fix case of empty
607 display table entry.
608
5a72551e
EZ
6092001-02-02 Eli Zaretskii <eliz@is.elta.co.il>
610
eb24d0bf
EZ
611 * editfns.c (Fconstrain_to_field): Doc fix.
612
6a3f48c7
EZ
613 * xfaces.c (Fclear_face_cache): Rename the `thorougly' argument
614 into `thoroughly', to make it consistent with the doc string.
615
5a72551e
EZ
616 * window.c (Fenlarge_window, Fshrink_window): Doc fix.
617
01acdb05
GM
6182001-02-01 Gerd Moellmann <gerd@gnu.org>
619
0353b28f
GM
620 * search.c (search_buffer): Call set_search_regs with a byte
621 position, not a character position.
622
01acdb05
GM
623 * xfns.c (x_set_tool_bar_lines): Do nothing if frame is
624 minibuffer-only,
625
e86b5133
EZ
6262001-02-01 Eli Zaretskii <eliz@is.elta.co.il>
627
628 * frame.c (Fmodify_frame_parameters): Doc fix.
629
7442878f
GM
6302001-01-31 Gerd Moellmann <gerd@gnu.org>
631
01acdb05
GM
632 * frame.h (EMACS_FRAME_H_INCLUDED): Use an include blocker
633 identifier which is not reserved by Standard C.
634
7442878f
GM
635 * frame.h (FRAME_RIGHT_SCROLL_BAR_WIDTH): New define.
636
637 * window.c (enum window_part): New enumeration.
638 (Qleft_fringe, Qright_fringe): Replace Qleft_bitmap_area and
639 Qright_bitmap_area.
640 (coordinates_in_window): Return an enumerator from enum
641 window_part. Fix handling of right scroll bar.
642 (Fcoordinates_in_window_p): Doc fix. Return `left-fringe' and
643 `right-fringe' instead of `left-bitmap-area' and
644 `right-bitmap-area'. Use enumerators from enum window_part
645 instead of hard-coded integers.
646 (check_window_containing, window_from_coordinates): Use
647 enumerators from enum window_part instead of hard-coded integers.
648 (syms_of_window): Replace Qleft_bitmap_area and
649 Qright_bitmap_area.with Qleft_fringe and Qright_fringe.
650
7c132cba
EZ
6512001-01-31 Eli Zaretskii <eliz@is.elta.co.il>
652
653 * editfns.c (Fformat_time_string): Doc fix.
654
c359dd9e
SM
6552001-01-31 Stefan Monnier <monnier@cs.yale.edu>
656
657 * keymap.c (Fwhere_is_internal): Use the first valid binding
658 if no ascii binding is found (when firstonly is t).
659
ce070307
GM
6602001-01-31 Gerd Moellmann <gerd@gnu.org>
661
b4f30ec5
GM
662 * window.c (Fscroll_right, Fscroll_left): Use interactive_p
663 instead of Finteractive_p.
664
665 * lisp.h (interactive_p): Add prototype.
666
667 * eval.c (interactive_p): New function.
668 (Finteractive_p): Use it.
669
ce070307
GM
670 * alloc.c (Fmake_list): Add a QUIT in the loop; unroll the loop.
671
f57b6e64
DL
6722001-01-31 Dave Love <fx@gnu.org>
673
d61c7afe
DL
674 * .gdbinit (hook-run): Define to run xreload.
675
f57b6e64
DL
676 * textprop.c (Fset_text_properties): Fix newline in doc string.
677
eef93f99
GM
6782001-01-30 Gerd Moellmann <gerd@gnu.org>
679
680 * xdisp.c (build_desired_tool_bar_string, syms_of_xdisp): Use
681 DEFAULT_TOOL_BAR_BUTTON_MARGIN and DEFAULT_TOOL_BAR_BUTTON_RELIEF.
682
683 * dispextern.h (Vtool_bar_button_margin:): Declare extern.
684 (DEFAULT_TOOL_BAR_BUTTON_MARGIN, DEFAULT_TOOL_BAR_BUTTON_RELIEF)
685 (DEFAULT_TOOL_BAR_IMAGE_HEIGHT): New defines.
686
687 * xfns.c (Fx_create_frame): Add the tool bar height to the frame
688 height.
689
d9c1f6f9
DL
6902001-01-30 Dave Love <fx@gnu.org>
691
692 * bytecode.c (Fbyte_code) <Bgeq>: Add BEFORE_POTENTIAL_GC and
693 AFTER_POTENTIAL_GC.
694
e8f044a0
GM
6952001-01-29 Gerd Moellmann <gerd@gnu.org>
696
697 * bytecode.c (Fbyte_code) <Bcurrent_column>: Add
698 BEFORE_POTENTIAL_GC and AFTER_POTENTIAL_GC.
699
8e1db7b3
EZ
7002001-01-29 Eli Zaretskii <eliz@is.elta.co.il>
701
702 * textprop.c (Fset_text_properties): Doc fix.
703
4eefd9d2
GM
7042001-01-29 Gerd Moellmann <gerd@gnu.org>
705
706 * xdisp.c (forward_to_next_line_start): Remove xassert.
707
fccb8288
EZ
7082001-01-29 Jason Rumney <jasonr@gnu.org>
709
4eefd9d2 710 * w32term.c (x_draw_row_bitmaps): Delay obtaining HDC to avoid
fccb8288
EZ
711 returning without releasing it.
712
76581eab
KH
7132001-01-29 Kenichi Handa <handa@etl.go.jp>
714
715 * w32fns.c (w32_font_match): Allocate three more bytes to regex
716 for '^', '$', and '\0'.
717
83a96b4d
AC
7182001-01-28 Andrew Choi <akochoi@i-cable.com>
719
5604ec34
AC
720 * fontset.c (fontset_pattern_regexp): Allocate three more bytes to
721 regex for '^', '$', and '\0'.
722
83a96b4d
AC
723 * alloc.c (allocate_string) [macintosh]: Call check_string_bytes
724 only if current_sblock has been initialized.
725
726 * frame.c (Fdelete_frame) [macintosh]: Allow deletion of initial
727 terminal frame even if it is the only visible frame.
728
c09a6440
KH
7292001-01-28 Kenichi Handa <handa@etl.go.jp>
730
731 * fontset.c (font_family_registry): Even if FONTNAME conform to
732 XLFD, if it specifies other fields than family and registry,
733 return FONTANME. New argument FORCE if nonzero cancel that
734 feature.
735 (fontset_font_pattern): Call font_family_registry with FORCE 1 for
736 a signle byte character. Don't set FAMILY part to nil here. It
737 is handled by the caller choose_face_font.
738 (Fnew_fontset): Call font_family_registry with FORCE 0.
739 (Fset_fontset_font): Likewise.
740
4dcd74e6
GM
7412001-01-27 Gerd Moellmann <gerd@gnu.org>
742
743 * xdisp.c (display_line): Don't treat a newline as fitting
744 on the line.
745
d2906bf8
GM
7462001-01-26 Gerd Moellmann <gerd@gnu.org>
747
0130fe1a
GM
748 * window.c (size_window): Set the window's orig_top to nil when
749 changing heights, so that a future shrink_mini_window won't
750 restore a bogus height.
751
550f0e6a
GM
752 * frame.c (do_switch_frame): If selected frame has a mini-window,
753 resize that to exact size.
754
b7b20fbd
GM
755 * dispnew.c (adjust_glyph_matrix): Always clear desired matrices.
756
a47b7816
GM
757 * xdisp.c (display_line): Simplify check for glyphs fitting
758 entirely in the line.
759
d2906bf8
GM
760 * xfns.c (xic_style): New variable.
761 (create_frame_xic): Move static variable to global scope for
550f0e6a 762 the case that `static' gets defined away.
d2906bf8 763
73df2b1e
KH
7642001-01-26 Kenichi Handa <handa@etl.go.jp>
765
766 * coding.c (decode_coding): Set a flag for inhibiting
767 inconsistent eol.
768 (code_convert_region): Always set saved_coding_symbol.
769 (decode_coding_string): Likewise. Update coding->symbol when we
770 encounter a inconsistent eol by the same way as
771 code_convert_region.
772
6613cfc4
GM
7732001-01-25 Gerd Moellmann <gerd@gnu.org>
774
c5e6e06b
GM
775 * xfns.c (x_set_tool_bar_lines): Use x_clear_area instead of
776 XClearArea.
777
778 * xterm.c (x_after_update_window_line): Don't clear if frame's
779 internal border width is zero.
780 (x_clear_area): New function.
781 (x_after_update_window_line, x_clear_end_of_line)
782 (x_scroll_bar_create, x_scroll_bar_set_handle)
783 (XTset_vertical_scroll_bar, x_erase_phys_cursor): Use x_clear_area
784 instead of XClearArea.
785
786 * xterm.h (x_clear_area): Add prototype.
787
6613cfc4
GM
788 * xfns.c (Fx_file_dialog): Remove a workaround for Lesstif
789 which doesn't seem necessary anymore with Lesstif 0.92.
790
650cc6cc
DL
7912001-01-25 Dave Love <fx@gnu.org>
792
34ac3367
DL
793 * puresize.h (BASE_PURESIZE): Up to 720000.
794
650cc6cc
DL
795 * keymap.c (Fwhere_is_internal): Declare gcpro3, gcpro4.
796
5e37dc22
GM
7972001-01-25 Gerd Moellmann <gerd@gnu.org>
798
e1e441f9
GM
799 * xdisp.c (echo_area_display): Don't call redisplay_internal
800 when Emacs is shutting down. We can't run hooks etc. that
801 would be necessary to do a redisplay.
802
5e37dc22
GM
803 * lread.c (read_integer): Use type EMACS_INT instead of int.
804
0fb94c7f
EZ
8052001-01-25 Eli Zaretskii <eliz@is.elta.co.il>
806
807 * ccl.c (ccl_driver): Fix last change.
808
e3778624
KH
8092001-01-25 Kenichi Handa <handa@etl.go.jp>
810
811 * ccl.h (sturct ccl_program): New member suppress_error.
812
bb264518 813 * ccl.c (ccl_driver): If ccl->suppress_error is nonzero, don't
e3778624
KH
814 insert error message to the output.
815 (setup_ccl_program): Initialize ccl->suppress_error to 0.
816
817 * coding.h (struct coding_system): New member suppress_error.
818
819 * coding.c (ccl_coding_driver): Setup ccl->suppress_error.
820 (Fset_terminal_coding_system_internal): Set the member
821 suppress_error to 1.
822 (Fset_safe_terminal_coding_system_internal): Likewise.
823
245ed2b1
SM
8242001-01-24 Stefan Monnier <monnier@cs.yale.edu>
825
826 * regex.c (mutually_exclusive_p): Don't blindly handle `charset_not'
827 as if it was a `charset'.
828
f9aaedb6
GM
8292001-01-24 Gerd Moellmann <gerd@gnu.org>
830
831 * keymap.c (Fwhere_is_internal): Don't nreverse the cached
832 value in where_is_cache; the next lookup in the cache returns
833 something bogus if we do.
834
c3902c3e
EZ
8352001-01-24 Eli Zaretskii <eliz@is.elta.co.il>
836
837 * xdisp.c (syms_of_xdisp) <Stool_bar_lines_needed>: Don't defsubr
838 if HAVE_WINDOW_SYSTEM isn't defined.
839
3497f73e
GM
8402001-01-24 Gerd Moellmann <gerd@gnu.org>
841
e7e41584
GM
842 * fns.c (sweep_weak_table): Fix code taking items out of
843 the hash collision chain. Some cleanup.
844
3497f73e
GM
845 * xterm.c (x_new_font): Don't change a tooltip's size.
846
847 * xfns.c (x_create_tip_frame): Prevent changing the tooltip's
848 background color by specifying a color for the default font
849 in .Xdefaults.
850
3d48e687
KH
8512001-01-24 Kenichi Handa <handa@etl.go.jp>
852
96531b20
KH
853 * ccl.c (CCL_READ_CHAR): Change the argument name from r to REG as
854 a workaround for SunOS 4's cc.
855 (CCL_CALL_FOR_MAP_INSTRUCTION): Use "if (1)..." not "do {...".
856 (CCL_SUCCESS, CCL_SUSPEND, CCL_INVALID_CMD): Likewise.
857 (ccl_driver) <CCL_ReadMultibyteChar2>: Remove unnecessay "do"
858 statement.
3d48e687 859
a30629d2
GM
8602001-01-23 Gerd Moellmann <gerd@gnu.org>
861
862 * xterm.c (x_set_window_size_1): New function extracted from
863 x_set_window_size.
864 (x_set_window_size): Use it.
865 (x_set_window_size) [USE_X_TOOLKIT]: Handle case that window
866 doesn't have a widget, like tooltips.
867
5a43decf
EZ
8682001-01-23 Eli Zaretskii <eliz@is.elta.co.il>
869
870 * window.c (syms_of_window) <scroll-preserve-screen-position>: Doc
871 fix.
872
b0e98867
KH
8732001-01-23 Kenichi Handa <handa@etl.go.jp>
874
875 * fns.c (Fset_char_table_default): Fix to make sub char-table
876 correctly.
877
50606b4c
GM
8782001-01-22 Gerd Moellmann <gerd@gnu.org>
879
cb2ddc53 880 * xdisp.c (build_desired_tool_bar_string): Make sure we have
a30629d2 881 a desired tool bar string, even if there are no tool bar
cb2ddc53
GM
882 items.
883
57c28064
GM
884 * xdisp.c (Ftool_bar_lines_needed): New function.
885 (syms_of_xdisp): Defsubr it.
886
50606b4c
GM
887 * editfns.c (Fformat): Don't extend text properties from arguments
888 to padding chars in the result.
889
2f169c38
EZ
8902001-01-20 Eli Zaretskii <eliz@is.elta.co.il>
891
892 * s/msdos.h (GC_MARK_STACK): Define to GC_MAKE_GCPROS_NOOPS.
893
0f32f023
AI
8942001-01-20 Andrew Innes <andrewi@gnu.org>
895
896 * w32term.c (w32_ring_bell): Only support visible bell on w32
897 frames.
898 (w32_initialize): Don't set term hooks that aren't actually needed
899 in windowed mode.
900
901 * xfaces.c (realize_default_face):
902 (realize_face):
903 (realize_tty_face): Remove references to FRAME_W32_CONSOLE_P.
904
905 * xdisp.c (handle_single_display_prop): Remove references to
906 FRAME_W32_CONSOLE_P.
907
908 * dispnew.c (Fredraw_frame): Remove reference to
909 FRAME_W32_CONSOLE_P.
910
911 * frame.h (output_method): Remove output_w32_console method.
912 (FRAME_W32_CONSOLE_P): Remove macro.
913
914 * frame.c (Qw32_console): Remove variable.
915 (Fframep): Remove references to it.
916 (syms_of_frame): Ditto.
917 (Fframe_parameters): Remove references to FRAME_W32_CONSOLE_P.
918
919 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Reinstate original
920 redefinition.
921
7173eada
KH
9222001-01-20 Kenichi Handa <handa@etl.go.jp>
923
924 * editfns.c (Fformat): Use lisp_string_width instead of strwidth.
925
755b45ce
AI
9262001-01-19 Andrew Innes <andrewi@gnu.org>
927
928 * w32.c (init_environment): Add a version-independent site-lisp
929 directory to EMACSLOADPATH, after the version dependent one.
930
0a949811
GM
9312001-01-19 Gerd Moellmann <gerd@gnu.org>
932
8501998a
GM
933 * editfns.c (Fbuffer_substring): Doc fix.
934
0a949811
GM
935 * xdisp.c (message_dolog, message2, message2_nolog): Rename
936 parameter LEN to NBYTES.
937
e6ebcbbe
KH
9382001-01-19 Kenichi Handa <handa@etl.go.jp>
939
200ecca2
KH
940 * charset.c (strwidth): Use c_string_width.
941 (c_string_width): New function.
942 (lisp_string_width): New arguments PRECISION, NCHARS, NBYTES.
943 Caller changed.
944
945 * charset.h (c_string_width, lisp_string_width): Extern them.
946
947 * doprnt.c (doprnt1): Get byte length of Lisp string correctly.
948
e6ebcbbe
KH
949 * indent.c (check_composition): Check validity of composition.
950
200ecca2
KH
951 * xdisp.c (store_frame_title): Pay attention to width of non-ASCII
952 characters by calling c_string_width.
953 (x_consider_frame_title): Get byte length of frame tile string
954 correctly.
955 (display_mode_element): Pay attention to width of non-ASCII
956 characters by calling strwidth.
957
8692ca92
GM
9582001-01-18 Gerd Moellmann <gerd@gnu.org>
959
8962e303
GM
960 * xfns.c (Qcancel_timer): New variable.
961 (syms_of_xfns): Initialize and staticpro it.
962 (Fx_hide_tip, Fx_show_tip): Use it.
963 (Fx_show_tip): Make sure to set tip_timer to nil when canceling
964 the timer.
965 (toplevel): Lisp code for generating parts of syms_of_xfns removed.
966
91523be9
GM
967 * window.c (Fwindow_live_p): Use WINDOW_LIVE_P.
968
969 * window.h (WINDOW_LIVE_P): New macro.
970
b0b7ed0e
GM
971 * window.c (window_size_fixed): New variable.
972 (syms_of_window): Add a DEFVAR_BOOL for window-size-fixed, for
973 the doc string.
974
06bccf8e
GM
975 * eval.c (specbind): If binding a per-buffer variable which
976 doesn't have a buffer-local value in the current buffer, change
977 the global value by changing the value of the symbol bound in all
978 buffers not having their own value, to make it consistent with
979 what happens with other buffer-local variables.
980
8692ca92
GM
981 * xterm.c (x_initialize): Set char_ins_del_ok to 1.
982
983 * xdisp.c (forward_to_next_line_start): Stop at end of buffer
984 when searching for a newline.
985
bb3a3b50
KH
9862001-01-18 Kenichi Handa <handa@etl.go.jp>
987
988 * xdisp.c (display_string): Fix previous change.
989
c2cc16fa
JR
9902001-01-18 Jason Rumney <jasonr@gnu.org>
991
992 * w32term.c (x_produce_stretch_glyph): Only use Qspace when
993 GLYPH_DEBUG is defined.
994 (x_produce_glyphs): Don't xassert `it->descent > 0'; this isn't
995 true for images with `:ascent 100'.
996 (x_set_mouse_face_gc): If the last used mouse face has gone in the
997 meantime, use face MOUSE_FACE_ID.
998 If first glyph isn't a character glyph, use the ASCII NUL
999 character to determine the face.
1000 (expose_area): Do not treat left margin specially.
1001 (note_mode_line_highlight): If no local_map, check global keymap.
1002 (note_mouse_highlight): Initialize overlay.
1003 (clear_mouse_face): Don't return if tip_frame is
1004 non-nil.
1005 (show_scroll_bars): Remove unused function.
1006 (w32_read_socket) [WM_KILLFOCUS]: Set help_echo to Qnil.
1007 (x_draw_bar_cursor): Remove extra test for out of bounds cursor.
1008 Clip to row.
1009 (x_erase_phys_cursor): Don't apply XWINDOW to variable that may be
1010 nil.
1011 (x_free_frame_resources): Unload relief colors.
1012
9c11f79e
GM
10132001-01-17 Gerd Moellmann <gerd@gnu.org>
1014
3aec8722
GM
1015 * xdisp.c (forward_to_next_line_start): Avoid calling
1016 get_next_display_element when the newline is already found. This
1017 may change the iterator's position, when its current position is
1018 equal to the iterator's stop_charpos.
1019
f3ffc2c3
GM
1020 * dispnew.c (direct_output_for_insert): If char_ins_del_ok is
1021 zero, use this method only at the end of a line.
1022
a86110a8
GM
1023 * xfaces.c (x_face_list_fonts): Don't BLOCK_INPUT around the
1024 call to x_list_fonts. Call x_list_fonts with SIZE -1 only
1025 if SCALABLE_FONTS_P is set.
1026
d26d6fd9
GM
1027 * xfaces.c (x_face_list_fonts): Call x_list_fonts with SIZE -1,
1028 so that scalable fonts are included.
1029
9c11f79e
GM
1030 * xterm.c (x_list_fonts): Allow scalable fonts if SIZE is < 0,
1031 In the cache, use a key containing the information if scalable
1032 fonts are included.
1033 (x_load_font): Adapt to change of keys in the font cache.
1034
10352001-01-17 Kim F. Storm <storm@filanet.dk>
1036
d26d6fd9
GM
1037 * xfaces.c (x_face_list_fonts): Use x_list_fonts instead of
1038 XListFonts to take advantage of font caching.
1039
9c11f79e
GM
1040 * xterm.c (x_list_fonts): Ensure caching font information when
1041 called for a null frame, which is the case frequently when Emacs
1042 starts.
1043
51446987
GM
10442001-01-17 Gerd Moellmann <gerd@gnu.org>
1045
f864120f
GM
1046 * xfns.c (QCconversion): Replaces QCalgorithm.
1047
1048 * w32fns.c (QCconversion): Replaces QCalgorithm. Update copyright.
1049
1050 * xdisp.c (build_desired_tool_bar_string): Use :conversion instead
1051 of :algorithm.
1052
e37d1417
GM
1053 * xdisp.c (redisplay_tool_bar): Change tool bar's height when
1054 not everything could be displayed.
1055
51446987
GM
1056 * line.h, x-list-font.c: Files removed because unused.
1057
9ad4f3e5
AI
10582001-01-17 Andrew Innes <andrewi@gnu.org>
1059
1060 * dired.c (directory_files_internal): Convert result from readdir
1061 to a unibyte string initially, to avoid possible misinterpretation
1062 of some bytes as the internal form of Emacs characters.
1063
2eda09b5
KH
10642001-01-17 Kenichi Handa <handa@etl.go.jp>
1065
1066 * fns.c (concat): Be sure to avoid putting the same `composition'
1067 property on the adjacent regions.
1068
826f3788
GM
10692001-01-16 Gerd Moellmann <gerd@gnu.org>
1070
f251459d
GM
1071 * window.c (Fset_window_hscroll): Don't set window's min_hscroll
1072 here.
1073 (Fscroll_right, Fscroll_left): Set it here instead, if called
1074 interactively.
1075
d57b83b3
GM
1076 * buffer.c (Fset_buffer_modified_p): Set buffer's
1077 prevent_redisplay_optimizations_p flag.
1078
826f3788
GM
1079 * dispnew.c, callproc.c, fns.c, keyboard.c, process.c, sunfns.c,
1080 * sysdep.c, vmsproc.c, xselect.c: Call
1081 redisplay_preserve_echo_area with additional arg.
1082
1083 * dispextern.h, lisp.h (redisplay_preserve_echo_area): Change
1084 prototype.
1085
1086 * xdisp.c (redisplay_preserve_echo_area): Add parameter
1087 FROM_WHERE, for debugging.
1088
261d788b
KH
10892001-01-16 Kenichi Handa <handa@etl.go.jp>
1090
1091 * ccl.c (Fregister_ccl_program): Handle the return value of
1092 resolve_symbol_ccl_program correctly.
bda6b481
KH
1093 (CCL_Extension): Fix typo (originally CCL_Extention). Caller
1094 changed.
261d788b 1095
bccee4f2
GM
10962001-01-15 Gerd Moellmann <gerd@gnu.org>
1097
e4ded23c
GM
1098 * xterm.c (x_set_mouse_face_gc): If the last used mouse face
1099 has gone in the meantime, use face MOUSE_FACE_ID.
1100
ae24cb3b
GM
1101 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: If
1102 x_display_info_for_display returns null, don't try to close
1103 the display; we didn't open it.
1104
bccee4f2
GM
1105 * dispnew.c (save_or_restore_current_matrices): Function removed.
1106 (save_current_matrix, restore_current_matrix): New functions.
1107 (adjust_frame_glyphs_for_frame_redisplay): Use them to save and
1108 restore the frame's current matrix. Due to the glyph pointer
1109 setup done in adjust_glyph_matrix, there is no easy way to make
1110 saving the current matrix in the desired matrix generally correct,
1111 so don't try it.
1112
ebeccffa
KH
11132001-01-15 Kenichi Handa <handa@etl.go.jp>
1114
1115 * xdisp.c (insert_left_trunc_glyphs): Overwrite padding glyphs by
1116 truncation glyphs.
1117 (display_line): Optimize for wide characters.
e4ded23c 1118 (display_string): Don't try to display a multi-column character
ebeccffa
KH
1119 partially. On ttys, produce more than one truncation glyph for
1120 multi-column characters that don't fit on the line.
1121
64388126
KH
11222001-01-13 Kenichi Handa <handa@etl.go.jp>
1123
1124 * md5.c (WORDS_BIG_ENDIAN) [__BYTE_ORDER == __BIG_ENDIAN]: Define
1125 it instead of WORDS_BIGENDIAN. Caller changed.
1126
8edb0a6f
JR
11272001-01-13 Jason Rumney <jasonr@gnu.org>
1128
1129 * w32fns.c (Fimage_size, image_ascent, lookup_image)
1130 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR, parse_image_spec)
1131 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1132 (tiff_format, gif_format, gs_format): Adapt to change of image
1133 margins.
1134
1135 * w32term.c (x_produce_image_glyph, x_draw_image_foreground)
1136 (x_draw_image_relief, x_draw_image_foreground_1)
1137 (x_draw_image_glyph_string): Adapt to change of image margins.
1138
1139 * w32.c (init_environment, sys_shutdown, sys_pipe): Remove unused
1140 variables.
1141
1142 * w32bdf.c (search_file_line, get_cached_font_char)
1143 (cache_char_offset, create_offscreen_bitmap): Remove unused variables.
1144
1145 * w32inevt.c (w32_console_toggle_lock_key): Add parentheses.
1146
1147 * w32fns.c (x_to_w32_color, x_set_icon_name, xlfd_strip_height)
1148 (w32_list_synthesized_fonts, lookup_image, Fx_file_dialog)
1149 (Fw32_send_sys_command): Remove unused variables.
1150 (w32_msg_pump): Add parentheses.
1151
1152 * w32term.c (w32_fill_rect, w32_read_socket, x_bitmap_icon)
1153 (x_new_fontset, x_calc_absolute_position, x_iconify_frame):
1154 Add parentheses.
1155
4956d1ef
GM
11562001-01-12 Gerd Moellmann <gerd@gnu.org>
1157
b30623be
GM
1158 * xdisp.c (Vtool_bar_button_margin): Replaces tool_bar_button_margin.
1159 (build_desired_tool_bar_string): Handle Vtool_bar_button_margin
1160 being a pair of margins.
1161 (syms_of_xdisp): Change DEFVAR_INT of tool-bar-button-margins
1162 to DEFVAR_LISP. Extend doc.
1163
1164 * xfns.c (Fimage_size, image_ascent): Adapt to the change of image
1165 margins.
1166 (lookup_image): If `:margin MARGIN' is specified, and MARGIN is a
1167 pair of integers `(X . Y)', use X for the horizontal and Y for the
1168 vertical margin.
1169 (IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR): New enumerator.
1170 (parse_image_spec): Check it.
1171 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
1172 (tiff_format, gif_format, gs_format): Use
1173 IMAGE_POSITIVE_INTEGER_VALUE_OR_PAIR for :margin.
1174
1175 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
1176 (x_draw_image_relief, x_draw_image_foreground_1)
1177 (x_draw_image_glyph_string): Adapt to the change of image margins.
1178
1179 * dispextern.h (struct image): Replace member `margin' with
1180 `hmargin' and `vmargin'.
1181
4554cc79
GM
1182 * xdisp.c (Fdump_tool_bar_row) [GLYPH_DEBUG]: Add parameters ROW
1183 and GLYPHS.
1184
1185 * dispnew.c (update_text_area): Put code which decrements the
1186 stop position when the row's face extends to the end of the
3bffc665 1187 line in #if 0.
4554cc79 1188
3cccce8d
GM
1189 * xfns.c (x_set_mouse_color): Fix color allocation.
1190
4956d1ef
GM
1191 * keyboard.c: Call get_local_map with new argument list.
1192
1193 * intervals.c (get_local_map): Change TYPE to Lisp_Object.
1194
1195 * intervals.h (enum map_property): Removed.
1196 (get_local_map): Change prototype.
1197
1198 * keymap.c: Call get_local_map with new argument list.
1199 (Fwhere_is_internal): Rename parameter XKEYMAP to KEYMAP.
1200
2c2ff7f2
GM
12012001-01-11 Gerd Moellmann <gerd@gnu.org>
1202
a23887b9
GM
1203 * xdisp.c (build_desired_tool_bar_string): Correct the computation
1204 of the size needed for the tool bar string. For the last image,
1205 use a `display' property that reaches to the end of the string.
1206
a7ee2d2e
GM
1207 * xselect.c (selection_request_dpyinfo): New variable.
1208 (x_handle_selection_request): Set it.
1209 (x_selection_request_lisp_error): Don't call
1210 x_decline_selection_request if selection request's display has
1211 been closed.
1212
2c2ff7f2
GM
1213 * xfaces.c (x_free_colors, x_free_dpy_colors) [DEBUG_X_COLORS]: Do
1214 the unregister_colors before calling XFreeColors.
1215
457b792c
GM
12162001-01-10 Dave Love <fx@gnu.org>
1217
1218 * Makefile.in (${etc}DOC): Depend on ${shortlisp} and
1219 ${SOME_MACHINE_LISP}, not ${lisp}.
1220
c1efd260
GM
12212001-01-10 Gerd Moellmann <gerd@gnu.org>
1222
a98b5ed9 1223 * xdisp.c (display_line): On ttys, produce more than one
4554cc79 1224 truncation glyph for multi-column characters that don't fit on the
a98b5ed9
GM
1225 line.
1226
ac95a621
GM
1227 * xselect.c (x_reply_selection_request): Add a comment.
1228
c1efd260
GM
1229 * xfns.c (Fx_backspace_delete_keys_p): Use XkbGetMap and
1230 XkbGetNames instead of XkbGetKeyboard.
1231
1bfb1345
DL
12322001-01-10 Dave Love <fx@gnu.org>
1233
1234 * sysdep.c (random): Revert the declaration.
1235
38119822
GM
12362001-01-09 Gerd Moellmann <gerd@gnu.org>
1237
35f464a7
GM
1238 * lisp.h (STRING_BYTES) [GC_CHECK_STRING_BYTES]: Call
1239 function string_bytes.
1240 (GC_CHECK_STRING_BYTES): Moved here from alloc.c.
1241
1242 * alloc.c (CHECK_STRING_BYTES) [GC_CHECK_STRING_BYTES]: New macro.
1243 (check_sblock, string_bytes) [GC_CHECK_STRING_BYTES]: New functions.
1244 (check_string_bytes) [GC_CHECK_STRING_BYTES]: Add parameter ALL_P.
1245 (allocate_string) [GC_CHECK_STRING_BYTES]: Always check strings in
1246 the current sblock.
1247 (mark_object) [GC_CHECK_STRING_BYTES]: Use CHECK_STRING_BYTES.
1248 (gc_sweep) [GC_CHECK_STRING_BYTES]: Call check_string_bytes
1249 after sweeping strings, and at the end.
1250 (GC_CHECK_STRING_BYTES): Moved to lisp.h.
1251
38119822
GM
1252 * alloc.c (Fgarbage_collect): Use a record_unwind_protect to
1253 ensure that pop_message is called.
1254
1255 * keyboard.c (Fexecute_extended_command): Use a
1256 record_unwind_protect to ensure that pop_message is called.
1257
1258 * lisp.h (push_message_unwind): Add prototype.
1259
1260 * xdisp.c (push_message_unwind): New function.
1261
1262 * fileio.c (do_auto_save_unwind): Do the pop_message here
1263 instead of in Fdo_auto_save.
1264 (Fdo_auto_save): Don't call pop_message.
1265
f47a9ec4
KR
12662001-01-08 Ken Raeburn <raeburn@gnu.org>
1267
1268 * xfns.c (xpm_load) [!ALLOC_XPM_COLORS]: Declare local variable I
1269 in inner block.
1270
a758f97d
GM
12712001-01-08 Gerd Moellmann <gerd@gnu.org>
1272
6d0afc03
GM
1273 * window.c (window_scroll_pixel_based): Adjust glyph matrices
1274 when increasing window's vscroll.
1275
a758f97d
GM
1276 * macros.c (Qkbd_macro_termination_hook): New variable.
1277 (syms_of_macros): Initialize and staticpro it.
1278 (pop_kbd_macro): Run kbd-macro-termination-hook.
1279
1280 * xterm.c (XTread_socket) <LeaveNotify>: Set help_echo to nil.
1281
1bfb1345 12822001-01-07 Dave Love <fx@gnu.org>
64d4ec0f
DL
1283
1284 * keyboard.c (Fread_key_sequence_vector): Avoid newline in
1285 arglist, for documentation's sake.
1286
0dac6924
AI
12872001-01-06 Andrew Innes <andrewi@gnu.org>
1288
1289 * makefile.w32-in (clean): Delete $(COMPILER_TEMP_FILES) instead
1290 of *.pdb.
1291
8182406a
AI
12922001-01-05 Andrew Innes <andrewi@gnu.org>
1293
1294 * term.c (update_end): Don't check updating_frame; for some reason
1295 this can be 0 sometimes, such as after dismissing a popup menu,
1296 and isn't necessary given the explicit frame argument.
1297
3828218c
GM
12982001-01-05 Gerd Moellmann <gerd@gnu.org>
1299
1300 * sysdep.c: Don't prototype srandom; it takes an unsigned argument
1301 on some systems, and an unsigned long on others, like FreeBSD 4.1.
1302
2f5ded21
GM
13032001-01-04 Gerd Moellmann <gerd@gnu.org>
1304
1305 * xterm.c (clear_mouse_face): Don't return if tip_frame is
1306 non-nil.
1307
1308 * xfns.c (x_create_tip_frame): Preserve the value of
1309 face_change_count around the creation of the tip frame.
1310
1311 * xfns.c (last_show_tip_args): New variable.
1312 (compute_tip_xy): New function.
1313 (Fx_show_tip): Reuse an existing tip frame, if possible.
1314 (syms_of_xfns): Initialize and staticpro last_show_tip_args.
1315
dfad65fa
DL
13162001-01-04 Dave Love <fx@gnu.org>
1317
64d4ec0f
DL
1318 * editfns.c (Fformat): Doc fix.
1319
dfad65fa
DL
1320 * systime.h (set_file_times): Prototype.
1321
1322 * widget.h (EmacsFrameSetCharSize_): Prototype.
1323
1324 * sysdep.c (random, srandom): Declare explicitly.
1325
1326 * dispextern.h (move_it_vertically_backward): Declare.
1327
85fe3b5e
GM
13282001-01-04 Gerd Moellmann <gerd@gnu.org>
1329
0f2ac578
GM
1330 * xfns.c (x_create_tip_frame): Call face-set-after-frame-default,
1331 like in Fx_create_frame.
1332
482cca61
GM
1333 * xfaces.c (set_font_frame_param): Don't do anything for
1334 non-graphical frames.
1335
85fe3b5e
GM
1336 * window.c (Fdelete_other_windows): Set window's window_end_valid
1337 to nil when changing the window's start. Don't change the
1338 window's start when its top position hasn't changed. If we do,
1339 this will set the window's optional_new_start, which act's like a
1340 force_start during redisplay with C-x 1 M-> under particular
1341 circumstances (see report from Per Starback to emacs-pretest-bug
1342 from 2000-12-13.).
1343
3e99d3b4
GM
13442001-01-03 Gerd Moellmann <gerd@gnu.org>
1345
a77dc1ec
GM
1346 * xdisp.c (forward_to_next_line_start): Reset it->c if taking the
1347 short cut at the start of the function. Add an assertion.
1348 (reseat_at_next_visible_line_start): Add an assertion.
1349
2f3cad6c
GM
1350 * window.c (Frecenter): When changing the window start, set the
1351 window's window_end_valid to nil.
1352 (Fwindow_end): Fix window-end computation when UPDATE is non-nil.
1353
1354 * dispextern.h (move_it_past_eol): Add prototype.
1355
1356 * xdisp.c (move_it_past_eol): New function.
1357
3e99d3b4
GM
1358 * window.c (Fwindow_end): Doc fix.
1359
13602001-01-03 Dave Love <fx@gnu.org>
1361
1362 * dired.c (Ffile_attributes): Fix last change, removing BSD4_3
1363 kluge.
1364
bafb434c
GM
13652001-01-03 Gerd Moellmann <gerd@gnu.org>
1366
1367 * xdisp.c (try_window_reusing_current_matrix): Fix bug setting
1368 the enabled_p flag of the glyph row at window_end_vpos to 0.
1369 (handle_single_display_prop): Fix last change.
1370
5297fb00
RS
13712001-01-02 Richard M. Stallman <rms@caffeine.ai.mit.edu>
1372
1373 * window.c (Frecenter): Doc fix.
1374
13d6a61c
AI
13752001-01-02 Andrew Innes <andrewi@gnu.org>
1376
1377 * term.c (FRAME_TERMCAP_P) [WINDOWSNT]: Remove redefinition.
1378
1379 * frame.h (output_method): Add output_w32_console method.
1380 (FRAME_W32_CONSOLE_P): New macro.
1381
1382 * frame.c (make_terminal_frame) [WINDOWSNT]: Make terminal frames
1383 use output_w32_console method.
1384 (Qw32_console): New Lisp_Object.
1385 (Fframep): Return it.
1386 (syms_of_frame): Init it.
1387 (Fframe_parameters): Report w32console as font for w32_console
1388 frames.
1389
1390 * xfaces.c (realize_default_face): Set face foreground and
1391 background to unspecified for w32_console frames.
1392 (realize_face): Realize face cache for w32_console frames.
1393 (realize_tty_face): Accept w32_console frames.
1394
1395 * xdisp.c (handle_single_display_prop): Return if frame is
1396 w32_console.
1397 (init_iterator) [WINDOWSNT]: Initialize frame face cache if
1398 necessary, even if running interactively.
1399
1400 * dispnew.c (Fredraw_frame): Call set_terminal_modes for
1401 w32_console frames.
1402
1403 * w32term.c (x_update_begin):
1404 (x_update_end):
1405 (x_clear_frame):
1406 (x_ins_del_lines):
1407 (x_change_line_highlight):
1408 (x_delete_glyphs):
1409 (w32_ring_bell):
1410 (x_update_begin):
1411 (x_update_end):
1412 (w32_reassert_line_highlight):
1413 (w32_frame_rehighlight):
1414 (w32_frame_raise_lower): Do nothing if not w32 frame.
1415
1416 * w32xfns.c (get_frame_dc): Abort if called on a non-w32 frame.
1417
1418 * w32fns.c (Fx_display_color_cells): Determine correct value, when
1419 system doesn't tell us directly.
1420 (Fx_display_visual_class): Implement properly.
1421
d6bb0c0d
GM
14222001-01-02 Gerd Moellmann <gerd@gnu.org>
1423
1424 * window.c (Frecenter): Handle centering in graphical frames
1425 specially. Centering on the basis of line counts doesn't work
1426 reliably with variable-height lines.
1427
315f5865
EZ
14282001-01-02 Eli Zaretskii <eliz@is.elta.co.il>
1429
1430 * widget.c (EmacsFrameSetCharSize): Remove unused variables `ac'
1431 and al[].
1432
1433 * composite.c (run_composition_function): Remove unused variable
1434 `val'.
1435 (update_compositions): Remove unused variable `hook'.
1436
1437 * intervals.c (get_local_map): Remove unused variable `tem'.
1438
1439 * doprnt.c (doprnt1): Remove unused variable `size'.
1440
1441 * fns.c (Flength): Remove unused variable `tail'.
1442 (Fdelete): Remove unused variable `size'.
1443
1444 * editfns.c (Ftranspose_regions): Remove unused variables `gcpro1'
1445 and `gcpro2'.
1446
1447 * doc.c (Fsnarf_documentation): Remove unused variables `fun' and
1448 `tem'.
1449
1450 * data.c (find_symbol_value): Remove extra 3rd argument in the
1451 call to swap_in_symval_forwarding.
1452
1453 * undo.c (Fprimitive_undo): Remove unused block-scope variable
1454 `end'.
1455
1456 * search.c (shrink_regexp_cache): Remove unused variable `cpp'.
1457 (trivial_regexp_p): Remove unused variable `c'.
1458 (boyer_moore): Remove unused variable `k'.
1459
1460 * indent.c (current_column): Remove unused variable `stopchar'.
1461 (Fcompute_motion): Remove unused variable `contin'.
1462
1463 * casefiddle.c (casify_object): Remove unused variable `tolen'.
1464
1465 * dired.c (directory_files_internal): Fix a typo in a comment.
1466 Remove an unused variable `handler'.
1467 (file_name_completion): Remove unused function-scope variable
1468 `dp'.
1469 (Ffile_attributes) <dirname, sdir>: Make declarations conditioned
1470 on BSD4_2.
1471
1472 * fileio.c (e_write): Remove unused variable
1473 `require_encoding_p'.
1474
1475 * marker.c (Fmarker_position): Remove unused variables `pos', `i',
1476 and `buf'.
1477 (Fmarker_insertion_type): Remove unused variable `buf'.
1478
1479 * insdel.c (make_gap): Remove unused variable `result'.
1480
1481 * keyboard.c (record_char): Remove unused function-scope variable
1482 `help'.
1483 (kbd_buffer_get_event): Remove unused block-scope variable `idx'.
1484 (menu_bar_items): Remove unused function-scope variable `tem'.
1485
1486 * fontset.c (fontset_ref): Remove unused variable `i'.
1487 (fontset_set): Remove unused variables `j' and `tmp'.
1488 (make_fontset): Remove unused variables `i', `j', `elt' and
1489 `base_elt'.
1490 (make_fontset_for_ascii_face): Remove unused variable `name'.
1491 (fs_load_font): Remove unused variable `font_idx'.
1492 (fs_query_fontset): Remove unused function-local variable
1493 `fontset'.
1494 (list_fontsets): Remove unused variable `tail'.
1495 (Fnew_fontset): Remove unused variables `family' and `registry'.
1496 (accumulate_font_info): Remove unused variable `tmp'.
1497 (Ffontset_font): Remove unused variable `id'.
1498 (syms_of_fontset): Remove unused variable `i'.
1499
1500 * xfns.c (x_display_info_for_name): Cast 0 to "char *" in the call
1501 to x_term_init.
1502 (lookup_image): Remove unused variable `file'.
1503 (xbm_load): Remove unused variables `bitmap_data', `height', and
1504 `width'. Remove function-local variable `i', leave the
1505 block-local one.
1506 (gif_load): Remove unused variable `inc'.
1507
1508 * xterm.c (XTread_socket): Remove unused variables `p' and
1509 `pend'.
1510 (XTread_socket) <LeaveNotify>: Remove unused variable `frame',
1511 leave only the one in the inner block.
1512
1513 * xfaces.c (face_fontset, realize_default_face): Remove unused
1514 variable `fontset'.
1515 (face_at_buffer_position): Remove unused variable `multibyte_p'.
1516
1517 * term.c (encode_terminal_code): Remove unused variable `c'.
1518
1519 * ccl.c (Fccl_execute): Cast ccl_driver parameters to `unsigned
1520 char *' instead of `char *'.
1521
1522 * category.c (Fcategory_docstring): Remove unused variable `doc'.
1523 (Fget_unused_category): Remove unused variable
1524 `docstring_vector'.
1525 (Fchar_category_set): Remove unused variables `val', `charset',
1526 `c1' and `c2'.
1527
1528 * coding.c (detect_coding_iso2022, setup_coding_system): Remove
1529 unused variable `i'.
1530 (detect_coding_mask): Remove unused variable `idx'.
1531 (detect_coding): Remove unused variable `i'.
1532 (ccl_coding_driver): Remove unused variable `result'.
1533 (run_pre_post_conversion_on_str): Remove unused variable `prev'.
1534 (decode_coding_string): Remove unused variables `to' and
1535 `gcpro1'.
1536 (encode_coding_string): Remove unused variables `gcpro1' and
1537 `saved_coding_symbol'.
1538 (Ffind_coding_systems_region_internal): Remove function-local
1539 variable args[], leave only the block-local one.
1540 (code_convert_region1): Remove unused variable `len'.
1541
1542 * charset.c (char_printable_p): Remove unused variable `chars'.
1543 (Fsplit_char, Fchar_bytes): Remove unused variable `val'.
1544 (str_to_multibyte): Remove unused variable `c'.
1545
1546 * window.c (size_window): Remove block-local variable `min_size'.
1547
1548 * xdisp.c (make_cursor_line_fully_visible): Remove unused variable
1549 `header_line_height'.
1550 (append_space, extend_face_to_end_of_line): Declare `saved_what'
1551 enum display_element_type.
1552
1a8a9daf
GM
15532001-01-02 Gerd Moellmann <gerd@gnu.org>
1554
6dde6abc
GM
1555 * xterm.c (x_connection_closed): Catch X errors around all
1556 statements that call X. Save away the error message in a local
1557 copy.
1558
1883b2c6
GM
1559 * xterm.c (x_connection_closed): Set handling_signal to 0 at
1560 the start.
1561
a13be207
GM
1562 * xdisp.c (pos_visible_p): Take into account that CHARPOS maybe
1563 in or at the start of invisible text.
1564
1a8a9daf
GM
1565 * dispnew.c (update_window): Don't check_current_matrix_flags.
1566
3608c0f9
JR
15672001-01-01 Jason Rumney <jasonr@gnu.org>
1568
1569 * w32fns.c (x_figure_window_size): Do not allow new_height and
1570 new_width of frame to override specified values.
1571
abb1acc4
KH
15722000-12-30 Kenichi Handa <handa@etl.go.jp>
1573
d279f620
KH
1574 * composite.c (find_composition): Fix a code for searching
1575 backward.
abb1acc4 1576
762a68ec
GM
15772000-12-29 Gerd Moellmann <gerd@gnu.org>
1578
9c8b8382
GM
1579 * dispnew.c (check_current_matrix_flags) [GLYPH_DEBUG]: New
1580 function.
1581 (update_window) [GLYPH_DEBUG]: Call it.
1582 (scrolling_window): Prevent including current rows which are below
1583 what's displayed in the window.
1584
1585 * xdisp.c (try_window_reusing_current_matrix)
1586 <new start <= old start>: Disable rows in the current matrix
1587 which are below the window after scrolling.
1588
762a68ec
GM
1589 * xdisp.c (move_it_by_lines): Don't do optimizations if NEED_Y_P
1590 is zero. It's not worth the complexity.
1591 (invisible_text_between_p): Put in #if 0 because unused.
1592
2d5912c1
GM
15932000-12-28 Gerd Moellmann <gerd@gnu.org>
1594
46f6a258
GM
1595 * xfns.c (Fx_backspace_delete_keys_p): Check library and server
1596 XKB versions. Call XkbFreeKeyboard with 2nd arg 0.
1597
89f93679
GM
1598 * keyboard.c (echo_char): If C is an integer, always call
1599 push_key_description. Former code could signal an invalid
1600 character error.
1601
1602 * keymap.c (push_key_description): Add parameter FORCE_MULTIBYTE.
1603 If set, print multibyte text.
1604 (Fsingle_key_description): Call push_key_description with
1605 FORCE_MULTIBYTE set.
1606 (describe_buffer_bindings): Likewise.
1607
1608 * lisp.h (push_key_description): Add prototype.
1609
c06017fb
GM
1610 * xdisp.c (echo_area_display): Bind redisplay-dont-pause to t
1611 around the call to redisplay_internal.
1612
f1d2ce7f
GM
1613 * xfns.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
1614
2d5912c1
GM
1615 * dispnew.c: Use #if GLYPH_DEBUG instead of #ifdef GLYPH_DEBUG.
1616
9371f831
KH
16172000-12-28 Kenichi Handa <handa@etl.go.jp>
1618
1619 * ccl.c (CCL_WRITE_CHAR): Check variable `extra_bytes'.
1620 (ccl_driver): New local variable `extra_bytes'.
1621
1622 * ccl.h (struct ccl_spec): New member eight_bit_carryover.
1623
1624 * coding.c (setup_coding_system): Initialize
1625 coding->spec.ccl.eight_bit_carryover.
1626 (ccl_coding_driver): Pay attention to carried over 8-bit bytes.
1627
0c80628a
KH
16282000-12-28 Kenichi Handa <handa@etl.go.jp>
1629
1630 * coding.c (SAFE_ONE_MORE_BYTE): New macro.
1631 (DECODE_EMACS_MULE_COMPOSITION_CHAR): New macro.
1632 (DECODE_EMACS_MULE_COMPOSITION_RULE): New macro.
1633 (decode_composition_emacs_mule): New function.
1634 (decode_coding_emacs_mule): Decode composition sequence by calling
1635 decode_composition_emacs_mule.
1636 (ENCODE_COMPOSITION_EMACS_MULE): New macro.
1637 (encode_coding_emacs_mule): Changed from macro to function. If
2d5912c1 1638 a text contains compositions, encode them correctly.
0c80628a
KH
1639 (setup_coding_system): Set coding->commong_flags for emacs-mule so
1640 that decoding and encoding are required.
1641
3e32cc27
GM
16422000-12-27 Gerd Moellmann <gerd@gnu.org>
1643
5e25feee
GM
1644 * xfaces.c (PT_PER_INCH): New macro.
1645 (xlfd_point_size): Compute real point size from font's pixel size.
1646 (pixel_point_size, build_scalable_font_name): Use PT_PER_INCH
1647 instead of 72.
1648
892d8fcd
GM
1649 * .gdbinit: Comment out the line pointing to the Lesstif source
1650 directory.
1651
12c8b416
GM
1652 * window.c (Frecenter): Use displayed_window_lines instead
1653 of window_internal_height.
1654
6061fbf0
GM
1655 * xterm.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
1656 instead of x-toolkit-scroll-bars-p.
1657 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
1658
1659 * w32term.c (syms_of_xterm): DEFVAR_LISP x-toolkit-scroll-bars
1660 instead of x-toolkit-scroll-bars-p.
1661 (Vx_toolkit_scroll_bars): Renamed from x_toolkit_scroll_bars_p.
1662
3e32cc27
GM
1663 * dispnew.c (struct redisplay_history) [GLYPH_DEBUG]: New.
1664 (REDISPLAY_HISTORY_SIZE) [GLYPH_DEBUG]: New macro.
1665 (redisplay_history, history_idx, history_tick) [GLYPH_DEBUG]: New
1666 variables.
1667 (add_window_display_history, add_frame_display_history)
1668 (Fdump_redisplay_history) [GLYPH_DEBUG]: New functions.
1669 (build_frame_matrix_from_leaf_window): Remove unused code.
1670 (build_frame_matrix_from_leaf_window) [GLYPH_DEBUG]: Add to
1671 redisplay history.
1672 (update_frame) [GLYPH_DEBUG]: Add to redisplay history.
1673 (update_window) [GLYPH_DEBUG]: Likewise.
1674 (syms_of_display): Defsubr dump-redisplay-history.
1675
31798cfe
GM
16762000-12-23 Gerd Moellmann <gerd@gnu.org>
1677
f717c2ba
GM
1678 * keyboard.c (echo_prompt): Always set current_kboard->echoptr to
1679 the end of the prompt. Set echo_after_prompt to the offset
1680 of echoptr in echobuf.
1681
aeb2b8fc
GM
1682 * xdisp.c (init_from_display_pos): Pop until the iterator's
1683 stack is empty; there may be frames for stretch or images
1684 on the stack.
1685
31798cfe
GM
1686 * dispnew.c (save_frame_matrix, restore_frame_matrix): Removed.
1687 (save_or_restore_current_matrix): New function for the same
1688 purpose, but more efficient.
1689 (adjust_frame_glyphs_for_frame_redisplay): Use it.
1690
f8156156
EZ
16912000-12-23 Eli Zaretskii <eliz@is.elta.co.il>
1692
1693 * xdisp.c (syms_of_xdisp): Fix last change.
1694
bdd6d4e8
GM
16952000-12-23 Gerd Moellmann <gerd@gnu.org>
1696
1697 * xdisp.c (syms_of_xdisp): Doc fix.
1698
1699 * xdisp.c (redisplay_window): Remove label restore_buffers;
1700 use finish_scroll_bars instead to make sure that scroll bars
1701 are redeemed. If we don't do this, flickering can result from
1702 scroll bars being destroyed and recreated.
1703
9436cdf9
JR
17042000-12-22 Jason Rumney <jasonr@gnu.org>
1705
1706 * w32term.c (w32_draw_bitmap): Fix drawing so it does not appear
1707 in the wrong colors when the foreground is not black.
1708 (expose_window): Don't redraw the window that's currently being
1709 updated.
1710
951f9df5
GM
17112000-12-22 Gerd Moellmann <gerd@gnu.org>
1712
856ff7a7
GM
1713 * window.c (size_window): When setting the window's too_small_ok
1714 flag, compare old size with minimum size depending on WIDTH_P,
1715 don't compare with window_min_width.
1716
951f9df5
GM
1717 * window.c (delete_window): Simplify somewhat.
1718 (Fset_window_configuration): Don't SET_FRAME_GARBAGED after
1719 freeing window matrices. The flag windows_or_buffers_changed is
1720 set, so the next redisplay will consider all windows; this should
1721 suffice.
1722
886bc933
KH
17232000-12-22 Kenichi Handa <handa@etl.go.jp>
1724
1725 * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed.
1726
1727 * ccl.h (struct ccl_program): New member cr_consumed.
1728
1729 * ccl.c (CCL_WRITE_CHAR): Don't handle EOL conversion here.
1730 (CCL_READ_CHAR): Handle EOL conversion here.
1731 (ccl_driver) <CCL_ReadMultibyteChar2>: Likewise.
1732
177f4e88
GM
17332000-12-21 Gerd Moellmann <gerd@gnu.org>
1734
6ba384dc
GM
1735 * xdisp.c (Fdump_glyph_row) [GLYPH_DEBUG]: Add optional arg
1736 GLYPHS.
1737
1738 * dispextern.h (GLYPH_EQUAL_P): Also compare pixel widths,
1739 otherwise tabs of different size compare equal.
1740
1741 * callint.c (Fcall_interactively): Prevent a compiler warning.
1742
1743 * print.c (print_unwind): Return nil.
1744 (PRINTDECLARE): Initialize all local variables.
1745 (print_preprocess): Add a default case.
1746
8e15274f
GM
1747 * lisp.h (Qinhibit_point_motion_hooks): Declare extern.
1748
1749 * undo.c (Fprimitive_undo): Bind `inhibit-point-motion-hooks' to t.
1750
177f4e88
GM
1751 * window.c (delete_window, Fsplit_window)
1752 (Fset_window_configuration): Calls to ensure_frame_matrix removed.
1753
1754 * dispextern.h (ensure_frame_matrix): Function declaration removed.
1755
1756 * dispnew.c (ensure_frame_matrix): Removed.
1757 (save_frame_matrix, restore_frame_matrix): New functions.
1758 (adjust_frame_glyphs_for_frame_redisplay): Use them.
1759
1760 * xdisp.c (dump_glyph_row, dump_glyph_matrix, Fdump_glyph_matrix)
1761 [GLYPH_DEBUG]: Extended to dump glyphs in short form.
1762
99012074
AI
17632000-12-21 Andrew Innes <andrewi@gnu.org>
1764
1765 * w32term.c (x_update_begin): Regenerate the palette here, rather
1766 than for each window.
1767
1768 * w32xfns.c (select_palette): Avoid calling SelectPalette if
1769 palette is NULL, since this corrupts memory! Also get
1770 display_info reference from frame.
1771
29ef7d2d
JR
17722000-12-21 Jason Rumney <jasonr@gnu.org>
1773
1774 * w32bdf.c (w32_init_bdf_font): Fix test for valid bmp heap.
1775
1776 * w32term.c (x_draw_hollow_cursor): Delay obtaining the frame's DC
1777 to avoid returning without releasing it.
3e27fa1f 1778
3f9d67a6
KH
17792000-12-21 Kenichi Handa <handa@etl.go.jp>
1780
587fc3f9
KH
1781 * keymap.c (push_key_description): Don't convert eight-bit-control
1782 and eight-bit-graphic to multibyte character.
1783
3f9d67a6
KH
1784 * charset.c (Fmake_char_internal): If CHARSET doesn't have a
1785 generic character and CODE1 is nil, return the smallest character
1786 in CHARSET.
1787
774ba8c9
DL
17882000-12-20 Dave Love <fx@gnu.org>
1789
1790 * s/osf5-0.h (NSIG): Don't redefine.
1791
88416888
SM
17922000-12-20 Stefan Monnier <monnier@cs.yale.edu>
1793
1794 * keymap.c (where_is_internal): Check ascii_sequence_p rather than
1795 excluding menu-bar and tool-bar.
1796 (Fwhere_is_internal): Check ascii_sequence_p when looking up the cache.
1797 (menu_item_p): Remove.
1798 (where_is_internal_1): Don't ignore menu-items.
1799
a6426c6f
GM
18002000-12-20 Gerd Moellmann <gerd@gnu.org>
1801
03ff8aab
GM
1802 * xdisp.c (hscroll_window_tree): Take window's min_hscroll
1803 into account.
1804
1805 * window.c (make_window): Initialize window's min_hscroll.
1806 (Fset_window_hscroll): Set window's hscroll and min_hscroll.
1807 (set_window_buffer, temp_output_buffer_show): Set min_hscroll
1808 to zero.
1809 (struct saved_window): New member min_hscroll.
1810 (SAVED_WINDOW_VECTOR_SIZE): Set to 17.
1811 (Fset_window_configuration): Set window's min_hscroll.
1812 (save_window_save): Save window's min_hscroll.
1813 (compare_window_configurations): Compare min_hscroll values.
1814
1815 * window.h (struct window): New member min_hscroll.
1816
1817 * keyboard.c (echo_prompt): Prevent a compiler warning.
1818
8de4aaf8
GM
1819 * xdisp.c (try_cursor_movement): Fix last change. The real
1820 condition is that PT is at the end of the row, and should
1821 be displayed at the start of the next row.
1822
3f7e3031
GM
1823 * xdisp.c (try_cursor_movement): If we end on a partially
1824 visible line, end we already decided to scroll, return -1.
1825
a6426c6f
GM
1826 * dispextern.h (ensure_frame_matrix): Add prototype.
1827
1828 * window.c (delete_window, Fsplit_window)
1829 (Fset_window_configuration): Call ensure_frame_matrix.
1830
1831 * dispnew.c (fake_current_matrices, ensure_frame_matrix): New
1832 functions.
1833 (adjust_frame_glyphs_for_frame_redisplay): If display has been
1834 completed, call fake_current_matrices instead of marking frame
1835 garbaged.
1836
57fa2774
JR
18372000-12-20 Jason Rumney <jasonr@gnu.org>
1838
1839 * w32fns.c (syms_of_w32fns): Initialize and staticpro tip_frame.
1840
d925df90
EZ
18412000-12-19 Eli Zaretskii <eliz@is.elta.co.il>
1842
1843 * fns.c (Frequire): Doc fix.
1844
7b93a85b
GM
18452000-12-19 Gerd Moellmann <gerd@gnu.org>
1846
71d4497a
GM
1847 * window.c (window_scroll_pixel_based): Don't use
1848 move_it_vertically.
1849
c74e645b
GM
1850 * dispnew.c (direct_output_for_insert): Fix check for mini-window
1851 currently displaying a message.
1852
7b93a85b
GM
1853 * bytecode.c (toplevel) [CHECK_FRAME_FONT]: Include frame.h and
1854 xterm.h.
1855 (Fbyte_code) [CHECK_FRAME_FONT]: Check the selected frame's font.
1856
90d97e64
AI
18572000-12-18 Andrew Innes <andrewi@gnu.org>
1858
1859 * w32.c (w32_strerror): New function.
1860
1861 * w32.h (w32_strerror): New extern.
1862
1863 * w32fns.c (Fw32_shell_execute): Use it.
1864
91c9e6ce
GM
18652000-12-18 Gerd Moellmann <gerd@gnu.org>
1866
1867 * s/hpux10.h (_FILE_OFFSET_BITS): Undef again.
1868
6f4745e2
EZ
18692000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
1870
1871 * msdos.c (IT_set_face): Obey inverse_video.
1872
c9e088ce
KH
18732000-12-18 Kenichi Handa <handa@etl.go.jp>
1874
1875 * dired.c (directory_files_internal): Always return decoded filenames.
1876
c3695f5f
GM
18772000-12-18 Gerd Moellmann <gerd@gnu.org>
1878
52d8e4ff
GM
1879 * xterm.c (x_connection_closed): Prevent being called recursively
1880 because of an error condition in XtCloseDisplay.
1881
62be9979
GM
1882 * xdisp.c (init_iterator): If noninteractive, and the frame's
1883 face cache is null, make one.
1884
5f7a1890
GM
1885 * xfns.c (show_busy_cursor): Check for live frames more
1886 thoroughly.
1887
c3695f5f
GM
1888 * process.c (wait_reading_process_input): Check for pending
1889 input when running timers.
1890
78555fbe
EZ
18912000-12-18 Eli Zaretskii <eliz@is.elta.co.il>
1892
1893 * msdos.c (IT_write_glyphs): Compute the glyph face from
1894 str->face_id.
1895
b2b36264
KH
18962000-12-18 Kenichi Handa <handa@etl.go.jp>
1897
1898 * process.c (read_process_output): Don't run a filter if the code
1899 decoder produces nothing but carryover.
1900
9c543fbf
AI
19012000-12-17 Andrew Innes <andrewi@gnu.org>
1902
1903 * w32.c (sys_rename): Only check errno against EEXIST, and not
1904 EACCES, when determining whether rename failed because the target
1905 exists. This was resulting in indefinite looping on Windows 9x if
1906 the source file was locked by another process.
1907
1908 * w32fns.c (Ffile_system_info): New function.
1909 (syms_of_w32fns): Defsubr it.
1910
10c2b5a8
GM
19112000-12-17 Gerd Moellmann <gerd@gnu.org>
1912
b0228ace
GM
1913 * window.c (coordinates_in_window): Fix computation for
1914 position on vertical line between mode lines.
1915
10c2b5a8
GM
1916 * xfns.c (unwind_create_frame): Return t if frame was deleted.
1917 Don't alter tip_frame or tip_window.
1918 (unwind_create_tip_frame): Set tip_frame to nil only if frame
1919 was deleted.
1920
c844a81a
GM
1921 * w32fns.c (unwind_create_frame): Return t if frame was deleted.
1922 Don't alter tip_frame or tip_window.
1923 (unwind_create_tip_frame): Set tip_frame to nil only if frame
1924 was deleted.
1925
6c825f8e
EZ
19262000-12-16 Eli Zaretskii <eliz@is.elta.co.il>
1927
1928 * fileio.c (Fcopy_file): Rename the last argument to keep_time, to
1929 be consistent with the doc string. Reported by NAKAJIMA Mikio
1930 <minakaji@osaka.email.ne.jp>.
1931
af4bb4c8
KH
19322000-12-16 Kenichi Handa <handa@etl.go.jp>
1933
1934 * xfaces.c (Vface_ignored_fonts): New variable.
1935 (x_face_list_fonts): Ignore fonts matching Vface_ignored_fonts.
1936 (syms_of_xfaces): Declare Vface_ignored_fonts as a Lisp variable.
1937
8062e53a
GM
19382000-12-15 Gerd Moellmann <gerd@gnu.org>
1939
e87b8809
GM
1940 * dispnew.c (update_window): Detect pending input every nth line
1941 updated, i.e. do it depending on real work done, and not on the
1942 vpos of the line.
1943
1944 * xterm.c (expose_window): Don't redraw the window that's
1945 currently being updated.
1946
a6768cc5
GM
1947 * window.c (Fset_window_point): Remove test for
1948 cursor_in_non_selected_windows.
1949
4ea7fdca
GM
1950 * lread.c (read1): Recognize end of file after `\\'.
1951
8062e53a
GM
1952 * xfns.c (x_create_tip_frame): Use unwind_create_tip_frame,
1953 not unwind_create_frame.
1954
bb7959c1
GM
19552000-12-15 Dave Love <fx@gnu.org>
1956
1957 * s/usg5-4.h (bcopy) [IRIX6]: Don't special-case definition of
1958 bcopy & al.
1959
1960 * s/irix6-5.h: #undef bcopy & al here. Include strings.h.
1961
ced04c42
KH
19622000-12-15 Kenichi Handa <handa@etl.go.jp>
1963
c5443913
KH
1964 * coding.c (setup_coding_system): Clear all members of the struct
1965 coding_system at first.
bc137305
KH
1966 (detect_coding): Call detect_coding_mask with a correct MULTIBYTEP
1967 argument.
1968 (code_convert_region): Don't override coding->src_multibyte and
1969 coding->dst_multibyte.
c5443913 1970
ced04c42
KH
1971 * fns.c (Fmd5): Docstring improved.
1972
c2d7f289
MB
19732000-12-15 Miles Bader <miles@gnu.org>
1974
1975 * xdisp.c (window_box_height): Only use mode-line glyph-rows that
1976 are actually marked as mode-lines; otherwise use
1977 estimate_mode_line_height.
1978
9d7d9263
GM
19792000-12-14 Gerd Moellmann <gerd@gnu.org>
1980
1981 * editfns.c (Fformat): Prevent a buffer overrun when the format
1982 specifies a precision.
1983
7cf0153a
EZ
19842000-12-14 Eli Zaretskii <eliz@is.elta.co.il>
1985
1986 * msdos.c (Fmsdos_set_mouse_buttons): Signal an error if the
1987 argument is outside the range [2..3].
1988
1de0f662
AI
19892000-12-14 Andrew Innes <andrewi@gnu.org>
1990
1991 * w32fns.c (Fx_hide_tip): Avoid unnecessary work when there's
1992 nothing to do. Bind inhibit-quit.
1993 (tip_frame): Make it a Lisp_Object.
1994 (x_create_tip_frame): Set tip_frame after it has been added to
1995 Vframe_list.
1996 (Fx_show_tip): Don't set tip_frame here.
1997 (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]: New
1998 variables.
1999 (unwind_create_frame, unwind_create_tip_frame): New functions.
2000 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2001 while a frame is only partially constructed.
2002
2003 * w32term.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2004 (x_free_frame_resources): New function.
2005 (x_destroy_window): Use it.
2006
02387dcc
GM
20072000-12-14 Gerd Moellmann <gerd@gnu.org>
2008
2009 * xfns.c (Fx_backspace_delete_keys_p): New function.
2010 (syms_of_xfns): Defsubr it.
2011
2012 * config.in (HAVE_XKBGETKEYBOARD): Add.
2013
0544ef49
KH
20142000-12-14 Kenichi Handa <handa@etl.go.jp>
2015
98d62747
KH
2016 * keyboard.c (echo_prompt): Argument type changed to Lisp_Object.
2017 Always store string in multibyte representation in echobuf.
2018 (echo_char): Always store string in multibyte representation in
2019 echobuf.
2020 (echo_now): Call message2_nolog with the arg MULTIBYTE 1.
2021 (read_key_sequence): Adjusted for the change of echo_prompt.
2022
a20193cd
KH
2023 * fns.c (Fmd5): Docstring improved.
2024
191b83b6
KH
2025 * lisp.h (detect_coding_system): Prototype adjusted.
2026
0544ef49
KH
2027 * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New macro.
2028 (detect_coding_emacs_mule, detect_coding_iso2022,)
2029 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
2030 (detect_coding_utf_16, detect_coding_ccl): Make them static. New
2031 argument MULTIBYTEP. Callers changed.
2032 (detect_coding_mask, detect_coding_system): New argument
2033 MULTIBYTEP. Callers changed.
1da1bb05
KH
2034 (decode_coding_string): Set coding->src_multibyte and
2035 coding->dst_multibyte before calling detect_coding and detect_eol.
2036 Update them after some coding system is detected.
2037
d5b3eb1b
SM
20382000-12-13 Stefan Monnier <monnier@cs.yale.edu>
2039
2040 * keymap.c (get_keyelt): Only eval the filter if `autoload' is set.
2041
2042 * keyboard.c (menu_bar_items, tool_bar_items):
2043 Set `autoload' when looking up `tool-bar' or `menu-bar' submap.
2044
f7f8bb69
GM
20452000-12-13 Gerd Moellmann <gerd@gnu.org>
2046
19f71add
GM
2047 * xfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
2048 New variables.
2049 (unwind_create_frame, unwind_create_tip_frame): New functions.
2050 (Fx_create_frame, x_create_tip_frame): Handle errors signaled
2051 while a frame is only partially constructed.
2052
2053 * xterm.h (x_free_frame_resources): Declare.
2054
2055 * xterm.c (x_free_frame_resources): New function.
2056 (x_destroy_window): Use it.
2057
e10da507
GM
2058 * dispnew.c (update_window): If do_mouse_tracking is non-nil,
2059 don't interrupt the update for pending input initially, i.e.
2060 update at least some lines.
2061
2062 * keyboard.c (do_mouse_tracking): Make externally visible.
2063
d5b3eb1b 2064 * xterm.c (x_term_init): Declare gray_bitmap_bits as `extern char *'.
f7f8bb69
GM
2065
2066 * xfns.c (gray_bitmap_bits): Declare `char *'.
2067
90aa2856
GM
20682000-12-12 Gerd Moellmann <gerd@gnu.org>
2069
2070 * xdisp.c (display_tool_bar_line): Make sure that tool bar
2071 lines start with a relief line.
2072
a308c9cd
DL
20732000-12-12 Dave Love <fx@gnu.org>
2074
2075 * window.c (Fdisplay_buffer): Doc fix.
2076 (Fwindow_list): Remove unused var.
2077
2078 * buffer.h (mmap_set_vars): Declare.
2079
2080 * window.h (Fset_window_point): Declare.
2081
d575011f
EZ
20822000-12-12 Eli Zaretskii <eliz@is.elta.co.il>
2083
bf6282d2 2084 * msdos.c (fast_find_position): Don't overstep the last window row.
d575011f
EZ
2085 (IT_note_mouse_highlight): Initialize portion to -1. Remove
2086 unused variable `area'. When looking for a row under (X,Y), give
2087 up if some of the previous rows is not enabled.
2088
ecf4d726
GM
20892000-12-12 Gerd Moellmann <gerd@gnu.org>
2090
2ebf6139
GM
2091 * window.c (Fset_window_point): If displaying cursors in windows
2092 other than the selected window, make sure redisplay updates
2093 other windows to show the new value of point in the window.
2094
2095 * dispextern.h (cursor_in_non_selected_windows): Declare extern.
2096
bfdb75ee
GM
2097 * buffer.c (Fkill_buffer): Don't Fset_buffer when testing if
2098 the buffer is the sole visible buffer when in the mini-buffer.
2099
4fdbd809
GM
2100 * xdisp.c (setup_echo_area_for_printing, with_echo_area_buffer):
2101 Bind `inhibit-read-only' to t.
2102 (unwind_with_echo_area_buffer): Use AREF.
2103
c0006262
GM
2104 * xfns.c (Fx_hide_tip): Simplified.
2105
e9a59cad
GM
2106 * s/freebsd.h, s/netbsd.h (GC_MARK_STACK): Use
2107 GC_MAKE_GCPROS_NOOPS instead of `1'.
2108
ecf4d726
GM
2109 * s/gnu-linux.h (GC_MARK_STACK): Define as GC_MAKE_GCPROS_NOOPS.
2110
e5959a9a
GM
21112000-12-11 Gerd Moellmann <gerd@gnu.org>
2112
a3642e49
GM
2113 * xfns.c (Fx_hide_tip): Fix last change.
2114
44b5a125
GM
2115 * xfns.c (Fx_hide_tip): Avoid unnecessary work when there's
2116 nothing to do. Bind inhibit-quit.
2117 (tip_frame): Make it a Lisp_Object.
2118 (x_create_tip_frame): Set tip_frame after it has been added to
2119 Vframe_list.
2120 (Fx_show_tip): Don't set tip_frame here.
2121
2122 * xterm.c (clear_mouse_face): Treat tip_frame as a Lisp_Object.
2123
2124 * xdisp.c (prepare_menu_bars): Changes for tip_frame being a
2125 Lisp_Object.
2126
2127 * dispextern.h: Change external declaration of tip_frame.
2128
d990421f
GM
2129 * keymap.c (Fkey_description): If KEYS is an empty key sequence,
2130 return an empty string.
2131
4db87380
GM
2132 * xdisp.c (try_cursor_movement): Check update_mode_lines instead
2133 of the window's update_mode_line flag, since the former is set by
2134 force-mode-line-update, not the latter. This makes
2135 column-number-mode slightly faster.
2136
e5959a9a
GM
2137 * xdisp.c (try_window_id) <all changes above window start>:
2138 Set the cursor.
2139
169fe44e
GM
21402000-12-11 Paul Eggert <eggert@twinsun.com>
2141
2142 * config.in (HAVE_FTELLO): Remove.
2143 (HAVE_FSEEKO): Add.
2144 (_XOPEN_SOURCE): Remove; the large-file code no longer needs it.
2145 * lread.c (file_offset, file_tell): Depend on HAVE_FSEEKO, not
2146 HAVE_FTELLO.
2147 * s/hpux10.h (_FILE_OFFSET_BITS): Do not undef.
2148 * s/isc3-0.h, s/osf5-0.h: Update comment about _XOPEN_SOURCE.
2149
59ec59ae
MB
21502000-12-11 Miles Bader <miles@gnu.org>
2151
2152 * window.c (displayed_window_lines): Don't round up when
2153 converting empty space at bottom to lines.
ff904dd6
MB
2154 Handle non-newline-terminated final lines properly.
2155 (Fwindow_text_height): New function (used to be in lisp).
2156 (syms_of_window): Initialize it.
59ec59ae 2157
42ebfa31
SM
21582000-12-09 Stefan Monnier <monnier@cs.yale.edu>
2159
2160 * syntax.c (scan_lists): Check that the right quote char has the
2161 right Sstring syntax when jumping over strings.
2162 (init_syntax_once): Use Smax rather than 13.
2163
5cdb3cf3
MB
21642000-12-09 Miles Bader <miles@gnu.org>
2165
2166 * window.c (Fpos_visible_in_window_p): Replace FULLY parameter
2167 with PARTIALLY, inverting the sense.
2168 (window_scroll_pixel_based): Scroll partially visible lines into
2169 place if we hit the beginning or end of the buffer.
a12167c5
MB
2170 (displayed_window_lines): Don't include partially visible lines.
2171 (Fmove_to_window_line): Skip past any partially visible first line.
5cdb3cf3 2172
842b2a94
GM
21732000-12-08 Gerd Moellmann <gerd@gnu.org>
2174
2175 * keymap.c (current_minor_maps): Use malloc. Prevent a leak.
2176
2177 * tparam.c (tparam1): Change the way buffers are reallocated to be
2178 portable and less obfuscated.
2179
2180 * termcap.c (tgetent): Change the way buffers are reallocated to
2181 be portable and less obfuscated.
2182
2183 * macros.c (store_kbd_macro_char): Change the way buffers are
2184 reallocated to be portable and less obfuscated.
2185
2186 * lread.c (read1): Change the way buffers are reallocated to be
2187 portable and less obfuscated.
2188
2189 * doc.c (Fsubstitute_command_keys): Change the way buffers
2190 are reallocated so that it is portable.
2191
137cad7c
EZ
21922000-12-07 Eli Zaretskii <eliz@is.elta.co.il>
2193
2194 * dosfns.c (Ffile_system_info): New function.
2195 (syms_of_dosfns): Defsubr it.
2196
5c7f629c
SM
21972000-12-07 Stefan Monnier <monnier@cs.yale.edu>
2198
2199 * alloc.c (gc_sweep): Add comment.
2200
959e647d
GM
22012000-12-07 Gerd Moellmann <gerd@gnu.org>
2202
28fcb7dc
GM
2203 * sound.c (vox_configure): Change order of ioctls. Don't
2204 set SNDCTL_DSP_SPEED from bps, don't set SNDCTL_DSP_SAMPLESIZE.
2205 Ignore errors when changing volume.
2206 (vox_close): Don't reset the device.
2207
926b7e5e
GM
2208 * process.c (read_process_output): Make sure the process marker's
2209 position is valid when the process buffer is changed in
2210 after-change functions. W3 does that.
2211
959e647d
GM
2212 * xfns.c (x_free_gcs): New function.
2213
2214 * xterm.h (x_free_gcs): Add prototype.
2215
2216 * widget.c (EmacsFrameDestroy): Call x_free_gcs instead of
2217 freeing GCs here.
2218
2219 * xterm.c (x_destroy_window): Call x_free_gcs so that
2220 resources of non-toolkit X windows will be freed.
2221
478ea067
AI
22222000-12-07 Andrew Innes <andrewi@gnu.org>
2223
2224 * w32fns.c (xlfd_charset_of_font): Fix last change.
2225
fbee3231
DL
22262000-12-06 Dave Love <fx@gnu.org>
2227
67292061
DL
2228 * md5.h (__P): Don't define -- it comes from config.h.
2229
fbee3231
DL
2230 * strftime.c: Change some #if foo to #ifdef foo.
2231
4ee87dbb
AI
22322000-12-06 Andrew Innes <andrewi@gnu.org>
2233
2234 * w32term.h (CP_INVALID): Rename to CP_UNKNOWN.
2235
2236 * w32fns.c (xlfd_charset_of_font): Don't overwrite fontname
2237 argument.
2238 (w32_codepage_for_font): Rename CP_INVALID to CP_UNKNOWN.
2239 (w32_list_fonts): Don't choke if pattern doesn't specify a
2240 codepage.
2241
9765b4a4
GM
22422000-12-06 Gerd Moellmann <gerd@gnu.org>
2243
d285b373
GM
2244 * alloc.c (gc_sweep): Prevent symbols read during loadup
2245 from being freed.
2246
384333ee
GM
2247 * xdisp.c (underlying_face_id): New function.
2248 (handle_face_prop, face_before_or_after_it_pos): Use it
2249 to determine the face ``under'' a string. Let strings inherit
2250 the face of the buffer under them.
2251
2252 * xfaces.c (face_at_string_position): Update function comment.
2253
d4b72d58
GM
2254 * dispnew.c (adjust_glyph_matrix): Don't reuse a window's current
2255 matrix if the window's left position has changed; we need to
2256 redraw it in this case.
2257
2258 * dispextern.h (struct glyph_matrix): Add member window_left_x.
2259
e1d05387
GM
2260 * window.c (coordinates_in_window): Check mouse on mode-line or
2261 header-line first.
2262
eb1b0c74
GM
2263 * alloc.c (Fgarbage_collect): Dox fix. Return a list as
2264 advertized by the function documentation.
2265
d94d636f
GM
2266 * window.c (syms_of_window): Doc fix.
2267
3887b449
GM
2268 * sound.c (vox_configure): Set volume for left and right channel.
2269 (sound_cleanup): Return nil.
2270
efc8f57a
GM
2271 * xdisp.c (move_it_by_lines): Fix paren typo.
2272
9765b4a4
GM
2273 * xterm.c (x_load_font): Don't use the font's max_bounds for
2274 computing the height of the font. If max_bounds' ascent or
2275 descent are greater than the font's ascent or descent, this means
2276 glyphs overlap, which should be handled now by redisplay.
2277
6529ed87
GM
2278 * window.c (Veven_window_heights): New variable.
2279 (syms_of_window): DEFVAR_LISP it.
2280 (Fdisplay_buffer): Check Veven_window_heights before evening the
2281 window heights.
2282
0eb2ecde
MB
22832000-12-06 Miles Bader <miles@gnu.org>
2284
2285 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is `t',
2286 update `default-frame-alist' instead of setting no frame parameters.
2287
03d7a167
KH
22882000-12-06 Kenichi Handa <handa@etl.go.jp>
2289
2290 * composite.c (update_compositions): Fix typo (use the correct
2291 variable).
2292
5f8803c2
JR
22932000-12-05 Jason Rumney <jasonr@gnu.org>
2294
2295 * md5.h: Remove underscores from function declarations.
2296 (__attribute__, __alignof__) [!__GNUC__]: Define.
2297
2298 * md5.c: Delay include of md5.h until after namespace cleaning.
2299
c28a075b
JR
2300 * makefile.w32-in (fns.o): Depend on md5.h
2301 (md5.o): New target.
2302 (sunfns.o): Remove.
2303
2304 * makefile.nt: Likewise.
2305
ff3c7056
JR
23062000-12-05 Jason Rumney <jasonr@altavista.net>
2307
2308 * w32term.c (expose_area): Complete last change.
2309
0c21eeeb
KR
23102000-12-05 Ken Raeburn <raeburn@gnu.org>
2311
2312 * minibuf.c: Include intervals.h.
2313
f201d732
JR
23142000-12-05 Jason Rumney <jasonr@gnu.org>
2315
2316 * w32term.c (x_produce_glyphs): If a font for a component of
2317 a composition is not found, use 1 pixel dot ascent and 0 dot
2318 descent value to avoid displaying terribly tall empty boxes.
2319 (expose_area): Pass x-coordinate relative to the exposed
2320 area to x_draw_glyphs instead of a window-relative coordinate.
2321
21999ab9
GM
23222000-12-05 Gerd Moellmann <gerd@gnu.org>
2323
4d2036e4
GM
2324 * xdisp.c (next_element_from_ellipsis): Save face before selective
2325 display in saved_face_id, and set face_before_selective_p.
2326 (reseat_1): Reset face_before_selective_p.
2327 (append_space, extend_face_to_end_of_line): If iterator's
2328 face_before_selective_p is set, use the face from saved_face_id.
2329 (extend_face_to_end_of_line): For tty frames, make sure to
2330 use the right face id when producing spaces at the end of
2331 the line.
2332
2333 * dispextern.h (struct it): Add face_before_selective_p.
2334
52be17cc
GM
2335 * keyboard.c (record_char): Don't record identical help-echo
2336 events in recent_keys.
2337
8a4f36cc
GM
2338 * xterm.c [USE_X_TOOLKIT]: Close the display.
2339 (xim_close_dpy): Handle case that the display has been closed.
2340
57d6e381
GM
2341 * xterm.c (x_destroy_window): Reset the frame's X window after
2342 destroying it.
2343
21999ab9
GM
2344 * dispnew.c (adjust_glyph_matrix): Make sure to initialize local
2345 variable window_width.
2346 (line_draw_cost): Fix code skipping over spaces at the end of the
2347 line when must_write_spaces is not set.
2348 (scrolling_window): Fix code inserting runs in list of all runs.
2349
91372bb7
KH
23502000-12-05 Kenichi Handa <handa@etl.go.jp>
2351
2352 * coding.c (setup_coding_system): Be sure to initialize
2353 coding->category_idx.
2354
6c083b4c
GM
23552000-12-04 Gerd Moellmann <gerd@gnu.org>
2356
0c68ce6f
GM
2357 * xterm.c (PER_CHAR_METRIC): Removed because not used.
2358
6452929e
GM
2359 * xterm.c (expose_area): Pass x-coordinate relative to the exposed
2360 area to x_draw_glyphs instead of a window-relative coordinate.
2361
d7f31e22
GM
2362 * fileio.c (auto_save_error): Add parameter ERROR. Show the
2363 error in the message.
2364
ae18aa3b
GM
2365 * keyboard.c (Fread_key_sequence): Don't start the busy cursor
2366 timer after having read a key. It's not good for code reading
2367 several keys in a loop, like an input method.
2368
caa15ef7
GM
2369 * fileio.c (Finsert_file_contents): When VISIT is t, don't
2370 record undo information for format-decode.
2371
2372 * undo.c (Fprimitive_undo): Bind inhibit-read-only to t if
2373 current buffer is read-only, not if it isn't.
2374
6c083b4c
GM
2375 * keyboard.c (record_char): Record `help-echo' input events
2376 in recent_keys only if they display some help. Don't record
2377 `help-echo' events as macro char.
2378
caa15ef7
GM
23792000-12-04 Richard M. Stallman <rms@caffeine.ai.mit.edu>
2380
2381 * editfns.c (save_excursion_restore): Don't move point
2382 in another window if it is showing the wrong buffer.
2383 Avoid the call to Fwindow_live_p, for speed.
2384
5a13529b
KH
23852000-12-04 Kenichi Handa <handa@etl.go.jp>
2386
e225faa7
KH
2387 * xfaces.c (struct font_name): New member registry_priority.
2388 (split_font_name): Initialize the above member to zero.
2389 (concat_font_list): New function.
2390 (font_list): Include fonts of all alternative registries.
2391 (FONT_POINT_SIZE_QUANTUM): New macro.
2392 (better_font_p): Ignore point size difference less than
2393 FONT_POINT_SIZE_QUANTUM. Use registry_prioprity as a last resort.
2394
e89648b4
KH
2395 * xterm.c (x_produce_glyphs): If a font for a component of
2396 a composition is not found, use 1 pixel dot ascent and 0 dot
2397 descent value to avoid displaying terribly tall empty boxes.
2398
5a13529b
KH
2399 * ccl.c (stack_idx_of_map_multiple): Don't use C initializier.
2400
d7935eb6
KR
24012000-12-03 Ken Raeburn <raeburn@gnu.org>
2402
2403 * coding.h (code_convert_string1): Declare.
2404
2405 * fns.c (Fmd5): Pass lisp objects, not integers, to call3.
2406
2407 * lisp.h (Fmake_variable_buffer_local, Fbuffer_file_name):
2408 Declare.
2409
0dd5e255
JR
24102000-12-02 Jason Rumney <jasonr@gnu.org>
2411
2412 * w32term.c (w32_bdf_per_char_metric): Dereference pointer
2413 correctly for single byte character case.
2414 (w32_per_char_metric): Do not try to make any assumptions about
2415 the metrics of BDF fonts.
250cfece
JR
2416 (x_estimate_mode_line_height): If `mode-line' face
2417 hasn't a font, use that of the frame, as drawing glyphs
2418 does.
2419 (note_mouse_highlight): Change the cursor shape on the vertical
2420 border between windows [not enabled].
2421
2422 * w32term.h (struct w32_output): Add member horizontal_drag_cursor.
2423
2424 * w32fns.c (Fx_create_frame): Reintroduce the call to
2425 face-set-after-frame-defaults.
2426 (Vx_window_horizontal_drag_shape): New variable.
2427 (syms_of_xfns): DEFVAR_LISP it.
2428 (x_set_mouse_color): Create frame's horizontal_drag_cursor [not
2429 enabled].
0dd5e255 2430
b5d8d2ca
GM
24312000-12-02 Simon Josefsson <simon@josefsson.org>
2432
2433 * fns.c (Fmd5): Use a different logic to decide the coding system
2434 to use.
2435
2436 * coding.h (Qwrite_region, Qcoding_system_error): Declare extern.
2437
fbb87147
EZ
24382000-12-02 Eli Zaretskii <eliz@is.elta.co.il>
2439
2440 * fileio.c (Fread_file_name) [DOS_NT]: Don't crash if homedir is
2441 NULL.
2442
447e9da0
GM
24432000-12-01 Gerd Moellmann <gerd@gnu.org>
2444
7708ced0
GM
2445 * xterm.c (x_calc_absolute_position): Don't subtract menubar's
2446 height for YNegative.
2447 (x_calc_absolute_position) [USE_MOTIF]: Use the column widget's
2448 height; also see comment there.
2449
447e9da0
GM
2450 * window.c (coordinates_in_window): Handle computations for
2451 positions on the vertical bar and fringes differently for
2452 window-system frames. Consider some pixels near the vertical bar
2453 as on the bar if the frame doesn't have vertical scroll bars.
2454 Associate positions between mode or header lines with the
2455 right window, the left one.
2456
86d1db20
JR
24572000-12-01 Jason Rumney <jasonr@gnu.org>
2458
2459 * w32term.c (w32_clear_window): Avoid clearing an invalid frame.
2460
2461 * w32xfns.c (get_frame_dc): Avoid changing the palette on an
2462 invalid frame.
2463
a1d58e5b
GM
24642000-12-01 Gerd Moellmann <gerd@gnu.org>
2465
2466 * window.c (struct saved_window): Add members orig_top and
2467 orig_height.
2468 (SAVED_WINDOW_VECTOR_SIZE): Increment to 16.
2469 (save_window_save, Fset_window_configuration): Save/restore
2470 window's orig_top and orig_height.
2471
89c609af
JR
24722000-12-01 Jason Rumney <jasonr@gnu.org>
2473
4d177746 2474 * w32term.c (x_draw_vertical_border): Fix call to w32_fill_rect.
86d1db20 2475
89c609af
JR
2476 * w32fns.c (x_set_cursor_color): Fix last change.
2477
eccc05db
GM
24782000-11-30 Gerd Moellmann <gerd@gnu.org>
2479
31b6671b
GM
2480 * xdisp.c (echo_area_display): If cursor is in the echo area, make
2481 sure that the next redisplay displays the minibuffer, so that
2482 the cursor will be replaced with what the minibuffer wants.
2483
eccc05db
GM
2484 * xterm.c: Test USE_TOOLKIT_SCROLL_BARS everywhere with #ifdef and
2485 #ifndef instead of using #if.
2486 (XTread_socket) [USE_MOTIF] <KeyPress>: Call XmIsScrollBar only if
2487 USE_TOOLKIT_SCROLL_BARS is defined.
2488
162de750
JR
24892000-11-30 Jason Rumney <jasonr@gnu.org>
2490
2491 * w32fns.c (x_set_cursor_color): Use x_update_cursor instead of
2492 x_display_cursor.
2493
693c4692
GM
24942000-11-30 Gerd Moellmann <gerd@gnu.org>
2495
2496 * fns.c (Fmd5): Doc fix.
2497
b5d8d2ca 24982000-11-30 Simon Josefsson <simon@josefsson.org>
edfb795e
GM
2499
2500 * fns.c (Fmd5): New function.
2501 (syms_of_fns): Defsubr md5.
2502
2503 * Makefile.in (obj): Add md5.o
2504
b02cd40b
GM
25052000-11-30 Gerd Moellmann <gerd@gnu.org>
2506
edfb795e
GM
2507 * md5.h, md5.c: New files, taken from glibc.
2508
df3aedcf
GM
2509 * xmenu.c (popup_get_selection): Use xmalloc instead of malloc.
2510
b02cd40b
GM
2511 * xterm.c (x_estimate_mode_line_height): If `mode-line' face
2512 hasn't a font, use that of the frame, as drawing glyphs
2513 does.
2514
8b5176cd
SM
25152000-11-29 Stefan Monnier <monnier@cs.yale.edu>
2516
2517 * eval.c (Frun_hooks): Allow 0 arguments.
2518
346598f1
GM
25192000-11-29 Gerd Moellmann <gerd@gnu.org>
2520
f9396e03
GM
2521 * xterm.c (XTmouse_position) [USE_X_TOOLKIT]: When the mouse
2522 is over the menu bar widget, say it's not on the frame.
2523
4a967a9b
GM
2524 * xfns.c (Fx_create_frame): Reintroduce the call to
2525 face-set-after-frame-defaults.
2526
346598f1
GM
2527 * eval.c (Fsignal): Reset handling_signal.
2528
222456a1
JR
25292000-11-28 Jason Rumney <jasonr@gnu.org>
2530
2531 * w32menu.c (add_menu_item): Reset menu item text when changing
2532 type to radio button.
2533
8049ddc0
GM
25342000-11-28 Gerd Moellmann <gerd@gnu.org>
2535
346598f1 2536 * xselect.c: Update copyright.
f4f4ee4d 2537
bebe4a2c
GM
2538 * window.c (coordinates_in_window): If on a mode or header line,
2539 but sufficiently close to its start, return ``on vertical
2540 border''. This gives us a way to drag windows horizontally when
2541 using toolkit scroll bars.
2542
2543 * xterm.c (note_mouse_highlight): Change the cursor shape
2544 on the vertical border between windows.
2545
2546 * xterm.h (struct x_output): Add member horizontal_drag_cursor.
2547
2548 * xfns.c (Vx_window_horizontal_drag_shape): New variable.
2549 (syms_of_xfns): DEFVAR_LISP it.
2550 (x_set_mouse_color): Create frame's horizontal_drag_cursor.
2551
8d2c2642
GM
2552 * textprop.c (text_read_only): New function.
2553 (verify_interval_modification): Use it instead of signaling
2554 `text-read-only'. This makes it easier to catch this error
2555 with a breakpoint.:
2556
8049ddc0
GM
2557 * xdisp.c (forward_to_next_line_start): Check for newlines,
2558 not end of line, which includes CR.
2559
5a2bae6c
KH
25602000-11-28 Kenichi Handa <handa@etl.go.jp>
2561
2562 * coding.c (Ffind_coding_systems_region_internal): Be sure to
2563 include no-conversion.
2564
ae31f84d
JR
25652000-11-27 Jason Rumney <jasonr@gnu.org>
2566
2567 * w32fns.c (w32_load_system_font): Always mark font as double byte
2568 if codepage is unicode.
2569
67f1cf4c
GM
25702000-11-27 Gerd Moellmann <gerd@gnu.org>
2571
4a74d071
GM
2572 * xdisp.c (forward_to_next_line_start): If already on a newline,
2573 just consume it to avoid unintended skipping over invisible text
2574 below.
2575
902ae620
GM
2576 * keyboard.c (lucid_event_type_list_p): Handle `help-echo',
2577 `vertical-line', `mode-line' and `header-line' events.
2578
2579 * xdisp.c (try_window_id): Avoid starting to display in the middle
67f1cf4c
GM
2580 of a character, a TAB for instance. This is easier than to set
2581 up the iterator exactly, and it's not a frequent case, so the
2582 additional effort wouldn't really pay off.
2583
c1e279c2
AC
25842000-11-26 Andrew Choi <akochoi@i-cable.com>
2585
67f1cf4c 2586 * emacs.c (main) [macintosh]: Call syms_of_frame before calling
c1e279c2
AC
2587 init_window_once.
2588
a609568a
JR
25892000-11-25 Jason Rumney <jasonr@gnu.org>
2590
48b21762
JR
2591 * keyboard.c (make_lispy_event) [mouse_wheel, drag_n_drop]: Args
2592 to window_from_coordinates should be pixel coordinates.
2593
a609568a
JR
2594 * w32fns.c (x_to_w32_font): Do not filter out italic fonts, as new
2595 redisplay handles them properly.
2596
a658d039
MB
25972000-11-25 Miles Bader <miles@gnu.org>
2598
2599 * indent.c (compute_motion): Keep pos_byte in sync with pos.
2600
d3416cca
JR
26012000-11-24 Jason Rumney <jasonr@gnu.org>
2602
2603 * w32.c (init_environment): Set LANG environment variable based on
2604 locale settings, if not set.
2605
2606 * w32fns.c (x_set_tool_bar_lines): Clear internal border when
2607 making tool bar smaller. When clearing the frame, also
2608 clear current matrices. Clear frame when tool bar disappears.
2609 Don't use more lines for the tool-bar than is available.
2610 (x_change_window_heights): New function.
2611
ba193890
GM
26122000-11-24 Gerd Moellmann <gerd@gnu.org>
2613
2be8f184
GM
2614 * xdisp.c (init_from_display_pos): If POS says we're already after
2615 an overlay string ending at POS, make sure to pop the iterator
2616 because it will be in front of that overlay string. When POS is
2617 ZV, we've thereby also ``processed'' overlay strings at ZV.
2618
ba193890
GM
2619 * xfaces.c (lface_from_face_name): Function comment fix.
2620
1862a24e
MB
26212000-11-24 Miles Bader <miles@gnu.org>
2622
2623 * xdisp.c (display_menu_bar, display_mode_line): Change the way we
2624 apply `mode-line-inverse-video' -- zero means force display using
2625 the default face, non-zero means display using the specialized face.
2626 (syms_of_xdisp): `mode-line-inverse-video' defaults to true again.
2627
f07fa1b8
KH
26282000-11-23 Kenichi Handa <handa@etl.go.jp>
2629
2630 * alloc.c (Fmake_string): Use MAX_MULTIBYTE_LENGTH, instead of
2631 hard coded `4'.
2632
2bcdf662
EZ
26332000-11-23 Eli Zaretskii <eliz@is.elta.co.il>
2634
2635 * coding.c (decode_coding_emacs_mule): Fix the case of
2636 CODING_EOL_LF, which used uninitialized value of c.
2637
ba8299ff
SM
26382000-11-23 Stefan Monnier <monnier@cs.yale.edu>
2639
2640 * xdisp.c (syms_of_xdisp): Make fontification-functions buffer-local.
2641
f4117c4d
GM
26422000-11-22 Gerd Moellmann <gerd@gnu.org>
2643
03e757c1
GM
2644 * buffer.c (Fmake_indirect_buffer): Don't treat nil as a
2645 buffer object.
2646
f4117c4d
GM
2647 * frame.h (struct frame): Replace desired_tool_bar_items,
2648 current_tool_bar_items, n_desired_tool_bar_items,
cc362d76 2649 n_current_tool_bar_items with tool_bar_items and n_tool_bar_items.
f4117c4d
GM
2650
2651 * frame.c (make_frame): Change initialization of tool bar
2652 items accordingly.
2653
2654 * xterm.c (x_handle_tool_bar_click, note_tool_bar_highlight):
cc362d76 2655 Change references to members deleted from struct frame to use the
f4117c4d
GM
2656 new ones.
2657
2658 * xdisp.c (update_tool_bar, build_desired_tool_bar_string): Change
cc362d76 2659 references to members deleted from struct frame to use the new
f4117c4d
GM
2660 ones.
2661
2662 * dispnew.c (update_frame): Do nothing with frame's tool bar
2663 items.
2664
2665 * alloc.c (mark_object) <frame>: Mark tool bar items differently.
2666
2667 * w32term.c (x_tool_bar_item, w32_handle_tool_bar_click)
cc362d76 2668 (note_tool_bar_highlight): Change references to members deleted
f4117c4d
GM
2669 from struct frame to use the new ones.
2670
f8e2f3f2
MB
26712000-11-23 Miles Bader <miles@gnu.org>
2672
2673 * xdisp.c (display_menu_bar): Or `mode-line-inverse-video' with
2674 the face's inverse-video attribute, rather than overriding it.
2675
60e8e0a5
GM
26762000-11-22 Gerd Moellmann <gerd@gnu.org>
2677
2678 * xfns.c (x_set_tool_bar_lines): Clear internal border when
2679 making tool bar smaller.
2680
92dd1b29
DL
26812000-11-22 Dave Love <fx@gnu.org>
2682
2683 * s/sol2-5.h (_LARGEFILE_SOURCE, _FILE_OFFSET_BITS): Don't define.
2684
e672fdce
MB
26852000-11-22 Miles Bader <miles@gnu.org>
2686
3a17d6cc
MB
2687 * keyboard.c (Vminibuffer_message_timeout): New variable.
2688 (command_loop_1): Use it to determine message timeout.
2689 (syms_of_keyboard): Initialize it.
2690
60e8e0a5 2691 * xdisp.c (syms_of_xdisp): `mode-line-inverse-video' defaults to nil.
e672fdce 2692
e9655d81
KH
26932000-11-22 Kenichi Handa <handa@etl.go.jp>
2694
2695 * sysdep.c: Move the code for declaring h_errno after #include
2696 <netdb.h>.
2697
77270fac
GM
26982000-11-21 Gerd Moellmann <gerd@gnu.org>
2699
cd913aae
GM
2700 * xfns.c (Fx_hide_tip) [USE_LUCID]: Add a hack to redisplay
2701 the menu bar when the tooltip is unmapped.
2702
77270fac
GM
2703 * buffer.c (Fkill_buffer): Notice if the buffer to kill is the
2704 sole visible buffer when we're currently in the mini-buffer, and
2705 give up if so.
2706
556635d6
JR
27072000-11-21 Jason Rumney <jasonr@gnu.org>
2708
2709 * w32select.c (Fw32_set_clipboard_data): Save a copy of what is
2710 put on the clipboard.
2711 (Fw32_get_clipboard_data): Compare data on clipboard with saved
2712 copy of what Emacs last put there. If they are the same, do not
2713 use the clipboard copy to avoid losing data due to coding
2714 conversions.
2715
5b7bde64
MB
27162000-11-22 Miles Bader <miles@gnu.org>
2717
2718 * minibuf.c (Vminibuffer_prompt_properties): New variable.
2719 (syms_of_minibuf): Initialize it.
2720 (read_minibuf): Add properties from Vminibuffer_prompt_properties
2721 to prompt, don't make read-only.
2722
ff23e1dd
GM
27232000-11-21 Gerd Moellmann <gerd@gnu.org>
2724
3c64f287
GM
2725 * bytecode.c (Fbyte_code) <Bvarbind, Bunwind_protect>: Add
2726 BEFORE/AFTER_POTENTIAL_GC.
2727
7aaf4388
GM
2728 * s/hpux10.h (_FILE_OFFSET_BITS): Undef.
2729
f5f47add 2730 * buffer.c (mmap_free_1): Avoid a compiler warning.
1a15cca0 2731
ff23e1dd
GM
2732 * term.c, cm.c: Don't try to include termcap.h; see comment there.
2733
37c35586
KH
27342000-11-21 Kenichi Handa <handa@etl.go.jp>
2735
2736 * s/sol2-5.h: Move #undef USE_MMAP_FOR_BUFFERS out of #if 0
2737 ... #endif scope.
2738
ff9ab414
GM
27392000-11-20 Gerd Moellmann <gerd@gnu.org>
2740
c51d2b5e
GM
2741 * xfns.c (x_create_tip_frame): Use CWSaveUnder only if the
2742 screen supports it.
2743
29a01b72
GM
2744 * s/gnu-linux.h: Don't use `#cpu'.
2745
09dfdf85
GM
2746 * buffer.c (MAP_FAILED): Define it as `((void *) -1)' if it's
2747 not defined in mman.h.
2748
ff9ab414
GM
2749 * xterm.c (scroll_bar_windows, scroll_bar_windows_size): New
2750 variables.
2751 (x_send_scroll_bar_event): Store the window in scroll_bar_windows
2752 and store an index in the XClientMessageEvent. Storing a
2753 Lisp_Object or pointer can fail on a 64 bit system, since X only
2754 transfers 32 bits.
2755 (x_scroll_bar_to_input_event): Get the window from
2756 scroll_bar_windows.
2757
81459ac9
DL
27582000-11-20 Dave Love <fx@gnu.org>
2759
2760 * Makefile.in (LIBX): Reorder for -lX11 after -lXpm.
2761
56c13ae6
GM
27622000-11-20 Gerd Moellmann <gerd@gnu.org>
2763
2764 * s/sol2-5.h (USE_MMAP_FOR_BUFFERS): Undefine.
2765
495a6df3
KH
27662000-11-20 Kenichi Handa <handa@etl.go.jp>
2767
2bcf3714
KH
2768 * charset.c (get_new_private_charset_id): Don't limit CHARSET_ID
2769 by WIDTH.
2770
495a6df3
KH
2771 * alloc.c (make_string): Fix previous change. Be sure to make
2772 unibyte string correctly.
2773
6d950f4c
GM
27742000-11-19 Gerd Moellmann <gerd@gnu.org>
2775
39b39373
GM
2776 * window.c (Fwindow_list): Change parameter list to be XEmacs
2777 compatible.
2778 (window_list_1): New function.
2779 (window_loop): Use it instead of Fwindow_list.
2780
b95b34e5
GM
2781 * sysdep.c (emacs_ospeed): New variable.
2782 (toplevel): Don't declare ospeed extern.
2783 (init_baud_rate): Use emacs_ospeed instead of ospeed.
2784
2785 * termcap.c (ospeed): Remove.
2786 (tputs) [!emacs]: Remove unused code.
2787 (tgetent): Avoid a compiler warning.
2788
e83dc917
GM
2789 * xterm.c (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
2790 (x_scroll_bar_remove, XTset_vertical_scroll_bar): Call
b95b34e5 2791 SCROLL_BAR_X_WIDGET with additional argument DPY.
e83dc917
GM
2792
2793 * xterm.h (struct scroll_bar): Members x_widget_low, x_widget_high
2794 removed.
2795 (SCROLL_BAR_X_WIDGET): Get the widget via XtWindowToWidget.
2796 Take the X display as additional argument.
2797 (SET_SCROLL_BAR_X_WIDGET): Store the window of the widget, since
2798 `Widget' is a pointer type that's not easily stored in Lisp_Object
2799 form in a portable way.
2800
6d950f4c
GM
2801 * dispnew.c (update_text_area): Fix last change.
2802
e47306e6
GM
28032000-11-18 Gerd Moellmann <gerd@gnu.org>
2804
fb3cd89b
GM
2805 * xdisp.c: Use BINDING_STACK_SIZE throughout.
2806
2807 * xfns.c (x_set_tool_bar_lines): When clearing the frame, also
2808 clear current matrices.
2809
edaa9aed
GM
2810 * buffer.c (mmap_enlarge): Don't print a message on stderr
2811 if mapping new memory at the end of the existing region fails.
2812
e47306e6
GM
2813 * dispnew.c (update_text_area): Don't skip over equal glyphs
2814 when the last current glyph overlaps the glyph to its right.
2815
509633e3
MB
28162000-11-18 Miles Bader <miles@gnu.org>
2817
2818 * xdisp.c (message_log_check_duplicate): Let "..."-detection match
2819 lines that *end* with "..." too (that's the most common case!).
2820
d392e9c5
GM
28212000-11-18 Gerd Moellmann <gerd@gnu.org>
2822
67988445
GM
2823 * xdisp.c (resize_mini_window): Temporarily change to the
2824 mini-window's buffer if necessary.
1bfdbe43 2825
d392e9c5
GM
2826 * xfns.c (Fx_show_tip): Use default y-offset of -10 so that
2827 the tooltip obscures less text under it.
2828
28292000-11-17 Gerd Moellmann <gerd@gnu.org>
2830
2831 * puresize.h (BASE_PURESIZE): Increase to 700000.
2832
92bb977f
JR
28332000-11-18 Jason Rumney <jasonr@gnu.org>
2834
2835 * w32term.c (w32_draw_bitmap): Use face to set colors.
2836
26fbf20b
DL
28372000-11-17 Dave Love <fx@gnu.org>
2838
2839 * lread.c (Fload): Fix #ifdef for pcc.
2840
100b593b
GM
28412000-11-17 Gerd Moellmann <gerd@gnu.org>
2842
2843 * xdisp.c (pos_visible_p): Compute the default character height
2844 differently.
2845
a288d0d1
GM
28462000-11-16 Gerd Moellmann <gerd@gnu.org>
2847
cac94de6
GM
2848 * xdisp.c (pos_visible_p): Handle case that we reach ZV without
2849 knowing the line's height; use the default font's height in that
2850 case.
2851
a288d0d1
GM
2852 * xfaces.c (weight_table): Add `demi' with the same meaning as
2853 `demibold'.
2854
981fb6f6
KH
28552000-11-16 Kenichi Handa <handa@etl.go.jp>
2856
2cca872d 2857 * dispnew.c (null_row): New global static variable.
981fb6f6
KH
2858 (clear_glyph_row): Delete local static variable null_row.
2859
e5fa381b
JR
28602000-11-15 Jason Rumney <jasonr@gnu.org>
2861
2862 * w32term.c (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New constant.
2863 (w32_alloc_lighter_color): Use new brightness calculations from
2864 xterm.c. Scale delta to be in the range expected by W32.
2865 (w32_draw_relief_rect): Use frame relief colors.
2866
8e42f043
GM
28672000-11-15 Gerd Moellmann <gerd@gnu.org>
2868
6d133d1f
GM
2869 * frame.c (syms_of_frame_1): Removed; code moved to syms_of_frame.
2870 (Qinhibit_default_face_x_resources): New variable.
2871 (syms_of_frame): Initialize it.
2872 (Fmodify_frame_parameters): Bind inhibit-default-face-x-resources.
2873
2874 * xdisp.c (pos_visible_p): Improve function comment.
2875
2876 * lisp.h (BINDING_STACK_SIZE): New macro.
2877
8e42f043
GM
2878 * dired.c (directory_files_internal) [EAGAIN || EINTR]: Retry
2879 reading the directory if readdir returns null and errno is EAGAIN
2880 or EINTR.
2881
e8c87124
SM
28822000-11-14 Stefan Monnier <monnier@cs.yale.edu>
2883
2884 * xdisp.c (try_scrolling): Set scroll_max to max of scroll_* args
2885 so setting scroll-step to 1 doesn't defeat scroll-conservatively.
2886 Set amount_to_scroll to max of dx and scroll_step so that
2887 scroll-conservatively doesn't defeat scroll-step>1.
2888 (syms_of_xdisp): Add a hint in scroll-step's docstring to use
2889 scroll-conservatively for line-at-a-time scrolling.
2890
5f0c971d
GM
28912000-11-14 Gerd Moellmann <gerd@gnu.org>
2892
2893 * window.c (Fpos_visible_in_window_p): Call pos_visible with
2894 extra argument.
2895
2896 * xdisp.c (current_mode_line_height, current_header_line_height):
2897 New variables.
2898 (init_xdisp): Initialize them.
2899 (pos_visible_p): Add parameter EXACT_MODE_LINE_HEIGHTS_P. Compute
2900 and use exact mode line heights if it is set.
2901
2902 * lisp.h (pos_visible_p): Change prototype.
2903
2904 * dispextern.h (CURRENT_MODE_LINE_HEIGHT)
2905 (CURRENT_HEADER_LINE_HEIGHT): Look at current_mode_line_height
2906 and current_header_line_height first.
2907 (current_mode_line_height, current_header_line_height): Declare
2908 extern.
2909
d7361edf
MB
29102000-11-14 Miles Bader <miles@lsi.nec.co.jp>
2911
2912 * xterm.c (x_alloc_lighter_color): Use real brightness calculation.
2913 Just use FACTOR/2 instead of HIGHLIGHT_COLOR_DARK_BOOST.
2914 (HIGHLIGHT_COLOR_DARK_BOOST): Macro removed.
2915
ee5e440a
MB
29162000-11-14 Miles Bader <miles@gnu.org>
2917
2918 * xterm.c (x_alloc_lighter_color): Include an additive component
2919 too for dark colors, because FACTOR isn't enough.
2920 (HIGHLIGHT_COLOR_DARK_BOOST, HIGHLIGHT_COLOR_DARK_BOOST_LIMIT):
2921 New macros.
2922
5ca020fc
GM
29232000-11-13 Gerd Moellmann <gerd@gnu.org>
2924
2925 * keyboard.c (show_help_echo): Call message3_nolog with number of
2926 bytes in the help string as 2nd parameter, instead of the number
2927 of characters.
2928
9d348294
MB
29292000-11-13 Miles Bader <miles@gnu.org>
2930
2931 * lread.c (openp): Return -2 instead of 0 for the `remote file' case.
2932 (Fload): Use new openp return protocol.
2933 Don't try to use Vload_source_file_function to load .elc files.
2934 * xfns.c (x_create_bitmap_from_file, x_find_image_file): Use new
2935 openp return protocol.
2936 * w32fns.c (x_create_bitmap_from_file, x_find_image_file): Likewise.
2937
1729bb9a
KH
29382000-11-11 Kenichi Handa <handa@etl.go.jp>
2939
4e677396
KH
2940 * syssignal.h: Pay attention to BROKEN_SIGAIO and BROKEN_SIGPTY.
2941
2942 * m/ibmrs6000.h (BROKEN_SIGAIO, BROKEN_SIGPTY, BROKEN_SIGPOLL):
2943 Defined these macros.
2944 (NLIST_STRUCT): Avoid re-defining it.
2945
1729bb9a
KH
2946 * s/hpux10.h (C_SWITCH_X_SYSTEM): Include -I/usr/include/X11R6 and
2947 -I/usr/contrib/X11R6/include.
2948 (LD_SWITCH_X_DEFAULT): Include -L/usr/lib/X11R6.
2949
a82fe213
JR
29502000-11-10 Jason Rumney <jasonr@gnu.org>
2951
2952 * w32term.h (CP_8BIT, CP_UNICODE, CP_INVALID): New pseudo-codepages.
2953
2954 * w32term.c (w32_encode_char): Handle CP_UNICODE specially.
2955 (w32_use_unicode_for_codepage): Use new pseudo-codepages.
2956
2957 * w32fns.c (Qw32_charset_hangeul): Rename to match w32 headers.
2958 (Qw32_charset_vietnamese): New symbol.
2959 (xlfd_charset_of_font): New function.
2960 (w32_load_system_font): Use it.
2961 (x_to_w32_charset): Use Fassoc to find charset info. Special case
2962 when Vw32_charset_info_alist is nil to ensure default face always
2963 has font. Use Fcar and Fcdr for safety.
2964 (w32_to_x_charset): Use Vw32_charset_info_alist for mappings.
2965 (w32_codepage_for_font): Use xlfd_charset_of_font. Use new
2966 pseudo-codepages for special cases.
2967 (w32_to_x_font): New parameter to allow charset portion to be
2968 specified where there is many to one mapping. Callers changed.
2969 (w32_list_fonts): Avoid listing fonts that won't display.
2970
52d89894
GM
29712000-11-10 Gerd Moellmann <gerd@gnu.org>
2972
2973 * xfaces.c (Vface_alternative_font_registry_alist): New variable.
2974 (font_list_1): Renamed from font_list.
2975 (font_list): New function, trying alternative registries from
2976 Vface_alternative_font_registry_alist.
2977 (Finternal_set_alternative_font_registry_alist): New function.
2978 (syms_of_xfaces): Initialize and Staticpro
2979 Vface_alternative_font_registry_alist. Defsubr
2980 Finternal_set_alternative_font_registry_alist.
2981
651cd3da
KR
29822000-11-09 Ken Raeburn <raeburn@gnu.org>
2983
2984 * lisp.h (Flooking_at): Declare.
2985
388ac098
GM
29862000-11-09 Gerd Moellmann <gerd@gnu.org>
2987
778fbc46
GM
2988 * dired.c (directory_files_internal): Fix a braino.
2989
388ac098
GM
2990 * dired.c (directory_files_internal): Add missing GCPRO's.
2991 Some cleanup.
2992
ecaedde1
GM
29932000-11-08 Gerd Moellmann <gerd@gnu.org>
2994
f7eb32aa
GM
2995 * xdisp.c (syms_of_xdisp): Change doc of max-mini-window-height.
2996 (resize_mini_window): Return quickly if Vresize_mini_window is
2997 nil. Don't return if Vmax_mini_window_height is nil.
2998
2999 * xdisp.c (Vresize_mini_window, Qgrow_only): New variables.
3000 (syms_of_xdisp): Initialize them.
3001 (resize_mini_window): Act according to the setting of
3002 Vresize_mini_window.
3003 (syms_of_xdisp): Initialize Vmenu_bar_update_hook to nil.
3004
ecaedde1
GM
3005 * xterm.c (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]: Map the
3006 scroll bar widget after configuring it, so that it will appear at
3007 the right position from the start.
3008 (XTredeem_scroll_bar): Cleaned up.
3009
3747ef2c
KH
30102000-11-08 Kenichi Handa <handa@etl.go.jp>
3011
3012 * xterm.c (VCENTER_BASELINE_OFFSET): Fix previous change. If the
5d16e624 3013 font is taller than the frame line, we don't have to bias the
3747ef2c
KH
3014 division by two.
3015
3016 * w32term.c (VCENTER_BASELINE_OFFSET): Likewise.
3017
03391420
DL
30182000-11-07 Dave Love <fx@gnu.org>
3019
7758f1c1 3020 * config.in (HAVE_MKSTEMP): Add.
03391420
DL
3021
3022 * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Use it.
3023
b5de343d
GM
30242000-11-07 Gerd Moellmann <gerd@gnu.org>
3025
acad3c0b
GM
3026 * window.c (Fset_window_configuration): Don't try to preserve
3027 point in the current buffer, if that buffer is displayed in more
3028 than one window.
3029
b5de343d
GM
3030 * xfaces.c (lookup_named_face): If default face isn't realized,
3031 try to realize it. Return -1 if not successful.
3032 (Fx_list_fonts): Handle case that face cannot be determined.
3033 (Fface_font): Likewise.
3034
cdb1fe49
GM
30352000-11-06 Gerd Moellmann <gerd@gnu.org>
3036
3037 * window.c (displayed_window_lines): Detect partially
3038 visible lines at the bottom correctly.
3039
d3a67486
SM
30402000-11-06 Stefan Monnier <monnier@cs.yale.edu>
3041
3042 * fileio.c (Fwrite_region): Use `visiting' rather than `visit'
3043 when ensuring we don't do visit in indirect buffer.
3044
ff8dd5d5
KH
30452000-11-06 Kenichi Handa <handa@etl.go.jp>
3046
3047 * composite.h (compose_chars_in_text): Add prototype.
3048
3049 * composite.c (Vcomposition_function_table): New variable.
3050 (Qcomposition_function_table): New variable.
3051 (run_composition_function): Call
3052 Vcompose_chars_after_function with three arguments.
3053 (compose_chars_in_text): New function.
3054 (syms_of_composite): Modified the doc-string of
3055 Vcompose_chars_after_function. Declare composition-function-table
3056 as a lisp variable, and initialize it.
3057
3058 * xfns.c (x_encode_text): Suppress producing escape sequences for
3059 composition.
3060
3061 * xselect.c: Include composite.h.
3062 (selection_data_to_lisp_data): Call compose_chars_in_text on STR.
3063
d1145f85
AI
30642000-11-05 Andrew Innes <andrewi@gnu.org>
3065
3066 * w32term.c (x_produce_glyphs): Fix typo in enum name.
3067
3068 * sysdep.c (read_input_waiting): Remove extraneous argument to
3069 read_socket_hook.
3070
3071 * w32fns.c (Fx_server_version): Include w32_build_number in the
3072 return list.
3073
3074 * w32heap.c (w32_build_number): New variable.
3075 (cache_system_info): Set it.
3076
3077 * w32heap.h (w32_build_number): Add extern.
3078
3079 * emacs.c (syms_of_emacs): Update docstring for
3080 system-configuration, to reflect the actual usage on MS-Windows.
3081
e85ee976
GM
30822000-10-31 Gerd Moellmann <gerd@gnu.org>
3083
26dcb81b
GM
3084 * keyboard.c (read_char) <wrong_kboard>: Make sure that we
3085 process idle timers while waiting for another event.
3086
0a894bad
GM
3087 * dispnew.c (update_frame_line): Handle case where spaces in
3088 the default face are colored.
3089
e85ee976
GM
3090 * xdisp.c (redisplay_tool_bar): Don't set fonts_changed_p if
3091 window height hasn't changed.
3092
01b220b6
JR
30932000-10-31 Jason Rumney <jasonr@gnu.org>
3094
3095 * w32term.c (x_produce_glyphs): Handle composite characters.
3096 (x_draw_glyph_string_foreground)
3097 (x_draw_composite_glyph_string_foreground): Restore old font.
3098
4e6b7204
MB
30992000-10-31 Miles Bader <miles@lsi.nec.co.jp>
3100
3101 * minibuf.c (read_minibuf): Reset the undo history just before
3102 starting the recursive-edit.
3103
d4358b37
GM
31042000-10-30 Gerd Moellmann <gerd@gnu.org>
3105
563f68f1
GM
3106 * xfaces.c (menu_face_change_count): New variable.
3107 (Finternal_set_lisp_face_attribute): Increment it for changes
3108 of the `menu' face.
3109 (realize_basic_faces): Reflect changes in the `menu' faces
3110 in menu bars.
3111
82e274d1
GM
3112 * xdisp.c (try_scrolling) <PT >= scroll_margin_pos>: Add 1 to the
3113 dy obtained from the iterator's y-position after moving from
3114 scroll_margin_pos to PT; see comment there.
3115
0dbf9fd2
GM
3116 * xdisp.c (safe_eval_handler): Call add_to_log.
3117
906b3b14
GM
3118 * xfaces.c (resolve_face_name): Handle case that FACE_NAME
3119 is not a symbol or string.
3120
d4358b37
GM
3121 * xdisp.c (echo_area_display): Don't perform a display update from
3122 inside redisplay. The update will happen anyway at the end of
3123 redisplay, and it can confuse redisplay (GC messages while
3124 redisplaying, for instance.)
3125
70c825df
SM
31262000-10-30 Stefan Monnier <monnier@cs.yale.edu>
3127
cf9b4b0b
SM
3128 * xrdb.c (x_load_resources): Use the class name in the defaults.
3129
70c825df
SM
3130 * regex.c (re_iswctype, re_wctype_to_bit): Fix braino.
3131 (regex_compile): Catch bogus \(\1\).
3132
a1d34b1e
GM
31332000-10-30 Gerd Moellmann <gerd@gnu.org>
3134
cae71efe
GM
3135 * xterm.c (x_alloc_nearest_color): Fix last change to compare
3136 RGB values.
3137
35efe0a1
GM
3138 * xterm.c (x_alloc_nearest_color): If allocation succeeds, and
3139 we have a color cache, check that the cached color equals the
3140 allocated color. If not, clear the color cache.
3141
1d3baf74
GM
3142 * window.c (displayed_window_lines): Change buffers if necessary.
3143 Fix computation of displayed lines.
3144
a1d34b1e
GM
3145 * keyboard.c (syms_of_keyboard): Change DEFVAR_LISP of
3146 update_menu_bindings to DEFVAR_BOOL.
3147
70737ea9
KH
31482000-10-30 Kenichi Handa <handa@etl.go.jp>
3149
70c825df 3150 * search.c (Fset_match_data): Be sure to make search_regs always sane.
80406070 3151
fa0cb51d
KH
3152 * puresize.h (BASE_PURESIZE): Increase to 680000.
3153
70737ea9
KH
3154 * fns.c (Foptimize_char_table): Fix arg for CHARSET_DIMENSION.
3155
0e4c08e8
JR
31562000-10-29 Jason Rumney <jasonr@gnu.org>
3157
3158 * w32term.h (FONT_DESCENT): Negate descent of BDF fonts.
3159
3160 * w32term.c (w32_bdf_per_char_metric): Negate descent.
3161 (w32_cache_char_metrics): Handle possibility that 'x' does not
3162 exist in a BDF font.
3163 (W32_TEXTOUT): w32_BDF_TextOut wants number of bytes not chars.
3164
3165 * w32bdf.h (bdffont): Add nchars.
3166
3167 * w32bdf.c (set_bdf_font_info): Set it.
3168 (w32_BDF_TextOut): Swap byte order of double byte characters.
3169 (w32_load_bdf_font): Set double_byte_p based on bdf_font->nchars.
3170
45b84006
EZ
31712000-10-28 Eli Zaretskii <eliz@is.elta.co.il>
3172
3173 * frame.c (Fframe_parameters): Fix the change from 2000-10-16:
3174 don't override the colors in frame's param_alist, unless they are
3175 unspecified.
3176
3177 * term.c (reassert_line_highlight): If inverse_video is non-zero,
3178 reverse the effect of the highlight flag.
3179
caf9deee
KR
31802000-10-27 Ken Raeburn <raeburn@gnu.org>
3181
3182 * window.h (Fwindow_live_p): Declare.
3183
ae0b9b46
KR
3184 * undo.c (record_delete): Check that last_undo_buffer is really a
3185 buffer before applying XBUFFER to it.
3186
3187 * keymap.c (where_is_internal): Pass lisp object, not integer, to
3188 Faref.
3189
02067692
SM
31902000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3191
3192 * lisp.h (KEYMAPP): New macro.
3193 (get_keymap): Remove.
3194 (get_keymap_1): Rename get_keymap.
3195
3196 * keyboard.h (get_keymap_1, Fkeymapp): Remove prototype.
3197
3198 * xterm.c (note_mode_line_highlight): Use KEYMAPP.
3199
3200 * xmenu.c (single_submenu): Use KEYMAPP.
3201 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3202 Use KEYMAPP rather than Fkeymapp.
3203
3204 * w32term.c (note_mode_line_highlight): Use KEYMAPP.
3205
3206 * w32menu.c (True, False): Remove (use TRUE and FALSE instead).
3207 (Fx_popup_menu): Fetch keymaps rather than checking Fkeymapp.
3208 Use KEYMAPP rather than Fkeymapp.
3209 (single_submenu): Use KEYMAPP.
3210 (w32_menu_show, w32_dialog_show): Use TRUE.
3211
3212 * minibuf.c (Fread_from_minibuffer): Update call to get_keymap.
3213
3214 * keymap.c (KEYMAPP): Remove (moved to lisp.h).
3215 (Fkeymapp): Use KEYMAPP.
3216 (get_keymap): Rename from get_keymap_1. Remove old def.
3217 Return t when autoload=0 and error=0 and the keymap needs autoloading.
3218 (Fcopy_keymap): Check (eq (car x) 'keymap) rather than using Fkeymapp.
3219 (Fminor_mode_key_binding): Don't raise an error if the binding
3220 is not a keymap.
3221 (Fuse_global_map, Fuse_local_map): Allow autoloading.
3222 (Faccessible_keymaps): Fetch keymaps rather than checking Fkeymapp.
3223
3224 * keyboard.c (read_char): get_keymap_1 -> get_keymap.
3225 Allow Vspecial_event_map to be autoloaded.
3226 (menu_bar_items): Fetch the keymap rather than using keymapp.
3227 (menu_bar_one_keymap): No need to follow func-indirect any more.
3228 (parse_menu_item): get_keymap_1 -> get_keymap.
3229 (tool_bar_items): Fetch the keymap rather than using keymapp.
3230 (read_key_sequence): Use KEYMAPP.
3231
3232 * intervals.c (get_local_map): Use get_keymap rather than following
3233 function-indirections explicitly.
3234
3235 * doc.c (Fsubstitute_command_keys): get_keymap_1 -> get_keymap.
3236
f9d80af3
JR
32372000-10-27 Jason Rumney <jasonr@gnu.org>
3238
3239 * w32fns.c (Fx_create_frame): Make default fontsize on w32 10
3240 point, as Windows has oversized fonts.
3241
3242 * fontset.c (syms_of_fontset) [WINDOWSNT]: Likewise.
3243
a3ba27da
GM
32442000-10-27 Gerd Moellmann <gerd@gnu.org>
3245
3246 * gmalloc.c [GC_MCHECK]: Add code from mcheck.c of glibc-1.09.1.
3247 (freehook, reallochook): Handle null pointer arguments.
3248 (__malloc_initialize) [GC_MCHECK]: Call mcheck.
3249
aa3b80cc
SM
32502000-10-27 Stefan Monnier <monnier@cs.yale.edu>
3251
3252 * regex.c (POP_FAILURE_REG_OR_COUNT, re_match_2_internal)
3253 (re_match_2_internal, re_match_2_internal, re_match_2_internal):
3254 Giving in to popular pressure to shut up the compiler with casts.
3255
e24e84cc
GM
32562000-10-27 Gerd Moellmann <gerd@gnu.org>
3257
3258 * xterm.c (x_draw_glyph_string): Treat XA_UNDERLINE_POSITION as a
3259 signed value, and use a default value computed from the font's
3260 maximum descent.
3261
05ea7ef2
MB
32622000-10-27 Miles Bader <miles@lsi.nec.co.jp>
3263
3264 * xterm.c (x_draw_glyph_string): Add a workaround so that fonts
3265 that specify a negative underline position can still use underlines.
3266
3267 * window.c (Fpos_visible_in_window_p): Make POS default to
3268 WINDOW's point, not the current buffer's point.
3269
0b95284b
DL
32702000-10-26 Dave Love <fx@gnu.org>
3271
3272 * s/sol2-5.h: Don't define SYSTEM_MALLOC so that we can find out
3273 when it's necessary.
3274
6c5b90af
GM
32752000-10-26 Gerd Moellmann <gerd@gnu.org>
3276
8b6d9dc9
GM
3277 * window.c (size_window): Compute size difference from sum of old
3278 child window sizes instead of from parent's size.
3279
6bc92b2e
GM
3280 * xdisp.c (pos_visible_p): Change current buffer if necessary.
3281 Handle obscured lines at the top of the window.
3282
3283 * frame.c (Fdelete_frame): Doc fix. Move running the hook
3284 down after the last error condition check.
3285
6c5b90af
GM
3286 * frame.c (Fdelete_frame): Run delete-frame-hook.
3287
42f92d4d
KH
32882000-10-26 Kenichi Handa <handa@etl.go.jp>
3289
3290 * coding.c (decode_coding): Fix previous change (check also
3291 CODING_MODE_LAST_BLOCK).
3292
d97151cb
SM
32932000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3294
e7efc503
SM
3295 * regex.c: More `unsigned char' -> `re_char' changes.
3296 Also change several `int' into `re_wchar_t'.
3297 (PATTERN_STACK_EMPTY, PUSH_PATTERN_OP, POP_PATTERN_OP): Remove.
3298 (PUSH_FAILURE_POINTER): Don't cast any more.
3299 (POP_FAILURE_REG_OR_COUNT): Remove the cast that strips `const'.
3300 We want GCC to complain, since this piece of code makes
3301 re_match non-reentrant, which *should* be fixed.
3302 (GET_BUFFER_SPACE): Use size_t rather than unsigned long.
3303 (EXTEND_BUFFER): Use RETALLOC.
3304 (SET_LIST_BIT): Don't cast.
3305 (re_wchar_t): New type.
3306 (re_iswctype, re_wctype_to_bit): Make it crystal clear to GCC
3307 that those two functions will always properly return.
3308 (IMMEDIATE_QUIT_CHECK): Cast to void.
3309 (analyse_first): Use recursion rather than an explicit stack.
3310 (re_compile_fastmap): Can't fail anymore.
3311 (re_search_2): Don't check re_compile_fastmap for failure.
3312 (PUSH_NUMBER): Renamed from PUSH_FAILURE_COUNT.
3313 Now also sets the new value (passed in a new argument).
3314 (re_match_2_internal): Use it.
3315 Also, use a new var `reg' of type size_t when looping through regs
3316 rather than reuse the inappropriate `mcnt'.
3317
d97151cb
SM
3318 * keymap.c (where_is_cache, where_is_cache_keymaps): New vars.
3319 (Fset_keymap_parent, store_in_keymap): Flush the where-is cache.
3320 (where_is_internal): Renamed from Fwhere_is_internal.
3321 Don't DEFUN any more. Arg `xkeymap' replaced by `keymaps'.
3322 (Fwhere_is_internal): New function wrapping where_is_internal.
3323 (where_is_internal_1): Handle the case where we're filling the cache.
3324 (syms_of_keymap): Init and gcpro the where_is_cache(|_keymaps).
3325
d5789b65
MB
33262000-10-25 Miles Bader <miles@gnu.org>
3327
3328 * xdisp.c (pos_visible_p): Don't add `it.current_y' twice.
3329
4ecda532
GM
33302000-10-25 Gerd Moellmann <gerd@gnu.org>
3331
3332 * window.c (pos_fully_visible_p): Removed.
3333 (Fpos_visible_in_window_p): Use pos_visible_p to determine
3334 if position is visible and/or fully visible.
3335
3336 * lisp.h (pos_visible_p): Add prototype.
3337
3338 * xdisp.c (pos_visible_p): New function.
3339
68c3a137
KH
33402000-10-25 Kenichi Handa <handa@etl.go.jp>
3341
3342 * process.c (send_process): If OBJECT is t, it means that the data
3343 is from C string, but we should encode it. Before calling
3344 setup_raw_text_coding_system, be sure to flush out data by the
3345 previous coding system.
3346
7ae1c032
MB
33472000-10-25 Miles Bader <miles@lsi.nec.co.jp>
3348
ff4dcd4b
MB
3349 * buffer.c (overlays_at): Only let CHANGE_REQ inhibit an
3350 assignment of startpos to prev when startpos == pos.
3351
7ae1c032
MB
3352 * editfns.c (find_field): Set the field stickiness correctly from
3353 overlay fields. Use renamed `text_property_stickiness'.
3354 (text_property_stickiness): Renamed from `char_property_stickiness'.
ebe2a441 3355 Only check text properties, not overlays.
7ae1c032
MB
3356 * textprop.c (get_char_property_and_overlay): New function.
3357 (Fget_char_property): Use it.
3358 * intervals.h (get_char_property_and_overlay): Add declaration.
3359
49801145
SM
33602000-10-25 Stefan Monnier <monnier@cs.yale.edu>
3361
3362 * keymap.c: Use AREF, ASET and ASIZE macros.
3363 (Fmake_sparse_keymap): Docstring fix.
3364 (synkey): Remove.
3365 (shadow_lookup): Move up.
3366 Handle the case where lookup-key returns an integer.
3367 (where_is_internal_1): Drop arg `keymap'. Don't check shadowing.
3368 (where_is_internal_2): Adapt to fewer args for where_is_internal_1.
3369 (Fwhere_is_internal): Allow `xkeymap' to be a list of keymaps.
3370 Simplify/rewrite the keymap-finding code.
3371 Add check for command shadowing, using shadow_lookup.
3372
39e776cd
SM
33732000-10-24 Stefan Monnier <monnier@cs.yale.edu>
3374
3375 * keymap.c (fix_submap_inheritance): Use get_keymap_1 on parent_entry
3376 rather than KEYMAPP, to allow EQ to work correctly if parent_entry is
3377 a symbol.
3378
2488aba5
AI
33792000-10-24 Andrew Innes <andrewi@gnu.org>
3380
3381 * dired.c (directory_files_internal_unwind): New function.
3382 (directory_files_internal): Use it to ensure closedir is called
3383 even if expand-file-name or file-attributes throw, eg. because of
3384 a user interrupt. Also enable immediate_quit while calling
3385 re_search, so that matching can be interrupted as well.
3386
b94fdf61
AI
33872000-10-24 Andrew Innes <andrewi@gnu.org>
3388
3389 * regex.c (IMMEDIATE_QUIT_CHECK): New macro, which does QUIT on
3390 NT-Emacs only.
3391 (re_match_2_internal): Use IMMEDIATE_QUIT_CHECK instead of QUIT,
3392 so that re_search functions only quit when callers expect them to.
3393
33942000-10-24 Kenichi Handa <handa@etl.go.jp>
3395
3396 * regex.c (regex_compile): Change the way of handling a range from
3397 a char less than 256 to a char not less than 256.
3398
1946f901
GM
33992000-10-24 Gerd Moellmann <gerd@gnu.org>
3400
7ae2f10f
GM
3401 * window.c (size_window): Prevent setting window's width or
3402 height to a negative value (esp. with XSETFASTINT).
3403
5dcab13e
GM
3404 * gmalloc.c (state_protected_p, last_state_size, last_heapinfo)
3405 [GC_MALLOC_CHECK && GC_PROTECT_MALLOC_STATE]: New variables.
3406 (protect_malloc_state) [GC_MALLOC_CHECK &&
3407 GC_PROTECT_MALLOC_STATE]: New function.
3408 (PROTECT_MALLOC_STATE): New macro.
3409 (__malloc_initialize, morecore, _malloc_internal)
3410 (_free_internal) _realloc_internal): Use it to make _heapinfo
3411 read-only outside of gmalloc.
3412
63e1b552
GM
3413 * keymap.c: Update copyright.
3414
1946f901
GM
3415 * .gdbinit (xbacktrace): Handle case that $bt->function isn't
3416 a symbol.
3417
4fa09beb
GM
34182000-10-24 Colin Walters <walters@cis.ohio-state.edu>
3419
3420 * filelock.c (unlock_all_files): Use unlock_file to expand each
3421 buffer's file_truename before trying remove its lock file.
3422
23afac01
EZ
34232000-10-24 Eli Zaretskii <eliz@is.elta.co.il>
3424
3425 * coding.c (decode_coding_emacs_mule): If coding->eol_type is CR
3426 or CRLF, decode EOLs.
3427
04448b95
KH
34282000-10-24 Kenichi Handa <handa@etl.go.jp>
3429
3430 * window.c (Fdisplay_buffer): Fix doc.
3431
3090a5a5
JR
34322000-10-23 Jason Rumney <jasonr@gnu.org>
3433
3434 * fontset.c (syms_of_fontset) [WINDOWSNT]: Special case for
3435 ASCII font of default fontset on Windows.
3436
3437 * w32term.c (VCENTER_BASELINE_OFFSET): Bias division (see
3438 xterm.c comment below).
3439
3440 * w32fns.c (x_to_w32_font): Initialize dpi from dpyinfo->resy.
3441
a83fee2c
GM
34422000-10-23 Gerd Moellmann <gerd@gnu.org>
3443
3444 * xterm.c (x_connection_closed): Reset handling_signal.
3445
3446 * alloc.c (emacs_blocked_free) [GC_MALLOC_CHECK]: Handle freeing
3447 null.
3448
6ffdb539
MB
34492000-10-23 Miles Bader <miles@gnu.org>
3450
3451 * window.c (window_scroll_pixel_based, window_scroll_line_based):
3452 Pass nil for FULLY argument to Fpos_visible_in_window_p to
3453 maintain old behavior.
3454 * minibuf.c (Fminibuffer_complete): Likewise.
3455
7f1c969b
MB
34562000-10-23 Miles Bader <miles@lsi.nec.co.jp>
3457
3458 * xterm.c (VCENTER_BASELINE_OFFSET): Bias the division by two, so
3459 that when a font can't be exactly centered, it errs up rather than
3460 down.
3461
23afac01 34622000-10-23 ShengHuo ZHU <zsh@cs.rochester.edu>
8ec118cd
SZ
3463
3464 * fns.c (Fbase64_decode_string): The decoded result should be
3465 unibyte.
3466
1a578e9b
AC
34672000-10-23 Andrew Choi <akochoi@i-cable.com>
3468
3469 * dispextern.h [macintosh]: Include macgui.h instead of macterm.h.
3470
3471 * dispnew.c [macintosh]: Include macterm.h.
a83fee2c 3472 (init_display) [macintosh]: Initialization for window system.
1a578e9b
AC
3473
3474 * emacs.c (main) [macintosh]: Call syms_of_textprop,
3475 syms_of_macfns, syms_of_ccl, syms_of_fontset, syms_of_xterm,
3476 syms_of_search, x_term_init, and init_keyboard before calling
3477 init_window_once. Also, call syms_of_xmenu.
3478
3479 * fontset.c (syms_of_fontset) [macintosh]: Set ASCII font of
3480 default fontset to Monaco.
3481
3482 * frame.c [macintosh]: Include macterm.h. Remove declarations of
3483 NewMacWindow and DisposeMacWindow.
3484 (make_terminal_frame) [macintosh]: Call make_mac_terminal_frame
3485 instead of calling NewMacWindow and setting fields of
3486 f->output_data.mac directly. Call init_frame_faces.
3487 (Fdelete_frame) [macintosh]: Remove unused code.
3488 (Fmodify_frame_parameters) [macintosh]: Call
3489 x_set_frame_parameters instead of mac_set_frame_parameters.
3490
3491 * frame.h [macintosh]: Define menu_bar_lines field in struct
3492 frame. Define FRAME_EXTERNAL_MENU_BAR macro.
3493
3494 * keyboard.c [macintosh]: Include macterm.h.
3495 (kbd_buffer_get_event) [macintosh]: Generate delete_window_event
3496 and menu_bar_activate_event type events as for X and NT.
3497 (make_lispy_event) [macintosh]: Construct lisp events of type
3498 MENU_BAR_EVENT as for X and NT.
3499
3500 * sysdep.c [macintosh]: Remove declaration for sys_signal.
3501 Include stdlib.h. Remove definition of Vx_bitmap_file_path.
3502 (sys_subshell) [macintosh]: Remove definition entirely.
3503 (init_sys_modes) [macintosh]: Do not initialize Vwindow_system and
3504 Vwindow_system_version here. Remove initialization of
3505 Vx_bitmap_file_path.
3506 (read_input_waiting): Correct the number of parameters passed to
3507 read_socket_hook.
3508 Move all Macintosh functions to mac/mac.c.
3509
3510 * term.c [macintosh]: Include macterm.h.
3511
3512 * window.c [macintosh]: Include macterm.h.
3513
3514 * xdisp.c [macintosh]: Include macterm.h. Declare
3515 set_frame_menubar and pending_menu_activation.
3516 (echo_area_display) [macintosh]: Do not return if terminal frame
3517 is the selected frame.
3518 (update_menu_bar) [macintosh]: Check FRAME_EXTERNAL_MENU_BAR (f).
3519 Allow only the selected frame to set menu bar.
3520 (redisplay_window) [macintosh]: Obtain menu bar to redisplay by
3521 calling FRAME_EXTERNAL_MENU_BAR (f).
3522 (display_menu_bar) [macintosh]: Check FRAME_MAC_P (f).
3523
3524 * xfaces.c [macintosh]: Include macterm.h. Define x_display_info
3525 and check_x. Declare XCreateGC. Define x_create_gc and
3526 x_free_gc. Initialize font_sort_order.
3527 (x_face_list_fonts) [macintosh]: Use the same code as WINDOWSNT,
3528 but call x_list_fonts instead of w32_list_fonts.
3529 (Finternal_face_x_get_resource) [macintosh]: Do not call
3530 display_x_get_resource.
3531 (prepare_face_for_display) [macintosh]: Set xgcv.font.
3532 (realize_x_face) [macintosh]: Load the font if it is specified in
3533 ATTRS.
3534 (syms_of_xfaces) [macintosh]: Initialize Vscalable_fonts_allowed
3535 to Qt.
3536
1ffbabe3
SM
35372000-10-22 Stefan Monnier <monnier@cs.yale.edu>
3538
3539 * keymap.c (fix_submap_inheritance): Don't do anything if parent_entry
3540 is nil: since we go to the end of submap anyway, we'd end up
3541 setting nil to nil.
3542 (access_keymap): Don't use KEYMAPP on meta_map since KEYMAPP
3543 doesn't obey autoload.
3544
bed43f1d
EZ
35452000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
3546
1ffbabe3 3547 * msdos.c (dos_set_window_size): Update screen dimension variables.
bed43f1d 3548
ea4233a7
JR
35492000-10-21 Jason Rumney <jasonr@gnu.org>
3550
3551 * w32term.c (w32_cache_char_metrics): Double check that font is
3552 really fixed pitch before trusting tmPitchAndFamily.
3553
f3d3c491
AI
35542000-10-21 Andrew Innes <andrewi@gnu.org>
3555
3556 * w32gui.h (w32_char_font_type): Move enum from w32term.c
3557
3558 * w32term.h: Extern decl for w32_cache_char_metrics.
3559
3560 * w32bdf.c (w32_load_bdf_font): Call w32_cache_char_metrics.
3561
3562 * w32fns.c (w32_load_system_font): Call w32_cache_char_metrics.
3563 (w32_unload_font): Free per_char array if present.
3564
3565 * w32term.c (w32_per_char_metric): Remove HDC argument. Use
3566 cached information in emulated XFontStruct to handle common cases
3567 quickly. Do not allocate XCharStruct for return.
3568 (w32_native_per_char_metric): New function.
3569 (w32_bdf_per_char_metric): Fill in supplied XCharStruct instead of
3570 allocating one.
3571 (x_produce_glyphs): Don't get an HDC. Change calls to
3572 w32_per_char_metric to match arg change above. Remove calls to
3573 free results.
3574 (w32_get_glyph_overhangs): Ditto.
3575 (w32_cache_char_metrics): New function.
3576
3577 * makefile.w32-in: Change .obj to .$(O) in all dependencies.
3578 ($(BLD)/casefiddle.$(O)): Remove compile command.
3579 ($(BLD)/gmalloc.$(O)): Remove compile command.
3580 ($(BLD)/dispnew.obj):
3581 ($(BLD)/keyboard.obj):
3582 ($(BLD)/w32inevt.obj):
3583 ($(BLD)/w32bdf.obj):
3584 ($(BLD)/alloc.obj):
3585 ($(BLD)/buffer.obj):
3586 ($(BLD)/editfns.obj):
3587 ($(BLD)/emacs.obj):
3588 ($(BLD)/fileio.obj):
3589 ($(BLD)/fns.obj):
3590 ($(BLD)/indent.obj):
3591 ($(BLD)/insdel.obj):
3592 ($(BLD)/intervals.obj):
3593 ($(BLD)/minibuf.obj):
3594 ($(BLD)/print.obj):
3595 ($(BLD)/scroll.obj):
3596 ($(BLD)/sysdep.obj):
3597 ($(BLD)/textprop.obj):
3598 ($(BLD)/widget.obj):
3599 ($(BLD)/xdisp.obj): Add dependency on w32gui.h.
3600 ($(BLD)/term.obj): Add dependency on dispextern.h.
3601
3602 * makefile.nt ($(BLD)\dispnew.obj):
3603 ($(BLD)\keyboard.obj):
3604 ($(BLD)\w32inevt.obj):
3605 ($(BLD)\w32bdf.obj):
3606 ($(BLD)\alloc.obj):
3607 ($(BLD)\buffer.obj):
3608 ($(BLD)\editfns.obj):
3609 ($(BLD)\emacs.obj):
3610 ($(BLD)\fileio.obj):
3611 ($(BLD)\fns.obj):
3612 ($(BLD)\indent.obj):
3613 ($(BLD)\insdel.obj):
3614 ($(BLD)\intervals.obj):
3615 ($(BLD)\minibuf.obj):
3616 ($(BLD)\print.obj):
3617 ($(BLD)\scroll.obj):
3618 ($(BLD)\sysdep.obj):
3619 ($(BLD)\textprop.obj):
3620 ($(BLD)\widget.obj):
3621 ($(BLD)\xdisp.obj): Add dependency on w32gui.h.
3622 ($(BLD)\term.obj): Add dependency on dispextern.h
3623
18ad4821
EZ
36242000-10-21 Eli Zaretskii <eliz@is.elta.co.il>
3625
3626 * minibuf.c (Fminibuffer_complete): Call Fpos_visible_in_window_p
3627 with an additional argument of Qt.
3628
de54681a
MB
36292000-10-21 Miles Bader <miles@gnu.org>
3630
3631 * window.c (pos_fully_visible_in_window_p): New function.
3632 (Fpos_visible_in_window_p): Add FULLY argument.
3633 Use pos_fully_visible_in_window_p.
3634 (window_scroll_pixel_based, window_scroll_line_based): Update
3635 calls to Fpos_visible_in_window_p.
3636 * lisp.h (Fpos_visible_in_window_p): Update prototype
3637
13c844fb
GM
36382000-10-20 Gerd Moellmann <gerd@gnu.org>
3639
3640 * alloc.c (toplevel): Conditionalize compilation of mem_*
3641 functions differently.
3642
d9506268
JR
36432000-10-20 Jason Rumney <jasonr@gnu.org>
3644
3645 * alloc.c (toplevel): Move #ifdef GC_MARK_STACK back to above
3646 mem_init where it used to be. mem_z etc not defined otherwise.
3647
8094989b
GM
36482000-10-20 Gerd Moellmann <gerd@gnu.org>
3649
3650 * alloc.c (toplevel) [SYSTEM_MALLOC || DOUG_LEA_MALLOC]: Undef
3651 GC_MALLOC_CHECK.
3652 (toplevel) [GC_MARK_STACK || GC_MALLOC_CHECK]: Move mem_node
3653 structure definition and related variabled to the top of the file.
3654 Include this code when GC_MALLOC_CHECK is defined.
3655 (lisp_malloc, lisp_free) [GC_MALLOC_CHECK]: Don't
3656 register/unregister allocated region.
3657 (emacs_blocked_free) [GC_MALLOC_CHECK]: Check if freeing something
3658 which isn't allocated.
3659 (emacs_blocked_malloc) [GC_MALLOC_CHECK]: Check if returning
3660 something which is already in use.
3661 (emacs_blocked_realloc) [GC_MALLOC_CHECK]: Likewise.
3662 (mem_insert) [GC_MALLOC_CHECK]: Use _malloc_internal.
3663 (mem_delete) [GC_MALLOC_CHECK]: Use _free_internal.
3664 (init_alloc_once) [GC_MALLOC_CHECK]: Call mem_init.
3665
3666 * gmalloc.c (_malloc_internal) [GC_MALLOC_CHECK]: Use
3667 _malloc_internal instead of malloc.
3668 (_free_internal) [GC_MALLOC_CHECK]: Use _free_internal instead
3669 of free.
3670
ea456eb4
AI
36712000-10-20 Andrew Innes <andrewi@gnu.org>
3672
3673 * strftime.c [!WINDOWSNT]: Don't apply Solaris 2.5 work-around on
3674 Windows.
3675 (my_strftime) <macro>: Don't use macro arg list when redefining as
3676 _strftime_copytm.
3677 (my_strftime) <function>: Supply 0 as ut argument.
3678
e64c3a75
JR
36792000-10-19 Jason Rumney <jasonr@altavista.net>
3680
3681 * w32console.c: Do not undef HAVE_WINDOW_SYSTEM before
3682 including dispextern.h, as it stops faces from working.
3683
3684 * w32fns.c (Fx_create_frame): Don't bother calling
3685 face-set-after-frame-default since the caller does it for us
3686 anyway. Clean up calls to x_get_arg to be consistent with X.
3687
3688 * w32term.c (x_produce_glyphs): Handle
3689 unibyte_display_via_language_environment correctly.
3690 (w32_draw_box_rect): Fix the calculation of width and height.
3691
3692 * w32menu.c (add_menu_item): Do not use MF_OWNERDRAW for titles,
3693 as it has stopped working.
3694 (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar position like
3695 menu-bar.
3696
17401c97
GM
36972000-10-19 Gerd Moellmann <gerd@gnu.org>
3698
3699 * eval.c (skip_debugger): Prevent a compiler warning.
3700 (Fcondition_case): Likewise.
3701 (Fbacktrace_frame): Use a null interactive spec.
3702
773272d8
KH
37032000-10-19 Kenichi Handa <handa@etl.go.jp>
3704
3705 * xterm.c (x_find_ccl_program): Check also fontp->full_name.
3706
a42943e9
GM
37072000-10-18 Gerd Moellmann <gerd@gnu.org>
3708
e50517d9
GM
3709 * strftime.c: Sync with glibc, file version 1.78.
3710 (my_strftime) [HAVE_TZNAME]: Use `UTC' instead of `GMT' which
3711 should no longer be used according to ISO 8601.
3712
9035a35a
GM
3713 * keymap.c (access_keymap): If IDX has a meta prefix, and there's
3714 no map for meta_prefix_char, don't try to use it as a keymap.
3715 Instead, if T_OK is non-zero, look up a default binding, if any,
3716 otherwise, if T_OK is zero, return nil.
3717
a42943e9
GM
3718 * xfns.c (x_to_xcolors, x_set_mouse_color, lookup_pixel_color)
3719 (x_to_xcolors, png_load): Use x_query_color.
3720
3721 * xterm.c (x_color_cells, x_query_colors, x_query_color): New
3722 functions.
3723 (x_alloc_nearest_color): Use it to reduce calls to XQueryColors
3724 which can be slow.
3725 (x_copy_color, x_alloc_lighter_color): Likewise.
3726
3727 * xterm.h (struct x_display_info): Add color_cells and ncolor_cells.
3728 (x_query_color, x_query_colors): Add prototype.
3729
3730 * alloc.c (allocate_string) [GC_CHECK_STRING_BYTES]: Call
3731 check_string_bytes only if not noninteractive, increase count to 50.
3732
00de2987
MB
37332000-10-18 Miles Bader <miles@lsi.nec.co.jp>
3734
3735 * insdel.c (adjust_markers_for_delete): Handle before-insertion
3736 markers correctly.
3737
54918e2b
GM
37382000-10-17 Gerd Moellmann <gerd@gnu.org>
3739
1f0b3fd2
GM
3740 * alloc.c (pure_bytes_used): Renamed from pureptr.
3741 (ALIGN): New macro.
3742 (pure_alloc): New function.
3743 (make_pure_string, pure_cons, make_pure_float, make_pure_vector):
3744 Use it.
3745 (Fpurecopy): Use PURE_POINTER_P.
3746
68c5d1db
GM
3747 * xdisp.c (try_cursor_movement): Use cursor_row_p also when
3748 PT has moved backward.
3749
9a038881
GM
3750 * xdisp.c (cursor_row_p): Take continued lines into account.
3751
361b097f
GM
3752 * alloc.c (mark_object) [GC_CHECK_STRING_BYTES]: Check validity of
3753 string's size_byte.
3754 (check_string_bytes) [GC_CHECK_STRING_BYTES]: New function.
3755 (check_string_bytes_count) [GC_CHECK_STRING_BYTES]: New variable.
3756 (allocate_string) [GC_CHECK_STRING_BYTES]: Call it for every 10th
3757 string allocated.
3758
54918e2b
GM
3759 * xdisp.c (forward_to_next_line_start): Switch iterator's handling
3760 of selective display off while searching for the next line start.
3761
03ed0806
KH
37622000-10-17 Kenichi Handa <handa@etl.go.jp>
3763
3764 * Makefile.in (term.o): Depend on dispextern.h.
3765
7e05cdaf
SM
37662000-10-16 Stefan Monnier <monnier@cs.yale.edu>
3767
3768 * keymap.c (keymap_memberp): Ensure that nil is not a member.
3769
a6801fd1
GM
37702000-10-16 Gerd Moellmann <gerd@gnu.org>
3771
483de32b
GM
3772 * xdisp.c (set_iterator_to_next): Reset box start and end flags of
3773 the iterator at the beginning, so that they can be set later on,
3774 for instance in reseat_at_next_visible_line_start, without being
3775 overwritten.
3776
a6801fd1
GM
3777 * xfns.c (pbm_format): Add :foreground and :background keywords.
3778 (PBM_FOREGROUND, PBM_BACKGROUND): New enumerators.
483de32b 3779 (xbm_load): Recognize foreground and background color
a6801fd1
GM
3780 specifications.
3781
dbf1fcc1
EZ
37822000-10-16 Eli Zaretskii <eliz@is.elta.co.il>
3783
3784 * dispextern.h (unspecified_fg, unspecified_bg): Declare.
3785
3786 * dosfns.c (unspecified_fg, unspecified_bg): Remove extern
3787 declaration.
3788
3789 * msdos.c (IT_set_face): Compare highlighted face with the default
3790 face, and invert colors if these faces' colors are identical.
3791 (Fmsdos_remember_default_colors): Don't swap foreground and
3792 background colors in initial_colors[].
3793 (IT_set_frame_parameters): Don't swap frame's foreground and
3794 background pixels. If ALIST includes "(reverse . t)", swap
3795 foreground-color and background-color properties in frame's
3796 param_alist. If the original frame's param_alist doesn't specify
3797 the colors, store unspecified-fg and unspecified-bg, reversed if
3798 required.
3799
3800 * frame.c (Fframe_parameters): If a tty's frame's param_alist says
3801 the colors are unspecified and reversed, reverse fore- and back-
3802 ground in the returned value.
3803 (Fframe_parameter): Ditto.
3804
b41fe2c3
GM
38052000-10-16 Gerd Moellmann <gerd@gnu.org>
3806
3a6b59d9
GM
3807 * xdisp.c (find_last_unchanged_at_beg_row): Renamed from
3808 get_last_unchanged_at_beg_row.
3809 (find_first_unchanged_at_end_row): Renamed from
3810 get_first_unchanged_at_end_row.
3811 (find_first_unchanged_at_end_row): Convert assertions to
3812 unconditional tests which abort. When looking for a row in
3813 unchanged text, don't go further back than first_text_row.
3814
b41fe2c3
GM
3815 * xdisp.c (try_scrolling) <cursor in scroll margin at the bottom>:
3816 Don't add in the last line's height when deciding if the new
3817 position is below the scroll margin.
9d1af64f 3818
b41fe2c3 38192000-10-16 Miles Bader <miles@gnu.org>
f657bbf6
MB
3820
3821 * editfns.c (Fconstrain_to_field): Check carefully for field
3822 boundaries if either OLD_POS or NEW_POS has a non-nil field
3823 property, even if they're the same.
3824
c412cb7b
KH
38252000-10-16 Kenichi Handa <handa@etl.go.jp>
3826
3827 * xterm.c (x_draw_box_rect): Fix the calculation of width and
3828 height for XFillRectangle.
3829
5586f3eb
SM
38302000-10-15 Stefan Monnier <monnier@cs.yale.edu>
3831
3832 * syntax.c (Fstring_to_syntax): New function extracted from
3833 Fmodify_syntax_entry.
3834 (Fmodify_syntax_entry): Use it and document the ! and | fences.
3835 (skip_chars, Fforward_comment): Remove unused variables.
3836 (syms_of_syntax): Add defsubr for string-to-syntax.
3837 (describe_syntax): Add code for comment and string fences.
3838
db785038
SM
38392000-10-14 Stefan Monnier <monnier@cs.yale.edu>
3840
3841 * keymap.c (access_keymap): Add AUTOLOAD parameter.
3842 Do the meta->esc mapping. Call get_keyelt before returning.
3843 Start scanning from the second element (the first is always `keymap')
3844 to make it easier to detect when we reach a parent map.
3845 Handle the case of inheriting from a symbol whose function is a map.
3846 (Fkeymap_parent): Also handle the `inherit from symbol' case.
3847 (fix_submap_inheritance, Fdefine_key): Update call to access_keymap.
3848 (get_keyelt, Flookup_key): Update call to access_keymap.
3849 Remove the meta->esc mappings.
3850 (define_as_prefix): Delete old disabled code.
3851 (menu_item_p): New function.
3852 (where_is_internal_1): Skip over the few remaining menu items.
3853 * lisp.h (access_keymap): Update prototype.
3854 * keyboard.c (read_char, menu_bar_items, tool_bar_items):
3855 Update call to access_keymap.
3856 (follow_key, read_key_sequence): Update calls to access_keymap.
3857 Remove the meta->esc mappings.
3858
cafafe0b
GM
38592000-10-13 Gerd Moellmann <gerd@gnu.org>
3860
a2e2a7f6
GM
3861 * dispnew.c (direct_output_for_insert): Call set_iterator_to_next
3862 with additional argument.
3863
cafafe0b
GM
3864 * xdisp.c (cursor_row_p): New function.
3865 (try_cursor_movement, display_line): Use it.
3866
3867 * xdisp.c (append_space): Also save/restore iterator's current
3868 character and its length.
3869
3870 * xdisp.c (init_from_display_pos): Add an assertion.
3871 (handle_stop): Don't set iterator's add_overlay_start.
3872 (handle_invisible_prop): Likewise.
3873 (load_overlay_strings): If text under an overlay is invisible,
3874 take both before- and after-strings into account when the iterator
3875 is positioned either at the start or at the end of the overlay.
3876 (forward_to_next_line_start): Rewritten.
3877 (reseat_at_next_visible_line_start): Rewritten.
3878 (set_iterator_to_next): Add parameter RESEAT_P.
3879
3880 * dispextern.h (struct it): Remove member add_overlay_start.
3881 (set_iterator_to_next): Change prototype.
3882
c744452b
KH
38832000-10-13 Kenichi Handa <handa@etl.go.jp>
3884
3885 * coding.c (code_convert_region): Be sure to initialize
3886 coding->category_idx.
e4a3f4e1
KH
3887 (decode_coding_string): Set coding->src_multibyte and
3888 coding->dst_multibyte before using CODING_REQUIRE_DECODING.
3889 (encode_coding_string): Set coding->src_multibyte and
3890 coding->dst_multibyte before using CODING_REQUIRE_ENCODING.
c744452b 3891
321fd26f
SM
38922000-10-12 Stefan Monnier <monnier@cs.yale.edu>
3893
3894 * xfns.c (Fx_create_frame): Don't bother calling
3895 face-set-after-frame-default since the caller does it for us anyway.
3896
76832439
EZ
38972000-10-12 Eli Zaretskii <eliz@is.elta.co.il>
3898
3899 * window.c (coordinates_in_window): Fix detection of vertical line
3900 on character terminals.
3901
2483cf58
GM
39022000-10-12 Gerd Moellmann <gerd@gnu.org>
3903
3904 * editfns.c (save_excursion_save): Additionally record the
3905 selected window.
3906 (save_excursion_restore): If buffer was visible in a window, and a
3907 different window was selected, and the old selected window is
3908 still live, restore point in that window.
3909
eb991b25
KH
39102000-10-12 Kenichi Handa <handa@etl.go.jp>
3911
8a0eba09
KH
3912 * xterm.c (x_produce_glyphs): Handle
3913 unibyte_display_via_language_environment correctly.
3914
20401fcc
KH
3915 * regex.c (regex_compile): Change the way of handling a range from
3916 unibyte char to multibyte char.
3917
3918 * syntax.c (skip_chars): Change the way of handling a range from
3919 unibyte char to multibyte char.
3920
eb991b25
KH
3921 * process.c (read_process_output): Cancel previous change.
3922
365dd325
EZ
39232000-10-11 Eli Zaretskii <eliz@is.elta.co.il>
3924
c1b096cb
EZ
3925 * search.c (Fsearch_backward, Fsearch_forward): Doc fix.
3926
365dd325
EZ
3927 * charset.c (Ffind_charset_string): Doc fix.
3928 (Ffind_charset_region): Doc fix.
3929
eb483c2b
KH
39302000-10-11 Kenichi Handa <handa@mule.m17n.org>
3931
3932 * process.c (read_process_output): Fix previous change. Adjust
3933 multibyteness of text to insert in a buffer by
df3c11b9 3934 string_make_unibyte/multibyte instead of
eb483c2b
KH
3935 Fstring_as_unibyte/multibyte.
3936
b40bfb99
AS
39372000-10-10 Andreas Schwab <schwab@suse.de>
3938
3939 * alloc.c (mark_object): Remove all workarounds installed on
3940 1993-08-08.
3941
caff31d4
KH
39422000-10-10 Kenichi Handa <handa@etl.go.jp>
3943
3944 * fns.c (READ_QUADRUPLET_BYTE): Set *NCHARS_RETURN before
3945 returning.
3946 (base64_encode_1): Make it work for a text of multibyte form.
3947 (Fbase64_decode_region): Allocate sufficient memory for multibyte
3948 case. Don't call str_to_multibyte because base64_decode_1
3949 produces correct multibyte form for eight-bit codes.
3950 (Fbase64_decode_string): Adjusted for the change of
3951 base64_decode_1.
3952 (base64_decode_1): New args MULTIBYTE and NCHARS_RETURN. If
3953 MULTIBYTE is nonzero, produce correct multibyte form for eight-bit
3954 codes.
3955
3956 * charset.h (CHAR_STRING): Optimized for single byte characters.
3957
cba026ef
AS
39582000-10-09 Andreas Schwab <schwab@suse.de>
3959
3960 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Reset S to
3961 -1 after socket is closed, to fall through to error processing.
3962
1e21fe48
EZ
39632000-10-09 Eli Zaretskii <eliz@is.elta.co.il>
3964
3965 * msdos.c (IT_set_frame_parameters): Don't initialize Lisp_Object
365dd325 3966 variables. If ALIST includes foreground-color or
1e21fe48
EZ
3967 background-color, change also the colors of the default face for
3968 this frame.
3969
a640322e
EZ
39702000-10-08 Eli Zaretskii <eliz@is.elta.co.il>
3971
3972 * msdos.c (top-level) <Qbackground_color, Qforeground_color>: Make
3973 them extern (they are defined on xfaces.c).
3974 (syms_of_msdos): Don't intern and don't staticpro
3975 Qbackground_color and Qforeground_color.
3976
a115794c
EZ
39772000-10-07 Eli Zaretskii <eliz@is.elta.co.il>
3978
3979 * frame.c (Fframe_parameter): For non-windowed frames, if
3980 f->param_alist says foreground or background color is unspecified,
3981 call tty_color_name to return the color name computed from the
3982 frame's current colors.
3983
f5533b63
DL
39842000-10-06 Dave Love <fx@gnu.org>
3985
3986 * terminfo.c (ospeed): Don't declare.
3987
3988 * sysdep.c: Don't include string.h.
3989 (h_errno): Declare conditional also on TRY_AGAIN.
3990
3991 * charset.c (Ffind_charset_string): Doc fix.
3992
3993 * fns.c (Fbase64_encode_region, Fbase64_encode_string)
3994 (Fbase64_decode_region, Fbase64_decode_string): More explicit
3995 error messages.
3996
2b06561a
DL
39972000-10-05 Dave Love <fx@gnu.org>
3998
3999 * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Check for tool-bar
4000 position like menu-bar.
4001
ca839c85
GM
40022000-10-05 Gerd Moellmann <gerd@gnu.org>
4003
4004 * keyboard.c (Frecursive_edit): Make sure redisplay can happen.
4005
4006 * xdisp.c (handle_single_display_prop): Use safe_call1.
4007 (safe_call): Renamed from call_function.
4008 (safe_call1): New function.
4009 (handle_fontified_prop): Use safe_call1 instead of call1.
4010 (safe_eval): Renamed from eval_form.
4011 (safe_eval_handler): Renamed from eval_handler.
4012 (handle_single_display_prop, display_mode_element): Use safe_eval
4013 instead of eval_form.
4014
4015 * xfaces.c (merge_face_heights): Use safe_call instead of
4016 call_function.
4017
4018 * keyboard.c (show_help_echo): Use safe_call instead of
4019 call_function; use safe_eval instead of eval_form.
4020
4021 * lisp.h (safe_call): Renamed from call_function.
4022 (safe_eval): Renamed from eval_form.
4023 (safe_call1): Add prototype.
4024
a3489ece
MB
40252000-10-05 Miles Bader <miles@lsi.nec.co.jp>
4026
4027 * xfns.c (image_ascent): Rearrange ascent calculation for the
4028 has-a-font case.
4029
35810b6f
SM
40302000-10-04 Stefan Monnier <monnier@cs.yale.edu>
4031
4032 * keymap.c (Fwhere_is_internal): Ignore `menu-bar' and `tool-bar'.
4033 (where_is_internal_1): Don't bother ignoring menu-items any more.
4034
3dc78168
GM
40352000-10-04 Gerd Moellmann <gerd@gnu.org>
4036
4037 * keyboard.c (update_menu_bindings): New variable.
4038 (parse_menu_item): Use AREF. If update_menu_bindings
4039 is 0, don't update menu bindings.
4040 (syms_of_keyboard): New Lisp variable `update-menu-bindings'.
4041
1efc2bb9
EZ
40422000-10-03 Eli Zaretskii <eliz@is.elta.co.il>
4043
4044 * alloc.c (Fgarbage_collect): Prevent compiler warning for a call
4045 to `mark_object'.
4046
3f679f55
SM
40472000-10-02 Stefan Monnier <monnier@cs.yale.edu>
4048
4049 * syntax.c (forw_comment): Match nestedness of ender/starter.
4050 (Fforward_comment): Treat an unmatched \n comment-ender as whitespace.
4051 (prev_char_comstart_first): Remove.
4052 (back_comment): Check two-char comment markers more carefully
4053 to better handle overlapping cases like *//* or /* */* */ ...
4054 Match nestedness of ender/starter.
4055
2021ab61
DL
40562000-10-02 Dave Love <fx@gnu.org>
4057
4058 * config.in (HAVE_GAI_STRERROR): Add undef.
4059
4060 * process.c (Fopen_network_stream): Use it.
4061
4062 * m/alpha.h (NO_REMAP): Don't define.
4063
64e6cc18
GM
40642000-10-02 Gerd Moellmann <gerd@gnu.org>
4065
4066 * lisp.h (wrong_type_argument): Remove NO_RETURN, the function can
4067 return with a string converted to an integer or vice versa when
4068 Vmocklisp_arguments is t.
4069 (Fsignal): Likewise. The function can return for `quit'.
4070 (struct gcpro): Declare member `var' to point to a volatile
4071 Lisp_Object.
4072
4073 * eval.c (error): Prevent compiler warning.
4074
b1904cd9
SM
40752000-09-30 Stefan Monnier <monnier@cs.yale.edu>
4076
4077 * keymap.c (keymap_memberp): New function.
4078 (Fset_keymap_parent): Use it.
4079 (fix_submap_inheritance): Use get_keyelt, get_keymap_1 and KEYMAPP.
4080 Use keymap_memberp to avoid creating cycles.
4081 (access_keymap): Use KEYMAPP.
4082
71c9ec51
GM
40832000-09-30 Gerd Moellmann <gerd@gnu.org>
4084
4085 * process.c (Fopen_network_stream) [HAVE_GETADDRINFO]: Use
64e6cc18
GM
4086 gai_strerror. Make sure xerrno is set if connect fails. Improve
4087 error recovery.
71c9ec51 4088
c70c6b58
JR
40892000-09-29 Jason Rumney <jasonr@gnu.org>
4090
4091 * w32term.c (w32_char_font_type, w32_encode_char)
4092 (x_produce_glyphs): Distinguish single and multibyte BDF fonts.
4093 (w32_bdf_per_char_metric): New function.
4094 (w32_per_char_metric): Use it.
4095 (x_draw_glyph_string_background): Always draw background for BDF
4096 glyphs.
4097
4098 * w32bdf.h (glyph_struct, cache_bitmap): Cache bitmap data, not
4099 GDI object which is a scarce resource.
4100
4101 * w32bdf.c (search_file_line): Fix skipping of whitespace.
4102 (get_quoted_string): Fix limit on memchr search.
4103 (set_bdf_font_info): Use unsigned chars. Negate yoffset.
4104 (w32_init_bdf_font): Initialize codepoint and bitmap heaps.
4105 (w32_free_bdf_font): Free bitmaps and codepoints on heaps.
4106 (get_cached_font_char, cache_char_offset): Use macro
4107 BDF_CODEPOINT_RANGE_COVER_P.
4108 (cache_char_offset): Use HeapAlloc to allocate codepoints on own heap.
4109 (clear_cached_bitmap_slots): New function.
4110 (GET_HEX_VALUE): G-Z, g-z are not hex.
4111 (w32_get_bdf_glyph): Convert to DIB format. Return bytes read.
4112 (get_bitmap_with_cache): Use new cache implementation.
4113 (create_offscreen_bitmap): New function.
4114 (w32_BDF_TextOut): Use it. Draw glyphs as DIBs.
4115
4116 * w32term.c (x_produce_glyphs): If the distance from the current
4117 position to the next tab stop is less than a canonical character
4118 width, use the tab stop after that.
4119 (x_draw_glyphs): Handle case START and END are out of bounds more
4120 carefully.
4121 (x_clear_mouse_face): Block/unblock input.
4122 (x_display_and_set_cursor): Don't show a hollow box cursor for
4123 buffers whose cursor_type is nil.
4124
fe01239f
GM
41252000-09-29 Gerd Moellmann <gerd@gnu.org>
4126
4127 * xfns.c (x_set_tool_bar_lines): Clear frame when tool bar
4128 disappears.
4129
4130 * dispextern.h (updating_frame): Declare extern.
4131
e7c52f1f
AS
41322000-09-29 Andreas Schwab <schwab@suse.de>
4133
4134 * m/ia64.h: Remove hack of not prototyping bcopy, etc.
4135
de6e1f7c
GM
41362000-09-29 Gerd Moellmann <gerd@gnu.org>
4137
25126faa
GM
4138 * keyboard.c (menu_bar_one_keymap): If KEYMAP is a symbol,
4139 use its function definition.
4140 (tool_bar_items): Likewise.
4141
de6e1f7c
GM
4142 * lisp.h (fatal): Declare NO_RETURN.
4143
454ee39b
KH
41442000-09-29 Kenichi Handa <handa@etl.go.jp>
4145
4146 * keymap.c: Remove the line "#undef NULL".
4147
96301c5f
GM
41482000-09-28 Gerd Moellmann <gerd@gnu.org>
4149
4150 * xterm.c (x_make_frame_visible): Try harder to make the frame
4151 visible.
4152
efffeeb4
DL
41532000-09-28 Dave Love <fx@gnu.org>
4154
ecb8b666
DL
4155 * s/osf5-0.h: Define USE_MMAP_FOR_BUFFERS, not REL_ALLOC_MMAP.
4156
dc3cd20f
DL
4157 * s/sunos413.h (USE_MMAP_FOR_BUFFERS): Define.
4158
4159 * .gdbinit (xreload): Note its need on GNU/Linux.
4160
efffeeb4
DL
4161 * m/alpha.h (XUINT) [REL_ALLOC && _MALLOC_INTERNAL]: Don't declare
4162 r_alloc, r_alloc_free.
4163
8610d903
KH
41642000-09-28 Kenichi Handa <handa@etl.go.jp>
4165
4166 * syntax.c (skip_chars): Handle negation correctly.
4167
8901d1ac
GM
41682000-09-27 Gerd Moellmann <gerd@gnu.org>
4169
6f22f1ad
GM
4170 * xfaces.c (realize_default_face): Call set_lface_from_font_name
4171 with non-zero FORCE_P argument.
4172
8901d1ac
GM
4173 * dispnew.c (adjust_glyph_matrix, enable_glyph_matrix_rows):
4174 Add assertions.
4175
4176 * xdisp.c (window_box_height): Add an assertion.
4177
4178 * xfns.c (x_set_tool_bar_lines): Don't use more lines for the
4179 tool-bar than is available.
4180 (x_change_window_heights): Renamed from x_set_menu_bar_lines_1.
4181
36f1966f
DL
41822000-09-27 Dave Love <fx@gnu.org>
4183
efffeeb4 4184 * s/irix6-5.h: Now works 64-bit. Tidied.
36f1966f 4185
31d929e5
GM
41862000-09-26 Gerd Moellmann <gerd@gnu.org>
4187
c98863bf
GM
4188 * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
4189 instead of BITS_PER_INT.
4190 (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
4191 EMACS_UINT, respectively.
4192 (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
4193
4194 * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
4195
4196 * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
4197
77072ab1
GM
4198 * window.c (freeze_window_starts): Construct last argument for
4199 foreach_window differently.
4200
4201 * xfns.c (x_decode_color): Don't return a Lisp_Object.
4202
4203 * lisp.h (union Lisp_Object) [!NO_UNION_TYPE]: Use EMACS_INT and
4204 EMACS_UINT instead of `int' and `unsigned int'.
4205 (XSET) [EXPLICIT_SIGN_EXTEND]: Use EMACS_INT instead of `int'.
4206
4207 * frame.h (struct frame): Make the `nothing' member of union
4208 output_data an EMACS_INT.
4209
31d929e5
GM
4210 * alloc.c (GC_CHECK_STRING_BYTES): Temporarily define, for bug
4211 hunting.
4212 (struct sdata) [GC_CHECK_STRING_BYTES]: Always record the string's
4213 size in the sdata structure.
4214 (SDATA_NBYTES, SDATA_DATA): New macros.
4215 (SDATA_OF_STRING, SDATA_SIZE) [GC_CHECK_STRING_BYTES]: Define
4216 differently for the different layout of the sdata structure.
4217 (allocate_string_data) [GC_CHECK_STRING_BYTES]: Record string size
4218 in sdata.
4219 (sweep_strings, compact_small_strings) [GC_CHECK_STRING_BYTES]:
4220 Check that size recorded in the string size and size recorded in
4221 the sdata structure agree.
4222
3e60b029
DL
42232000-09-25 Dave Love <fx@gnu.org>
4224
4225 * buffer.c: Include stdio.h.
4226
4227 Partly suggested by Eduardo Horvath <eeh@netbsd.org>.
4228
4229 * ralloc.c (__malloc_extra_blocks): Declare as __malloc_size_t.
4230
4231 * alloc.c (__malloc_size_t) [DOUG_LEA_MALLOC]: Don't redefine it.
4232 (__malloc_size_t) [!DOUG_LEA_MALLOC]: Define unconditionally as
4233 size_t.
4234 (__malloc_extra_blocks): Declare as __malloc_size_t.
4235
8ff16b4e
GM
42362000-09-25 Gerd Moellmann <gerd@gnu.org>
4237
755a2ccd
GM
4238 * alloc.c (mark_image): Use GC_NILP instead of NILP.
4239
d8b4516f
GM
4240 * keyboard.c (show_help_echo): Set help_echo_showing_p.
4241 (read_char): If help-echo is showing, preserve the echo area
4242 when redisplaying.
4243
4244 * xdisp.c (help_echo_showing_p): New variable.
4245 (set_message): Reset it to 0.
4246 (init_xdisp): Initialize help_echo_showing_p.
4247
4248 * dispextern.h (help_echo_showing_p): Declare extern.
4249
4250 * config.in: Fix typo in __GNUC_MINOR__.
4251
4252 * keyboard.h (quit_throw_to_read_char): Declare NO_RETURN.
4253
b11af2dd
GM
4254 * s/freebsd.h (POSIX_SIGNALS): Define.
4255
8ff16b4e
GM
4256 * xterm.c (x_clear_mouse_face): Block/unblock input.
4257
844eb643
DL
42582000-09-24 Dave Love <fx@gnu.org>
4259
4260 * fns.c (base64_encode_1): Fix last change.
4261
b30ab1b3
GM
42622000-09-22 Gerd Moellmann <gerd@gnu.org>
4263
4264 * dispnew.c (enable_glyph_matrix_rows): Remove xasserts.
4265
4266 * xdisp.c (try_window_reusing_current_matrix): More fixes
4267 for the case window has a header-line.
4268
c6cbe5f0
DL
42692000-09-22 Dave Love <fx@gnu.org>
4270
4c7c1f3f
DL
4271 * xdisp.c (syms_of_xdisp): Defvar Vmenu_bar_update_hook to provide
4272 a doc string.
4273
4274 * xterm.c [SOLARIS2]: Remove redundant include of string.h.
4275
c6cbe5f0
DL
4276 * fns.c (Fstring_as_unibyte, Fstring_as_multibyte): Doc fix.
4277
550a625e
GM
42782000-09-21 Gerd Moellmann <gerd@gnu.org>
4279
4c7c1f3f 4280 * config.in (NO_RETURN): Define as `__attribute__((__noreturn__))'
fca99116
GM
4281 for GCC >= 2.5.
4282
4283 * lisp.h (wrong_type_argument, Fthrow, Fsignal, error): Declare
4284 NO_RETURN.
4285
80d26f99
GM
4286 * window.c, term.c, xmenu.c, xrdb.c, emacs.c, macros.c,
4287 * keymap.c, insdel.c, marker.c, minibuf.c, fileio.c, dired.c,
4288 * indent.c, search.c, alloc.c, data.c: Avoid some more compiler
4289 warnings.
4290
4291 * marker.c (byte_char_debug_check): Return void.
4292
623a0aae
GM
4293 * xfns.c (Fx_create_frame): Set default frame parameter value
4294 for tool-bar-lines to 1.
4295
4296 * dispnew.c (scrolling_window): Compare y-positions of rows
4297 equal at the start. Some simplification.
4298
4299 * xdisp.c (try_window_reusing_current_matrix): Fix computation of
4300 reused rows' y-position in the case window has a header-line, and
4301 new window start is greater than old window start.
4302
42ac0ae5
GM
4303 * process.c (process_sent_to): New variable.
4304 (send_process): Workaround for a crash on sparc-sun-solaris-2.6
4305 with GCC 2.95.2 caused by a parameter being clobbered by longjmp.
4306 Declare more parameters volatile.
4307
550a625e
GM
4308 * lread.c (Vrecursive_load_depth_limit): New variable.
4309 (Fload): Check recursive loads whose recursion depth exceeds
4310 Vrecursive_load_depth_limit.
4311 (syms_of_lread): DERFAR_LISP recursive-load-depth-limit.
4312
8320414c
GM
43132000-09-20 Gerd Moellmann <gerd@gnu.org>
4314
f46c275e
GM
4315 * fileio.c (Fread_file_name): Doc fix.
4316
4317 * editfns.c (Fmessage_or_box): Doc fix.
4318
4319 * fns.c (Fy_or_n_p, Fyes_or_no_p): Doc fix.
4320
b7e11c5b
GM
4321 * xfns.c (xbm_scan): Allow C-style comments.
4322
8320414c
GM
4323 * xfns.c (xpm_init_color_cache) [ALLOC_XPM_COLORS]: If color
4324 symbols are specified, add color translations to the cache.
4325 (xpm_color_bucket, xpm_cache_color) [ALLOC_XPM_COLORS]: New
4326 functions.
4327 (xpm_lookup_color) [ALLOC_XPM_COLORS]: Use xpm_color_bucket and
4328 xpm_cache_color.
4329 (xpm_load) [ALLOC_XPM_COLORS]: Pass frame and XPM attributes
4330 structures to xpm_init_color_cache.
4331
da1608d9
GM
43322000-09-19 Gerd Moellmann <gerd@gnu.org>
4333
4334 * dispnew.c (update_window_line): Make sure to always draw
4335 mode-lines.
4336
6badfa25
AI
43372000-09-19 Andrew Innes <andrewi@gnu.org>
4338
4339 * makefile.nt (bootstrap-emacs): Don't change directory.
4340
3a5f42bb
KH
43412000-09-19 Kenichi Handa <handa@etl.go.jp>
4342
1b7649bd
KH
4343 * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Fix previous change.
4344
3a5f42bb
KH
4345 * ccl.c (Fccl_execute_on_string): Make multibyte string correctly.
4346 If output buffer is too small, signal an appropriated error.
4347
9f83cf0b
DL
43482000-09-18 Dave Love <fx@gnu.org>
4349
4350 * keyboard.c (menu_bar_items, tool_bar_items)
4351 (current_active_maps): Remove redundant get_local_map call.
4352
28c7826c
GM
43532000-09-18 Gerd Moellmann <gerd@gnu.org>
4354
5cefa566
GM
4355 * xterm.c (x_display_and_set_cursor): Don't show a hollow box
4356 cursor for buffers whose cursor_type is nil.
4357
6fed3546
GM
4358 * xterm.c (x_draw_image_glyph_string): Remove a comment describing
4359 a feature to implement that is already implemented.
4360 (note_mouse_highlight, x_find_ccl_program): Avoid some compiler
4361 warnings.
4362
4363 * xfns.c (x_clear_image_1): New function.
4364 (x_clear_image): Use it.
4365 (x_from_xcolors): Use x_clear_image_1; don't free the image's
4366 mask.
4367
05b1f851
GM
4368 * dispnew.c (update_window): Move test for invisible lines
4369 at the top to update_window_line.
4370 (update_window_line): Handle invisible lines here.
4371
f4779de9
GM
4372 * xfns.c (clear_image_cache): Clear current matrices of all
4373 frames sharing an image cache. Block input while freeing
4374 images. Fix timestamp comparison.
4375 (x_clear_image): Also free the mask.
4376
28c7826c
GM
4377 * xfns.c (lookup_image): Block input while loading the image so
4378 that we won't get interrupted in a state where the image isn't yet
4379 set up completely.
4380 (xbm_load_image, xbm_load, xpm_load, xpm_load, lookup_rgb_color)
4381 (lookup_pixel_color, x_to_xcolors, x_from_xcolors)
4382 (x_disable_image, x_build_heuristic_mask, pbm_load, png_load)
4383 (jpeg_load, tiff_load, gif_load, gs_load): Don't block/unblock
4384 input.
4385
b7412313
GM
43862000-09-16 Gerd Moellmann <gerd@gnu.org>
4387
4388 * dispnew.c (update_window): Make sure to make desired rows
4389 current even if they are completely invisible at the top
4390 of a window.
4391
47e351a3
GM
43922000-09-15 Gerd Moellmann <gerd@gnu.org>
4393
7f8f1edc
GM
4394 * xfns.c (lookup_image): Build mask before applying an algorithm.
4395 Recognize algorithm `disabled'.
4396 (cross_disabled_images): New variable.
4397 (COLOR_INTENSITY): New macro.
4398 (x_detect_edges): Use COLOR_INTENSITY.
4399 (x_disable_image): New function.
4400 (syms_of_xfns): DEFVAR_BOOL cross_disabled_images.
4401
4402 * xdisp.c (build_desired_tool_bar_string): For a toolbar item in
4403 disabled state, don't apply an image transformation algorithm if
4404 the user specified an image for the disabled state. Use
28c7826c 4405 `:algorithm disabled' for creating a disabled item's image if the
7f8f1edc
GM
4406 user hasn't specified an image.
4407
ebb8f116
GM
4408 * xfns.c (ALLOC_XPM_COLORS): Define if we can use Emacs' color
4409 allocation functions with the XPM lib.
4410 (struct xpm_cached_color) [ALLOC_XPM_COLORS]: New structure.
4411 (XPM_COLOR_CACHE_BUCKETS) [ALLOC_XPM_COLORS]: New macro.
4412 (xpm_color_cache) [ALLOC_XPM_COLORS]: New variable.
4413 (xpm_init_color_cache, xpm_free_color_cache, xpm_lookup_color)
4414 (xpm_alloc_color, xpm_free_colors) [ALLOC_XPM_COLORS]: New
4415 functions.
4416 (xpm_load) [ALLOC_XPM_COLORS]: Use Emacs' own color allocation
4417 functions, if possible, because these handle color allocation
4418 failure more gracefully.
4419 (Fimage_mask_p): New function.
4420
47e351a3
GM
4421 * xfns.c (QCmatrix, QCcolor_adjustment, QCmask, Qemboss)
4422 (Qedge_detection, Qheuristic): New symbols.
4423 (syms_of_xfns): Initialize new symbols.
4424 (lookup_image): Handle `:mask X', `:algorithm emboss', and
4425 `algorithm (edge-detection ...)'.
4426 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format):
4427 (tiff_format, gif_format, gs_format): Add `:mask'.
4428 (XBM_MASK, XPM_MASK, PBM_MASK, PNG_MASK, JPEG_MASK, TIFF_MASK)
4429 (GIF_MASK, GS_MASK): New enumerators.
4430 (x_laplace_read_row, x_laplace_write_row): Functions removed.
4431 (emboss_matrix, laplace_matrix): New variables.
4432 (x_to_xcolors, x_from_xcolors, x_detect_edges, x_emboss)
4433 (x_edge_detection): New functions.
4434 (x_laplace): Rewritten in terms of x_detect_edges.
4435 (x_build_heuristic_mask): If image has a mask, free it.
4436
fe83b953
AI
44372000-09-14 Andrew Innes <andrewi@gnu.org>
4438
4439 * makefile.w32-in: Revert to Unix line endings.
4440
3021e816
AI
44412000-09-14 Andrew Innes <andrewi@gnu.org>
4442
4443 * makefile.w32-in: Standardize indentation somewhat.
4444 (bootstrap-temacs): Use $(ARGQUOTE) instead of literal quotes, to
4445 cater for differences between shells.
4446
4447 * w32term.c (w32_per_char_metric): Handle non-TrueType fonts.
4448
2a32b5ea
GM
44492000-09-14 Gerd Moellmann <gerd@gnu.org>
4450
4451 * xterm.c (x_produce_glyphs): If the distance from the current
4452 position to the next tab stop is less than a canonical character
4453 width, use the tab stop after that.
4454
b4331e96
DL
44552000-09-14 Dave Love <fx@gnu.org>
4456
4457 * buffer.c (alloc_buffer_text): Fix xmalloc call.
4458
ef9e4345
GM
44592000-09-14 Gerd Moellmann <gerd@gnu.org>
4460
085536c2
GM
4461 * xdisp.c (handle_fontified_prop): While running fontification
4462 functions, bind `fontification-functions' and
4463 `after-change-functions' to nil.
4464
ef9e4345
GM
4465 * s/freebsd.h, s/irix-5.0.h, s/sol2.h, s/template.h
4466 (USE_MMAP_FOR_BUFFERS): Define instead of REL_ALLOC_MMAP.
4467
4468 * Makefile.in (mallocobj) [SYSTEM_MALLOC]: Don't add ralloc.o.
4469
4470 * emacs.c: Change conditional compilation on REL_ALLOC_MMAP to
4471 USE_MMAP_FOR_BUFFERS.
4472
4473 * insdel.c (make_gap): Use enlarge_buffer_text.
4474
4475 * buffer.c: Move allocation with mmap here, from ralloc.c. Change
4476 conditional compilation on REL_ALLOC_MMAP to USE_MMAP_FOR_BUFFERS.
4477 (mmap_alloc, mmap_free, mmap_realloc) [REL_ALLOC_MMAP]: Renamed
4478 from former r_alloc_* functions in ralloc.c.
4479 (mmap_page_size, mmap_initialized_p) [REL_ALLOC_MMAP]: New
4480 variables.
4481 (MEM_ALIGN) [REL_ALLOC_MMAP]: New macro.
4482 (mmap_init) [REL_ALLOC_MMAP]: New function.
4483 (alloc_buffer_text, enlarge_buffer_text, free_buffer_text): New
4484 functions replacing macros BUFFER_ALLOC, BUFFER_REALLOC, and
4485 BUFFER_FREE.
4486
4487 * buffer.h (BUFFER_ALLOC, BUFFER_REALLOC, BUFFER_FREE): Removed.
4488 (enlarge_buffer_text): Add prototype.
4489
4490 * ralloc.c: Remove everything having to do with the use of mmap.
4491
f8608968
GM
44922000-09-13 Gerd Moellmann <gerd@gnu.org>
4493
2a494b2d
GM
4494 * sound.c (Fplay_sound): Doc fix.
4495
8c907a56
GM
4496 * keyboard.c: Avoid some more compiler warnings.
4497 (parse_tool_bar_item): Ignore cached key bindings.
4498
f8608968
GM
4499 * alloc.c: Add some comments about DOUG_LEA_MALLOC's use of mmap
4500 and allocation of Lisp data.
4501
6ab70e9a
GM
45022000-09-12 Gerd Moellmann <gerd@gnu.org>
4503
d12d0a9b
GM
4504 * xfaces.c: Remove conditional compilation on SCALABLE_FONTS.
4505 (Finternal_set_lisp_face_attribute): If frame is 0, set new frame
4506 defaults first.
4507
6ab70e9a
GM
4508 * lread.c (Fload): Put code checking for recursive loads in #if 0.
4509
63c36c3c
KH
45102000-09-12 Miyashita Hisashi <himi@meadowy.org>
4511
4512 * ccl.c: Comment fixed.
4513 (MAX_MAP_SET_LEVEL): Increased to 30.
4514 (PUSH_MAPPING_STACK): Enclose with do-while block.
4515 (POP_MAPPING_STACK): Likewise.
4516 (stack_idx_of_map_multiple): New variable.
4517 (CCL_CALL_FOR_MAP_INSTRUCTION): New macro.
4518 (ccl_driver) <CCL_IterateMultipleMap>: If the content is a symbol,
4519 call the corresponding CCL program by
4520 CCL_CALL_FOR_MAP_INSTRUCTION.
4521 (ccl_driver) <CCL_MapSingle>: Likewise.
4522 (ccl_driver) <CCL_MapMultiple>: Rewritten to fix many bugs, deal
4523 with the case where looking up process reaches to the end of
4524 map-set, and call CCL programs as the above change.
4525
7ee3bd7b
GM
45262000-09-11 Gerd Moellmann <gerd@gnu.org>
4527
8ec8a5ec
GM
4528 * xfns.c (png_load, jpeg_load): Declare some variables volatile
4529 that might be clobbered by longjmp.
4530 (check_x_display_info, x_decode_color, create_frame_xic)
4531 (Fx_display_backing_store, Fx_display_visual_class)
4532 (x_build_heuristic_mask, pbm_scan_number): Avoid compiler
4533 warnings.
4534
f74b0705
GM
4535 * lread.c (init_lread): Set Vloads_in_progress to nil.
4536 (Fload): Show list of recursively loaded files, when signaling an
4537 error.
4538
7ee3bd7b
GM
4539 * lread.c (Vloads_in_progress): New variable.
4540 (record_load_unwind): New function.
4541 (Fload): Check for recursive loads.
4542 (syms_of_lread): Initialize Vloads_in_progress.
4543 (read_integer, read1): Avoid some compiler warnings.
4544
4545 * fns.c (concat, Fsubstring, internal_equal, Fnconc): Avoid some
4546 compiler warnings.
4547
974e1e5b
MB
45482000-09-11 Miles Bader <miles@gnu.org>
4549
4550 * editfns.c (Fbuffer_string): Doc fix.
4551
9824c4e3
GM
45522000-09-10 Gerd Moellmann <gerd@gnu.org>
4553
4554 * ralloc.c (mmap_enlarge): Don't return 0 if successful.
4555
6a72fdd1
KR
45562000-09-09 Ken Raeburn <raeburn@gnu.org>
4557
4558 * s/netbsd.h: Use NOT_C_CODE, not NO_C_SOURCE, when deciding
4559 whether to include other header files.
4560
28e6fb66
GM
45612000-09-09 Gerd Moellmann <gerd@gnu.org>
4562
4563 * xfaces.c (CYCLE_CHECK): Don't use the Lisp_Object returned
9824c4e3 4564 by Fmemq as a boolean.
28e6fb66 4565
7f8b6551
SM
45662000-09-08 Stefan Monnier <monnier@cs.yale.edu>
4567
4568 * xfaces.c (Finternal_set_lisp_face_attribute): Minor thinko.
4569
a8710abf
GM
45702000-09-08 Gerd Moellmann <gerd@gnu.org>
4571
d1a02881
GM
4572 * ralloc.c (mmap_fd): Remove initializer which can make it
4573 read-only in a dumped Emacs.
4574 (mmap_fd_1): New variable.
4575 (mmap_set_vars): Remove local `fd'. Save mmap_fd in mmap_fd_1,
4576 restore it from there.
4577 (r_alloc, r_re_alloc, r_alloc_free): Call r_alloc_init
4578 unconditionally so that mmap_fd can be initialized there.
4579 (r_alloc_init_fd): Open-coded in r_alloc_init; function removed.
4580 (r_alloc_init) [REL_ALLOC_MMAP && !MAP_ANON]: Open /dev/zero.
4581 (r_alloc_init) [REL_ALLOC_MMAP && MAP_ANON]: Set mmap_fd to -1.
4582
c454aac1
GM
4583 * xfaces.c (Finternal_merge_in_global_face): Return a Lisp object.
4584
4585 * xdisp.c (dump_glyph_row): Fix printf format string.
4586 (display_line, move_it_in_display_line_to): Avoid compiler
4587 warnings.
4588
fc653ef2
GM
4589 * s/freebsd.h (GC_MARK_STACK, REL_ALLOC_MMAP): Define.
4590
3015eec0
GM
4591 * keymap.c (Fset_keymap_parent): Check for cycles in keymap
4592 inheritance.
4593
bfe0ee88
GM
4594 * xdisp.c (try_window_id): When trying to locate cursor in
4595 unchanged rows at the top, handle the case that we can't find it.
4596
a8710abf
GM
4597 * xterm.c (x_draw_glyphs): Handle case START and END are out
4598 of bounds more carefully.
4599
6b7d4ae4
DL
46002000-09-08 Dave Love <fx@gnu.org>
4601
423193c5
DL
4602 * s/sol2.h (REL_ALLOC_MMAP): Define.
4603 * s/irix5-0.h (REL_ALLOC_MMAP): Likewise.
4604
4605 * ralloc.c: Don't include string.h (redundant).
4606 (MAP_ANON) [REL_ALLOC_MMAP]: Ensure it's defined.
4607 [!MAP_ANON]: Include fcntl.h.
4608 (mmap_fd) [REL_ALLOC_MMAP]: New variable.
4609 (r_alloc, r_re_alloc, r_alloc_free)
4610 (mmap_enlarge, mmap_set_vars): Use it.
4611 (r_alloc_init_fd): New function.
4612 (__morecore) [SYSTEM_MALLOC]: Don't declare.
4613 (r_alloc_init): Call r_alloc_init_fd. Conditionalize stuff on
4614 malloc type.
4615
4616 * Makefile.in (allocaobj) [!SYSTEM_MALLOC && REL_ALLOC_MMAP]:
4617 Remove vm-limit.o.
4618
6b7d4ae4
DL
4619 * unexelf.c (SHT_MIPS_DEBUG, HDRR) [__mips__]: Really confine last
4620 change to __NetBSD__.
4621
44d31981
KH
46222000-09-08 Kenichi Handa <handa@etl.go.jp>
4623
4624 * search.c (compile_pattern): Check the multibyteness of cached
4625 string and PATTERN.
4626
aad40737
MB
46272000-09-08 Miles Bader <miles@gnu.org>
4628
4629 * xfaces.c (default_face_vector): Function removed.
4630 (Finternal_merge_in_global_face): Restore old global/local
4631 attribute override order. Use inline loop instead of calling
4632 default_face_vector.
4633
91a211b5
GM
46342000-09-07 Gerd Moellmann <gerd@gnu.org>
4635
4636 * ralloc.c (obtain, relinquish, relinquish, r_alloc_size_in_use)
4637 (get_bloc, relocate_blocs, update_heap_bloc_correspondence)
4638 (resize_bloc, r_alloc_sbrk, r_alloc_init): Add casts to `char *'
4639 where necessary, in case POINTER_TYPE is `void'.
4640
03419440
EZ
46412000-09-07 Eli Zaretskii <eliz@is.elta.co.il>
4642
4643 * frame.c (make_terminal_frame): Initialize frame foreground and
4644 background colors to unspecified, for the initial instance of an
4645 MSDOS frame.
4646
f46f845b
GM
46472000-09-07 Gerd Moellmann <gerd@gnu.org>
4648
24f76fbf
GM
4649 * ralloc.c (mmap_find): Fix overlap computation.
4650 (mmap_enlarge): Compute nbytes before trying to find an
4651 overlapping region.
4652
f46f845b
GM
4653 * xfaces.c (smaller_face): Compare font heights with `<' and `>'
4654 instead of `!='.
4655
4656 * lread.c (syms_of_lread): Change value of regexp
4657 Vbytecomp_version_regexp to not match some XEmacs-compiled files.
4658
4659 * xmenu.c (xdialog_show): When looking up the selection in
4660 menu_items, take `quote' boundaries into account; this corresponds
4661 to a nil ITEM in x-popup-dialog.
4662
3c014385
KH
46632000-09-07 Kenichi Handa <handa@etl.go.jp>
4664
fd6f711b
KH
4665 * charset.h (MIN_CHARSET_OFFICIAL_DIMENSION1): Define it as 0x80,
4666 not 0x81.
4667 (MIN_CHAR_OFFICIAL_DIMENSION1): Define it as ((0x81 - 0x70) << 7).
4668
3c014385 4669 * coding.c (encode_coding_sjis_big5): Use translation table for
ed254191
KH
4670 encoding, not decoding. Fix the handling of latin-jisx0201.
4671 Check for the charset katakana-jisx0201 too.
3c014385 4672 (ONE_MORE_CHAR): Call translate_char with CHARSET arg -1.
f46f845b 4673 (detect_coding_sjis): Check the byte sequence more rigidly.
3c014385 4674
0da3ecef
GM
46752000-09-07 Gerd Moellmann <gerd@gnu.org>
4676
ab0ee409
GM
4677 * xfaces.c (Vparam_value_alist): New variable.
4678 (syms_of_xfaces): Initialize it.
4679 (Finternal_set_lisp_face_attribute): Avoid more consing.
4680
4681 * frame.c (Fframe_parameter): Handle `name' and `background-mode'
4682 specially.
4683 (Fframe_parameter) [HAVE_X_WINDOWS]: Handle `display' specially.
4684 (Qbackground_mode): New variable.
4685 (syms_of_frame_1): Initialize Qbackground_mode.
4686
4687 * lisp.h (Qdisplay): Declare extern.
1091dd67 4688
0da3ecef
GM
4689 * xfaces.c (Finternal_set_lisp_face_attribute): If FRAME is 0,
4690 change face on all frames, and change the default for new frames.
4691
b14654b9
DL
46922000-09-07 Dave Love <fx@gnu.org>
4693
4694 * Makefile.in [!SYSTEM_MALLOC && REL_ALLOC_MMAP]: Set mallocobj.
4695
d24fd56f
KH
46962000-09-07 Kenichi Handa <handa@etl.go.jp>
4697
794f3670
KH
4698 * charset.h (MAKE_CHAR): Be sure to set MSB of C1 to 0.
4699
0fddd0dc
KH
4700 * charset.c: Include composite.h
4701 (lisp_string_width): New function.
4702 (Fstring_width): Call lisp_string_width instead of strwidth.
4703
4704 * Makefile.in (charset.o): Depends on composite.h.
4705
d24fd56f
KH
4706 * process.c (read_process_output): Before inserting the decoded
4707 text in the buffer, adjust the multibyteness.
4708
fa0b693c
GM
47092000-09-06 Gerd Moellmann <gerd@gnu.org>
4710
73b77ee5
GM
4711 * buffer.c (set_buffer_internal_1) [REL_ALLOC_MMAP]: If
4712 buffer's text buffer is null, map new memory.
4713
0a58f946
GM
4714 * ralloc.c (POINTER, SIZE) [emacs]: Define in terms of
4715 POINTER_TYPE and size_t.
4716 (struct mmap_region) [REL_ALLOC_MMAP]: New structure.
4717 (mmap_regions, mmap_regions_1) [REL_ALLOC_MMAP]: New variables.
4718 (ROUND, MMAP_REGION_STRUCT_SIZE, MMAP_REGION, MMAP_USER_AREA)
4719 [REL_ALLOC_MMAP]: New macros.
4720 (mmap_find, mmap_free, mmap_enlarge, mmap_set_vars)
4721 (mmap_mapped_bytes, r_alloc, r_re_alloc, r_alloc_free)
4722 [REL_ALLOC_MMAP]: New functions.
4723
4724 * emacs.c (Fdump_emacs) [REL_ALLOC_MMAP]: Call mmap_set_vars
4725 before and after unexec.
4726
4727 * buffer.c (init_buffer) [REL_ALLOC_MMAP]: Map new buffer
4728 text buffers if necessary.
4729
4730 * buffer.h (R_ALLOC_DECLARE): Removed because unused.
4731 (r_alloc, r_re_alloc, r_alloc_free): Use POINTER_TYPE and size_t
4732 in prototypes.
4733
fa0b693c
GM
4734 * config.in (HAVE_MMAP): Add #undef.
4735
877055f6
GM
47362000-09-05 Gerd Moellmann <gerd@gnu.org>
4737
08ba3862
GM
4738 * frame.c (Qdisplay_type): New variable.
4739 (syms_of_frame_1): Initialize it.
4740 (Fframe_parameter): New function that avoids consing.
4741 (syms_of_frame): Defsubr it.
4742
66ffe51c
GM
4743 * buffer.c (Fother_buffer): Consider buffers as invisible when
4744 they are displayed in a window on an invisible frame.
4745
877055f6
GM
4746 * window.c (window_loop) <GET_LARGEST_WINDOW>: Fix bug making
4747 get-largest-window always return nil.
4748
bb970e67
GM
47492000-09-04 Gerd Moellmann <gerd@gnu.org>
4750
4751 * lread.c (syms_of_lread): Make Vbytecomp_version_regexp a Lisp
4752 variable; recognize Emacs 19 elc files.
4753
7a3d0e0e
MB
47542000-09-04 Miles Bader <miles@gnu.org>
4755
4756 * xmenu.c (xmenu_show): Call x_set_menu_resources_from_menu_face
4757 before initially popping up the menu, so the menu doesn't flash
4758 when the face settings are significantly different from the
4759 defaults.
4760
14473664
SM
47612000-09-04 Stefan Monnier <monnier@cs.yale.edu>
4762
4763 * regex.c (WIDE_CHAR_SUPPORT): New macro.
4764 (btowc, iswctype, wctype) [_LIBC]: Redefine to __<fun>.
4765 (BIT_ALPHA, BIT_ALNUM, BIT_ASCII, BIT_NONASCII, BIT_GRAPH, BIT_PRINT)
4766 (BIT_UNIBYTE): Remove.
4767 (re_match_2_internal): Delete corresponding code and streamline the
4768 BIT_MULTIBYTE case to not bother checking ISUNIBYTE.
4769 (CHAR_CLASS_MAX_LENGTH) [!WIDE_CHAR_SUPPORT]: Set to 9 rather than 6.
4770 (re_wctype_t): New type.
4771 (re_wctype, re_iswctype, re_wctype_to_bit): New functions.
4772 (regex_compile): Use them and fix handling of overly long char classes.
4773
c1174479
AI
47742000-09-03 Andrew Innes <andrewi@gnu.org>
4775
f8803e97
AI
4776 * makefile.w32-in: Change to DOS line endings.
4777
c1174479
AI
4778 * s/ms-w32.h (ORDINARY_LINK): New define.
4779
4780 * w32.c (_ANONYMOUS_UNION) [__GNUC__]: New define
4781 (_ANONYMOUS_STRUCT) [__GNUC__]: New define.
4782
4783 * makefile.w32-in (clean): Don't delete config.h and epaths.h.
4784 (distclean): Delete them here instead.
4785
44ef7cf6
AI
4786 * w32proc.c (compare_env): Convert to uppercase for comparison,
4787 not lowercase, to match how the native Windows shell works.
4788
49b3bd82
JR
47892000-09-03 Jason Rumney <jasonr@gnu.org>
4790
4791 * ChangeLog: Remove -unix from coding. Let Emacs autodetect, as
4792 CVS changes the line-ends when checking in/out on DOS/Windows.
4793
4794 * makefile.nt (emacs): Do not change directory to run temacs, as
4795 the load-path is set relative to current directory.
4796
a3d35a39
MB
47972000-09-03 Miles Bader <miles@gnu.org>
4798
4799 * xterm.c (x_alloc_lighter_color_for_widget): New function.
4800
d276b0cf
GM
48012000-09-02 Gerd Moellmann <gerd@gnu.org>
4802
715e84c9
GM
4803 * xdisp.c (redisplay_mode_lines): New function.
4804 (display_mode_lines): Return number of mode lines displayed.
4805 (echo_area_display): Use redisplay_mode_lines to draw garbaged
4806 mode lines. Don't temporarily bind redisplay-dont-pause to t.
4807
8892f40b
GM
4808 * emacs.c, callint.c, doc.c, editfns.c: Remove includes of
4809 string.h and strings.h.
4810 (index) [HAVE_INDEX]: Add prototype.
4811
d276b0cf
GM
4812 * unexelf.c (SHT_PROGBITS) [__NetBSD__ && !PT_LOAD]: Don't define.
4813 (SHT_MIPS_DEBUG, HDRR) [__NetBSD__ && __mips__]: Define.
4814
4815 * s/netbsd.h [!NO_C_SOURCE]: Include <signal.h>.
4816 (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
4817
38404229
GM
48182000-09-01 Gerd Moellmann <gerd@gnu.org>
4819
4820 * lread.c (read1): Accept `?' as symbol constituent, for
4821 compatiblity with XEmacs.
4822
c0f9ea08
SM
48232000-08-31 Stefan Monnier <monnier@cs.yale.edu>
4824
4825 * regex.h (RE_NO_NEWLINE_ANCHOR): New syntax flag.
4826 (struct re_pattern_buffer): Remove newline_anchor.
4827 * regex.c: Keep namespace clean for GNU libc by renaming <fun>
4828 to __<fun> and using `weak_alias (__<fun>, <fun>)'.
4829 (re_max_failures, fail_stack): Use size_t rather than unsigned.
4830 (regex_compile): For ^ and $, choose between buffer and line (beg|end)
4831 depending on the new RE_NO_NEWLINE_ANCHOR syntax flag.
4832 (print_compiled_pattern, re_search_2, mutually_exclusive_p)
4833 (re_match_2_internal, re_compile_pattern, re_comp, regcomp):
4834 Get rid of references to newline_anchor.
4835 (regcomp): Allocate and precompute a fastmap.
4836
8c0f83fe
GM
48372000-08-31 Gerd Moellmann <gerd@gnu.org>
4838
4839 * lread.c (openp): GCPRO local variable `filename'.
4840
4bb91c68
SM
48412000-08-30 Stefan Monnier <monnier@cs.yale.edu>
4842
4843 * regex.h (struct re_pattern_buffer): Use size_t for used/allocated.
4844
4845 * regex.c: Merge some changes from GNU libc. Add prototypes.
4846 (bcopy, bcmp, REGEX_REALLOCATE, re_match_2_internal):
4847 Use memcmp and memcpy instead of bcopy and bcmp.
4848 (init_syntax_once): Use ISALNUM.
4849 (PUSH_FAILURE_POINT, re_match_2_internal): Remove failure_id.
4850 (REG_UNSET_VALUE): Remove. Use NULL instead.
4851 (REG_UNSET, re_match_2_internal): Use NULL.
4852 (SET_HIGH_BOUND, MOVE_BUFFER_POINTER, ELSE_EXTEND_BUFFER_HIGH_BOUND):
4853 New macros.
4854 (EXTEND_BUFFER): Use them (to work with BOUNDED_POINTERS).
4855 (GET_UNSIGNED_NUMBER): Don't use ISDIGIT.
4856 (regex_compile): In handle_interval, return an error rather than try to
4857 unfetch the interval if we can't find the closing brace.
4858 Obey the RE_NO_GNU_OPS syntax bit.
4859 (TOLOWER): New macro.
4860 (regcomp): Use it.
4861 (regexec): Allocate regs.start and regs.end as one block.
4862
5226a931
GM
48632000-08-30 Gerd Moellmann <gerd@gnu.org>
4864
868dd24b
GM
4865 * xdisp.c (echo_area_display): Check display_completed instead
4866 of calling detect_input_pending.
4867
4868 * dispnew.c (update_frame): Only set display_completed here; move
4869 the update_begin and update_end calls here from update_frame_1.
4870 (update_frame_1): Don't set display_completed here, don't call
4871 update_begin/update_end.
4872
5226a931
GM
4873 * xfaces.c (set_font_frame_param): Use Fmodify_frame_parameters
4874 instead of store_frame_param.
4875
2a8bd25f
GM
48762000-08-29 Gerd Moellmann <gerd@gnu.org>
4877
4878 * dispnew.c (build_frame_matrix_from_leaf_window): If a row of a
4879 desired window matrix hasn't been displayed, use the current row
4880 instead. Make sure that only those frame rows are updated for
4881 which there exists a corresponding enabled desired row.
4882
ba3478d9
MB
48832000-08-29 Miles Bader <miles@gnu.org>
4884
4885 * xfaces.c (default_face_vector): New function.
4886 (Finternal_merge_in_global_face): Use it instead of merge_face_vectors.
4887
87d0f685
GM
48882000-08-29 Gerd Moellmann <gerd@gnu.org>
4889
4890 * lread.c (openp): Prevent temporary string passed to
4891 Ffile_readable_p from being garbage collected.
4892
6fa86045
DL
48932000-08-28 Dave Love <fx@gnu.org>
4894
4895 * keymap.c (store_in_keymap): Add `static' to declaration.
4896
bb17930d
GM
48972000-08-28 Gerd Moellmann <gerd@gnu.org>
4898
4899 * emacs.c, callint.c, doc.c, editfns.c
4900 (toplevel) [HAVE_STRING_H]: Include string.h.
4901 (toplevel) [HAVE_STRINGS_H]: Include strings.h.
4902 (index): Remove prototypes which might conflict with non-standard
4903 definitions of index/strchr.
4904
4905 * s/usg5-3.h (index): Define only if not HAVE_INDEX.
4906 (rindex): Define only if !HAVE_RINDEX.
4907
4908 * s/sco5.h (bcopy, bzero, bcmp): Don't define.
4909
4910 * config.in (HAVE_INDEX, HAVE_RINDEX, HAVE_STRINGS_H): Add undefs.
4911
87188200
MB
49122000-08-28 Miles Bader <miles@gnu.org>
4913
4914 * xfaces.c (merge_face_vectors): Clear TO's :font attribute if
4915 made inconsistent by a font-related attribute in FROM.
4916 (merge_face_inheritance): Add function comment.
4917
41a68aef
KH
49182000-08-28 Kenichi Handa <handa@etl.go.jp>
4919
4920 * keyboard.c (read_char_minibuf_menu_prompt): Call read_char with
4921 the 4th arg (PREV_EVENT) Qt to suppress input method.
4922
f7c436c1
SM
49232000-08-27 Stefan Monnier <monnier@cs.yale.edu>
4924
0b32bf0e
SM
4925 * regex.c: Indent cpp directives and remove parens after `defined'.
4926 (PTR_TO_OFFSET, POS_AS_IN_BUFFER): Move to a better place.
4927 (ISDIGIT, ISCNTRL, ISXDIGIT) [!emacs]: Remove duplicate definition.
4928 (regex_compile): Use RE_FRUGAL instead of RE_ALL_GREEDY.
4929 (re_compile_pattern): Use size_t for length.
4930 (init_syntax_once): Move to a better place.
4931 * regex.h: Merge changes from GNU libc. Indent cpp directives.
4932 (RE_FRUGAL): Replaces RE_ALL_GREEDY (inverted meaning).
4933
f7c436c1
SM
4934 * syntax.c (back_comment): Detect cases where a comment-starter is
4935 actually inside another comment as in: /* a // b */ c // d \n.
4936 Make it clear that `comstart_pos' is unused for nested comments.
4937
4938 * keymap.c (store_in_keymap, fix_submap_inheritance): New prototypes.
4939 (KEYMAPP): New macro.
4940 (Fkeymap_parent, Fset_keymap_parent): Use it.
4941 (fix_submap_inheritance): Mark it static.
4942 (define_as_prefix, describe_buffer_bindings, describe_command)
4943 (describe_translation, describe_map): Complete prototypes.
4944
4945 * lisp.h (store_in_keymap, fix_submap_inheritance): Remove.
4946
4947 * keyboard.c (menu_bar_item): Detect duplicate entries for all items
4948 to better match the key-lookup behavior.
4949
6288c62f
GM
49502000-08-27 Gerd Moellmann <gerd@gnu.org>
4951
4952 * xfaces.c (lface_fully_specified_p): Handle :inherit.
4953 (Finternal_set_lisp_face_attribute): Fix typo in error message.
4954
e931344e
EZ
49552000-08-27 Eli Zaretskii <eliz@is.elta.co.il>
4956
4957 * Makefile.in (dispnew.o, indent.o, fontset.o, minibuf.o)
4958 (process.o, scroll.o, sysdep.o): Depend on keyboard.h.
4959 (xterm.o): Depend on coding.h
4960
d10dfeef
KH
49612000-08-26 Kenichi Handa <handa@etl.go.jp>
4962
4963 * cmds.c (internal_self_insert): Delete '#ifdef HAVE_FACES' and
4964 the corresponding '#endif'.
4965
2d73e8d3
MB
49662000-08-26 Miles Bader <miles@gnu.org>
4967
4968 * dispextern.h (enum lface_attribute_index): Add LFACE_INHERIT_INDEX.
4969 * xfaces.c (QCinherit): New variable.
4970 (syms_of_xfaces): Initialize it.
4971 (LFACE_INHERIT): New macro.
4972 (Finternal_get_lisp_face_attribute)
4973 (merge_face_vector_with_property)
4974 (Finternal_set_lisp_face_attribute): Deal with :inherit attribute.
4975 (check_lface_attrs): Allow new types of face height. Check
4976 inherit attribute.
4977 (CYCLE_CHECK): New macro.
4978 (merge_face_inheritance): New function.
4979 (merge_face_vectors): Merge inherited faces too. Add F and
4980 CYCLE_CHECK arguments.
4981 (merge_face_vector_with_property, Finternal_merge_in_global_face)
4982 (lookup_named_face, lookup_derived_face, realize_named_face)
4983 (face_at_string_position, face_at_buffer_position): Supply
4984 new F and CYCLE_CHECK arguments to merge_face_vectors.
4985 (merge_face_heights): New function.
4986 (merge_face_vectors, merge_face_vector_with_property)
4987 (Finternal_set_lisp_face_attribute): Call merge_face_heights to
4988 handle relative face heights.
4989 (lface_same_font_attributes_p): Compare heights using EQ.
4990
6ce974d4
KH
49912000-08-26 Kenichi Handa <handa@etl.go.jp>
4992
4993 * charset.c (char_to_string): Check the character validity.
4994 (char_valid_p): If C is not less than MAX_CHAR, be sure to return
4995 0.
4996
dc1e502d
SM
49972000-08-25 Stefan Monnier <monnier@cs.yale.edu>
4998
4999 * regex.c (PUSH_FAILURE_COUNT): New macro.
5000 (POP_FAILURE_REG_OR_COUNT): Renamed from POP_FAILURE_REG.
5001 Handle popping of a register's or a counter's data.
5002 (POP_FAILURE_POINT): Use the new name.
5003 (re_match_2_internal): Push counter data on the stack for succeed_n,
5004 jump_n and set_number_at and remove misleading dead code in succeed_n.
5005
bd9d0f3f
GM
50062000-08-25 Gerd Moellmann <gerd@gnu.org>
5007
5008 * xdisp.c (redisplay_internal): If considering all windows on all
5009 frames, update the display for each frame as soon as possible,
5010 instead of first building all desired matrices for all frames, and
5011 then updating them all.
5012 (try_cursor_movement): Handle case that last_cursor.vpos is -1.
5013
aa5b8e15
GM
50142000-08-24 Gerd Moellmann <gerd@gnu.org>
5015
17494071
GM
5016 * bytecode.c (mark_byte_stack): Add a comment.
5017
aa5b8e15
GM
5018 * frame.h (FRAME_FLAGS_AREA_COLS, FRAME_FLAGS_AREA_WIDTH)
5019 (FRAME_LEFT_FLAGS_AREA_WIDTH): Return 0 unless frame is
5020 a graphical frame.
5021
c543db81
KH
50222000-08-24 Kenichi Handa <handa@etl.go.jp>
5023
d246d5f5
KH
5024 * minibuf.c (do_completion): Always use compare-string, not
5025 string-equal because the latter doesn't pay attention to
5026 multibyteness of strings.
5027
c543db81
KH
5028 * process.c (create_process): Don't setup raw-text coding here.
5029 (Fopen_network_stream): Don't set coding->src_multibyte and
5030 coding->dst_multibyte here.
5031 (read_process_output): For process filter, return unibyte string
5032 if default-enable-multibyte-characters is nil.
5033 (send_process): If OBJECT is multibyte text, be sure to encoded it
5034 by the specified coding system for the process. Otherwise, setup
5035 raw-text coding.
5036 (init_process): Don't initialize default-process-coding-system
5037 here.
5038
9b47cfe0
EZ
50392000-08-23 Eli Zaretskii <eliz@is.elta.co.il>
5040
5041 * buffer.c (syms_of_buffer) <scroll-up-aggressively>: Doc fix.
5042 <scroll-down-aggressively>: Likewise.
5043
f5a36960
KH
50442000-08-23 Kenichi Handa <handa@etl.go.jp>
5045
5046 * coding.c (encode_eol): Fix bug for the case of dst_bytes being
5047 zero. Set coding->produced_char correctly.
5048
69a7ffa7
AI
50492000-08-22 Andrew Innes <andrewi@gnu.org>
5050
5051 * makefile.w32-in: New file.
5052
5053 * unexw32.c (unexec): Ignore old_name, and use the actual location
5054 of the current executable instead. Base new_name on this.
5055
5056 * w32proc.c (create_child): Remove reference to security
5057 descriptor, which isn't needed and doesn't compile with mingw32.
5058
5059 * w32term.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5060 up dllimport attributes.
5061 (x_update_window_end): Update prototype.
5062
5063 * unexec.c (write_segment) [USE_CRT_DLL]: Remove unnecessary
5064 extern, which screws up dllimport attributes.
5065
5066 * sysdep.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5067 up dllimport attributes.
5068
5069 * strftime.c [USE_CRT_DLL]: Remove unnecessary extern, which
5070 screws up dllimport attributes.
5071
5072 * process.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5073 up dllimport attributes.
5074 (create_process) [USE_CRT_DLL]: Remove unnecessary extern, which
5075 screws up dllimport attributes.
5076
5077 * lread.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5078 up dllimport attributes.
5079
5080 * keyboard.c [USE_CRT_DLL]: Remove unnecessary extern, which
5081 screws up dllimport attributes.
5082
5083 * floatfns.c [USE_CRT_DLL]: Remove unnecessary extern, which
5084 screws up dllimport attributes.
5085
5086 * fileio.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5087 up dllimport attributes.
5088
5089 * emacs.c (malloc_initialize_hook) [USE_CRT_DLL]: Remove
5090 unnecessary extern, which screws up dllimport attributes.
5091 (main): Ditto.
5092
5093 * editfns.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5094 up dllimport attributes.
5095
5096 * dispnew.c (window_change_signal) [USE_CRT_DLL]: Remove
5097 unnecessary extern, which screws up dllimport attributes.
5098
5099 * callproc.c [USE_CRT_DLL]: Remove unnecessary extern, which
5100 screws up dllimport attributes.
5101
5102 * buffer.c [USE_CRT_DLL]: Remove unnecessary extern, which screws
5103 up dllimport attributes.
5104
5105 * w32proc.c (IsValidLocale): Extern missing from mingw32 headers.
5106
5107 * w32bdf.c (search_file_line):
5108 (set_bdf_font_info):
5109 (seek_char):
5110 (w32_get_bdf_glyph):
5111 (w32_BDF_to_x_font): Fix compile warnings.
5112
5113 * w32menu.c: Include keyboard.h before frame.h. Fix compile
5114 warnings.
5115
5116 * w32select.c: Include keyboard.h before frame.h.
5117
5118 * w32fns.c (max): Define macro.
5119 (JOHAB_CHARSET): Define if not known.
5120 (MOD_ALT, MOD_CONTROL, MOD_SHIFT, MOD_WIN): Define if not known.
5121 (Fx_show_tip): Synch with X version.
5122
5123 * w32xfns.c: Include keyboard.h before frame.h.
5124
5125 * w32fns.c: Include keyboard.h before frame.h.
5126
5127 * w32term.c: Include keyboard.h before frame.h.
5128
5129 * fontset.c: Include keyboard.h before frame.h.
5130
5131 * w32inevt.c: Include keyboard.h before frame.h.
5132 (MOUSE_MOVED): Define if not known.
5133
5134 * minibuf.c: Include keyboard.h before frame.h.
5135
5136 * keyboard.c: Include keyboard.h before frame.h.
5137
5138 * indent.c: Include keyboard.h before frame.h.
5139
5140 * dispnew.c: Include keyboard.h before frame.h.
5141
5142 * buffer.c: Include keyboard.h before frame.h.
5143
5144 * alloc.c: Include keyboard.h before frame.h.
5145
5146 * print.c: Include keyboard.h before frame.h.
5147
5148 * process.c: Include keyboard.h before frame.h.
5149
5150 * scroll.c: Include keyboard.h before frame.h.
5151
5152 * sysdep.c: Include keyboard.h before frame.h.
5153
5154 * term.c: Include keyboard.h before frame.h.
5155
5156 * window.c: Include keyboard.h before frame.h.
5157
5158 * xdisp.c: Include keyboard.h before frame.h.
5159 Separate GLYPH_DEBUG and DEBUG_TRACE_MOVE.
5160
5161 * frame.c: Include keyboard.h before frame.h.
5162
5163 * w32heap.h: Undefine min, max.
5164
5165 * w32gui.h: Undefine min, max.
5166
5167 * unexw32.c: Change PUCHAR to PCHAR.
5168 (PTR_TO_OFFSET): Cast ptr to unsigned char *.
5169 (relocate_offset):
5170 (get_section_info):
5171 (copy_executable_and_dump_data): Remove unnecessary static defs.
5172 (copy_executable_and_dump_data): Fix compile warnings.
5173
5174 * sysdep.c (NULL) [WINDOWSNT]: Define NULL if not defined.
5175
5176 * w32console.c (min): Define macro.
5177 (clear_frame, write_glyphs): Fix compile warning.
5178
5179 * w32proc.c (compare_env):
5180 (find_child_console): Fix compile warning.
5181
5182 * w32.c (sys_strerror): Use sys_nerr instead of _sys_nerr. Use
5183 sys_errlist instead of _sys_errlist.
5184 (get_emacs_configuration_options): New function.
5185
5186 * s/ms-w32.h (sys_nerr): Provide default definition.
5187 (strdup, strupr, strnicmp, stricmp, tzset, tzname): Map to same
5188 name with _ prepended.
5189 (NSIG): Define if not known.
5190 (get_emacs_configuration): Provide extern declaration.
5191 (get_emacs_configuration_options): Provide extern declaration.
5192 (EMACS_CONFIG_OPTIONS): Call get_emacs_configuration_options.
5193
5194 * w32.c (gettimeofday): Use struct timeb, not struct _timeb.
5195 (map_w32_filename):
5196 (read_unc_volume): Fix compile warning.
5197
5198 * s/ms-w32.h (_WINSOCK_H): Define to prevent normal winsock
5199 definitions from being used.
5200
5201 * lisp.h [WINDOWSNT]: Don't declare externs for getenv, ctime and getwd.
5202
5203 * w32.c (unc_volume_file_attributes):
5204 (open_unc_volume): Make arg const.
5205
5206 * sysdep.c [WINDOWSNT]: Remove extern decl of errno.
5207 (read_input_waiting): Remove excess parameter.
5208
5209 * w32.c (init_environment): Call _access.
5210 (check_windows_init_file): Call _close.
5211 (init_user_info): Call _putenv.
5212 (init_environment): Call _putenv and _strdup.
5213 (init_ntproc): Reset volume info cache on startup.
5214
5215 * s/ms-w32.h (malloc, free, realloc, calloc): Rename if
5216 USE_CRT_DLL is defined, so Emacs can use GNU malloc even though it
5217 cannot override the CRT malloc.
5218
5219 * makefile.nt (LOCAL_FLAGS): Define USE_CRT_DLL if requested.
5220 (LINK_FLAGS): Append to original value of LINK_FLAGS.
5221
5222 * w32heap.c [!USE_CRT_DLL]: Don't define _heap_init and _heap_term
5223 unless we are linking with a static CRT.
5224 (RVA_TO_PTR): Cast result to unsigned char*.
5225
5226 * w32.c (GetCachedVolumeInformation): Use xmalloc, xfree and xstrdup.
5227 (add_volume_info): Use xstrdup.
5228
25060080
SM
52292000-08-22 Stefan Monnier <monnier@cs.yale.edu>
5230
5231 * minibuf.c (Vcompletion_auto_help): Renamed from `auto_help'.
5232 (do_completion, Fminibuffer_complete_word): Use it.
5233 (syms_of_minibuf): Turn completion-auto-help into a proper Lisp
5234 var so it can take non-boolean values.
5235
6917e6bb
GM
52362000-08-21 Gerd Moellmann <gerd@gnu.org>
5237
acb7cc89
GM
5238 * editfns.c (find_field): Formatting changes.
5239 (toplevel): Some old-style function forward declarations
5240 changed to prototypes, some new protypes added, some functions
5241 made static.
5242
5243 * lisp.h (set_time_zone_rule): Add prototype.
5244 (use_dialog_box): External declaration.
5245
0bbfdc25
GM
5246 * keyboard.c (gen_help_event): Add parameter SIZE.
5247 (kbd_buffer_events_waiting): Slightly rewritten.
5248 (clear_event): New function.
5249 (kbd_buffer_get_event): Use it, and clear the input_events of
5250 HELP_EVENTs.
5251 (init_keyboard): Remove duplicate creation of kbd_buffer_gcpro and
5252 don't fill the newly created array with nils.
5253 (toplevel): Convert some old-style function forward declarations
5254 to prototypes.
5255
5256 * keyboard.h (gen_help_event): Change prototype.
5257
5258 * xterm.c (XTread_socket): Change calls to gen_help_event.
5259
5260 * w32term.c (w32_read_socket): Change calls to gen_help_event.
5261
6917e6bb
GM
5262 * eval.c (Fmacroexpand): Doc fix.
5263
e5cd3d11
JR
52642000-08-20 Jason Rumney <jasonr@gnu.org>
5265
5266 * w32term.h (x_display_info_for_display): Remove as this function
5267 does not exist on W32.
5268
5269 * w32term.c (help_echo_window): New variable.
5270 (syms_of_w32term): staticpro it.
5271 (note_mode_line_highlight): Set it.
5272 (XTextExtents16): Removed as there is no equivalent on W32.
5273 (x_compute_glyph_string_overhangs): Incomplete body removed, as
5274 the X way of doing this will not work for W32.
5275 (w32_intersect_rectangles): Removed. Use IntersectRect API call.
5276 (x_draw_image_foreground): Avoid drawing outside of the clip area
5277 when image doesn't have a mask.
5278 (note_mouse_highlight): Process overlays in the right order of
5279 priority. Set help_echo_window.
5280 (x_draw_bar_cursor): If cursor is on an image, draw a box cursor
5281 because that's more visible for large images.
5282
5283 * w32menu.c (keymap_panes): Pass the keymap's prompt as the pane
5284 name to single_keymap_panes.
5285 (w32_menu_show): Set wv->title when dealing with titles.
5286 (w32_menu_display_help): Call show_help_echo with OBJECT and POS.
5287
6e69ab8c
MB
52882000-08-21 Miles Bader <miles@gnu.org>
5289
5290 * minibuf.c (do_completion): Try again if we rewrite the input
5291 string, but no completion was done, so that any completion message
5292 will be correct.
5293
511bd4eb
GM
52942000-08-20 Gerd Moellmann <gerd@gnu.org>
5295
5296 * xfaces.c (lface_equal_p): Compare strings differently.
5297 (Qtty_color_alist, Vtty_defined_color_alist): New variables.
5298 (realize_tty_face): Use them.
5299 (syms_of_xfaces): Initialize new variables.
5300 (map_tty_color): New function, extracted from realize_tty_face.
5301 (map_tty_color) [MSDOS || WINDOWSNT]: If using the frame's default
5302 foreground or background color, store the new color name in the
5303 realized face; previous code trying to do this had no effect.
5304 (realize_tty_face): Use map_tty_color.
5305 (Fclear_face_cache): Set face_change_count and ensure thorough
5306 redisplay.
5307
1433385f
GM
53082000-08-19 Gerd Moellmann <gerd@gnu.org>
5309
511bd4eb
GM
5310 * undo.c (record_first_change, record_marker_adjustment): Don't
5311 use XBUFFER on last_undo_buffer which might not be a buffer.
1433385f 5312
419ac0a2
KH
53132000-08-18 Kenichi Handa <handa@etl.go.jp>
5314
5315 * coding.c (decode_coding_string): Set members consumed,
5316 consumed_char, produced, produced_char of *coding correctly. If
5317 decode_coding doesn't consume any byte, don't try anymore.
5318 (encode_coding_string): Likewise.
5319
7eb9e30d
GM
53202000-08-18 Gerd Moellmann <gerd@gnu.org>
5321
511bd4eb
GM
5322 * lisp.h (CHECK) [ENABLE_CHECKING]: Make both sides of the
5323 conditional have void type, for Standard C compilers.
7eb9e30d
GM
5324
5325 * xdisp.c (redisplay_internal): Compare windows for equality with
5326 EQ, instead of applying XWINDOW to something that might not
5327 be a window.
5328
dd34a735
KH
53292000-08-18 Kenichi Handa <handa@etl.go.jp>
5330
5331 * fontset.c (Finternal_char_font): Search only the selected frame
5332 for a window of the current buffer.
5333
385ff9e3
GM
53342000-08-18 Gerd Moellmann <gerd@gnu.org>
5335
511bd4eb 5336 * minibuf.c (do_completion): Use EQ instead of `!=' to compare
01cce3e7
GM
5337 Lisp_Objects.
5338
385ff9e3
GM
5339 * keyboard.c (kbd_buffer_get_event): Handle the case that the
5340 second half of a HELP_EVENT is found at the start of kbd_buffer.
5341
d6abb4c7
MB
53422000-08-18 Miles Bader <miles@gnu.org>
5343
4618074a
MB
5344 * lisp.h (Lisp_String): Replace DECLARE_INTERVALS with real decl.
5345
d6abb4c7
MB
5346 * editfns.c (save_restriction_save): Rewrite to use markers.
5347 (save_restriction_restore): Rewrite to understand new form of data
5348 saved by save_restriction_save.
5349 (Fsave_restriction): Remove cautionary note in doc-string.
5350
a7b28523
GM
53512000-08-17 Gerd Moellmann <gerd@gnu.org>
5352
5353 * fileio.c (build_annotations): Add a comment explaining the
5354 return value of format-annotate-function. Replace a spurious call
5355 to Flength with a CONSP test. Call format-annotate-function with
5356 a fifth arg specifying how many times the function is been called
5357 in a row, to let it choose temporary buffers appropriately.
5358
03c9ed77
DL
53592000-08-17 Dave Love <fx@gnu.org>
5360
5361 * lisp.h: Remove DECLARE_INTERVALS, INITIALIZE_INTERVAL. Don't
5362 declare make_temp_name twice.
5363
5364 * lread.c: Prototype readevalloop, load_unwind,
5365 load_descriptor_unwind.
5366 (unreadpure): Give it an arg.
5367
5368 * unexalpha.c: Prototype fatal_unexec, mark_x,
5369 update_dynamic_symbols. Declare unexec as void.
5370
5371 * cm.c [HAVE_TERMCAP_H]: Include <termcap.h>.
5372 [!HAVE_TERMCAP_H]: Prototype tputs, tgoto.
5373
5374 * alloc.c (lisp_malloc): Declare with POINTER_TYPE.
5375 [SYSTEM_MALLOC]: Make decls in malloc.h conditional on
5376 DOUG_LEA_MALLOC.
5377
5378 * alloca.c: Use #error.
5379 [POINTER_TYPE]: Use it.
5380
5381 * eval.c (Fdefvar): Doc fix.
5382
5383 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Avoid
5384 INITIALIZE_INTERVAL.
5385
5386 * buffer.h: Avoid DECLARE_INTERVALS.
5387
5388 * config.in: Add size_t.
5389
aae41d97
EZ
53902000-08-17 Eli Zaretskii <eliz@is.elta.co.il>
5391
5392 * w16select.c (set_clipboard_data): If there's not enough memory
5393 to put text into clipboard, return 1, as Fw16_set_clipboard_data
5394 expects. In case of other failures, return 3.
5395 (system_error_msg): New error message.
5396 (Fw16_set_clipboard_data): If set_clipboard_data returns 3, print
5397 system_error_msg.
5398
65aa5e85
GM
53992000-08-16 Gerd Moellmann <gerd@gnu.org>
5400
5401 * term.c (write_glyphs): Also turn off inverse video after turning
5402 off other appearances in case TS_exit_attribute_mode is not equal
5403 to TS_end_standout_mode.
5404 (insert_glyphs): Turn inverse video on/off for each run of glyphs
5405 with the same face.
5406 (turn_off_face): Reset standout_mode only if
5407 TS_exit_attribute_mode has been output and TS_exit_attribute_mode
5408 is equal to TS_end_standout_mode.
5409
ece23901
KH
54102000-08-16 Kenichi Handa <handa@etl.go.jp>
5411
9d7bcb2e
KH
5412 * coding.c (encode_coding): Fix the bug of not flushing ISO escape
5413 sequence at the end of the source block.
5414
ece23901
KH
5415 * ccl.c (Fccl_program_p): Docstring modified.
5416 (Fccl_execute): Likewise.
5417 (Fccl_execute_on_string): Likewise.
5418
5e30eaa2
EZ
54192000-08-16 Eli Zaretskii <eliz@is.elta.co.il>
5420
5421 * msdos.c (IT_write_glyphs): Convert cbp to unsigned char *.
5422
290602fd
KH
54232000-08-16 Kenichi Handa <handa@etl.go.jp>
5424
5425 The following changes are mainly to fix bugs of
5426 encode/decode-coding-string failing if encoding/decoding return
5427 CODING_FINISH_INSUFFICIENT_DST. In addition, delete the global
5428 variable conversion_buffer.
5429
5430 * ccl.c (CCL_WRITE_CHAR): If CH is eight-bit-control char,
5431 decrement dst_end to avoid buffer overflow in the later call of
5432 string_as_multibyte
5433
5434 * coding.h (conversion_buffer_size, conversion_buffer)
5435 (get_conversion_buffer): Extern deleted.
5436
5437 * coding.c (MINIMUM_CONVERSION_BUFFER_SIZE): Macro deleted.
5438 (conversion_buffer, conversion_buffer_size): Variables deleted.
5439 (get_conversion_buffer): Function deleted.
5440 (struct conversion_buffer): New structure.
5441 (MAX_ALLOCA): New macro.
5442 (allocate_conversion_buffer): New macro.
5443 (extend_conversion_buffer, free_conversion_buffer): New functions.
5444 (ccl_coding_driver): Set coding->result.
5445 (decode_coding): Set coding->result to CODING_FINISH_NORMAL if
5446 this is the last block of source.
5447 (encode_coding): Likewise. Handle the source block as the last
5448 one only when the whole source text is consumed.
5449 (decode_coding_string): Handle the case that the output buffer is
5450 too small to decode the whole source text. Use
5451 allocate_conversion_buffer, extend_conversion_buffer and
5452 free_conversion_buffer, not get_conversion_buffer.
5453 (encode_coding_string): Likewise.
5454 (init_coding): Function deleted.
5455 (init_coding_once): Delete code to initialize
5456 conversion_buffer_size.
5457
5458 * emacs.c (main): Don't call init_coding.
5459
5460 * msdos.c (IT_write_glyphs): Use a locally declared
5461 conversion_buffer.
5462
5463 * term.c (write_glyphs): Use a locally declared conversion_buffer.
5464 (insert_glyphs): Likewise.
5465
5466 * w32console.c (write_glyphs): Use a locally declared
5467 conversion_buffer.
5468
b9f80d41
EZ
54692000-08-15 Eli Zaretskii <eliz@is.elta.co.il>
5470
5471 * msdos.c (IT_update_begin): Don't crash if mouse_face_mouse_frame
5472 member of display_info is NULL.
5473
32dc52f7
GM
54742000-08-15 Gerd Moellmann <gerd@gnu.org>
5475
58ed0d3b
GM
5476 * alloc.c (compact_small_strings): Use safe_bcopy, add an
5477 assertion.
5478
32dc52f7 5479 * term.c (turn_off_face): Reset standout_mode when resetting
58ed0d3b 5480 appearances with capability `me'.
32dc52f7
GM
5481 (write_glyphs): Switch on inverse video before each face change.
5482
4eb22d33
DL
54832000-08-14 Dave Love <fx@gnu.org>
5484
5485 * alloc.c [HAVE_UNISTD_H]: Include unistd.h; don't declare sbrk.
5486 [!HAVE_UNISTD_H]: Use POINTER_TYPE to declare sbrk.
5487 (lisp_free): Declare and make static.
5488
5489 * window.c: Fix embedded comment.
5490 (syms_of_window): Fix doc string.
5491
90cbf47e
GM
54922000-08-14 Gerd Moellmann <gerd@gnu.org>
5493
5494 * keymap.c (push_key_description): If C without modifiers is < 32,
5495 make sure to print `C-' before `M-', like in the manual.
5496
440fc135
GM
54972000-08-11 Gerd Moellmann <gerd@gnu.org>
5498
5499 * fns.c (hashfn_eq, hashfn_eql): Don't handle strings specially
5500 since they aren't relocated anymore.
5501 (sxhash_string): Make sure returned hash code fits in a Lisp
5502 integer.
5503
5504 * xdisp.c (try_cursor_movement): Fix handling of cursor in
5505 partially visible line which is smaller than the window's
5506 height.
5507
6e264fad
KH
55082000-08-11 Kenichi Handa <handa@etl.go.jp>
5509
5510 * ccl.c (CCL_READ_CHAR): If source is multibyte, pay attention to
5511 the multibyte form of eight-bit-control characters.
5512 (Fccl_execute_on_string): Initialize ccl->multibyte.
5513
5514 * ccl.h (struct ccl_program): New member multibyte.
5515
5516 * coding.c (ccl_coding_driver): Initialize ccl->multibyte.
5517
c371f69a
KH
55182000-08-11 Kenichi Handa <handa@etl.go.jp>
5519
5520 * regex.c (regex_compile) <normal_char>: Pay attention to
5521 multibyteness.
5522 (analyse_first) <exactn>: Setup fastmap correctly for
5523 eight-bit-control characters.
5524
55252000-08-11 Kenichi Handa <handa@etl.go.jp>
5526
5527 * termhooks.h (enum event_kind): New member
5528 multibyte_char_keystroke.
5529
5530 * keyboard.c (make_lispy_event): Handle the new event type
5531 multibyte_char_keystroke.
5532
5533 * xterm.c: Include coding.h.
5534 (XTread_socket): Work around a bug of XmbLookupString. If the
5535 input is from XIM, decode it according to the current locale. In
5536 that case, generate multibyte_char_keystroke events.
5537
b8ddbe71
KH
55382000-08-11 Kenichi Handa <handa@etl.go.jp>
5539
5540 * xdisp.c (TRACE_MOVE) [GLYPH_DEBUG]: Delete the last semicolon.
5541 (TRACE_MOVE) [not GLYPH_DEBUG]: Define dummy.
5542
47589c8c
GM
55432000-08-10 Gerd Moellmann <gerd@gnu.org>
5544
5545 * xdisp.c (trace_move) [GLYPH_DEBUG]: New variable.
5546 (TRACE_MOVE) [GLYPH_DEBUG]: New macro.
5547 (move_it_in_display_line_to): Record iterator's ascent and descent
5548 before producing glyphs, and restore them when we know the glyph
5549 doesn't fit on the line.
5550 (move_it_to): Restructured so that it's easier to debug. If
5551 moving to a vpos, and not moving to an x or character position,
5552 stop as soon as the specified vpos is reached; don't move further
5553 into that line because that might change the computed line height.
5554 (try_cursor_movement): New function, extracted from the cursor
5555 movement branch of redisplay_window. If ending on a partially
5556 visible line, don't try to scroll if the cursor line is taller
5557 than the window.
5558 (redisplay_window): Use try_cursor_movement.
5559
5560 * window.c (Fwindow_end): Rewritten to not use Fvertical_motion,
5561 because that function doesn't cope with variable-height lines.
5562
5563 * xterm.c (x_draw_bar_cursor): If cursor is on an image, draw a
5564 box cursor because that's better visible for large images.
5565
c51bacd6
MB
55662000-08-10 Miles Bader <miles@gnu.org>
5567
5568 * w32term.c (note_mouse_highlight): Update calls to overlays_at.
5569
bea56df7
GM
55702000-08-10 Gerd Moellmann <gerd@gnu.org>
5571
5572 * xdisp.c (Vmessages_buffer_name): New variable.
5573 (message_dolog): Use it.
5574 (syms_of_xdisp): Initialize it.
5575
99cd7364
EZ
55762000-08-10 Eli Zaretskii <eliz@is.elta.co.il>
5577
5578 * msdos.c (IT_note_mouse_highlight): Update the calls to
5579 overlays_at.
5580 (toplevel) <kbd_buffer_store_event>: Remove prototype, it's
5581 redundant now that keyboard.h is included.
5582
7d093d56
EZ
55832000-08-09 Eli Zaretskii <eliz@is.elta.co.il>
5584
5585 * keyboard.c (kbd_buffer_events_waiting): New function.
5586
5587 * keyboard.h (kbd_buffer_events_waiting): Add prototype.
5588
5589 * msdos.c: Include keyboard.h.
5590 (XMenuActivate): Empty no_event events from the event buffer. If
5591 no events are left after that, call clear_input_pending.
5592 (mouse_clear_clicks): New function, code moved from mouse_init.
5593 (mouse_init, XMenuActivate): Call mouse_clear_clicks to force the
5594 mouse driver to ``forget'' any past clicks.
5595
5596 * Makefile.in (msdos.o): Depend on keyboard.h.
5597
41e757a6
GM
55982000-08-09 Gerd Moellmann <gerd@gnu.org>
5599
8e7bd231
GM
5600 * lisp.h (input_pending): External declaration.
5601
5602 * dispextern.h (Qredisplay_dont_pause): Declare extern.
5603
5604 * xdisp.c (echo_area_display): Display thoroughly if input is
5605 pending. Bind redisplay-dont-pause to t during the redisplay.
5606 in case input is pending.
5607
5608 * dispnew.c (Qredisplay_dont_pause): New variable.
5609 (syms_of_display): Initialize and staticpro it.
5610 (update_frame_1): Don't interrupt the display for pending input if
5611 redisplay_dont_pause is set.
5612
43028b7e
GM
5613 * dispnew.c (mode_line_string): Declare parameter MODE_LINE_P.
5614
41e757a6
GM
5615 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
5616
2f2174fa
KH
56172000-08-09 Miles Bader <miles@lsi.nec.co.jp>
5618
5619 * callproc.c (Fcall_process): Terminate the unwind-protect around
5620 the post-read-conversion of coding system.
5621
0a6fd67e
MB
5622 * buffer.c (overlays_at): Add CHANGE_REQ parameter.
5623 (Foverlays_at, Fnext_overlay_change, Fprevious_overlay_change): Use it.
5624 * buffer.h (overlays_at): Update prototype.
5625 * xdisp.c (next_overlay_change): Update call to overlays_at.
5626 * xfaces.c (face_at_buffer_position): Likewise.
5627 * textprop.c (Fget_char_property): Likewise.
5628 * xterm.c (note_mouse_highlight): Likewise.
5629
0c80756e
MB
5630 * minibuf.c (do_completion): Don't consider a simple change of
5631 case as `completion'.
5632
975f250a
KR
56332000-08-08 Ken Raeburn <raeburn@gnu.org>
5634
b347b3fd
KR
5635 * keyboard.c (syms_of_keyboard): Initialize
5636 last_point_position_buffer.
5637 * undo.c (record_delete): Make sure last_point_position_buffer is
5638 a buffer before comparing pointers.
5639
5640 * coding.h (decode_coding_string): Declare.
5641
5642 * intervals.h (Fprevious_single_char_property_change): Declare.
5643
5644 * textprop.c (Fprevious_single_char_property_change): Don't do
5645 arithmetic directly on lisp objects.
5646
25ad1371 5647 * editfns.c (find_field): Use EQ, not ==, to compare Lisp
b347b3fd
KR
5648 objects.
5649
5650 * keyboard.h (menu_item_eval_property): Declare.
5651
5652 * xdisp.c (message_dolog): Save and protect string "*Messages*" to
5653 reuse as buffer name, instead of recreating (and discarding) every
5654 time a message is logged.
5655 (with_echo_area_buffer): Make callback arg A2 a lisp object.
25ad1371
GM
5656 (current_message_1, truncate_message_1, set_message_1)
5657 (display_echo_area_1, resize_mini_window_1): Signatures changed.
5658 (current_message, truncate_echo_area, display_echo_area)
5659 (resize_echo_area_axactly): Changed calls.
b347b3fd 5660
975f250a 5661 * coding.c (find_safe_codings): CHAR_TABLE_SET index must be a
25ad1371 5662 Lisp object.
975f250a 5663 (Ffind_coding_systems_region_internal): First argument to Fappend
25ad1371 5664 must be an integer, not a Lisp object.
975f250a 5665
46dc9912
KH
56662000-08-08 Kenichi Handa <handa@etl.go.jp>
5667
5668 * charset.c (Fchar_width): Doc fix.
5669
9f6d1a6c
GM
56702000-08-08 Gerd Moellmann <gerd@gnu.org>
5671
5672 * charset.c (Fstring_width): Doc fix.
5673
ff3d9573
GM
56742000-08-07 Gerd Moellmann <gerd@gnu.org>
5675
41e757a6 5676 * xdisp.c (start_display): When starting display on a continuation
49ad1d99
GM
5677 line, clear ascent and descent members of the iterator structure;
5678 the height of the continued line does not affect the height of the
5679 continuation line.
5680 (make_cursor_line_fully_visible): Do nothing if cursor is on a
5681 line taller than the window.
5682 (redisplay_window) <forced window start>: Handle case that the
5683 middle of the window is not found in any row.
5684 (dump_glyph_row): Show more information.
5685 (compute_line_metrics): Use MATRIX_FIRST_TEXT_ROW to determine the
5686 first text line in a glyph matrix.
5687
5688 * xterm.c (x_draw_image_foreground): Avoid drawing outside
5689 of the clip area when image doesn't have a mask.
5690
70fc58b3
GM
5691 * fns.c (sweep_weak_table): Fix survival conditions for
5692 key-or-value and key-and-value weakness.
5693
5694 * .gdbinit (xhashtable): New command.
5695
ac0e96ee
GM
5696 * fns.c (sweep_weak_hash_tables): Fix the code taking unmarked
5697 tables out of the list of all weak hash tables.
5698
ff3d9573
GM
5699 * xdisp.c (ensure_echo_area_buffers): If a buffer was killed, and
5700 a new buffer is created, make sure echo_area_buffer[] references
5701 the new buffer.
5702
e0d8827b
EZ
57032000-08-07 Eli Zaretskii <eliz@is.elta.co.il>
5704
5705 * msdos.c (Fmsdos_set_mouse_buttons): Add missing backslashes in
5706 the doc string.
5707
c6f35378
KH
57082000-08-07 Kenichi Handa <handa@etl.go.jp>
5709
5710 * syntax.c (skip_chars): Fix previous change. Make the handling
5711 of unibyte string consistent with that of regex search.
5712
1fd4c450
GM
57132000-08-05 Gerd Moellmann <gerd@gnu.org>
5714
e49aa397
GM
5715 * xmenu.c (popup_get_selection): Use xfree instead of free.
5716
5717 * fileio.c (Finsert_file_contents): Use xfree instead of free.
5718
5719 * editfns.c (Ftranspose_regions): Use xfree instead of free.
5720
5721 * callproc.c (child_setup): Use xfree instead of free.
5722
5723 * sysdep.c (opendir, GetTempDirName, run_mac_command): Use xmalloc
5724 instead of malloc.
5725 (run_mac_command, closedir): Use `xfree' instead of `free'.
5726
5727 * keymap.c (current_minor_maps): Use xmalloc instead of malloc.
5728
5729 * eval.c (error): Use xfree instead of free.
5730
1fd4c450
GM
5731 * xfaces.c, xfns.c, w32fns.c: Replace `illegal' with `invalid'.
5732
5733 * fns.c: Replace `illegal' with `invalid'.
e49aa397 5734 (Fmake_hash_table, make_hash_table): Allow table size of 0.
1fd4c450 5735
82d497fc
KH
57362000-08-05 Kenichi Handa <handa@etl.go.jp>
5737
5738 * syntax.c (skip_chars): Fix handling of multibyte<->unibyte
5739 conversion.
5740
59f953a2
NF
57412000-08-04 Noah Friedman <friedman@splode.com>
5742
5743 * fns.c (Fmake_hash_table): Add missing `\n\' to end of line in
5744 docstring.
5745
688351f2
GM
57462000-08-04 Gerd Moellmann <gerd@gnu.org>
5747
5748 * syntax.c (skip_chars): Fix typo in error message.
5749
2dad51cc
AS
57502000-08-04 Andreas Schwab <schwab@suse.de>
5751
5752 * m/ia64.h: Moved from s/ia64.h.
5753
99bb2c60
KH
57542000-08-04 Kenichi Handa <handa@etl.go.jp>
5755
082a1df2
KH
5756 * process.c (read_process_output): Big simplification. Handle
5757 composition and post-read-conversion of coding system correctly.
5758 (send_process): Handle composition correctly.
5759
5760 * callproc.c (Fcall_process): Handle post-read-conversion of
5761 coding system if any.
5762
99bb2c60
KH
5763 * coding.c (decode_coding_iso2022): More strict check for handling
5764 single shifting.
082a1df2
KH
5765 (coding_restore_composition): Pay attention to the case that
5766 cmp_data is not set properly (because of invalid code in the
5767 source text).
5768 (run_pre_post_conversion_on_str): Include text properties in the
5769 resulting string.
5770 (decode_coding_string): Set members of coding correctly.
99bb2c60 5771
f4988be7
GM
57722000-08-03 Gerd Moellmann <gerd@gnu.org>
5773
5774 * s/ia64.h: New file.
5775
5776 * widget.c (set_frame_size, update_wm_hints, EmacsFrameSetValues):
5777 Use NULL instead of 0 at the end of variable argument list of
5778 XtVaGetValues and XtVaSetValues, because 0 fails on systems where
5779 sizeof (int) < sizeof (void *).
5780
5781 * xmenu.c (update_frame_menubar): Use NULL instead of 0 at the end
5782 of variable argument lists of XtVaGetValues and XtVaSetValues.
5783
5784 * xfns.c (Fx_file_dialog): Use NULL instead of 0 at the end of
5785 variable argument lists of XtVaGetValues and XtVaSetValues.
5786
ead53494
GM
57872000-08-02 Gerd Moellmann <gerd@gnu.org>
5788
5789 * alloc.c (lisp_malloc, lisp_free): Use size_t and POINTER_TYPE.
5790 (xrealloc, xmalloc): Use size_t. Some callers adjusted.
5791
5792 * lisp.h (Fsingle_key_description, xmalloc, xrealloc): Change
5793 prototype.
5794
5795 * keyboard.c (read_char_minibuf_menu_prompt): Add new parameter
5796 in call to Fsingle_key_description.
5797
5798 * keymap.c (Fsingle_key_description): Add parameter NO_ANGLES.
5799 Callers changed.
5800
58012000-08-02 Colin Walters <walters@cis.ohio-state.edu>
5802
5803 * window.c (display_buffer_reuse_frames): New variable.
5804 (Fdisplay_buffer): If display_buffer_reuse_frames is set, reuse
5805 frames displaying BUFFER.
5806 (syms_of_window): Define Lisp variable
5807 display-buffer-reuse-frames.
5808
10b0f752
MB
58092000-08-01 Miles Bader <miles@gnu.org>
5810
5811 * editfns.c (Fconstrain_to_field): Fix the conditions for deciding
5812 when to constrain NEW_POS (they were pretty screwed up before).
5813
16425c4a
EZ
58142000-07-31 Eli Zaretskii <eliz@is.elta.co.il>
5815
5816 * msdos.c (run_msdos_command): Save and restore the master
5817 environment, for the case that child_setup signals an error.
5818 When mirroring slashes in DOS shell commands, don't fail when
5819 argv[2] has embedded blanks.
da288c14
EZ
5820 (Fmsdos_set_mouse_buttons, mouse_setup_buttons): New functions.
5821 (syms_of_msdos): Defsubr Fmsdos_set_mouse_buttons.
5822 (dos_ttraw): Call mouse_setup_buttons.
16425c4a
EZ
5823
5824 * callproc.c (child_setup) [MSDOS]: malloc pwd_var instead of
5825 using alloca; free it after run_msdos_command returns.
5826
27f73852
DL
58272000-07-27 Dave Love <fx@gnu.org>
5828
5829 * s/irix6-5.h (IRIX_FORCE_32_BITS, LD_SWITCH_SYSTEM): Don't
5830 define.
5831 [_MIPS_SZLONG == 64]: Set up for 64-bit mode -- not currently
5832 working.
5833
5834 * m/iris4d.h (XUINT, XSET, XUNMARK) [_LP64]: Don't define.
5835
c0261b5e
EZ
58362000-07-27 Eli Zaretskii <eliz@is.elta.co.il>
5837
5838 * editfns.c (lisp_time_argument): Fix last change.
5839
b548072f
GM
58402000-07-27 Gerd Moellmann <gerd@gnu.org>
5841
3ab82477
GM
5842 * fns.c (Fdelete): Make it work on vectors and strings in addition
5843 to lists.
5844
b548072f
GM
5845 * fns.c (Qkey_or_value, Qkey_and_value): New variables.
5846 (syms_of_fns): Initialize new variables.
5847 (sweep_weak_table): Handle weakness `key-or-value' and
5848 `key-and-value'.
5849 (Fmake_hash_table): Recognize `key-and-value' and `key-or-value'
5850 weakness, with t meaning the same as `key-and-value'.
5851
91ae8751
KH
58522000-07-27 Kenichi Handa <handa@etl.go.jp>
5853
5854 * coding.h (struct coding_system): Member safe_charset deleted.
5855
5856 * coding.c (Qsafe_charsets): This variable deleted.
5857 (Qsafe_chars, Vchar_coding_system_table, Qchar_coding_system): New
5858 variables.
5859 (coding_safe_chars): New function.
5860 (CODING_SAFE_CHAR_P): New macro.
5861 (CHARSET_OK): New arg C. Call CODING_SAFE_CHAR_P instead of
5862 checking safe_charsets member of the coding system. Caller
5863 changed.
5864 (detect_coding_iso2022): New local variable safe_chars.
5865 (DECODE_DESIGNATION): Call CODING_SAFE_CHAR_P instead of checking
5866 safe_charsets member of the coding system.
5867 (decode_coding_iso2022): New local variable safe_chars.
5868 (ENCODE_ISO_CHARACTER_DIMENSION1): Don't check unsafe chars here.
5869 (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
5870 (ENCODE_ISO_CHARACTER): Arguments changed. Caller changed.
5871 (ENCODE_UNSAFE_CHARACTER): New macro.
5872 (encode_coding_iso2022): New local variable safe_chars. Check
5873 unsafe chars.
5874 (setup_coding_system): Delete the code to initialize
5875 coding->safe_charses
5876 (intersection, find_safe_codings): New functions.
5877 (Ffind_coding_systems_region_internal): New function.
5878 (syms_of_coding): Defsubr it. Initialize Qsafe_chars,
5879 Qsafe_cding_system. Make Vchar_coding_system_table a Lisp
5880 variable and initialize it.
5881
5882 * fns.c (char_table_ref_and_index): New function.
5883
5884 * lisp.h (char_table_ref_and_index): Add prototype.
5885
34a7a267
SS
58862000-07-26 Sam Steingold <sds@gnu.org>
5887
5888 * editfns.c (lisp_time_argument): Added third argument `usec'.
3ab82477 5889 (Ffloat_time): New built-in Lisp function.
34a7a267 5890
a95cb10a
GM
58912000-07-26 Gerd Moellmann <gerd@gnu.org>
5892
3353ef5a
GM
5893 * dispextern.h (GLYPH_FROM_CHAR_GLYPH): Use CHARACTERBITS bits
5894 for the character code.
5895
5896 * config.in (HAVE_SOUND): Define only for FreeBSD, NetBSD and
5897 GNU/Linux.
5898
a95cb10a
GM
5899 * xmenu.c (menu_highlight_callback): Call show_help_echo directly
5900 if called for a popup menu.
5901 (xmenu_show): Store help string in widget values.
5902
b4a12321
DL
59032000-07-26 Dave Love <fx@gnu.org>
5904
5905 * syswait.h: Move some definitions.
5906 (HAVE_SYS_WAIT_H): Undef for HPUX7, Convex.
5907 [!HAVE_SYS_WAIT_H]: Define things unconditionally. More
5908 perspicuous definitions.
5909 (WTERMSIG): Fix bit pattern used.
5910
13f5ad37
KH
59112000-07-26 Kenichi Handa <handa@etl.go.jp>
5912
5913 * print.c (print_object): If vector printing is truncated, print
5914 "..." to indicate it as well as the case of list printing.
5915
070fe99c
GM
59162000-07-25 Gerd Moellmann <gerd@gnu.org>
5917
969065c3
GM
5918 * xdisp.c (next_element_from_display_vector): Improve comments.
5919
5920 * lisp.h (GLYPH_MASK_CHAR, GLYPH_MASK_FACE): Use 19 bits
5921 for the character code, and the rest for the face id as in 20.x.
5922 (FAST_GLYPH_FACE, FAST_MAKE_GLYPH): Changed accordingly.
5923
5924 * window.c (window_display_table): Cleaned up.
5925
070fe99c
GM
5926 * syntax.c (Fforward_word): Add last arg nil in call of
5927 Fconstrain_to_field.
5928
bad77ef7
EZ
59292000-07-25 Eli Zaretskii <eliz@is.elta.co.il>
5930
969065c3 5931 * fileio.c (Frename_file) [DOS_NT]: If the file names are
bad77ef7
EZ
5932 identical but for the letter-case, don't call
5933 barf_or_query_if_file_exists.
5934
c28da489
MB
59352000-07-25 Miles Bader <miles@gnu.org>
5936
5937 * editfns.c (find_field): Honor special `boundary' fields.
5938 (Qboundary): New variables.
5939 (syms_of_editfns): Initialize Qboundary.
5940 (Fconstrain_to_field): Add the INHIBIT-CAPTURE-PROPERTY argument.
5941 Use scan_buffer instead of find_before_next_newline, because it
5942 allows us to detect the boundary case where there's a newline at
5943 the search limit.
5944 * lisp.h (Fconstrain_to_field): Update external declaration.
5945
e3c31fd5
GM
59462000-07-24 Gerd Moellmann <gerd@gnu.org>
5947
5948 * print.c (temp_output_buffer_setup): Don't call1 Vrun_hooks
5949 if that is nil.
c28da489 5950
c66c29a2
DL
59512000-07-24 Dave Love <fx@gnu.org>
5952
5953 * s/sunos4-0.h, s/sol2.h:
5954 (LIBS_TERMCAP): Move from m/sparc.h.
5955
5956 * m/sparc.h (TERMINFO): Moved to system files (probably only
5957 relevant for sunos4 judging by its vintage).
5958 (BITS_PER_LONG, BITS_PER_EMACS_INT, _LP64): Define conditional on
5959 __arch64__.
5960
fbe0a958
EZ
59612000-07-24 Eli Zaretskii <eliz@is.elta.co.il>
5962
5963 * xmenu.c (keymap_panes): Pass the keymap's prompt as the pane
5964 name to single_keymap_panes.
5965
7d88e5c9
AS
59662000-07-24 Andreas Schwab <schwab@suse.de>
5967
5968 * fns.c (Fmakehash): Pass Qeql to Fmake_hash_table if TEST is nil.
5969
e024b101
GM
59702000-07-24 Gerd Moellmann <gerd@gnu.org>
5971
5972 * xdisp.c (with_echo_area_buffer): Take additional EMACS_INT
5973 parameters instead of using int parameters. Expect FN to accept
5974 EMACS_INT parameters.
5975 (display_echo_area, resize_echo_area_axactly, current_message)
5976 (truncate_echo_area, set_message_1): Call with_echo_area_buffer
5977 with new argument list.
5978 (resize_mini_window_1): New callback function.
5979 (current_message_1, truncate_message_1, set_message_1): Change
5980 parameter lists to the new format expected by
5981 with_echo_area_buffer.
5982
25c1a9ce
KH
59832000-07-24 Kenichi Handa <handa@etl.go.jp>
5984
5985 * fontset.c (fontset_ref): Remove INLINE declaration.
5986 (fontset_ref_via_base): Likewise.
5987 (Fset_fontset_font): Convert FAMILY and REGISTRY specifications
5988 to downcase.
5989
7f987ac0
EZ
59902000-07-23 Eli Zaretskii <eliz@is.elta.co.il>
5991
5992 * msdos.c (IT_note_mouse_highlight): Process overlays in the
5993 correct order of priority. If help echo was found in an overlay,
5994 use that overlay as the object in which the help echo was found.
5995
e2db3069
MB
59962000-07-22 Miles Bader <miles@gnu.org>
5997
5998 * textprop.c (Fprevious_single_char_property_change): The initial
5999 property value should be from the position preceding POSITION, not
6000 following it.
6001
5e3203e4
EZ
60022000-07-22 Eli Zaretskii <eliz@is.elta.co.il>
6003
6004 * coding.c (syms_of_coding): Doc fix for
6005 inhibit-iso-escape-detection.
6006
62145073
GM
60072000-07-21 Gerd Moellmann <gerd@gnu.org>
6008
c20aeb83
GM
6009 * xterm.c (note_mouse_highlight): Process overlays in the right
6010 order of priority.
34a7a267 6011
743934db
GM
6012 * keyboard.c (show_help_echo, gen_help_event): Extend comments.
6013
6014 * xterm.c (note_mouse_highlight): If help-echo was found in an
6015 overlay, use that overlay as the object in which the help was
6016 found.
6017
d1dc7e43 6018 * window.c (foreach_window_1): Fix typo reversing an if-condition.
34a7a267 6019
62145073
GM
6020 * window.c (foreach_window): Instead of a fake variable argument
6021 list, take one USER_DATA argument.
6022 (foreach_window_1): Likewise, and call callback functions with two
6023 args, the window and USER_DATA.
6024 (struct check_window_data): New struct.
6025 (check_window_containing): Use it.
6026 (window_from_coordinates): Set up a struct check_window_data for
6027 foreach_window.
6028 (add_window_to_list, freeze_window_start): Change parameters
6029 according to new calling convention.
6030
6031 * window.h (foreach_window): Change prototype.
6032
6033 * buffer.c (Fprevious_overlay_change): Avoid memory leak.
6034
60352000-07-21 Eli Zaretskii <eliz@is.elta.co.il>
6036
6037 * xmenu.c (menu_help_callback): Call show_help_echo with
6038 additional arguments OBJECT and POS.
6039
11270583
KH
60402000-07-21 Kenichi Handa <handa@etl.go.jp>
6041
07b14857
KH
6042 * data.c (Faset): Allow storing any multibyte character in a
6043 string. Convert unibyte string to multibyte if necessary.
6044
11270583
KH
6045 * xfns.c (x_encode_text): New function.
6046 (x_set_name): Use x_encode_text.
6047 (x_set_title): Likewise.
6048
6049 * xselect.c (lisp_data_to_selection_data): Use x_encode_text.
6050
6051 * xterm.h (x_encode_text): Add prototype.
6052
bc75b4fd
DL
60532000-07-20 Dave Love <fx@gnu.org>
6054
6055 * ccl.c (Fccl_execute_on_string): Don't check xmalloc return. Use
6056 xfree, not free.
6057
48c14970
EZ
60582000-07-20 Eli Zaretskii <eliz@is.elta.co.il>
6059
6060 * msdos.c (help_echo_window): New variable.
6061 (syms_of_msdos): Initialize and staticpro it.
6062 (IT_note_mode_line_highlight): Set help_echo_window.
6063 (IT_note_mouse_highlight): Ditto.
6064 (dos_rawgetc): Store help_echo_window in the second event produced
6065 for HELP_EVENTs.
6066
6067 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight):
6068 Record the object that generated the help echo and the position of
6069 that object in help_echo_object and help_echo_pos. Record that
6070 some glyphs in a row are displayed in mouse-face.
6071 (IT_update_begin): Don't clear mouse highlight unless one of the
6072 enabled glyph rows is marked as being displayed in mouse-face.
6073 (dos_rawgetc): Generate 2 events for HELP_EVENT. Pass the object
6074 and position recorded in help_echo_object and help_echo_pos to the
6075 event queue.
6076 (IT_menu_display): Accept a new argument PN: the pane number of
6077 the current menu pane. Record the pane number and the item
6078 number of the item which has associated help string.
6079 (XMenuActivate): Update the prototype for help_callback in
6080 function declaration. Call IT_menu_display with the current menu
6081 pane number as an additional argument. Call help_callback with
6082 two additional arguments: the pane number and the item number of
6083 the menu item associated with the help text.
6084 (help_echo_object, help_echo_pos): New variables.
6085 (syms_of_msdos): Initialize them and staticpro help_echo_object.
6086
6087 * msdos.h (XMenuActivate): Update prototype.
6088
4279296d
GM
60892000-07-19 Gerd Moellmann <gerd@gnu.org>
6090
47db06aa
GM
6091 * xdisp.c (with_echo_area_buffer): Call FN with more arguments.
6092 Add some more prototypes.
6093
6094 * xterm.c, xterm.h: Add some more prototypes.
6095
6096 * lisp.h (Fnext_single_char_property_change): Add prototype.
6097
6098 * dispnew.c (direct_output_for_insert): Remove confusing
6099 outer local variable mouse_face_overwritten_p.
6100 (glyph_row_slice_p): Put in #ifdef GLYPH_DEBUG.
6101
4279296d
GM
6102 * alloc.c (allocate_string_data): Don't copy old string contents.
6103
670acd62
KH
61042000-07-19 Kenichi Handa <handa@etl.go.jp>
6105
6106 * coding.c (code_convert_region): Delete text properties before
6107 shrinking the conversion region.
6108
7cea38bc
GM
61092000-07-18 Gerd Moellmann <gerd@gnu.org>
6110
dc1cac59
GM
6111 * dispnew.c (update_text_area): Write the whole row if it
6112 has mouse-face in it.
6113
85a8aca9
GM
6114 * xfaces.c (face-alternative-font-family-alist): Remove
6115 DEFVAR_LISP; staticpro instead.
6116
34a7a267 6117 * xmenu.c (menu_help_callback): Call show_help_echo with
7cea38bc
GM
6118 new arguments.
6119
6120 * keyboard.c (show_help_echo): Add parameter WINDOW.
6121 (read_char): Call show_help_echo with window extracted from Lisp
6122 help event.
6123 (gen_help_event): Add parameter WINDOW.
6124
6125 * keyboard.h (show_help_echo, gen_help_event): Change prototypes.
6126
6127 * xterm.c (help_echo_window): New variable.
6128 (note_mouse_highlight, note_tool_bar_highlight): Set
6129 help_echo_window.
6130 (XTread_socket): Pass help_echo_window to gen_help_event.
6131 (syms_of_xterm): Initialize and staticpro help_echo_window.
6132
f8276b77
DL
61332000-07-18 Dave Love <fx@gnu.org>
6134
6135 * Makefile.in: Fix dependencies of blockinput.h on atimer.h,
6136 systime.h.
6137
088831a6
GM
61382000-07-18 Gerd Moellmann <gerd@gnu.org>
6139
3d6cd763
GM
6140 * alloc.c (allocate_string_data): If string had already data
6141 assigned, copy old contents to new string data.
6142
6143 * coding.c (syms_of_coding): Fix typo in spelling of variable
6144 `inhibit-iso-escape-detection'.
6145
088831a6
GM
6146 * alloca.c (free) [emacs && EMACS_FREE]: Define as EMACS_FREE.
6147
6148 * Makefile.in: Add dependencies on dispextern.h.
6149 (alloca.o): Don't define malloc and define EMACS_FREE instead of
6150 `free'; both can conflict with system header files.
6151
bc8a8d55
KH
61522000-07-18 Kenichi Handa <handa@etl.go.jp>
6153
6154 * charset.h (MAKE_CHAR): Return reasonable code even if CHARSET is
6155 undefined.
6156
069f5950
DL
61572000-07-18 Dave Love <fx@gnu.org>
6158
6159 * window.c (Fwindow_list): Declare arg `window'.
6160
aa96c820
KH
61612000-07-18 Kenichi Handa <handa@etl.go.jp>
6162
6163 * coding.c (setup_coding_system): Don't override the explicitly
6164 specified designations.
6165
06be8d32
MB
61662000-07-15 Miles Bader <miles@gnu.org>
6167
6168 * editfns.c (char_property_eq, char_property_stickiness): Renamed
6169 from `text_property_eq' and `text_property_stickiness', respectively.
6170 (find_field, Fconstrain_to_field, char_property_eq)
6171 (char_property_stickiness): Changed to call char-property functions
6172 instead of text-property-only ones.
6173
6174 * textprop.c (Fnext_single_char_property_change): Made a subr (was
6175 `next_single_char_property_change'). Do more error checking, and
6176 cleanup limit behavior.
6177 (Fprevious_single_char_property_change): New function.
6178 (syms_of_textprop): Initialize new subrs.
6179
6180 * xdisp.c (display_prop_end, invisible_text_between_p):
6181 Call Fnext_single_char_property_change instead of
6182 next_single_char_property_change.
6183
3fddcdc3
JR
61842000-07-15 Jason Rumney <jasonr@gnu.org>
6185
6186 * w32menu.c (w32_menu_show): Call free_menubar_widget_value_tree
6187 after menu is finished with.
6188 (add_menu_item): Only consider wv->title as a menu title.
6189 (w32_menu_display_help): Add OBJECT and POS to show_help_echo.
6190
6191 * w32fns.c (w32_wnd_proc) [WM_DRAW_ITEM]: Do not try to draw a
6192 null title.
6193 (FONT_REGEXP): Remove unused macro, and its sub-components.
6194 (syms_of_w32fns): Replace underscore in w32-enable-synthesized-fonts.
6195
6196 * w32term.c (help_echo_object, help_echo_pos): New variables.
6197 (note_mode_line_highlight): Store additional information about the
6198 help-echo in help_echo_object and help_echo_pos. Check both
6199 `local-map' and `keymap' properties for changing the cursor
6200 (note_mouse_highlight): Store additional information about the
6201 help-echo in help_echo_object and help_echo_pos.
6202 (note_tool_bar_highlight): Set help_echo_object to nil and
6203 help_echo_pos to -1.
6204 (w32_read_socket): Use gen_help_event instead of filling
6205 input_events manually.
6206 (syms_of_w32term): Staticpro help_echo_object.
6207 (x_update_window_end): Add parameter MOUSE_FACE_OVERWRITTEN_P. If
6208 set, arrange for a mouse-highlight redisplay in
6209 XTframe_up_to_date.
6210 (x_clear_mouse_face): New function.
6211 (w32_redisplay_interface): Add pointer to x_clear_mouse_face.
6212 (x_update_window_begin): No need to turn off the mouse
6213 highlight here.
6214 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6215 depending on whether they contain glyphs highlighted in
6216 mouse-face.
6217 (x_fill_stretch_glyph_string): Consume runs of stretch
6218 glyphs instead of a single one.
6219 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6220 with new argument list.
6221 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6222 (x_append_glyph, x_append_composite_glyph)
6223 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6224 changes in struct glyph starting 1999-12-27. See comments for
6225 xterm.c on 2000-07-05.
6226
178c5d9c
SS
62272000-07-14 Sam Steingold <sds@gnu.org>
6228
6229 * xfaces.c (realize_x_face): Fix the last patch:
6230 check `default_face' before dereferencing.
6231
6fe533f6
DL
62322000-07-14 Dave Love <fx@gnu.org>
6233
069f5950 6234 * syntax.c (back_comment): Add null default in switch (for pcc).
6fe533f6 6235
dd7b81cf
KH
62362000-07-14 Kenichi Handa <handa@etl.go.jp>
6237
0693904a 6238 * xfaces.c (realize_x_face): Make fontset using the base of the
178c5d9c 6239 default_face's fontset, not using the default fontset.
0693904a 6240
dd7b81cf
KH
6241 * coding.c (inhibit_iso_escape_detection): New variable.
6242 (syms_of_coding): Make it a Lisp variable.
6243 (detect_coding_iso2022): If inhibit_iso_escape_detection is
6244 nonzero, ignore ISO2022's escape sequence.
6245
d5aa31d8
GM
62462000-07-14 Gerd Moellmann <gerd@gnu.org>
6247
e5acf0ca
GM
6248 * alloca.c (malloc) [emacs]: Define as xmalloc.
6249
bd23a692
GM
6250 * xfns.c (Fx_show_tip): If frame parameters contain a position,
6251 use that instead of the mouse position. Add parameters DX and DY.
6252
6253 * dispextern.h (Fx_show_tip): Adjust number of parameters
6254 in prototype.
6255
9662da0b
GM
6256 * keyboard.c (show_help_echo): Add parameters OBJECT and POS.
6257 if HELP is a function, call it with OBJECT and POS as parameters
6258 to get the help to display.
6259 (gen_help_event, kbd_buffer_store_help_event): New functions.
6260 (kbd_buffer_get_event): Construct the Lisp help-event differently.
6261 (read_char): Call show_help_echo with new parameters.
6262
178c5d9c 6263 * keyboard.h (gen_help_event, kbd_buffer_store_help_event):
9662da0b
GM
6264 Add prototypes.
6265
6266 * xterm.c (help_echo_object, help_echo_pos): New variables.
6267 (note_mode_line_highlight): Store additional information about the
6268 help-echo in help_echo_object and help_echo_pos. Check both
6269 `local-map' and `keymap' properties for changing the cursor
6270 (note_mouse_highlight): Store additional information about the
6271 help-echo in help_echo_object and help_echo_pos.
6272 (note_tool_bar_highlight): Set help_echo_object to nil and
6273 help_echo_pos to -1.
6274 (XTread_socket): Use gen_help_event instead of filling
6275 input_events manually.
6276 (syms_of_xterm): Staticpro help_echo_object.
6277
6278 * xmenu.c (menu_highlight_callback): Use
6279 kbd_buffer_store_help_event instead of setting up and input_event
6280 structure manually.
6281
6282 * xdisp.c (eval_form): GCPRO argument sexpr.
6283 (call_function): New function.
6284 (handle_single_display_prop): Use call_function and FUNCTIONP
6285 instead of checking whether if font_height is a symbol and
6286 using eval_form.
6287
6288 * eval.c (internal_condition_case_2): New function.
6289
6290 * lisp.h (FUNCTIONP): New macro.
6291 (internal_condition_case_2, call_function): Add prototypes.
6292
d5aa31d8
GM
6293 * xterm.c (construct_mouse_click, x_scroll_bar_to_input_event)
6294 (x_scroll_bar_handle_click, SET_SAVED_MENU_EVENT, XTread_socket):
6295 Always set `arg' member of input_events.
6296 (construct_menu_click): Unused function removed.
6297
6298 * msdos.c (dos_rawgetc): Always set `arg' member of input_events.
6299
6300 * w32term.c (construct_mouse_click, construct_mouse_wheel)
6301 (construct_drag_n_drop, x_scroll_bar_handle_click)
6302 (w32_read_socket): Always set `arg' member of input_events.
6303
6304 * keyboard.c (show_help_echo): Use eval_form. Add comment.
6305
6306 * lisp.h (eval_form): Add prototype.
6307
6308 * xdisp.c (eval_form): Make it externally visible.
6309
0f1a9b23
GM
63102000-07-13 Gerd Moellmann <gerd@gnu.org>
6311
6312 * xterm.c (x_handle_tool_bar_click): Store the frame in the
6313 frame_or_window slot of TOOL_BAR_EVENT input events instead of
6314 consing. For prefix events, store the frame in the `arg' slot of
6315 the event, otherwise store the key there.
6316 (XTread_socket): Instead of consing, use the frame_or_window slot
6317 of HELP_EVENTs for the frame, and the `arg' slot for the help
6318 string.
6319
6320 * xmenu.c (menu_highlight_callback): Store help string in the
6321 `arg' member of the input event; don't cons.
6322 (menubar_selection_callback): Use the `arg' slot of input events
6323 to queue additional information, instead of consing.
6324
6325 * msdos.c (dos_rawgetc): Adapt to change of HELP_EVENTs.
6326
6327 * w32term.c (w32_handle_tool_bar_click): Adapt to changes in
6328 TOOL_BAR_EVENTs.
6329 (w32_read_socket): Adapt to changes in HELP_EVENTs.
6330
6331 * w32menu.c (menubar_selection_callback): Use the `arg' slot of
6332 input events to queue additional information, instead of consing.
6333
6334 * keyboard.c (kbd_buffer_gcpro): Renamed from
6335 kbd_buffer_frame_or_window. Now used for all Lisp objects
6336 referenced from the input queue.
6337 (kbd_buffer_store_event): Always use structure assignment for
6338 copying input events. Record all Lisp objects referenced from
6339 events in kbd_buffer_gcpro.
6340 (kbd_buffer_get_event): Construct Lisp `help-echo' events
6341 differently from input events. Test for prefix menu_bar_events
6342 and TOOL_BAR_EVENTs differently. Reset all slots used by an input
6343 event in kbd_buffer_gcpro to nil.
6344 (make_lispy_event) <TOOL_BAR_EVENT>: Treat an input event whose
6345 frame_or_window is equal to its arg member as prefix events.
6346 (stuff_buffered_input): Reset all slots in kbd_buffer_gcpro
6347 used by an input event to nil.
6348 (init_keyboard): Use two times the size of the input queue
6349 for kbd_buffer_gcpro.
6350 (syms_of_keyboard): Likewise.
6351
6352 * emacs.c (handle_USR2_signal, handle_USR1_signal): Use
6353 USER_SIGNAL_EVENT.
6354
6355 * termhooks.h (struct input_event): Add member `arg'.
6356 (MENU_BAR_EVENT): Renamed from menu_bar_event.
6357 (USER_SIGNAL_EVENT): Renamed from user_signal.
6358
6359 * xfaces.c (ASET): Remove definition.
6360
6361 * lisp.h (AREF, ASET, ASIZE): New macros.
6362
6363 * fontset.c (AREF, ASIZE): Remove definitions.
6364
6365 * fns.c (AREF): Remove definition.
178c5d9c 6366
0f1a9b23
GM
6367 * composite.c (AREF): Remove definition.
6368
712eaef2
GM
63692000-07-12 Gerd Moellmann <gerd@gnu.org>
6370
d8ee7803
GM
6371 * dispnew.c (redraw_overlapped_rows): Add missing local.
6372 (scrolling_window): Remove debug code.
6373
712eaef2
GM
6374 * xdisp.c (try_window_reusing_current_matrix, try_window_id):
6375 Before scrolling, turn off a mouse-highlight in the window
6376 being scrolled.
6377
6378 * xterm.c (x_update_window_end): Add parameter
6379 MOUSE_FACE_OVERWRITTEN_P. If set, arrange for a mouse-highlight
6380 redisplay in XTframe_up_to_date.
6381 (x_clear_mouse_face): New function.
6382 (x_redisplay_interface): Add pointer to x_clear_mouse_face.
6383
6384 * dispnew.c (make_current): Preserve the mouse_face_p flag of the
6385 current glyph row.
6386 (update_window_line): Add parameter MOUSE_FACE_OVERWRITTEN_P. Set
6387 it when any row is written to that contains glyphs highlighted in
6388 mouse-face.
6389 (update_window): Call the window update end hook with new
6390 parameter MOUSE_FACE_OVERWRITTEN_P.
6391 (direct_output_for_insert): Give up if row contains mouse-face.
6392
6393 * dispextern.h (struct redisplay_interface): Add parameter
6394 MOUSE_FACE_OVERWRITTEN_P to update_window_end_hook function.
6395 (clear_mouse_face): New function pointer member.
6396
02010917
SM
63972000-07-11 Stefan Monnier <monnier@cs.yale.edu>
6398
6399 * syntax.c (back_comment): Use one switch rather than a few `if's.
6400 Obey open_paren_in_column_0_is_defun_start.
6401 When reverting to the `slow' method, try to nicely handle the case
6402 of nested comments by checking that the comment-starter we found
6403 does indeed match the comment-ender.
6404 (scan_sexps_forward, scan_sexps_forward):
6405 Ignore excessive opening parenthesis rather than throwing an error.
6406
d76c03ea
GM
64072000-07-11 Gerd Moellmann <gerd@gnu.org>
6408
6409 * doc.c (Fsubstitute_command_keys): Handle case that a GC
6410 in Fwhere_is_internal or get_keymap_1 relocates string contents.
6411
6412 * dispnew.c (direct_output_forward_char): Give up if currently
6413 displaying a message instead of the minibuffer contents.
6414
6415 * xterm.c (x_update_window_begin): No need to turn off the mouse
6416 highlight here.
6417 (show_mouse_face): Set the mouse_face_p flag of glyph rows
6418 depending on whether they contain glyphs highlighted in
6419 mouse-face.
6420
6421 * dispnew.c (row_equal_p): Add parameter MOUSE_FACE_P. If set,
6422 compare the mouse_face_p flags of both rows.
6423
6424 * dispextern.h (struct glyph_row): Add flag mouse_face_p.
6425
d55ead18
EZ
64262000-07-11 Eli Zaretskii <eliz@is.elta.co.il>
6427
6428 * keyboard.c (show_help_echo): Accept additional parameter
6429 ok_to_overwrite_keystroke_echo.
6430 (read_char): Call show_help_echo with a zero
6431 ok_to_overwrite_keystroke_echo argument.
6432 * keyboard.h (show_help_echo): Update prototype of
6433 show_help_echo.
6434 * xmenu.c (menu_help_callback): Call show_help_echo with non-zero
6435 ok_to_overwrite_keystroke_echo argument.
6436 * w32menu.c (w32_menu_display_help): Call show_help_echo with
6437 non-zero ok_to_overwrite_keystroke_echo argument.
6438
df75b1a3
GM
64392000-07-10 Gerd Moellmann <gerd@gnu.org>
6440
4b92c49a
GM
6441 * xdisp.c (try_window_id): If changes are all below what is
6442 displayed in the window, and point is in the window, we still
6443 might have to find point on the display.
6444
6445 * xterm.c (x_fill_stretch_glyph_string): Consume runs of stretch
6446 glyphs instead of a single one.
6447 (BUILD_STRETCH_GLYPH_STRING): Call x_fill_stretch_glyph_string
6448 with new argument list.
6449 (x_set_glyph_string_gc): Make sure the face's GC is valid.
6450
df75b1a3
GM
6451 * keymap.c (get_keymap_1): Add comment that this function can GC.
6452 (where_is_internal_2, where_is_internal_1): Add GCPROs, add
6453 comment that functions can GC.
6454 (Fset_keymap_parent): GCPRO arg KEYMAP.
6455
4314cf3e
EZ
64562000-07-10 Eli Zaretskii <eliz@is.elta.co.il>
6457
6458 * msdos.c (XMenuActivate): After exiting the menu, restore the
6459 echo area message and erase it.
6460
ab49ce15
KH
64612000-07-10 Kenichi Handa <handa@etl.go.jp>
6462
6463 * fontset.c (Ffontset_info): Make the return value more compatible
6464 with that of Emacs 20.
6465
090a072f
GM
64662000-07-07 Gerd Moellmann <gerd@gnu.org>
6467
6468 * eval.c (Fsignal): Handle case that backtrace_list is null.
6469
f92de4a6
KH
64702000-07-07 Kenichi Handa <handa@etl.go.jp>
6471
6472 * ccl.c (Fccl_execute): Typo fixed.
6473
dd8888a1
GM
64742000-07-06 Gerd Moellmann <gerd@gnu.org>
6475
e5c81191 6476 * window.c (window_loop): Add missing gcpro1 local variable.
178c5d9c 6477
dd8888a1
GM
6478 * window.c (Fwindow_list): Reverse list at the end.
6479 (candidate_window_p): Add parameter OWINDOW. ALL_FRAMES nil
6480 means allow windows on OWINDOW's frame, only.
6481 (window_loop): Simplified; use Fwindow_list.
6482
6483 * Makefile.in (TAGS-LISP): Don't pass `$(lispsource)' to make.
6484
485266d0
GM
64852000-07-05 Gerd Moellmann <gerd@gnu.org>
6486
6487 * xterm.c (XTread_socket): Increment handling_signal at the start,
6488 decrement it at the end.
6489
6490 * eval.c (handling_signal): New variable.
6491 (Fsignal): Abort if handling_signal is non-zero.
6492
6493 * lisp.h (handling_signal): External declaration.
178c5d9c 6494
485266d0
GM
6495 * s/freebsd.h (WAITTYPE, WRETCODE): Put in #if 0.
6496
80fcd514
KR
64972000-07-05 Ken Raeburn <raeburn@gnu.org>
6498
6499 Sound support for NetBSD through "Linux emulation" support:
6500 * config.in (HAVE_SOUNDCARD_H): Undef.
6501 (HAVE_SOUND): Define if HAVE_SOUNDCARD_H.
6502 * Makefile.in (LIBSOUND): New variable.
6503 (LIBES): Include it.
6504 * sound.c [HAVE_SOUNDCARD_H]: Include <sys/ioctl.h> and
6505 <soundcard.h>.
6506 (DEFAULT_SOUND_DEVICE): Define to "/dev/dsp" if not defined
6507 elsewhere.
6508 (vox_open): Use DEFAULT_SOUND_DEVICE.
6509 * s/netbsd.h (DEFAULT_SOUND_DEVICE): Define to /dev/audio.
6510
d5c5cddd
GM
65112000-07-05 Gerd Moellmann <gerd@gnu.org>
6512
6513 * print.c (print_error_message): If Vsignaling_function is set,
6514 show it in *Messages*.
6515
6516 * lisp.h (Vsignaling_function): External declaration.
6517
6518 * eval.c (Vsignaling_function): New variable.
6519 (Fsignal): Compute it.
6520 (syms_of_eval): Staticpro it.
6521
65171e3a
DL
65222000-07-05 Dave Love <fx@gnu.org>
6523
6524 * syswait.h: Use the autoconf recommended approach. Old code
6525 #if'd out in case we need to revert.
6526
178c5d9c 6527 * config.in (HAVE_SYS_WAIT_H): Added.
65171e3a 6528
e2c46326
AI
65292000-07-05 Andrew Innes <andrewi@gnu.org>
6530
6531 * vm-limit.c (check_memory_limits) [REL_ALLOC]: Use real_morecore
6532 when non-NULL instead of __morecore, to take account of buffer
6533 memory. This also solves a problem with spurious memory warnings
6534 on Windows.
6535
6536 * ralloc.c: Make real_morecore non-static.
6537
6538 * eval.c (internal_condition_case): Comment out abort if
6539 interrupt_input_blocked is not zero.
6540
6541 * makefile.nt: Add support for `bootstrap' and related targets.
6542 Include minimal debug info in emacs.exe in release build.
6543 Remove all dependencies on lisp.h, and fixup some others.
6544
6545 * w32.c (init_environment): Install code from 20.7 for providing
6546 default values for environment variables, based on the
6547 executable's own location.
6548 (map_w32_filename): Handle filenames that are longer than
6549 MAX_PATH.
6550 (sys_socket): Install socket inheritance bug fix from 20.7.
6551
6552 * alloca.c [emacs]: Include lisp.h (needed by atimer.h included
6553 here via blockinput.h).
6554
a027a91b
SM
65552000-07-05 Stefan Monnier <monnier@cs.yale.edu>
6556
e4b31601
SM
6557 * w32menu.c (w32_menu_display_help):
6558 * xmenu.c (menu_help_callback): Use show_help_echo.
a027a91b
SM
6559
6560 * keyboard.h (show_help_echo): Declare.
6561
6562 * keyboard.c (show_help_echo): New function, extracted from read_char.
6563 Feval its `msg' argument if it's a cons cell.
6564 (read_char): Use it.
4cf8d9d5 6565 (follow_key): Pass `autoload' to get_keyelt.
a027a91b 6566
178c5d9c 6567 * xterm.c (note_mode_line_highlight, note_mouse_highlight)
a027a91b 6568 (note_tool_bar_highlight, XTread_socket):
178c5d9c 6569 * msdos.c (IT_note_mode_line_highlight, IT_note_mouse_highlight)
a027a91b
SM
6570 (dos_rawgetc):
6571 * w32term.c (note_mode_line_highlight, note_mouse_highlight)
6572 (note_tool_bar_highlight, w32_read_socket):
6573 Do not gratuitously ignore non-string `help-echo' properties.
6574
88d75730
GM
65752000-07-05 Gerd Moellmann <gerd@gnu.org>
6576
969f7e79
GM
6577 * eval.c (Feval): Put check for interrupt_input_block in #if 0.
6578
71201b00
GM
6579 * window.c (delete_all_subwindows): Reset Vwindow_list.
6580
88d75730
GM
6581 * xterm.c (x_append_glyph, x_append_composite_glyph)
6582 (x_produce_image_glyph, x_append_stretch_glyph): Accomodate to
6583 changes in struct glyph starting 1999-12-27. Some bit-fields of
6584 struct glyph were not set, which made glyphs unequal when compared
6585 with GLYPH_EQUAL_P. Redisplay outputs such glyphs, and flickering
6586 effects were the result. This also depended on the contents of
6587 memory returned by xmalloc. If flickering happens again, activate
6588 the code in clear_glyph_row that's in #if 0. If the flickering is
6589 gone with that, chances are that it is caused by something
6590 similar.
6591
6592 * dispnew.c (clear_glyph_row): Add debug code in #if 0.
178c5d9c 6593
88d75730
GM
6594 * dispextern.h: Add some comments.
6595
6596 * window.c (add_window_to_list): Add parameter LIST.
6597 (window_list): Order list so that, for each frame, windows are
6598 in canonical order, and so that frames appear in the list in
6599 the order given by Vframe_list.
6600 (next_window): Reverse the handling of NEXT_P.
6601
53654733
GM
66022000-07-04 Gerd Moellmann <gerd@gnu.org>
6603
87efd256
GM
6604 * window.c (Vwindow_list): New variable.
6605 (make_window, delete_window): Set Vwindow_list to nil.
6606 (check_window_containing): New function.
6607 (window_from_coordinates): Rewritten.
6608 (add_window_to_list, window_list, candidate_window_p)
6609 (decode_next_window_args, next_window): New functions.
6610 (Fnext_window, Fprevious_window): Rewritten in terms of
6611 next_window.
6612 (Fwindow_list): New function.
6613 (Fother_window): Cleaned up.
6614 (foreach_window): Add a longer "variable argument list". Let
6615 callback function return 0 to indicate that cycling over windows
6616 should stop.
6617 (foreach_window_1): Likewise.
6618 (freeze_window_start): Return int.
6619 (init_window): New function.
6620 (syms_of_window): Staticpro Vwindow_list and defsubr Swindow_list.
6621
6622 * emacs.c (handle_USR1_signal, handle_USR2_signal) Clear
6623 input_event with bzero.
6624 (main): Call init_window.
6625
53654733
GM
6626 * keymap.c (get_keyelt): Temporarily inhibit GC while evaluating
6627 a menu filter.
6628
4a8c194f
KH
66292000-07-04 Kenichi Handa <handa@etl.go.jp>
6630
6631 * composite.h (make_composition_value_copy): Extern it.
6632
6633 * composite.c (make_composition_value_copy): New function.
6634
6635 * editfns.c (Fformat): While copying text properties, make each
6636 composition property value a copy.
6637
6638 * fns.c (concat): While copying text properties, make each
6639 composition property value a copy.
6640
831a6cb0
GM
66412000-07-03 Gerd Moellmann <gerd@gnu.org>
6642
2f516940
GM
6643 * m/macppc.h (LINKER, LD_SWITCH_MACHINE) [LINUX]: Define.
6644
178c5d9c 6645 * fns.c (sweep_weak_table): Mark only objects that are not
aee625fa
GM
6646 marked already.
6647
831a6cb0
GM
6648 * frame.c (next_frame, prev_frame): If MINIBUF is a window,
6649 include those frames as candidates which have their focus
6650 redirected to the minibuffer frame.
6651
d9c4f922
SM
66522000-07-03 Stefan Monnier <monnier@cs.yale.edu>
6653
6654 * fns.c (Fputhash): Return `value' rather than nil.
6655
3780bc22
GM
66562000-06-30 Gerd Moellmann <gerd@gnu.org>
6657
97d176db
GM
6658 * frame.c (next_frame): Don't check focus redirection in case
6659 MINIBUF is a window. Doing so excludes frames using MINIBUF
3780bc22
GM
6660 unless their focus is redirected, which contradicts the
6661 specification of next-frame, and leads to infinite loops in
6662 certain situations when cycling through windows with next-window.
6663
dca9961d
KH
66642000-06-30 Kenichi Handa <handa@etl.go.jp>
6665
6666 * coding.c (code_convert_region): Even if the length of text is
6667 zero, try to convert it if coding->type is coding_type_ccl.
6668 (decode_coding_string, encode_coding_string): Likewise.
6669
d5483ab1
GM
66702000-06-28 Gerd Moellmann <gerd@gnu.org>
6671
af5c25e1 6672 * xdisp.c (try_window_reusing_current_matrix): Don't try to reuse
97d176db 6673 the display if windows_or_buffers_changed.
af5c25e1
GM
6674
6675 * dispnew.c (struct row_entry): New structure.
6676 (row_entry_pool, row_entry_pool_size, row_entry_idx, row_table)
6677 (row_table_size, old_lines, new_lines, old_lines_size)
6678 (new_lines_size, run_pool, runs_size, runs): New variables.
6679 (add_row_entry): New function.
6680 (scrolling_window): Use data structures allocated with xmalloc and
97d176db 6681 held in global variables, instead of allocating them with alloca and
af5c25e1
GM
6682 holding them in local variables. Use a larger hash table whose
6683 size depends on glyph matrix sizes. Don't use bzero to clear the
6684 hash table; instead, clear used slots only.
6685
6686 * fns.c (next_almost_prime): Make it externally visible.
6687
6688 * lisp.h (next_almost_prime): Add prototype.
6689
d5483ab1
GM
6690 * s/isc4-0.h (sigunblock): Define.
6691
6692 * s/sco5.h (sigunblock): Define.
6693
93e40f40
DL
66942000-06-27 Dave Love <fx@gnu.org>
6695
6696 * s/osf1.h (C_SWITCH_SYSTEM, LIBS_SYSTEM): Revert last change
6697 (moved to osf5-0.h).
6698 [!NOT_C_CODE]: Protect string.h stuff.
6699
6700 * s/osf5-0.h (C_SWITCH_SYSTEM, WAIT_USE_INT, SYS_SIGLIST_DECLARED)
6701 (sys_siglist, NSIG): Definitions moved here from osf1.h.
6702
3c4b7685
GM
67032000-06-27 Gerd Moellmann <gerd@gnu.org>
6704
97d176db 6705 * xdisp.c (resize_mini_window): Subtract the extra line spacing
3c4b7685
GM
6706 below the last line from the needed window height.
6707
32cad0aa
SM
67082000-06-26 Stefan Monnier <monnier@cs.yale.edu>
6709
6710 * fns.c (Fplist_member): Renamed from Fwidget_plist_member.
6711 (Fwidget_get): Use it.
6712 (syms_of_fns): Defsubr it.
6713
2c69ced2
GM
67142000-06-26 Gerd Moellmann <gerd@gnu.org>
6715
178c5d9c 6716 * xterm.c (xim_initialize) [!USE_XIM]: Don't set up the
1d36487c
GM
6717 display info for XIM.
6718 (xim_open_dpy): Likewise.
6719 (xim_close_dpy): Don't free the display info's XIM.
6720
6721 * xfns.c (x_window) [!USE_XIM]: Don't call create_frame_ic.
6722
6723 * config.in (USE_XIM): New define.
6724
3fc720e4
GM
6725 * keymap.c (get_keyelt): For menu-items containing a `:filter
6726 FILTER', apply FILTER to the menu-item's definition to get the
6727 real definition to use.
6728
6729 * lisp.h (QCfilter): External declaration.
6730
2c69ced2
GM
6731 * xfns.c (Fimage_size): New function.
6732 (syms_of_xfns): Defsubr it.
6733
f978b2a2
AS
67342000-06-26 Andreas Schwab <schwab@suse.de>
6735
6736 * coding.c (decode_coding_string): Re-fetch STRING_BYTES after
6737 Fstring_as_unibyte.
6738
94cc7892
DL
67392000-06-25 Dave Love <fx@gnu.org>
6740
6741 * term.c [!HAVE_TERMCAP_H]: Declare tputs, tgetent, tgetflag,
6742 tgetnum.
6743
6744 * Makefile.in (blockinput.h): Depend on atimer.h.
6745 (atimer.h): Depend on systime.h.
6746
6747 * blockinput.h: Protect against multiple inclusion. Include
6748 atimer.h.
6749
6750 * atimer.h: Protect against multiple inclusion. Include
6751 systime.h.
6752
6753 * lisp.h (swap_in_global_binding): Declare.
6754
b8c24556
KR
67552000-06-24 Ken Raeburn <raeburn@gnu.org>
6756
6757 * process.c (Fopen_network_stream): Turn off atimers for duration
6758 of call to connect. (Patch from Gerd.)
6759
8cf8560b
DL
67602000-06-23 Dave Love <fx@gnu.org>
6761
511c7541
DL
6762 * ralloc.c: Maybe include unistd.h
6763
8cf8560b
DL
6764 * emacs.c (setgrp): Undefine before defining.
6765 (malloc_warning, set_time_zone_rule, index): Prototype.
6766
6767 * systime.h (EMACS_GET_TIME) [!GETTIMEOFDAY_ONE_ARGUMENT]: Use
6768 HAVE_STRUCT_TIMEZONE.
6769
6770 * s/osf1.h: Move string.h hack here from alpha.h and make it
6771 conditional.
6772 (C_SWITCH_SYSTEM): Use _OSF_SOURCE, not -BSD, which clashes with
6773 _XOPEN_SOURCE.
6774 (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist, NSIG): Define.
6775 (SOCKLEN_TYPE): Don't define.
6776
6777 * m/alpha.h: Remove string.h hack.
6778
6779 * s/osf5-0.h: New file.
6780
6781 * filelock.c: Use feature tests for fcntl.h, string.h. Don't
6782 include time.h, done by systime.h.
6783 [__FreeBSD__]: Remove redundant includes.
6784
3fc720e4 6785 * callproc.c (setpgrp): Undefine before defining.
8cf8560b
DL
6786 (delete_temp_file): Return Qnil to avoid warning.
6787
6788 * config.in (HAVE_TERM_H, HAVE_STRUCT_TIMEZONE): Add.
6789
6790 * xfaces.c: Include fontset.h dependent on HAVE_WINDOW_SYSTEM, not
6791 HAVE_X_WINDOWS.
6792
6793 * fontset.h (free_face_fontset): Renamed from fs_free_face_fontset.
6794
6795 * composite.h (compose_text): Declare.
6796
6797 * xterm.c: Don't include sys/types.h unconditionally. Don't
6798 protect its inclusion with !USG (following xmenu.c).
6799
ea055732
GM
68002000-06-23 Gerd Moellmann <gerd@gnu.org>
6801
6802 * xfns.c (x_create_tip_frame): Initialize frame's colors like
6803 in x_create_frame.
6804
74b01b80
EZ
68052000-06-23 Eli Zaretskii <eliz@is.elta.co.il>
6806
6807 * coding.c (decode_eol_post_ccl): Special handling for undecided
6808 and inconsistent EOL types.
6809
64f3a166
GM
68102000-06-22 Gerd Moellmann <gerd@gnu.org>
6811
16cf31f7
GM
6812 * xrdb.c (x_load_resources): Add default resource for scroll bar's
6813 trough color and main window's background color.
6814
178c5d9c 6815 * xfns.c (Fx_file_dialog) [HAVE_MOTIF_2_1]: Handle events
16cf31f7
GM
6816 differently.
6817
6818 * xterm.h (Xt_app_con): External declaration.
6819
6820 * widget.c (EmacsFrameRealize): Fix typo.
178c5d9c 6821
486a103d
GM
6822 * widget.c (EmacsFrameRealize): Remove SubstructureRedirectMask.
6823
64f3a166
GM
6824 * xdisp.c (handle_stop): Initialize it->add_overlay_start to zero.
6825 (handle_invisible_prop): Record the start of invisible text in
6826 it->add_overlay_start.
6827 (struct overlay_entry): Add member `overlay'.
6828 (handle_overlay_change): Simplify.
6829 (next_overlay_string): After having processed overlay strings at the
6830 end of the buffer, record that fact in
6831 it->overlay_strings_at_end_processed_p.
6832 (compare_overlay_entries): If before- and after-strings come
6833 from the same overlay, let before-strings come first.
6834 (RECORD_OVERLAY_STRING): Record the overlay that strings come from.
6835 (load_overlay_strings): Take it->add_overlay_start into account
6836 when adding overlay strings.
6837
6838 * dispextern.h (struct it): Add member add_overlay_start.
6839
bb746ea6
DL
68402000-06-22 Dave Love <fx@gnu.org>
6841
6842 * s/isc3-0.h (C_SWITCH_SYSTEM): Define _XOPEN_SOURCE=500.
6843
6844 * s/gnu-linux.h (C_SWITCH_SYSTEM): Don't define _XOPEN_SOURCE here.
6845
a8f573f3
KH
68462000-06-22 Kenichi Handa <handa@etl.go.jp>
6847
6848 * ccl.c (ccl_driver) <CCL_End>: Decrement stack_idx only when it
6849 is greater than 0.
6850
9f2bbc92
DL
68512000-06-21 Dave Love <fx@gnu.org>
6852
178c5d9c 6853 * Makefile.in (GETLOADAVG_OBJ): Removed -- LIBOBJS does it.
9f2bbc92 6854
3ee5041c
SM
68552000-06-21 Stefan Monnier <monnier@cs.yale.edu>
6856
6857 * syntax.c (back_comment): Simplify string-parity counting (with
6858 the added benefit of handling multiple string-styles as long as
6859 they are not intertwined).
6860 Jump to the slow code as soon as a comment starter is found in
6861 a "string_lossage" position. Fixes the case: " /* " /* " */.
6862
4c343001
DL
68632000-06-21 Dave Love <fx@gnu.org>
6864
6865 * Makefile.in: Use GETLOADAVG_LIBS.
6866
6867 * config.in: Add HAVE_FCNTL_H, _FILE_OFFSET_BITS,
6868 _LARGEFILE_SOURCE, _LARGE_FILES, _XOPEN_SOURCE.
6869
e6365855
SM
68702000-06-20 Stefan Monnier <monnier@cs.yale.edu>
6871
6872 * syntax.c (describe_syntax): Recognize the `n'estable bit.
6873 (Fforward_comment, scan_lists):
6874 Check the comstyle of single-char comment-starters.
6875 (scan_sexps_forward): Don't try to recognize `half comment-enders' if
6876 we're just at the beginning of the comment (f.ex with (*) ... (*)).
d355bd8a
SM
6877 Check the comstyle of single-char comment-starters.
6878 Clarify control-flow around the Scomment case.
e6365855 6879
5700d2cc
DL
68802000-06-20 Dave Love <fx@gnu.org>
6881
d355bd8a
SM
6882 * fns.c (make_hash_table, maybe_resize_hash_table):
6883 Cast arg of next_almost_prime.
5700d2cc 6884
178c5d9c 6885 * tparam.c [emacs]: Include lisp.h.
5700d2cc
DL
6886
6887 * termcap.c [emacs]: Test HAVE_FCNTL_H, not USG5. Include lisp.h
6888 and unistd.h.
6889
4a27bdfb
GM
68902000-06-20 Gerd Moellmann <gerd@gnu.org>
6891
a61d762c
GM
6892 * keyboard.c (adjust_point_for_property): Check if display
6893 property should be treated as intangible by looking at its
6894 value.
6895
178c5d9c 6896 * xdisp.c (single_display_prop_intangible_p)
a61d762c
GM
6897 (display_prop_intangible_p): New functions.
6898
6899 * dispextern.h (display_prop_intangible_p): Add prototype.
6900
6901 * xdisp.c (dump_glyph_row): Show type of glyph->object.
178c5d9c 6902
4a27bdfb
GM
6903 * s/isc4-0.h (sigblock): Redefined to pass a pointer as second
6904 argument to sigprocmask.
6905
6906 * s/sco5.h (sigblock): Redefined to pass a pointer as second
6907 argument to sigprocmask.
6908
6909 * syssignal.h (sigblock, sigunblock) [USG5_4]: Set
6910 sigprocmask_set, and pass a pointer to it to sigprocmask.
6911
6912 * sysdep.c (sigprocmask_set): New variable.
6913
6914 * fileio.c (make_temp_name): Don't use `%s' in string passed to
6915 report_file_error.
6916
427ec082
SS
69172000-06-20 Sam Steingold <sds@gnu.org>
6918
6919 * xrdb.c: Don't declare xmalloc, xrealloc.
6920
8972fe79 69212000-06-20 Stefan Monnier <monnier@cs.yale.edu>
8972fe79
SM
6922
6923 * regex.c (re_match, re_match_2): Protect calls to alloca (0).
6924 (re_comp): Cast gettext return value to avoid complaints when
6925 !HAVE_LIBINTL.
6926
074b6efe
DL
69272000-06-20 Dave Love <fx@gnu.org>
6928
f85c008a
DL
6929 * m/stride.h, m/mips.h: Don't define HAVE_GETWD,
6930 HAVE_GETTIMEOFDAY.
6931
5700d2cc 6932 * m/ibmrt-aix.h: Don't declare HAVE_GETTIMEOFDAY, HAVE_VFORK.
f85c008a 6933
d355bd8a 6934 * m/ibmrs6000.h, m/ibmps2-aix.h, m/dpx2.h: Don't declare HAVE_GETWD.
f85c008a
DL
6935
6936 * m/alpha.h: Don't declare xmalloc, xrealloc.
6937
0af4f205
DL
6938 * s/ux4800.h: Don't declare GETTIMEOFDAY_ONE_ARGUMENT.
6939
6940 * s/usg5-4-2.h: Don't declare HAVE_GETWD, VFORK_RETURN_TYPE.
6941
6942 * s/umips.h: Don't declare HAVE_GETWD, HAVE_GETTIMEOFDAY.
6943
6944 * s/cxux.h, s/gnu-linux.h, s/iris3-6.h, s/irix3-3.h: Don't declare
6945 HAVE_GETWD.
6946
074b6efe
DL
6947 * keyboard.h (poll_for_input_1): Declare.
6948
6949 * getloadavg.c: Don't define NLIST_STRUCT (handled by configure).
6950
6951 * alloc.c (xmalloc, xrealloc, xfree): Define using POINTER_TYPE.
6952
6953 * doprnt.c: Don't declare xmalloc, xrealloc.
6954
6955 * lisp.h (x_set_tool_bar_lines, free_frame_xic, compose_text)
6956 (getenv, ctime, getwd): Removed.
6957 (xmalloc, xrealloc, xfree): Declare using POINTER_TYPE.
6958
6959 * xterm.h: Remove duplicate prototypes. Declare free_frame_xic,
6960 x_set_tool_bar_lines.
6961
6962 * config.in: Add HAVE_GETWD. Move some definitions above
6963 machine/system includes.
6964
68a5e97b
KH
69652000-06-20 Kenichi Handa <handa@etl.go.jp>
6966
95417e1e
KH
6967 * s/bsd386.h (HAVE_GETLOADAVG): Define it as 1.
6968
68a5e97b
KH
6969 * xfaces.c (font_list): Handle the case that REGISTRY doesn't
6970 contain information about ENCODING.
6971
6972 * fontset.c (FONTSET_ASCII): Use the first element of char table
6973 for an ASCII font, not defalt slot.
6974 (fontset_ref_via_base): If FONTSET doesn't contain information for
6975 C, try the default fontset.
6976 (make_fontset): Don't copy the default fontset.
6977 (fontset_font_pattern): Likewise.
6978 (accumulate_font_info): If ELT is nil, use the corresponding
6979 element in the default fontset.
6980
3b4fa1b2
DL
69812000-06-19 Dave Love <fx@gnu.org>
6982
943e731c
DL
6983 * syntax.c (Fparse_partial_sexp): Doc fix.
6984
6985 * regex.h: Test PROTOTYPES as well as __STDC__.
6986
3b4fa1b2
DL
6987 * unexalpha.c: Include errno.h, string.h, unistd.h. Don't declare
6988 errno, strerror. Put text after #endif in comment.
6989
6990 * xdisp.c (dump_glyph_matrix): Add `static' to declaration (for
6991 pcc).
6992
6993 * xterm.c (x_frame_of_widget): Likewise.
6994
cdf0357b
GM
69952000-06-19 Gerd Moellmann <gerd@gnu.org>
6996
6997 * abbrev.c (syms_of_abbrev): Set buffer_default's abbrev table
6998 to Vfundamental_mode_abbrev_table.
6999
7000 * alloc.c (mark_object) [GC_CHECK_MARKED_OBJECTS]: Check that no
7001 bogus objects are marked. This slows down GC by ~80 percent, but
7002 it might be worth trying when debugging GC-related problems.
7003 This feature requires conservative stack marking to be enabled.
7004
7005 * xterm.c (XTread_socket) <KeyPress>: In case XmbLookupString
7006 returns XLookupChars, reset `modifiers' to zero.
7007
998e9f8c
DL
70082000-06-19 Dave Love <fx@gnu.org>
7009
7010 * mktime.c: Unprotoized.
7011
18e21ce8 70122000-06-19 Richard Stallman <rms@gnu.org>
d1504184
GM
7013
7014 * data.c (set_internal): If variable is frame-local,
7015 store the new value immediately into the frame parameter alist.
7016
140c4ac6
KR
70172000-06-19 Ken Raeburn <raeburn@gnu.org>
7018
14358466
KR
7019 * xfns.c (jpeg_load): Fetch error-handling data first, then fill
7020 in the custom handler pointer.
7021
140c4ac6
KR
7022 * keyboard.c (follow_key, read_key_sequence): Use XUINT on key
7023 value, or checks for CHAR_META can fail when Lisp_Object is a
7024 union type.
7025 * keymap.c (get_keyelt): Likewise.
7026
10d7bf84
KH
70272000-06-19 Kenichi Handa <handa@etl.go.jp>
7028
7029 * ccl.h (struct ccl_program): New member eol_type.
7030 (struct ccl_spec): New member cr_carryover.
7031
7032 * ccl.c (CCL_WRITE_CHAR): Convert NL according to ccl->eol_type.
7033 (setup_ccl_program): Initialize ccl->eol_type to CODING_EOL_LF.
7034
7035 * coding.c (setup_coding_system) <4>: Reset member `cr_carryover'.
7036 (ccl_coding_driver): On encoding, initialize ccl->eol_type.
7037 (decode_eol_post_ccl): New function.
7038 (decode_coding): Don't detect EOL format here for CCL based coding
7039 systems.
7040 (decode_coding) <coding_type_ccl>: Handle carryovered CR. Call
7041 decode_eol_post_ccl after running the CCL program.
7042 (code_convert_region): Don't detect EOL format here for CCL based
7043 coding systems.
7044 (decode_coding_string): Likewise.
7045
52e386c2
KR
70462000-06-18 Ken Raeburn <raeburn@gnu.org>
7047
7048 * charset.c (update_charset_table): Use XINT on "iso_final_char"
7049 when treating it as an integer.
7050
7051 * coding.h (encode_coding_string): Declare.
7052
7053 * keyboard.c (read_key_sequence): Use XINT on "pos" when treating
7054 it as an integer.
7055
7056 * keymap.c (Fwhere_is_internal): Rename argument "keymap" to
7057 "xkeymap" to avoid shadowing the "enum map_type" value that needs
7058 to be passed to get_local_map.
7059
7060 * sound.c (Fplay_sound): Don't call make_number on
7061 Frun_hook_with_args count argument.
7062
7063 * xterm.c (x_send_scroll_bar_event): Fudge lisp object/integer
7064 for lisp objects in X event structure data field, when lisp
7065 objects are represented with unions.
7066 (x_scroll_bar_to_input_event): Ditto.
7067
b357b9d4
KR
70682000-06-16 Ken Raeburn <raeburn@gnu.org>
7069
7070 * xdisp.c (decode_mode_spec): In "no_value" case, do NUL
37d034d3
KR
7071 termination of string. Fix sense of test whether
7072 Vline_number_display_limit is an integer.
b357b9d4 7073
a871441d
GM
70742000-06-16 Gerd Moellmann <gerd@gnu.org>
7075
a9021acd
GM
7076 * xfaces.c (syms_of_xfaces) [DEBUG_X_COLORS]: Defsubr dump_colors
7077 only if HAVE_X_WINDOWS.
7078
6344985d
GM
7079 * keymap.c (describe_buffer_bindings): Add `\f\n' in front
7080 of titles.
7081
427ec082 7082 * dispnew.c (update_frame_1): Handle case that cursor vpos is
a871441d
GM
7083 out of bounds.
7084
228b083e
EZ
70852000-06-15 Eli Zaretskii <eliz@is.elta.co.il>
7086
7087 * unexec.c (toplevel): Fix last change, so as not to deprive MSDOS
7088 of its headers.
7089
c25b53a2
KH
70902000-06-15 Kenichi Handa <handa@etl.go.jp>
7091
7092 * coding.c (decode_coding_emacs_mule): Always set src_base at the
7093 start of the while loop.
7094
a6981b11
GM
70952000-06-15 Gerd Moellmann <gerd@gnu.org>
7096
e9924e52
GM
7097 * atimer.c (alarm_signal_handler): Add forward declaration.
7098
a6981b11
GM
7099 * data.c (set_internal): Remove debug code.
7100
25fa6deb
GM
71012000-06-14 Gerd Moellmann <gerd@gnu.org>
7102
dce6b995
GM
7103 * Makefile.in (bootstrap-temacs): Add `-I../src'.
7104
9f817ea4
GM
7105 * unexec.c (toplevel) [COFF]: Include coff.h.
7106
7107 * s/lynxos.h: New file.
7108
7109 * keymap.c (Fsingle_key_description): Enclose function key and
7110 event symbol names in angle brackets.
7111
8a4e3c0c
GM
7112 * xdisp.c (setup_echo_area_for_printing): Call
7113 message_log_maybe_newline if message_buf_print is not set.
7114
7115 * print.c (printchar, strout): Don't check message_buf_print
427ec082 7116 before calling setup_echo_area_for_printing because that
8a4e3c0c
GM
7117 function does something useful even when message_buf_print is
7118 already set.
7119
25fa6deb
GM
7120 * xdisp.c (message_truncate_lines, Qmessage_truncate_lines): New
7121 variables.
7122 (ensure_echo_area_buffers): Initialize echo buffer's
7123 truncate lines setting to nil.
7124 (with_echo_area_buffer): Don't set the echo buffer's truncate
7125 lines setting here.
8a4e3c0c 7126 (set_message_1): Set it here instead, based on the value
25fa6deb
GM
7127 of message_truncate_lines.
7128 (resize_mini_window): Handle case that lines are truncated.
7129 (syms_of_xdisp): Initialize Qmessage_truncate_lines. DEFVAR_BOOL
7130 message-truncate-lines.
7131
7132 * keyboard.c (read_char): Bind message-truncate-lines to t
7133 while displaying a help-echo.
7134
7135 * lisp.h (Qmessage_truncate_lines): External declaration.
7136
163dcff3
GM
71372000-06-13 Gerd Moellmann <gerd@gnu.org>
7138
1681ead6
GM
7139 * xdisp.c (Vline_number_display_limit): Renamed from
7140 line_number_display_limit.
7141 (syms_of_xdisp): Use DEFVAR_LISP for line-number-display-limit.
7142 Extend documentation string. Initialize
7143 Vline_number_display_limit to nil meaning no limit.
7144 (decode_mode_spec): Use Vline_number_display_limit with its new
7145 meaning.
7146
163dcff3
GM
7147 * xterm.c (x_check_font) [GLYPH_DEBUG]: Add prototype.
7148
18e21ce8 71492000-06-13 Richard Stallman <rms@gnu.org>
163dcff3
GM
7150
7151 * frame.c (Fmodify_frame_parameters): Doc fix.
427ec082 7152
163dcff3
GM
7153 * xfns.c (x_set_frame_parameters): Comment fix.
7154
7155 * frame.c (store_frame_param): Call swap_in_global_binding if the
7156 variable's current binding was chosen based on this frame.
7157
7158 * data.c (swap_in_global_binding): New function.
7159
a704139d
EZ
71602000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7161
7162 * msdos.c (IT_write_glyphs): Don't use CODING_REQUIRE_ENCODING
7163 macro, instead AND with CODING_REQUIRE_ENCODING_MASK.
7164
9b6610db
EZ
71652000-06-13 Eli Zaretskii <eliz@is.elta.co.il>
7166
7167 * msdos.h (EMACS_MSDOS_H): Renamed from MSDOS_H_.
7168
c68833d2
JR
71692000-06-12 Jason Rumney <jasonr@gnu.org>
7170
7171 * w32bdf.h (EMACS_W32BDF_H): Renamed from __W32BDF_H__
7172
7173 * w32.h (EMACS_W32_H): Renamed from _NT_H_
7174
7175 * w32gui.h (EMACS_W32GUI_H): Renamed from __W32GUI_H__
7176
7177 * w32inevt.h (EMACS_W32INEVT_H): Renamed from __NTINEVT_H__
7178
ed1056b3
GM
71792000-06-12 Gerd Moellmann <gerd@gnu.org>
7180
7181 * xfaces.c (Fdump_colors) [DEBUG_X_COLORS]: New function.
7182 (syms_of_xfaces): Defsubr Sdump_colors.
7183 (x_free_colors): Don't treat b&w specially on default visual.
7184 (x_free_dpy_colors): New function.
7185 (free_face_colors): Don't check visual class; it's done
7186 in x_free_colors.
7187
7188 * xterm.c (x_frame_of_widget): New function.
7189 (x_alloc_nearest_color_for_widget): Use it.
7190 (x_copy_dpy_color): New function.
7191 (x_destroy_window): Free various colors.
7192
5050a2ef
KH
71932000-06-12 Kenichi Handa <handa@etl.go.jp>
7194
7195 * ccl.h (EMACS_CCL_H): Renamed from _CCL_H.
7196
7197 * charset.h (EMACS_CHARSET_H): Renamed from _CHARSET_H.
7198
7199 * coding.h (EMASC_CODING_H): Renamed from _CODING_H.
7200
7201 * composite.h (EMACS_COMPOSITE_H): Renamed from _COMPOSITE_H.
7202
7203 * fontset.h (EMACS_FONTSET_H): Renamed from _FONTSET_H.
7204
fb1b041d
DL
72052000-06-11 Dave Love <fx@gnu.org>
7206
7207 * systime.h (EMACS_SYSTIME_H): Renamed from _SYSTIME_H.
7208
ff96b5f4
EZ
72092000-06-11 Eli Zaretskii <eliz@is.elta.co.il>
7210
7211 * msdos.h: Don't use _MSDOS_H_ as a symbol, use MSDOS_H_ instead.
7212
db8eeecd
GM
72132000-06-11 Gerd Moellmann <gerd@gnu.org>
7214
ed1056b3 7215 * xmenu.c (xmenu_show): Cast second parameter of lw_popup_menu
db8eeecd
GM
7216 to `XEvent *'.
7217
49b71c5f
KH
72182000-06-10 Kenichi Handa <handa@etl.go.jp>
7219
c479bd55
KH
7220 * regex.c (MAKE_CHAR) [!emacs]: Dummy macro for non-Emacs env.
7221 (regex_compile): Fix the code for handling the case of single byte
7222 char and multibyte char being mixed in a range within [...].
7223
ff6a65c2
KH
7224 * fileio.c (Finsert_file_contents): Be sure to setup src_multibyte
7225 and dst_multibyte members of coding.
7226
49b71c5f
KH
7227 * charset.c (update_charset_table): Update the table
7228 bytes_by_char_head.
7229 (init_charset_once): Initialize elements of bytes_by_char_head to
7230 1 except for leading codes for private charases.
7231
7232 * charset.h (CHARSET_8_BIT_GRAPHIC): Define as 0x80.
7233 (UNIBYTE_STR_AS_MULTIBYTE_P): Fix for an invalid multibyte
7234 sequence.
7235
9e80b57d
KR
72362000-06-09 Ken Raeburn <raeburn@gnu.org>
7237
7238 * xterm.c (x_connection_closed): If dpyinfo is NULL, don't try to
7239 access the data it doesn't point to.
7240
f83fe4b4
GM
72412000-06-08 Gerd Moellmann <gerd@gnu.org>
7242
7243 * xterm.c (XTread_socket) <FocusIn>: Queue a FOCUS_IN_EVENT which
db8eeecd 7244 will be translated to a switch-frame event when reading the
f83fe4b4
GM
7245 event queue. This is necessary because Emacs otherwise won't
7246 perform a switch-frame to a new frame until some other event, for
7247 example a keystroke event, forces it to do so. This has various
7248 effects, one visible being that the cursor of a frame created with
7249 C-x 5 2 or switched to with a window manager key binding like
7250 A-TAB stays hollow because selected_window isn't on the newly
7251 focused frame until the switch-frame is performed.
7252
7253 * keyboard.c (kbd_buffer_get_event): Handle FOCUS_IN_EVENT by
7254 generating a switch-frame event if necessary.
7255
7256 * termhooks.h (enum event_kind): Add FOCUS_IN_EVENT.
7257
7258 * xdisp.c (handle_fontified_prop): Don't GCPRO local var `pos';
7259 it's an integer.
7260
0890801b
KH
72612000-06-08 Kenichi Handa <handa@etl.go.jp>
7262
7263 * fontset.c (Fset_fontset_font): The arg CHARACTER may be a
7264 charset.
7265
173cbca8
GM
72662000-06-07 Gerd Moellmann <gerd@gnu.org>
7267
3091c2a6
GM
7268 * window.c (displayed_window_lines): Take empty lines at
7269 the bottom of a window into account.
427ec082 7270
f38952fe
GM
7271 * window.c (displayed_window_lines): New function.
7272 (Fmove_to_window_line): Use displayed_window_lines to determine
7273 the number of lines to move, instead of using the window's height.
7274
7275 * lread.c (readevalloop): If READCHARFUN sets point to ZV, arrange
7276 to stop reading, even if the form read sets point to a different
7277 value when evaluated.
7278
427ec082 7279 * xdisp.c (display_line): Fix code deciding in which line to
173cbca8
GM
7280 put the cursor.
7281
6ba6c818
KH
72822000-06-07 Kenichi Handa <handa@etl.go.jp>
7283
7284 * fileio.c (e_write): Free composition data if stored in
7285 coding->cmp_data.
7286
5f1aea9a
GM
72872000-06-06 Gerd Moellmann <gerd@gnu.org>
7288
666852af
GM
7289 * xdisp.c (display_line): Set row's and iterator's
7290 starts_in_middle_of_char_p and ends_in_middle_of_char_p flags.
7291 Set cursor even if row ends in the middle of a character.
7292 (dump_glyph_row): Print values of new flags.
7293 (redisplay_window) <cursor movement in unchanged window>: When
7294 point has been moved forward, and PT is at the end of the cursor
7295 row, don't place the cursor in the next row if the cursor row ends
7296 in the middle of a character or at ZV.
7297
7298 * dispextern.h (struct it): Add starts_in_middle_of_char_p.
7299 (struct glyph_row): Add starts_in_middle_of_char_p and
7300 ends_in_middle_of_char_p.
7301 (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P): Test row's
7302 ends_in_middle_of_char_p flag.
7303 (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Likewise.
7304
d13f3e2e
GM
7305 * term.c (append_glyph): Revert change of 2000-06-06.
7306
7307 * xdisp.c (display_line): Revert change of 2000-06-06. Treat
7308 padding glyph not fitting on line as whole character not
7309 fitting on line.
7310
5f1aea9a
GM
7311 * xterm.c (x_produce_glyphs): Don't xassert `it->descent > 0';
7312 this isn't true for images with `:ascent 100'.
7313
10cda9b0
KH
73142000-06-06 Kenichi Handa <handa@etl.go.jp>
7315
ed00559d
KH
7316 * buffer.c (Fset_buffer_multibyte): Don't make the current buffer
7317 as modified if it is originally unmodified.
7318
10cda9b0
KH
7319 * term.c (encode_terminal_code): Change the way to check if
7320 terminal coding does any conversion.
7321 (append_glyph): Set glyph->pixel_width correctly.
7322
7323 * xdisp.c (display_line): While checking line continuation, pay
7324 attention to a padding glyph.
7325
1969fae2
GM
73262000-06-05 Gerd Moellmann <gerd@gnu.org>
7327
7328 * xdisp.c (redisplay_window): Always use set_buffer_internal_1.
7329
162ccef4
DL
73302000-06-05 Dave Love <fx@gnu.org>
7331
f19f32dd
DL
7332 * xdisp.c: Include fontset.h.
7333
7334 * xfns.c (x_real_positions): Declare tmp_nchildren as unsigned.
7335
7336 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7337
7338 * dispnew.c: Conditionally include term.h.
7339
7340 * coding.h: Declare code_convert_string_norecord.
7341
7342 * frame.h (struct frame): Use volatile unconditionally.
7343
7344 * buffer.h: Remove Vbefore_change_function, Vafter_change_function.
7345
7346 * xmenu.c (menu_item_selection): Declare volatile unconditionally.
7347
7348 * systime.h: Protect against multiple inclusion.
7349 (timezone) [USG5_4]: Define as time_t.
7350
7351 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7352 (Foptimize_char_table, make_temp_name): Declare.
7353
7354 * Makefile.in (xdisp.o): Depend on fontset.h.
7355
7356 * xterm.c (x_calc_absolute_position): Declare nchildren unsigned.
7357
7358 * lisp.h (DEFUN, EXFUN): Test PROTOTYPES.
7359 (Foptimize_char_table, make_temp_name): Declare.
7360
427ec082 7361 * s/irix4-0.h:
162ccef4
DL
7362 * s/irix5-0.h:
7363 * s/netbsd.h: Don't define autoconfiscated MATHERR.
7364
2082fe81
DL
73652000-06-02 Dave Love <fx@gnu.org>
7366
7367 * lread.c (_XOPEN_SOURCE, __EXTENSIONS__): Don't define.
7368
dcf671d2
GM
73692000-06-02 Gerd Moellmann <gerd@gnu.org>
7370
7371 * xfaces.c (realize_x_face): When copying BASE_FACE bitwise to the
1969fae2 7372 result face, set flags in that face indicating that colors may not
dcf671d2
GM
7373 be freed.
7374
7375 * xterm.c (x_set_mouse_face_gc): If first glyph isn't a character
7376 glyph, use the ASCII NUL character to determine the face.
7377
d42122a3
DL
73782000-06-02 Dave Love <fx@gnu.org>
7379
7380 * sysdep.c: Conditionally include stdlib.h, unistd.h.
7381 (VFORK_RETURN_TYPE): Remove.
427ec082 7382
d42122a3
DL
7383 * config.in: Add NO_MATHERR.
7384
dd432f16
DL
73852000-06-01 Dave Love <fx@gnu.org>
7386
90aa4ea8
DL
7387 * cmds.c (internal_self_insert): Don't check
7388 Vbefore_change_function, Vafter_change_function.
7389
7390 * insdel.c (signal_before_change, signal_after_change): Likewise.
7391
7392 * buffer.c (Vbefore_change_function, Vafter_change_function):
7393 Variables and their initializations deleted.
7394
2330c9d4
DL
7395 * callint.c (Fcall_interactively): Doc fix.
7396
dd432f16
DL
7397 * terminfo.c (ospeed) [HAVE_SPEED_T]: Don't declare extern.
7398
bf9e8804
DL
73992000-05-31 Dave Love <fx@gnu.org>
7400
7401 * textprop.c: Revert last change -- duplicated.
7402
3694b4ab
GM
74032000-05-31 Gerd Moellmann <gerd@gnu.org>
7404
7405 * dispnew.c (find_glyph_row_slice, swap_glyphs_in_rows): Put
7406 in #if 0.
7407
7408 * lisp.h (eassert) [!ENABLE_CHECKING]: Define as `(void) 0'.
7409
f14156cd
JR
74102000-05-31 Jason Rumney <jasonr@gnu.org>
7411
8119aab8
JR
7412 * search.c (Fre_search_forward, Fre_search_backward)
7413 (Fposix_search_backward, Fposix_search_forward): Fix newlines in docs.
7414
f14156cd
JR
7415 * w32select.c (Fw32_set_clipboard_data): Change QNil to Qnil.
7416
4aab9be3
JR
74172000-05-30 Jason Rumney <jasonr@gnu.org>
7418
7419 * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: New macros.
7420 [WINDOWSNT]: Add extern for Vw32_system_coding_system.
7421
7422 * dispextern.h (struct glyph) [WINDOWSNT]: Add w32_font_type
7423 member.
7424
7425 * fileio.c (Fread_file_name) [HAVE_NTGUI]: Use file dialog.
7426 (Fread_file_name) [HAVE_NTGUI, USE_MOTIF]: Do not attempt to
7427 expand a nil default_filename.
7428
7429 * keyboard.c (make_lispy_event) [WINDOWS_NT]: Pass a window
7430 pointer to glyph_to_pixel_coords, not a frame.
7431
7432 * makefile.nt (w32fns.obj, w32menu.obj): Add charset.h and
7433 coding.h to dependencies.
7434
7435 * w32bdf.c (w32_load_bdf_font): Initialize font->double_byte_p.
7436
7437 * w32console.c (glyph_to_pixel_coords): Change first parameter to
7438 window pointer to be consistent with w32term.c and xterm.c.
7439
7440 * w32fns.c: Format and doc changes to bring closer to xfns.c.
7441 (VIETNAMESE_CHARSET): Define if not defined in system headers.
7442 (Qline_spacing, Qcenter): New variables.
7443 (Qw32_charset_*, w32_codepage_for_font): Moved from w32term.c.
7444 (x_set_line_spacing): New function.
7445 (x_set_frame_parameters): Use FRAME_NEW_WIDTH, FRAME_NEW_HEIGHT
7446 macros.
7447 (x_specified_cursor_type): New function.
7448 (x_set_cursor_type): Use it.
7449 (x_set_name, x_set_title): Use ENCODE_SYSTEM to encode titlebar
7450 and icon strings.
7451 (validate_x_resource_name, x_get_resource_string): Measure lengths
7452 of external strings in bytes.
7453 (w32_wnd_proc) [WM_MEASURE_ITEM]: Avoid calling
7454 GetTextExtentPoint32 with NULL title.
7455 (Fx_create_frame): Initialize Qline_spacing.
7456 (w32_load_system_font): Initialize font->double_byte_p.
7457 (x_to_w32_charset): Use Vw32_charset_info_alist.
7458 (Image, busy cursor, tooltip functions): Merged changes from
7459 xfns.c. Not yet functional on Windows.
7460
7461 * w32gui.h (W32FontStruct): Add double_byte_p member.
7462
7463 * w32inevt.c (NUM_TRANSLATED_MOUSE_BUTTONS): New constant.
7464 (emacs_button_translation): Use it.
7465 (do_mouse_event): Allow up to 32 mouse buttons by allowing any bit
7466 in `mask' to be set.
7467
7468 * w32menu.c (single_submenu, w32_menu_show): Call ENCODE_SYSTEM on
7469 menu strings.
7470
7471 * w32term.c: Format and doc changes to bring closer to xterm.c.
7472 (w32_char_font_type): New enum.
7473 (Qw32_charset_*, w32_codepage_for_font): Moved to w32fns.c.
7474 (w32_per_char_metric): Use w32_char_font_type instead of unicode_p.
7475 (w32_encode_char): New function.
7476 (x_encode_char): Removed.
7477 (x_get_glyph_and_face_encoding): Use w32_encode_char in place of
7478 x_encode_char and w32_font_is_double_byte.
7479 (x_produce_image_glyph): Use image_ascent.
7480 (x_produce_glyphs): Use new version of w32_per_char_metric and
7481 handle NULL return value. Allow extra line spacing.
7482 (W32_TEXTOUT): Distinguish between Unicode and DBCS text.
7483 (w32_get_glyph_overhangs): Remove unicode_p param. Use
7484 w32_font_type member of glyph instead.
7485 (x_draw_glyph_string): Draw underline and strike-out for BDF fonts.
7486 (fast_find_position): Make sure not to consider rows not visible
7487 in the window.
7488 (w32_read_socket) [WM_MENUSELECT]: Cannot call
7489 w32_menu_display_help with input blocked, as it can abort.
7490 (x_display_and_set_cursor): Choose cursor depending
7491 on buffer-local value of cursor_type.
7492 (x_draw_bar_cursor): Add parameter WIDTH.
7493
7494 * w32term.h (CP_DEFAULT): Define.
7495 (Fx_display_color_p, Fx_display_grayscale_p, image_ascent): Declare.
7496
10fc3187
GM
74972000-05-30 Gerd Moellmann <gerd@gnu.org>
7498
7499 * search.c (Fre_search_forward, Fre_search_backward)
7500 (Fposix_search_backward, Fposix_search_forward): Doc fix.
7501
d0555360
KH
75022000-05-30 Kenichi Handa <handa@etl.go.jp>
7503
7504 * coding.c (detect_coding_iso2022): Fix code for checking
7505 CODING_CATEGORY_MASK_ISO_8_2.
7506
f1ad044f
SM
75072000-05-29 Stefan Monnier <monnier@cs.yale.edu>
7508
7509 * regex.c (PREFETCH_NOLIMIT): New function.
7510 (re_match_2_internal): Use it and adjust the end_match_2 logic.
7511
84ec3b4b
GM
75122000-05-29 Gerd Moellmann <gerd@gnu.org>
7513
66254a13
GM
7514 * syntax.c (find_defun_start): Move test for
7515 open_paren_in_column_0_is_defun_start outside of the loop.
7516
49e70dec
GM
7517 * xdisp.c (redisplay_window): Really switch buffers when
7518 displaying mode lines, and temporarily set selected_frame to the
7519 frame of the window that's redisplayed.
7520
84ec3b4b
GM
7521 * xfaces.c (free_realized_faces): Block/unblock input.
7522 (free_realized_multibyte_face): Ditto.
7523
869a3a14
DL
75242000-05-29 Dave Love <fx@gnu.org>
7525
7526 * textprop.c (Qkeymap): New variable.
7527 (syms_of_textprop): Intern it.
7528
7529 * keymap.c: Include intervals.h.
7530 (Fkey_binding, Fwhere_is_internal): Deal with `keymap' property.
7531
7532 * Makefile.in (keymap.o): Depend on intervals.h.
7533
7534 * keyboard.c (menu_bar_items, tool_bar_items)
7535 (Fexecute_extended_command): Deal with `keymap' property.
7536 (read_key_sequence): Track map from `keymap' property as well as
7537 `local_map'.
7538
7539 * intervals.c (get_local_map): Extra arg to allow looking for
7540 `keymap' too.
7541
7542 * intervals.h (map_property): New enum.
7543 (get_local_map): Extra arg using it.
7544 (Qkeymap): Declare.
7545
84ec3b4b 7546 * lisp.h (get_local_map): Don't declare here.
869a3a14 7547
89d0c844
KH
75482000-05-29 Kenichi Handa <handa@etl.go.jp>
7549
7550 * Makefile.in (callproc.o): Depend on composite.h.
7551
7552 * callproc.c: Include composite.h.
7553 (Fcall_process): Handle composition correctly.
7554
7555 * coding.h (coding_allocate_composition_data): Extern it.
7556 (coding_restore_composition): Likewise.
7557
7558 * coding.c (DECODE_COMPOSITION_START): If coding->cmp_data is not
7559 yet allocated, finish decoding with result
7560 CODING_FINISH_INSUFFICIENT_CMP.
7561 (coding_allocate_composition_data): Make it non-static.
7562 (coding_restore_composition): Likewise.
7563
797a084a
EZ
75642000-05-29 Eli Zaretskii <eliz@is.elta.co.il>
7565
7566 * charset.c (syms_of_charset): Revert last change.
7567
cf872af5
EZ
75682000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
7569
7570 * term.c (produce_glyphs): Treat characters from the eight-bit-*
d7d0dac0
SM
7571 charsets as unibyte, with 1-column screen width. Sent by Kenichi
7572 Handa.
cf872af5 7573
5b1ae051
EZ
75742000-05-28 Eli Zaretskii <eliz@is.elta.co.il>
7575
7576 * charset.c (syms_of_charset): Set width of character sets
7577 eight-bit-control and eight-bit-graphic to 1 column.
7578
34ec9ebe
GM
75792000-05-26 Gerd Moellmann <gerd@gnu.org>
7580
7581 * config.in (HAVE_SPEED_T): New define.
7582
7583 * sysdep.c, terminfo.c (ospeed) [HAVE_SPEED_T]: Declare as
7584 `extern speed_t'.
7585
dd854dc2
DL
75862000-05-26 Dave Love <fx@gnu.org>
7587
7588 * coding.c (shrink_decoding_region): Initialize eol_conversion.
7589
7590 * data.c (Qsubrp, Qmany, Qunevalled): New variables.
7591 (Fsubr_arity): New function.
7592 (syms_of_data): Install them.
7593
ba9f8f95
KH
75942000-05-26 Kenichi Handa <handa@etl.go.jp>
7595
0f3e0672
KH
7596 * charset.c (init_charset_once): Set the table bytes_by_char_head
7597 correctly.
7598
cebefb44
KH
7599 * fontset.c (syms_of_fontset): Adjust the font name for ascii of
7600 the default fontset to what Emacs uses by default.
0f3e0672
KH
7601 (check_registry_encoding): This function deleted.
7602 (Fset_fontset_font): Remove the adhoc condition for the default
7603 fontset. Allow cons in FONTNAME.
cebefb44 7604
0f3e0672
KH
7605 * fns.c (map_char_table): Ignore char-table entries for
7606 charsets eight-bit-control and eight-bit-graphic.
ba9f8f95 7607
7a18af49
KR
76082000-05-25 Ken Raeburn <raeburn@gnu.org>
7609
7610 * emacs.c (main): Initialize keyboard syms before initializing
7611 window code, so face names are available.
7612
d2af47df
SM
76132000-05-25 Stefan Monnier <monnier@cs.yale.edu>
7614
7615 * regex.c (at_begline_loc_p): Also recognize the \\(?:^ case
7616 of an anchor at the beginning of a shy-group.
7617
fc6a6a4e
GM
76182000-05-25 Gerd Moellmann <gerd@gnu.org>
7619
7620 * xdisp.c (handle_invisible_prop): Don't try to skip over
7621 invisible text if end of text is already reached.
7622
005f0d35
DL
76232000-05-25 Dave Love <fx@gnu.org>
7624
02513cdd
DL
7625 * xdisp.c (Fdump_glyph_matrix): Declare the arg.
7626
005f0d35
DL
7627 * coding.c (encode_eol): Add null statement after label.
7628
89f6ca4e
EZ
76292000-05-25 Eli Zaretskii <eliz@is.elta.co.il>
7630
7631 * w16select.c (Fw16_set_clipboard_data): Fix the change from
7632 2000-05-20.
7633
a4e1759e
KH
76342000-05-25 Kenichi Handa <handa@etl.go.jp>
7635
7636 * ccl.c (ccl_driver): Fix previous change.
7637
eacfd7fe
KH
76382000-05-25 Kenichi Handa <handa@etl.go.jp>
7639
46ab33a9
KH
7640 * coding.c (run_pre_post_conversion_on_str): Set point to the
7641 beginning of buffer before calling coding->post_read_conversion.
7642 (decode_coding_string): Give correct args to
7643 run_pre_post_conversion_on_str.
7644 (encode_coding_string): Likewise.
7645
eacfd7fe
KH
7646 * ccl.c (ccl_driver) <CCL_ReadMultibyteChar2>
7647 <CCL_WriteMultibyteChar2>: Handle charsets eight-bit-control and
7648 eight-bit-graphic correctly.
7649
f8569325
DL
76502000-05-24 Kenichi HANDA <handa@etl.go.jp>
7651
7652 * fileio.c (Finsert_file_contents): Even if a file is not found,
7653 execute codes for setting up coding system. Call
7654 after-insert-file-functions unconditionally.
7655
04545643
GM
76562000-05-24 Gerd Moellmann <gerd@gnu.org>
7657
7658 * callproc.c, emacs.c, sysdep.c (setpgrp): Don't define if USG and
7659 BSD_PGRPS are not defined.
7660
747d90ea
KH
76612000-05-24 Kenichi Handa <handa@etl.go.jp>
7662
7663 * charset.c (update_charset_table): Accept nil in LONG_NAME and
7664 DESCRIPTION.
7665 (syms_of_charset): Avoid building same strings.
7666
716e3b88
GM
76672000-05-23 Gerd Moellmann <gerd@gnu.org>
7668
7669 * lread.c (Fload): Add a comment about the meaning of
7670 Vuser_init_file being t.
7671
7672 * puresize.h (BASE_PURESIZE): Increase to 675000.
7673
7674 * s/gnu-linux.h (setpgrp): Don't define it here because this
7675 prevents compilation on GNU/Linux systems with glib 2.2.
7676
7677 * callproc.c, emacs.c, sysdep.c (setpgrp) [HAVE_SETPGID]: Define
7678 as setpgid.
427ec082 7679
9aeb39fa
EZ
76802000-05-23 Eli Zaretskii <eliz@is.elta.co.il>
7681
7682 * Makefile.in (SOME_MACHINE_LISP): Add disp-table.elc,
7683 dos-vars.elc, ccl.elc, and codepage.elc, all loaded by the MS-DOS
7684 version.
7685 (MSDOS_SUPPORT): Add dos-vars.elc, ccl.elc, and codepage.elc.
7686
29ced61b
KH
76872000-05-23 Kenichi Handa <handa@etl.go.jp>
7688
0574a2ed
KH
7689 * syntax.c (skip_chars): Use FETCH_STRING_CHAR_ADVANCE
7690 unconditionally.
7691
3d80f24d
KH
7692 * msdos.c (IT_write_glyphs): Set coding->src_multibyte to 1.
7693
7694 * term.c (encode_terminal_code): Set coding->src_multibyte
7695 properly.
7696
29ced61b
KH
7697 * coding.c (encode_eol): Fix a bug of DOS style EOL encoding.
7698
d7e00792
KH
76992000-05-22 Kenichi Handa <handa@etl.go.jp>
7700
c9d80d38
KH
7701 * keyboard.c (read_char): Allow character codes 128..255 to be
7702 handled by input-method-function.
7703
d7e00792
KH
7704 * insdel.c (adjust_markers_for_replace): Fix previous change.
7705 (adjust_after_replace): If PREV_TEXT is nil, call
7706 adjust_markers_for_insert, not adjust_markers_for_replace.
7707
087121cc 77082000-05-20 NIIBE Yutaka <gniibe@mri.co.jp>
427ec082 7709
087121cc
GM
7710 * s/gnu-linux.h (UNIX98_PTYS) [HAVE_GRANDPT]: Define.
7711 (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_OPEN, PTY_TTY_NAME_SPRINTF)
7712 [HAVE_GRANDPT]: Define.
7713 (C_SWITCH_SYSTEM): Add -D_XOPEN_SOURCE.
7714
7715 * sysdep.c (setup_pty): Treat case that UNIX98_PTYS is defined
7716 like SYSV_PTYS.
7717
7718 * config.in (HAVE_GRANDPT, HAVE_GETPT): New defines.
7719
7720 * process.c (toplevel) [UNIX98_PTYS]: Include stdlib.h.
7721
c9671f81
KH
77222000-05-20 Kenichi Handa <handa@etl.go.jp>
7723
7724 The following changes are to handle 8-bit characters in a
7725 multibyte buffer/string without facing with byte combining
7726 problem. Two new charsets eight-bit-control (for 0x80..0x9F) and
7727 eight-bit-graphic (for 0xA0..0xFF) are introduced.
7728
7729 * Makefile.in (fns.o): Depend on charset.h.
7730
7731 * alloc.c (Fmake_byte_code): If BYTECODE-STRING is multibyte,
7732 convert it to unibyte.
7733 (make_string): Use parse_str_as_multibyte, not chars_in_text.
7734
7735 * buffer.c (advance_to_char_boundary): Don't use DEC_POS to find a
7736 apparent char boundary.
7737 (Fset_buffer_multibyte): Convert 8-bit characters in the range
7738 0x80..0x9F to/from multibyte form.
7739
7740 * bytecode.c (Fbyte_code): If arg BYTESTR is multibyte, convert it
7741 to unibyte.
7742
7743 * callproc.c (Fcall_process): Always encode an argument string if
7744 it is multibyte. Setup src_multibyte and dst_multibyte members of
7745 process_coding properly.
ce75fd23 7746
c9671f81
KH
7747 * category.c (Fmodify_category_entry): Use SPLIT_CHAR, not
7748 SPLIT_NON_ASCII_CHAR.
7749
7750 * ccl.c (CCL_WRITE_CHAR): Be sure to write single byte characters
7751 as is.
7752 (CCL_MAKE_CHAR): Use MAKE_CHAR, not MAKE_NON_ASCII_CHAR.
7753
7754 * charset.c (Qeight_bit_control, Qeight_bit_graphic): New
7755 variables.
7756 (SPLIT_CHARACTER_SEQ): This macro deleted.
7757 (SPLIT_MULTIBYTE_SEQ): Assume that multibyte sequence at STR is
7758 valid.
7759 (CHAR_COMPONENTS_VALID_P): Handle new charsets; eight-bit-control
7760 and eight-bit-graphic.
7761 (char_to_string): Likewise. Signal an error for too large
7762 character code.
7763 (char_printable_p): Return 0 for 8-bit characters.
7764 (update_charset_table): Update iso_charset_table only when a final
7765 character is non-negative.
7766 (find_charset_in_text): Renamed from find_charset_in_str.
7767 Arguments and return value changed. Callers changed.
7768 (Fdefine_charset): Args ISO-FINAL-CHAR and ISO-GRAPHIC-PLANE can
7769 be -1 if CHARSET is used only internally.
7770 (Fmake_char_internal): Handle new charsets; eight-bit-control and
7771 eight-bit-graphic.
7772 (Fcharset_after): Simplified.
7773 (char_valid_p): Use SPLIT_CHAR, not SPLIT_NON_ASCII_CHAR.
7774 (char_bytes): Return 2 for chars of the range 0xA0..0xFF.
7775 (multibyte_chars_in_text): Simplified by assuming there's no
7776 invalid multibyte sequence.
7777 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
7778 str_as_unibyte): New functions.
7779 (Fstring): Simpified by assuming that byte combining never
7780 happens.
7781 (init_charset_once): Initialization for
7782 LEADING_CODE_8_BIT_CONTROL.
7783 (syms_of_charset): Intern and staticpro Qeight_bit_control and
7784 Qeight_bit_graphic. Include them in Vcharset_list. Make charsets
7785 eight-bit-control and eight-bit-graphic.
7786
7787 * charset.h (LEADING_CODE_8_BIT_CONTROL, CHARSET_8_BIT_CONTROL,
7788 CHARSET_8_BIT_GRAPHIC): New macros.
7789 (SINGLE_BYTE_CHAR_P): Make it faster by using casting.
7790 (CHARSET_ISO_GRAPHIC_PLANE): Use XINT instead of XFASTINT.
7791 (CHARSET_REVERSE_CHARSET): Likewise.
7792 (CHARSET_VALID_P): Handle new charsets; eight-bit-control and
7793 eight-bit-graphic.
7794 (BYTES_BY_CHAR_HEAD, WIDTH_BY_CHAR_HEAD): Optimize for ASCII.
7795 (CHAR_CHARSET, MAKE_CHAR, SPLIT_CHAR, CHAR_BYTES): Likewise.
7796 (PARSE_MULTIBYTE_SEQ) [BYTE_COMBINING_DEBUG]: Abort if we
7797 encounter an invalid multibyte sequence.
7798 (PARSE_MULTIBYTE_SEQ) [not BYTE_COMBINING_DEBUG]: Assume multibyte
7799 sequence is always valid.
7800 (MAKE_NON_ASCII_CHAR, SPLIT_NON_ASCII_CHAR): These macros Deleted.
7801 (UNIBYTE_STR_AS_MULTIBYTE_P, MULTIBYTE_STR_AS_UNIBYTE_P): New
7802 macros.
7803 (CHAR_STRING): For 8-bit characters, call char_to_string.
7804 (INC_POS) [not BYTE_COMBINING_DEBUG]: Faster version. Assume
7805 multibyte sequence is always valid.
7806 (BUF_INC_POS) [not BYTE_COMBINING_DEBUG]: Likewise.
7807 (parse_str_as_multibyte, str_as_multibyte, str_to_multibyte,
7808 str_as_unibyte): Extern them.
7809 (BCOPY_SHORT): Fix a bug.
7810 (CHAR_LEN): This macro deleted. Callers changed to use
7811 CHAR_BYTES.
7812 (FETCH_STRING_CHAR_ADVANCE): Check multibyteness of STRING.
7813 (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): New macro.
7814 (FETCH_CHAR_ADVANCE): Check multibyteness of the current buffer.
7815
bd4bde7f 7816 * coding.c (ONE_MORE_BYTE, TWO_MORE_BYTES): Set coding->result to
c9671f81
KH
7817 CODING_FINISH_INSUFFICIENT_SRC if there's not enough source.
7818 (ONE_MORE_CHAR, EMIT_CHAR, EMIT_ONE_BYTE, EMIT_TWO_BYTE,
7819 EMIT_BYTES): New macros.
7820 (THREE_MORE_BYTES, DECODE_CHARACTER_ASCII,
7821 DECODE_CHARACTER_DIMENSION1, DECODE_CHARACTER_DIMENSION2): These
7822 macros deleted.
7823 (CHECK_CODE_RANGE_A0_FF): This macro deleted.
7824 (detect_coding_emacs_mule): Use UNIBYTE_STR_AS_MULTIBYTE_P to
7825 check the validity of multibyte sequence.
7826 (decode_coding_emacs_mule): New function.
7827 (encode_coding_emacs_mule): New macro.
7828 (detect_coding_iso2022): Use ONE_MORE_BYTE to fetch a byte from
7829 the source.
7830 (DECODE_ISO_CHARACTER): Just return a character code.
7831 (DECODE_COMPOSITION_START): Set coding->result instead of result.
7832 (decode_coding_iso2022, decode_coding_sjis_big5, decode_eol): Use
7833 EMIT_CHAR to produced decoded characters. Exit the loop only by
7834 macros ONE_MORE_BYTE or EMIT_CHAR. Don't handle the case of last
7835 block here.
7836 (ENCODE_ISO_CHARACTER): Don't translate character here. Produce
7837 only position codes for an invalid character.
7838 (encode_designation_at_bol): Return new destination pointer. 5th
7839 arg DSTP is changed to DST.
7840 (encode_coding_iso2022, decode_coding_sjis_big5): Get a character
7841 from the source by ONE_MORE_CHAR. Don't handle the case of last
7842 block here.
7843 (DECODE_SJIS_BIG5_CHARACTER, ENCODE_SJIS_BIG5_CHARACTER): These
7844 macros deleted.
7845 (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8,
7846 detect_coding_utf_16, detect_coding_ccl): Use ONE_MORE_BYTE and
7847 TWO_MORE_BYTES to fetch a byte from the source.
7848 (encode_eol): Pay attention to coding->src_multibyte.
7849 (detect_coding, detect_eol): Preserve members src_multibyte and
7850 dst_multibyte.
7851 (DECODING_BUFFER_MAG): Return 2 even for coding_type_raw_text.
7852 (encoding_buffer_size): Set magnification to 3 for all coding
7853 systems that require encoding.
7854 (ccl_coding_driver): For decoding, be sure that the result is
7855 valid multibyte sequence.
7856 (decode_coding): Initialize coding->errors and coding->result.
7857 For emacs-mule, call decode_coding_emacs_mule. For no-conversion
7858 and raw-text, always call decode_eol. Handle the case of last
7859 block here. If not coding->dst_multibyte, convert the resulting
7860 sequence to unibyte.
7861 (encode_coding): Initialize coding->errors and coding->result.
7862 For emacs-mule, call encode_coding_emacs_mule. For no-conversion
7863 and raw-text, always call encode_eol. Handle the case of last
7864 block here.
7865 (shrink_decoding_region, shrink_encoding_region): Detect cases
7866 that we can't skip data more rigidly.
7867 (code_convert_region): Setup src_multibyte and dst_multibyte
7868 members of coding. For decoding, if the buffer is multibyte,
7869 convert the source sequence to unibyte in advance. For encoding,
7870 if the buffer is multibyte, convert the resulting sequence to
7871 multibyte afterward.
7872 (run_pre_post_conversion_on_str): New function.
7873 (code_convert_string): Deleted and divided into the following two.
7874 (decode_coding_string, encode_coding_string): New functions.
7875 (code_convert_string1, code_convert_string_norecord): Call one of
7876 above.
7877 (Fdecode_sjis_char, Fdecode_big5_char): Use MAKE_CHAR instead of
7878 MAKE_NON_ASCII_CHAR.
7879 (Fset_terminal_coding_system_internal,
7880 Fset_safe_terminal_coding_system_internal): Setup src_multibyte
7881 and dst_multibyte members.
7882 (init_coding_once): Initialize iso_code_class with new enum
7883 ISO_control_0 and ISO_control_1.
7884
7885 * coding.h (enum iso_code_class_type): Member ISO_control_code is
7886 devided into ISO_control_0 and ISO_control_1.
7887 (struct coding_system): New members src_multibyte, dst_multibyte,
7888 errors, and result. Delete member fake_multibyte.
7889 (CODING_REQUIRE_DECODING): Return 1 if coding->dst_multibyte is
7890 nonzero.
7891 (CODING_REQUIRE_ENCODING): Return 1 if coding->src_multibyte is
7892 nonzero.
7893
7894 * data.c (Faref): Use SPLIT_CHAR instead of SPLIT_NON_ASCII_CHAR.
7895 (Faset): Likewise.
7896
7897 * editfns.c (Fformat): Be sure to convert 8-bit characters to
7898 multibyte form.
7899 (Ftranspose_region) [BYTE_COMBINING_DEBUG]: Abort if byte
7900 combining occurs.
7901 (Ftranspose_region): Delete codes for handling byte combining.
7902
7903 * fileio.c (Finsert_file_contents): Setup src_multibyte and
7904 dst_multibyte members of coding. On handling REPLACE on unibyte
7905 buffer, convert the result of decode_coding to unibyte. On
7906 inserting into a mutibyte buffer, always call code_convert_region.
bd4bde7f 7907 (e_write): Setup coding->src_multibyte according to the
c9671f81
KH
7908 multibyteness of the source (buffer or string).
7909
7910 * fns.c (concat): Handle 8-bit characters correctly.
7911 (Fstring_as_unibyte): Be sure to make all 8-bit characters in
7912 unibyte in the result.
7913 (Fstring_as_multibyte): Be sure to make all 8-bit characters in
7914 valid multibyte form in the result.
7915 (map_char_table): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
7916 (Fbase64_encode_region, Fbase64_encode_string): If base64_encode_1
7917 return -1, signal an error.
7918 (base64_encode_1): New arg MULTIBYTE. Get each character by
7919 CHAR_STRING_AND_LENGTH if MULTIBYTE is nonzero. If a multibyte
7920 character is found, return -1.
7921 (Fbase64_decode_region): Delete codes for handling byte-combining.
7922 Treat each decoded byte as a unibyte character.
7923 (Fbase64_decode_string): Return unibyte string.
7924 (Fcompare_strings, concat, string_byte_to_char): Use
7925 FETCH_STRING_CHAR_ADVANCE_NO_CHECK instead off
7926 FETCH_STRING_CHAR_ADVANCE.
7927 (Fstring_lessp): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
7928 (mapcar1): If SEQ is string, always use FETCH_STRING_CHAR_ADVANCE.
7929
7930 * fontset.c (fontset_ref): Use SPLIT_CHAR instead of
7931 SPLIT_NON_ASCII_CHAR.
7932 (fontset_ref_via_base, fontset_set): Likewise
7933
7934 * insdel.c (adjust_markers_for_record_delete): Deleted.
7935 (adjust_markers_for_insert): Argument changed. Caller changed.
7936 (adjust_markers_for_replace): Likewise.
7937 (ADJUST_CHAR_POS, combine_bytes, byte_combining_error,
7938 CHECK_BYTE_COMBINING_FOR_INSERT): Deleted.
7939 (copy_text): Delete unused local varialbe c_save. For converting
7940 to multibyte, be sure to make all 8-bit characters in valid
7941 multibyte form.
7942 (count_size_as_multibyte): Handle 8-bit characters correctly.
7943 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
7944 adjust_after_replace, replace_range, del_range_2)
7945 [BYTE_COMBINING_DEBUG]: Abort if byte combining occurs.
7946 (insert_1_both, insert_from_string_1, insert_from_buffer_1,
7947 adjust_after_replace, replace_range, del_range_2) Delete codes for
7948 handling byte combining.
7949 (adjust_before_replace): Deleted.
427ec082 7950
c9671f81
KH
7951 * keymap.c (Fsingle_key_description): Use SPLIT_CHAR instead of
7952 SPLIT_NON_ASCII_CHAR.
7953 (describe_vector): Use MAKE_CHAR instead of MAKE_NON_ASCII_CHAR.
7954 (Faccessible_keymaps): Use FETCH_STRING_CHAR_ADVANCE
7955 unconditionally.
7956 (Fkey_description): Likewise.
7957
7958 * lread.c (read1): On reading multibyte string, be sure to make
7959 all 8-bit chararacters in valid multibyte form.
7960 (readchar): Use FETCH_STRING_CHAR_ADVANCE unconditionally.
7961
7962 * print.c (print_object): Use FETCH_STRING_CHAR_ADVANCE
7963 unconditionally.
7964
7965 * process.c (Fstart_process): GCPRO current_dir before calling
7966 Ffind_operation_coding_system. Encode arguments here.
7967 (create_process): Don't encode arguments here. Setup
7968 src_multibyte and dst_multibyte members of struct coding.
7969 (read_process_output): Setup src_multibyte and dst_multibyte
7970 members of struct coding. If the output is to multibyte buffer,
7971 always decode the output of the process. Adjust the
7972 representation of 8-bit characters to the multibyteness of the
7973 output.
7974 (send_process): Setup coding->src_multibyte according to the
7975 multibyteness of the source.
7976
7977 * search.c (wordify): Use FETCH_STRING_CHAR_ADVANCE
7978 unconditionally.
7979 (Freplace_match): Use FETCH_STRING_CHAR_ADVANCE and
7980 FETCH_STRING_CHAR_ADVANCE_NO_CHECK appropriately.
7981
7982 * term.c (produce_special_glyphs): Use CHAR_BYTES instead of
7983 CHAR_LEN.
7984
7985 * w16select.c (Fw16_set_clipboard_data): Setup members
7986 src_multibyte and dst_multibyte of coding. Adjusted for the
7987 change for find_charset_in_str.
7988 (Fw16_get_clipboard_data): Likewise.
7989
7990 * w32fns.c (w32_to_x_font): Setup members src_multibyte and
7991 dst_multibyte of coding.
7992 (x_to_w32_font): Likewise.
7993
7994 * w32select.c (Fw32_set_clipboard_data): Setup members
7995 src_multibyte and dst_multibyte of coding. Adjusted for the
7996 change for find_charset_in_str.
7997 (Fw32_get_clipboard_data): Likewise.
7998
7999 * xdisp.c (get_next_display_element): Handle 8-bit characters
8000 correctly.
8001 (next_element_from_display_vector): Use CHAR_BYTES instead of
8002 CHAR_LEN.
8003 (disp_char_vector): Use SPLIT_CHAR instead of
8004 SPLIT_NON_ASCII_CHAR.
8005
8006 * xselect.c (selection_data_to_lisp_data): Setup members
8007 src_multibyte and dst_multibyte of coding. Adjusted for the
8008 change for find_charset_in_str.
8009 (lisp_data_to_selection_data): Likewise.
8010
5f64c9e0
GM
80112000-05-19 Gerd Moellmann <gerd@gnu.org>
8012
2b63d473
GM
8013 * buffer.c (Fbury_buffer): Avoid trouble from burying a killed
8014 buffer.
8015
5f64c9e0
GM
8016 * dispextern.h (Vimage_types): Add extern declaration.
8017
8018 * xdisp.c (Vimage_types): Moved here from xfns.c.
8019 (syms_of_xdisp): Move `image-types' variable here from xfns.c.
8020
8021 * xfns.c (Vimages_types): Moved to xdisp.c.
8022 (syms_of_xfns): Move `image-types' to xdisp.c.
8023
8024 * w32fns.c (Vimage_types): Removed.
8025 (syms_of_w32fns): Remove `image-types'.
8026
813086ea
KH
80272000-05-18 Kenichi Handa <handa@etl.go.jp>
8028
8029 * fns.c (map_char_table): Pay attention to character number of
8030 charset. Check the validity of charset at the first level. For
8031 leaf nodes that has nil value, call C_FUNCTION or FUNCTION with
8032 the default value.
8033
8034 * fontset.c: Include "buffer.h".
8035 (fs_load_font): If the face has fontset, record the face ID in
8036 that fontset.
8037 (Finternal_char_font): New function.
8038 (accumulate_font_info): New function.
8039 (Ffontset_info): Rewritten for the new fontset implementation.
8040 (syms_of_fontset): Register Vdefault_fontset in the first element
8041 of Vfontset_table. Include Vdefault_fontset in
8042 Vfontset_alias_alist. Declare `internal-char-font' as a Lisp
8043 function.
8044
bdaebbf0
DL
80452000-05-16 Dave Love <fx@gnu.org>
8046
8047 * m/iris5d.h: Deleted -- unused.
8048
cb613bb8
GM
80492000-05-16 Gerd Moellmann <gerd@gnu.org>
8050
b15f3b77
GM
8051 * xdisp.c, w32.c, print.c, msdos.c, emacs.c: Use the term
8052 `invalid' instead of `illegal'.
8053
8054 * indent.c (Fmove_to_column): When ending within a tab, insert
8055 spaces first so that markers at the end of the tab get adjusted.
8056
835c1b36
GM
8057 * frame.c (frames_bury_buffer): Don't add a buffer to the frame's
8058 buffer list that wasn't selected in that frame.
8059
cb613bb8
GM
8060 * filelock.c (get_boot_time): To obtain an 8 char file name, which
8061 is needed on mescaline, use a 2 char prefix, and call
8062 make_temp_name with second arg non-zero.
8063
8064 * fileio.c (make_temp_name): New function, extracted from
8065 Fmake_temp_name.
8066 (Fmake_temp_name): Use it.
8067
f685bea9
EZ
80682000-05-15 Eli Zaretskii <eliz@is.elta.co.il>
8069
8070 * window.c (coordinates_in_window): Subtract 1 when computing
8071 right_x.
8072
a1b8d58b
GM
80732000-05-15 Gerd Moellmann <gerd@gnu.org>
8074
8075 * Makefile.in (lisp): Add env.elc.
8076
8077 * callproc.c (Fgetenv_internal): Renamed from Fgetenv.
8078
a265079f
GM
80792000-05-12 Gerd Moellmann <gerd@gnu.org>
8080
8081 * search.c (Freplace_match): Handle case of `\N' in the
8082 replacement when there's no group N.
8083
da4496b6
GM
80842000-05-11 Gerd Moellmann <gerd@gnu.org>
8085
0ace421a
GM
8086 * xdisp.c (add_to_log): Don't pass the terminating NUL byte
8087 of the message to message_dolog.
8088
1172eb8d
GM
8089 * keyboard.c (read_char): Don't clear current message for help
8090 events; let the code handling help events handle this. Change
8091 code detecting help events that should be ignored.
8092
da4496b6
GM
8093 * xdisp.c (handle_single_display_prop): Don't try to set PT if
8094 we're interating over a string.
8095
0623e40f
DL
80962000-05-09 Dave Love <fx@gnu.org>
8097
8098 * fileio.c (Fwrite_region): If APPEND arg is an integer, seek to
8099 that offset before writing. Move gcpro region past call of
8100 Ffile_regular_p.
8101
bae2503b
DL
81022000-05-04 Dave Love <fx@gnu.org>
8103
8104 * buffer.c (syms_of_buffer) [auto-fill-function]: Doc fix.
8105
ec82fb2f
GM
81062000-05-04 Gerd Moellmann <gerd@gnu.org>
8107
8108 * insdel.c (insert_from_buffer_1): Adjust FROM position by number
8109 of inserted characters when BUF equals the current buffer, and PT
8110 is in front of or equal to FROM.
8111
cbf18892
GM
81122000-05-03 Gerd Moellmann <gerd@gnu.org>
8113
4ff40dd0
GM
8114 * xdisp.c (handle_single_display_prop): If display property value
8115 is invalid, or something not supported on the frame, restore
8116 iterator's position to what it was initially. Make sure to return
8117 0 for invalid and unsupported property values.
8118
cbf18892
GM
8119 * xterm.c (x_produce_glyphs) <composite chars>: Handle case
8120 that x_per_char_metric returns null.
8121
1b0672c3
GM
81222000-05-02 Gerd Moellmann <gerd@gnu.org>
8123
576da55d
GM
8124 * xterm.h (struct face): Add forward declaration.
8125 (struct image): Ditto.
8126 (image_ascent): Add prototype.
8127
8128 * xterm.c (x_produce_image_glyph, x_draw_image_foreground)
8129 (x_draw_image_relief, x_draw_image_foreground_1): Call function
8130 image_ascent instead of using IMAGE_ASCENT.
8131
8132 * dispextern.h (DEFAULT_IMAGE_HEIGHT): New macro.
8133 (IMAGE_ASCENT): Removed.
8134
8135 * xfns.c (Qcenter): New variable.
8136 (enum image_value_type): Add IMAGE_ASCENT_VALUE.
8137 (parse_image_spec): Handle IMAGE_ASCENT_VALUE.
8138 (image_ascent): New function.
8139 (lookup_image): Recognize `:ascent center'.
8140 (xbm_format, xpm_format, pbm_format, png_format, jpeg_format)
8141 (tiff_format, gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
8142 (xbm_load): Don't set image's ascent here.
8143 (xbm_image_p, xpm_image_p, pbm_image_p, png_image_p)
8144 (jpeg_image_p, tiff_image_p, gif_image_p, gs_image_p): Don't
8145 check ascent values here.
8146 (Fimagep, Flookup_image [GLYPH_DEBUG]: Removed.
8147 (syms_of_xfns) [GLYPH_DEBUG]: Don't defsubr removed functions.
8148 (syms_of_xfns): Initialize Qcenter.
8149
1b0672c3
GM
8150 * eval.c (Fsignal): If lisp_eval_depth or spepdl_size are near
8151 to the limits, increase the limits.
8152
0d7811ed
KH
81532000-05-01 Kenichi Handa <handa@etl.go.jp>
8154
8155 * fontset.c (fs_load_font): By default, use 0x00..0x7f for ASCII.
8156 Check Vfont_encoding_alist against the full name of the opened
8157 font.
8158
a943a5ca
GM
81592000-04-28 Gerd Moellmann <gerd@gnu.org>
8160
8161 * xdisp.c (make_cursor_line_fully_visible): Handle case of rows
8162 taller than the window.
8163
5dba1e29
KH
81642000-04-28 Kenichi Handa <handa@etl.go.jp>
8165
8166 * xfaces.c (realize_x_face): Fix the argument of the second
8167 xassert. BASE_FACE may not be a face for ASCII.
8168
353964e3
GM
81692000-04-27 Gerd Moellmann <gerd@gnu.org>
8170
c76e04a8
GM
8171 * print.c (print_object): Treat print-length < 0 as nil.
8172
8173 * Makefile.in (termcapobj): Don't use TERMCAP_OBJ.
8174
8175 * s/freebsd.h (TERMCAP_OBJ): Removed.
8176 (LIBS_TERMCAP): Don't define for __FreeBSD_version >= 400000.
8177
8178 * lread.c (read1): Don't treat period followed by certain
8179 characters as symbol start.
8180
8181 * xfns.c (slurp_file): New function.
8182 (xbm_image_p): Handle case of in-memory XBM files.
8183 (xbm_scan): Rewritten to work on memory buffers instead of files.
8184 (xbm_read_bitmap_data): Renamed from xbm_read_bitmap_file_data.
8185 Work on memory buffers instead of files. If DATA is null test
8186 if buffer looks like an in-memory XBM file.
8187 (xbm_load_image): Renamed from xbm_load_image_file. Work on
8188 memory buffers instead of files.
8189 (xbm_file_p): New function.
8190 (xbm_load): Accept :data DATA where DATA is an in-memory XBM file.
8191
353964e3
GM
8192 * lread.c (end_of_file_error): New function.
8193 (read1): Call it instead of signaling `end-of-file' directly.
8194
427ec082 8195 * print.c (print_error_message): Print data of `end-of-file'
353964e3
GM
8196 with Fprinc instead of Fprin1.
8197
24d744ac
KR
81982000-04-26 Ken Raeburn <raeburn@gnu.org>
8199
8200 * window.c (freeze_window_start): Check that minibuffer scroll
8201 window isn't nil before extracting the window structure pointer
8202 from it.
8203
8204 * undo.c (record_delete): If we hit the end of the undo list, stop
8205 picking elements apart.
8206
7464346d
GM
82072000-04-26 Gerd Moellmann <gerd@gnu.org>
8208
8209 * xdisp.c (display_line): If lines are continued, restore
8210 iterator's ascent/descent information to the values before the
8211 first glyph not fitting on the line.
8212
612839b6
GM
82132000-04-25 Gerd Moellmann <gerd@gnu.org>
8214
8215 * xdisp.c (try_window_id) <all changes above window start>: Adjust
8216 positions in glyph matrix. Don't compute new window end
8217 positions.
8218
8219 * dispnew.c (increment_matrix_positions): Renamed from
8220 increment_glyph_matrix_buffer_positions.
8221 (increment_row_positions): Renamed from
8222 increment_glyph_row_buffer_positions.
8223
8224 * dispextern.h: Change names of renamed functions from dispnew.c
8225 in prototypes.
8226
cc181e95
GM
82272000-04-24 Gerd Moellmann <gerd@gnu.org>
8228
abfcc168
GM
8229 * fileio.c (Fdo_auto_save): Create directories for auto-save
8230 list file if necessary.
8231
cc181e95
GM
8232 * xdisp.c (init_iterator): Set iterator's extra_line_spacing
8233 from buffer or frame.
8234 (automatic_hscrolling_p): New variable.
8235 (hscroll_windows): Scroll windows horizontally only if automatic
8236 hscrolling is allowed.
8237 (syms_of_xdisp): New variable `automatic-hscrolling'.
8238
8239 * frame.h (struct frame): Add member extra_line_spacing.
8240
8241 * xfns.c (x_set_line_spacing): New function.
8242 (Fx_create_frame): Set line spacing from resources.
8243 (Qline_spacing): New variable.
8244 (syms_of_xfns): Initialize Qline_spacing.
427ec082 8245
cc181e95
GM
8246 * emacs.c (USAGE2): Add `--line-spacing' and `-lsp'.
8247
8248 * buffer.c (init_buffer_once): Handle extra_line_spacing.
8249 (syms_of_buffer): Add `default-line-spacing' and `line-spacing'.
abfcc168 8250 (reset_buffer): Don't initialize extra2 and extra3. Initialize
cc181e95
GM
8251 extra_line_spacing from default value.
8252 (init_buffer_once): Initialize default value of extra_line_spacing.
8253
8254 * buffer.h (struct buffer): Add extra_line_spacing, remove extra2
8255 and extra3.
8256
8257 * xterm.c (x_produce_glyphs): Remove reference to struct it's
8258 prompt_width. Add extra line spacing.
8259
8260 * term.c (produce_glyphs): Remove reference to struct it's
8261 prompt_width.
8262
8263 * dispextern.h (struct it): Remove member prompt_width, add
8264 extra_line_spacing.
8265
58827478
GM
82662000-04-22 Gerd Moellmann <gerd@gnu.org>
8267
8268 * dispnew.c (update_frame_line): When writing a whole line, make
8269 sure cursor is in the right row afterwards, otherwise a use of
8270 capability `ch' in cmgoto might leave the cursor in the row below.
8271
25a87f42
GM
82722000-04-21 Gerd Moellmann <gerd@gnu.org>
8273
8274 * lisp.h (struct Lisp_Buffer_Cons): Remove.
8275
8276 * keyboard.c (timer_check): Fix typo in comment.
8277
54edf5c2
KH
82782000-04-21 Kenichi Handa <handa@etl.go.jp>
8279
8280 * fontset.c (Fset_fontset_font): Fix docstring. Local variable
8281 name change: ch -> character.
8282
3a64eef5
GM
82832000-04-20 Gerd Moellmann <gerd@gnu.org>
8284
8285 * keyboard.c (echo_message_buffer): New variable.
8286 (echo_now): Set echo_message_buffer to the echo area buffer used
8287 to display the echo.
8288 (cancel_echoing): Reset echo_message_buffer to nil.
8289 (read_char): Code rewritten that handles canceling an echo or
8290 echoing a dash, respectively.
8291
8292 * fileio.c (Ffile_writable_p) [WINDOWSNT]: Return nil if parent
8293 directory doesn't exist.
8294
6142fdcb
DL
82952000-04-19 Dave Love <fx@gnu.org>
8296
8297 * fns.c (syms_of_fns): Defsubr mapc.
a9cacab7
DL
8298 (concat): Don't allow numeric args.
8299 (Fconcat): Doc change.
6142fdcb 8300
ac6b5352
SM
83012000-04-19 Stefan Monnier <monnier@cs.yale.edu>
8302
8303 * regex.c (re_match_2_internal): Don't shorten the strings anymore,
8304 instead define end_match(1|2) more carefully.
8305 Use GET_CHAR_BEFORE_2 for `begline'.
8306
cb9215e4
GM
83072000-04-19 Gerd Moellmann <gerd@gnu.org>
8308
5e3dac3f
GM
8309 * frame.h (SELECTED_FRAME): Change definition to compile cleanly
8310 on 64-bit systems where NULL is defined as `0'.
8311
8312 * xdisp.c (with_echo_area_buffer): Add more `int' parameters for
8313 the `variable argument list' to make it work on Alpha.
8314
cb9215e4
GM
8315 * m/alpha.h (_LP64) [!_LP64]: Define.
8316 (ORDINARY_LINK): Define for NetBSD.
8317
8318 * m/macppc.h (ORDINARY_LINK): Define for NetBSD.
427ec082 8319
f532dca0
DL
83202000-04-19 Dave Love <fx@gnu.org>
8321
c750667e
DL
8322 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Revert 2000-04-14
8323 change.
8324
8325 * Makefile.in (LIBS): Don't use.
8326 (GETLOADAVG_OBJ): Define again.
8327 (otherobj): Add GETLOADAVG_OBJ.
8328
f532dca0
DL
8329 * buffer.c (Fmake_indirect_buffer): Escape newline in doc.
8330
1c7e22fd
GM
83312000-04-18 Gerd Moellmann <gerd@gnu.org>
8332
f6d3257b
GM
8333 * lread.c (read_filtered_event): Cancel and start busy cursor.
8334
427ec082 8335 * xterm.c (x_produce_glyphs) <ASCII chars>: Take into account
1c7e22fd
GM
8336 that the per-character metrics may be null.
8337
e10f64e7
GM
83382000-04-17 Gerd Moellmann <gerd@gnu.org>
8339
0daee095
GM
8340 * buffer.c (clone_per_buffer_values): New function.
8341 (Fmake_indirect_buffer): Add optional argument CLONE. Call
8342 clone_per_buffer_values if CLONE is not nil.
8343
e10f64e7
GM
8344 * xfaces.c (Ftty_suppress_bold_inverse_default_colors): Doc fix.
8345
38687d43
DL
83462000-04-16 Dave Love <fx@gnu.org>
8347
8348 * Makefile.in: Remove obsolete localcpp stuff.
8349 (GETLOADAVG_OBJ): Don't define.
8350 (obj): Move LIBOBJS...
8351 (otherobj): ... to here.
8352 (MSDOS_OBJ): Convert to make variable -- preprocessing zapped
8353 whitespace-only lines after the continuation (Irix).
8354
c21c7262
GM
83552000-04-14 Gerd Moellmann <gerd@gnu.org>
8356
8357 * xfns.c (xpm_load) [DEBUG_X_COLORS]: Register colors.
8358
8359 * s/freebsd.h (LD_SWITCH_SYSTEM): Add `-L /usr/local/lib'.
8360
314767c0
DL
83612000-04-14 Dave Love <fx@gnu.org>
8362
8363 * s/aix3-1.h, s/bsd4-2.h, s/bsd4-3.h, s/cxux.h, s/dgux.h, s/gnu.h:
8364 * s/hpux.h, s/iris3-5.h, s/iris3-6.h, s/irix3-3.h, s/rtu.h:
8365 * s/unipl5-0.h, s/unipl5-2.h, s/usg5-0.h, s/usg5-2-2.h, s/usg5-2.h:
8366 * s/usg5-3.h, s/xenix.h, s/umax.h: Don't define autoconfiscated
8367 NLIST_STRUCT.
8368
8369 * s/bsd386.h, s/freebsd.h, s/gnu.h, s/netbsd.h: Don't define
8370 autoconfiscated HAVE_GETLOADAVG.
8371
8372 * s/nextstep.h, s/sco4.h, s/sco5.h: Don't define autoconfiscated
8373 BROKEN_MKTIME.
8374
a2522dca
GM
83752000-04-14 Gerd Moellmann <gerd@gnu.org>
8376
8377 * filelock.c (MAKE_LOCK_NAME): Allocate 2 more bytes.
8378 (fill_in_lock_file_name): Avoid existing files that aren't
8379 links.
8380
33744b5d
DL
83812000-04-14 Dave Love <fx@gnu.org>
8382
c21c7262 8383 * Makefile.in (LIBS, LIBOBJS): New variable.
33744b5d
DL
8384 (INTERVAL_SRC): Convert to make variable.
8385 (INTERVAL_OBJ, MKTIME_OBJ, FLOAT_SUPPORT, FACE_SUPPORT)
8386 (HAVE_X_WINDOWS, OBJECTS_SYSTEM): Remove.
8387 (obj): Substitute INTERVAL_OBJ, add MKTIME_OBJ, GETLOADAVG_OBJ and
8388 add LIBOBJS.
8389 (SOME_MACHINE_OBJECTS): Remove interval stuff.
8390 (lisp): Substitute FACE_SUPPORT, FLOAT_SUP.
8391 (shortlisp): Add facemenu, float-sup, frame.
8392 (SOME_MACHINE_LISP): Remove them from here.
8393 (LIBES): Change unused LDLIBS to autoconf LIBS.
8394
8395 * config.in: Add BROKEN_MKTIME, NLIST_STRUCT, NLIST_NAME_UNION.
8396
9d3d5916
KH
83972000-04-14 Kenichi Handa <handa@etl.go.jp>
8398
8399 * composite.c (update_compositions): If FROM and TO are not in a
8400 valid range, do nothing.
8401
198e3c7a
GM
84022000-04-13 Gerd Moellmann <gerd@gnu.org>
8403
8404 * tparam.c (tparam1): Abort when encountering an unknown
8405 `%'-specifier.
8406
8407 * s/freebsd.h (TERMCAP_OBJ) [__FreeBSD__ >= 4]: Define as
8408 terminfo.o.
8409
8410 * Makefile.in (termcapobj) [LIBS_TERMCAP && TERMCAP_OBJ]: Define
8411 as TERMCAP_OBJ.
8412
055a28c9
EZ
84132000-04-13 Eli Zaretskii <eliz@is.elta.co.il>
8414
8415 * fileio.c (a_write): Remove redundant semi-colons.
8416 (e_write): Return -1 if failed to write all the data.
8417 This fixes the changes made at 1999-12-15.
8418
f5c75033
DL
84192000-04-12 Dave Love <fx@gnu.org>
8420
8421 * fns.c (mapcar1): Test for null vals to support mapc.
8422 (Fmapc): New function.
8423
0c3cfc51
EZ
84242000-04-12 Eli Zaretskii <eliz@is.elta.co.il>
8425
8426 * msdos.c (NUM_MOUSE_BUTTONS): Define.
8427 (IT_frame_up_to_date): Support the buffer local value of
8428 cursor-type, if defined.
8429
33465a31
DL
84302000-04-10 Dave Love <fx@gnu.org>
8431
8432 * editfns.c (preceding-char, following-char): Doc fix.
8433
6ed56568
KR
84342000-04-10 Ken Raeburn <raeburn@gnu.org>
8435
8436 * Makefile.in (temacs): Revert 2000-03-12 change.
8437
7cf80d4e
JR
84382000-04-10 Jason Rumney <jasonr@gnu.org>
8439
8440 * xfaces.c (realize_face): Change FRAME_X_P to FRAME_WINDOW_P.
8441
34f3f342
GM
84422000-04-10 Gerd Moellmann <gerd@gnu.org>
8443
1a1b1895
GM
8444 * xdisp.c (setup_echo_area_for_printing): Choose an echo
8445 area buffer, if it's not set up yet.
8446
34f3f342
GM
8447 * indent.c (compute_motion): Set immediate_quit.
8448
be0dbdab
GM
84492000-04-09 Gerd Moellmann <gerd@gnu.org>
8450
c45be9ac
GM
8451 * xfaces.c (tty_suppress_bold_inverse_default_colors_p): New
8452 variable.
8453 (realize_tty_face): Suppress boldness if colors are the inverse of
8454 the default colors, and tty_suppress_bold_inverse_default_colors_p
8455 is set.
8456 (Ftty_suppress_bold_inverse_default_colors): New function.
8457 (syms_of_xfaces): Defsubr it.
8458
be0dbdab
GM
8459 * buffer.c (Frestore_buffer_modified_p): New function.
8460 (syms_of_buffer): Defsubr it.
8461
e8413c3b
KR
84622000-04-08 Ken Raeburn <raeburn@gnu.org>
8463
87f67317
KR
8464 * charset.c (Fmake_char_internal): CHAR_COMPONENTS_VALID_P takes a
8465 charset id (int) argument, not a charset (Lisp_Object).
8466
e8413c3b
KR
8467 * coding.h (code_convert_string): Declare.
8468 * coding.c (code_convert_string_norecord): Pass an int, not a lisp
8469 object, as the fourth argument to code_convert_string.
8470
8471 * fontset.c (make_fontset_for_ascii_face): Use XINT on return
8472 value.
8473 (Fset_fontset_font): Use EQ to compare lisp objects.
8474
7c752c80
KR
84752000-04-05 Ken Raeburn <raeburn@gnu.org>
8476
c0333abc
KR
8477 * intervals.h (SET_INTERVAL_PARENT): Use INT_LISPLIKE to test for
8478 a pointer that looks like a lisp object.
8479 (SET_INTERVAL_OBJECT): Don't explicitly compare the object with
8480 zero, instead see whether it's an integer object, since they can't
8481 have intervals.
8482 (GET_INTERVAL_OBJECT): Simply assign to the destination.
8483
7c752c80
KR
8484 * dispnew.c (allocate_matrices_for_frame_redisplay,
8485 direct_output_forward_char): Use X(U)INT and make_number as needed
8486 to convert between (unsigned) int values and lisp integers.
8487 * keyboard.c (read_key_sequence): Likewise.
8488 * lread.c (substitute_object_recurse): Likewise.
8489 * fns.c (concat, hash_lookup, hash_remove): Likewise.
8490 * minibuf.c (do_completion, Fminibuffer_complete_word,
8491 Fminibuffer_completion_help): Likewise.
8492 * term.c (produce_special_glyphs): Likewise.
8493
8494 * fileio.c (Fwrite_region): Use EQ when comparing lisp objects.
8495 * print.c (print_preprocess, print_object): Likewise.
8496
8497 * search.c (compile_pattern): Use NILP when checking for nil.
8498
74e49b38
KR
8499 * lisp.h (make_number) [!NO_UNION_TYPE && __GNUC__ >= 2 &&
8500 __OPTIMIZE__]: Provide a GNU C macro version that handles
8501 lisp-object unions.
8502 (XSET) [!NO_UNION_TYPE]: Set the value field first, then the type
8503 field, to better cope with ENABLE_CHECKING and calls that modify a
8504 Lisp_Object using its old value.
8505
685e5ed2
GM
85062000-04-04 Gerd Moellmann <gerd@gnu.org>
8507
c407c570
GM
8508 * window.c (compare_window_configurations): Signal an error
8509 if parameters C1 or C2 aren't window configurations.
8510
685e5ed2
GM
8511 * bytecode.c (Fbyte_code): Add a bunch of BEFORE_POTENTIAL_GC/
8512 AFTER_POTENTIAL_GC calls around calls to functions that can
8513 signal an error and thus invoke the debugger.
8514
587a49ab
GM
85152000-04-03 Gerd Moellmann <gerd@gnu.org>
8516
62f20204
GM
8517 * fns.c (Fbase64_decode_region, Fbase64_decode_string): Signal
8518 an error if decoding fails.
8519
587a49ab
GM
8520 * keyboard.c (lispy_mouse_names): Variable removed.
8521 (Vlispy_mouse_stem): New variable.
8522 (syms_of_keyboard): Initialize Vlispy_mouse_stem.
8523 (make_lispy_event) <mouse_click, scroll_bar_click>: Don't abort
8524 for any mouse button number. Increase size of mouse_syms and
8525 button_down_location as needed. Call modify_event_symbol with
8526 different arguments.
8527 (make_lispy_event) <scroll_bar_click> [USE_TOOLKIT_SCROLL_BARS]:
8528 Call modify_event_symbol with different arguments.
8529 (make_lispy_event) <w32_scroll_bar_click> [WINDOWSNT]: Don't abort
8530 for any button number. Call modify_event_symbol with different
8531 arguments.
8532 (modify_event_symbol): Rename NAME_ALIST to NAME_ALIST_OR_STEM.
8533 Accept a string for NAME_ALIST_OR_STEM.
8534
8535 * lisp.h (larger_vector): Add prototype.
8536
8537 * fns.c (larger_vector): Make externally visible.
8538
8539 * termhooks.h (NUM_MOUSE_BUTTONS): Removed.
8540
2d1675e4
SM
85412000-04-02 Stefan Monnier <monnier@cs.yale.edu>
8542
8543 * regex.c (PTR_TO_OFFSET) [!emacs]: Remove.
8544 (RE_MULTIBYTE_P, RE_STRING_CHAR_AND_LENGTH): New macros.
8545 (GET_CHAR_BEFORE_2): Moved from charset.h plus fixed minor bug when
8546 we are between str1 and str2.
8547 (MAX_MULTIBYTE_LENGTH, CHAR_STRING) [!emacs]: Provide trivial default.
8548 (PATFETCH): Use `TRANSLATE'.
8549 (PATFETCH_RAW): Fetch multibyte char if applicable.
8550 (PATUNFETCH): Remove.
8551 (regex_compile): Rely on PATFETCH to do most of the multibyte magic.
8552 When writing a char, write it directly into the pattern buffer rather
8553 than going needlessly through a temp char-array.
8554 (re_match_2_internal): Similarly, rely on RE_STRING_CHAR to do the
8555 multibyte magic and remove the useless `#ifdef emacs'.
8556 (bcmp_translate): Don't compare as multibyte chars when in a unibyte
8557 buffer.
8558
8559 * regex.h (struct re_pattern_buffer): Make field `multibyte'
8560 conditional on `emacs'.
8561
8562 * charset.h (GET_CHAR_BEFORE_2): Moved to regex.c.
8563
cc2d8c6b
KR
85642000-04-01 Ken Raeburn <raeburn@gnu.org>
8565
8566 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P): Expand
8567 non-union-type versions of XMARK and friends here, because XMARK
8568 and friends won't work on an integer field if NO_UNION_TYPE is not
8569 defined.
8570 (make_number): Define as a function if it's not defined as a
8571 macro.
8572
09654086
KR
8573 * composite.c (run_composite_function): Use NILP when checking for
8574 nil.
8575 (syms_of_composite): Delete local var NARGS, pass an int as first
8576 argument to Fmake_hash_table.
8577
2387b382
KR
8578 * editfns.c (text_property_stickiness): Use NILP to test
8579 Lisp_Object boolean value.
8580 (Fmessage_or_box): Don't use NILP to test int variable.
c01fbf95
KR
8581 (Fformat): Use a temporary variable to avoid ENABLE_CHECKING
8582 problems reading from and changing the same lisp value in an
8583 XSETSTRING call.
8584
27660e89
GM
85852000-04-01 Gerd Moellmann <gerd@gnu.org>
8586
8587 * term.c (TN_no_color_video): New variable.
8588 (term_init): Intitialize TN_no_color_video.
8589 (enum no_color_bit): New enumeration.
8590 (MAY_USE_WITH_COLORS_P): New macro.
8591 (turn_on_face): Use it to determine if attributes may be used
8592 combined with colors.
8593
3578db3c
KR
85942000-04-01 Ken Raeburn <raeburn@gnu.org>
8595
8596 * window.c (CURBEG, CURSIZE): Don't overload lisp object lvalues
8597 with int lvalues via casts; instead, just yield lisp object
8598 lvalues.
8599 (enlarge_window): Variable sizep now points to Lisp_Object. Use
8600 proper accessor macros.
8601 (shrink_window_lowest_first): w->top is Lisp_Object; use XINT.
8602 (grow_mini_window): Fix typo getting int value of root->height.
8603
6fc556fd
KR
8604 * xdisp.c (compute_string_pos): Fix order of arguments to
8605 string_pos_nchars_ahead.
8606 (handle_fontified_prop, add_to_log): Pass int, not Lisp_Object, as
8607 count arg to variable-arg routines like Frun_hook_with_args and
8608 Fformat.
587a49ab
GM
8609 (back_to_previous_visible_line_start)
8610 (build_desired_tool_bar_string): Pass Lisp_Object, not int, to
6fc556fd
KR
8611 fixed-arg routines like Fget_char_property and Fmake_string.
8612 (reconsider_clip_changes): Use XINT when comparing integer lisp
8613 objects, or passing them as int arguments.
587a49ab
GM
8614 (mark_window_display_accurate, insert_left_trunc_glyphs)
8615 (append_space, extend_face_to_end_of_line): Use make_number when
6fc556fd
KR
8616 storing or passing integer values as lisp objects.
8617 (set_cursor_from_row, highlight_trailing_whitespace): Use
8618 INTEGERP, not implicit test against zero, for glyph object.
8619 (try_window_id): Don't use make_number when we want an int value.
8620
8621 * xfaces.c (xlfd_symbolic_value): Make last argument a
8622 Lisp_Object, to be consistent with callers.
8623 (Fbitmap_spec_p): Use XINT to get numeric value of height.
8624 (lface_hash): Apply XFASTINT to lisp values before folding in.
8625
8626 * xfns.c (Fx_show_tip): Use make_number to get lisp objects to
8627 fill in window width and height. Pass an int, not a lisp object,
8628 as first arg to Finsert.
8629
6e7b2457
GM
86302000-04-01 Gerd Moellmann <gerd@gnu.org>
8631
610d841e
GM
8632 * xfaces.c (realize_basic_faces): Block input while realizing
8633 the faces.
8634
6e7b2457
GM
8635 * keyboard.c (lispy_mouse_names): Add additional mouse names.
8636
8637 * termhooks.h (NUM_MOUSE_BUTTONS): Increase to 15.
8638
aa110c0c
GM
86392000-03-31 Gerd Moellmann <gerd@gnu.org>
8640
8641 * xterm.c (x_produce_glyphs): When displaying unibyte text
610d841e 8642 or ASCII, handle case that per-char metric is null.
aa110c0c 8643
8801a864
KR
86442000-03-30 Ken Raeburn <raeburn@gnu.org>
8645
c6129d7e
KR
8646 * lisp.h (NO_UNION_TYPE) [ENABLE_CHECKING]: Undef.
8647
8801a864
KR
8648 * lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW,
8649 XSUBR, XBUFFER): Verify correct object type before returning
8650 pointer, using eassert.
8651 * frame.h (XFRAME): Likewise.
8652
8653 * buffer.c (Frename_buffer, Fset_buffer_multibyte,
8654 swap_out_buffer_local_variables, Fmove_overlay): Don't apply
8655 XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong
8656 type.
8657 * data.c (set_internal): Likewise.
8658 * dispextern.h (WINDOW_WANTS_MODELINE_P,
8659 WINDOW_WANTS_HEADER_LINE_P): Likewise.
8660 * fileio.c (auto_save_1): Likewise.
8661 * insdel.c (check_markers): Likewise.
8662 * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise.
8663 * undo.c (record_insert): Likewise.
8664 * vmsproc.c (child_sig): Likewise.
8665 * window.c (unshow_buffer, window_loop): Likewise.
8666 * xterm.c (x_erase_phys_cursor): Likewise.
8667
8e7af858
GM
86682000-03-30 Gerd Moellmann <gerd@gnu.org>
8669
8670 * xfns.c (free_image_cache): Free the cache structure itself
8671 last, after all its members have been freed.
8672
8673 * lisp.h (xstrdup): Add prototype.
8674
8675 * alloc.c (xstrdup): Moved here from xfaces.c.
8676 (allocating_for_lisp): Variable removed.
8677 (lisp_malloc): Block input around the calls to malloc and
8678 mem_insert.
8679
8680 * xfaces.c (realize_tty_face): Use find_symbol_value instead
8681 of Fsymbol_value.
8682 (xstrdup): Moved to alloc.c.
8683
e0b8c689
KR
86842000-03-29 Ken Raeburn <raeburn@gnu.org>
8685
b96f9fb7
KR
8686 * scroll.c (CHECK_BOUNDS): Renamed from CHECK.
8687
8688 * emacs.c (main): Fix sense of no-loadup test.
8689
e0b8c689
KR
8690 * config.in (ENABLE_CHECKING): Undef.
8691
8692 * lisp.h (struct interval): Replace "parent" field with a union of
8693 interval pointer and Lisp_Object; add new bitfield to use as
8694 discriminant. Change other flag fields to bitfields.
8695 (CHECK): New macro for consistency checking. If ENABLE_CHECKING
8696 is defined and the supplied test fails, print a message and
8697 abort.
8698 (eassert): New macro. Use CHECK to provide an assert-like
8699 facility.
8700
8701 * intervals.h (NULL_INTERVAL_P): Now applies only to real interval
8702 pointers; abort if the value looks like a lisp object.
8703 (NULL_INTERVAL_P, NULL_PARENT, HAS_PARENT, HAS_OBJECT, SET_PARENT,
8704 SET_OBJECT, INTERVAL_PARENT, GET_INTERVAL_OBJECT, COPY_PARENT):
8705 Modify for new interval parent definition.
8706
8707 * alloc.c (mark_interval_tree, MARK_INTERVAL_TREE,
8708 UNMARK_BALANCE_INTERVALS): Update references that need an
8709 addressable lisp object in the interval structure.
8710 (die): New function.
8711 (suppress_checking): New variable.
8712
8713 * intervals.c (interval_start_pos): Just return 0 if there's no
8714 parent object.
8715
f83c5440
GM
87162000-03-29 Gerd Moellmann <gerd@gnu.org>
8717
8718 * lread.c (read1): Accept `.' (period) as symbol start like in CL
8719 and earlier Emacs versions.
8720
8721 * keyboard.c (Ftop_level): Cancel busy-cursor.
8722
8723 * eval.c (call_debugger): Cancel busy-cursor.
8724
fdce64ff
KH
87252000-03-29 Kenichi Handa <handa@etl.go.jp>
8726
8727 * search.c (Freplace_match): Adjust multibyteness of the current
8728 buffer and NEWTEXT. Free allocated memory before signaling an
8729 error.
8730
f6a3f532
SM
87312000-03-28 Stefan Monnier <monnier@cs.yale.edu>
8732
8733 * regex.c (analyse_first): New function obtained by ripping out most
8734 of re_compile_fastmap and generalizing it a little bit so that it
8735 can also just return whether a given (sub)pattern can match the empty
8736 string or not.
8737 (regex_compile): Use `analyse_first' to decide whether the loop-check
8738 needs to be done or not for *, +, *? and +? (the loop check is costly
8739 for non-greedy repetition).
8740 (re_compile_fastmap): Delegate the actual work to `analyse_first'.
8741
e9b309ac
DL
87422000-03-28 Dave Love <fx@gnu.org>
8743
bb15bd9a
DL
8744 * s/gnu-linux.h (GC_SETJMP_WORKS): Define for i386, sparc, m68k,
8745 alpha.
8746
e9b309ac
DL
8747 * alloc.c: Include stdio.h. Test STDC_HEADERS, not __STDC__.
8748
ed0767d8
SM
87492000-03-27 Stefan Monnier <monnier@cs.yale.edu>
8750
8751 * regex.c (REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as
8752 an expression.
8753 (enum re_opcode_t): Update description of succeed_n.
8754 (PATFETCH): Always define.
8755 (regex_compile): Use lookahead rather than PATUNFETCH (for repetition
8756 operators, char classes, shy-groups and intervals).
8757 Optimize special cases of intervals so as to only use succeed_n and
8758 jump_n when really needed.
8759 (re_compile_fastmap): Simplify handling of jump_n and succeed_n now
8760 that we don't have to handle the special cases any more.
8761 Simplify on_failure_jump handling as well.
8762
e11e7e46
JR
87632000-03-28 Jason Rumney <jasonr@gnu.org>
8764
8765 * lread.c (Fload): Move safe_p definition to above #ifdef DOS_NT.
8766
88faab89
GM
87672000-03-27 Gerd Moellmann <gerd@gnu.org>
8768
182ff242
GM
8769 * s/freebsd.h (GC_SETJMP_WORKS): Define.
8770
8771 * s/msdos.h (GC_SETJMP_WORKS): Define.
427ec082 8772
182ff242
GM
8773 * alloc.c (mark_maybe_object): New function.
8774 (mark_memory): Use it.
8775 (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK): New macros.
8776 (setjmp_tested_p, longjmp_done): New variables.
8777 (test_setjmp): New function.
8778 (mark_stack) [!GC_SETJMP_WORKS]: Call test_setjmp.
8779 (init_alloc): Initialize setjmp_tested_p and longjmp_done.
8780
c1005d06
GM
8781 * xdisp.c (face_before_or_after_it_pos): Pass multibyteness
8782 to DEC_TEXT_POS and INC_TEXT_POS.
8783
8784 * dispnew.c (direct_output_for_insert): Use DEC_TEXT_POS
8785 with parameter MULTIBYTE_P.
8786
427ec082 8787 * dispextern.h (INC_TEXT_POS, DEC_TEXT_POS): Add parameter
c1005d06
GM
8788 MULTIBYTE_P.
8789
7439e5b9 8790 * editfns.c (Fsubst_char_in_region): Don't use INC_POS in unibyte
182ff242
GM
8791 buffers because it looks for multibyte character byte sequences
8792 which don't exist in unibyte text.
7439e5b9 8793
d9c545da
GM
8794 * xterm.h (x_specified_cursor_type, x_copy_color): Add prototypes.
8795
11fd416e 8796 * xfaces.c (register_color, unregister_color, unregister_colors)
d9c545da
GM
8797 [DEBUG_X_COLORS]: New functions.
8798 (x_free_colors) [DEBUG_X_COLORS]: Unregister colors.
8799
8800 * xfns.c (x_set_cursor_color): Get color reference counts right.
8801
8802 * xterm.c (x_copy_color): New function.
8803 (x_alloc_nearest_color) [DEBUG_X_COLORS]: Call register_color.
8804
8805 * buffer.h (MAX_PER_BUFFER_VARS): Renamed from MAX_BUFFER_LOCAL_VARS.
8806 (PER_BUFFER_VAR_OFFSET): Renamed from BUFFER_LOCAL_VAR_OFFSET.
8807 (PER_BUFFER_VAR_IDX): Renamed from BUFFER_LOCAL_VAR_IDX.
8808 (PER_BUFFER_VALUE_P): Renamed from BUFFER_HAS_LOCAL_VALUE_P.
8809 (SET_PER_BUFFER_VALUE_P): Renamed from SET_BUFFER_HAS_LOCAL_VALUE_P.
8810 (PER_BUFFER_IDX): Renamed from BUFFER_LOCAL_IDX.
8811 (PER_BUFFER_DEFAULT): Renamed from BUFFER_LOCAL_DEFAULT_VALUE.
8812 (PER_BUFFER_VALUE): Renamed from BUFFER_LOCAL_VALUE.
8813 (PER_BUFFER_SYMBOL): Renamed from BUFFER_LOCAL_SYMBOL.
8814 (PER_BUFFER_TYPE): Renamed from BUFFER_LOCAL_TYPE.
8815
11fd416e
GM
8816 * category.c, data.c, syntax.c, print.c, lread.c: Use new macro
8817 names for handling per-buffer variables.
d9c545da
GM
8818
8819 * buffer.c (buffer_permanent_local_flags): Use MAX_PER_BUFFER_VARS
8820 instead of MAX_BUFFER_LOCAL_VARS.
8821 (last_per_buffer_idx): Renamed from max_buffer_local_idx.
8822
8823 * xfaces.c (lookup_face): Don't assert FACE_SUITABLE_FOR_CHAR_P.
8824
88faab89
GM
8825 * xfns.c (x_specified_cursor_type): New function.
8826 (x_set_cursor_type): Use it.
8827
8828 * buffer.h (struct buffer): Add cursor_type.
8829
d80f42b7
SM
88302000-03-26 Stefan Monnier <monnier@cs.yale.edu>
8831
8832 * regex.c (enum re_opcode_t): New opcode on_failure_jump_nastyloop.
427ec082 8833 (print_partial_compiled_pattern, re_compile_fastmap): Handle new
88faab89 8834 opcode.
d80f42b7
SM
8835 (regex_compile): Use on_failure_jump_nastyloop for non-greedy loops.
8836 (re_match_2_internal): Add code for on_failure_jump_nastyloop when
8837 executing it as well as when popping it off the stack to find infinite
8838 loops in non-greedy repetition operators.
8839
89e80928
GM
88402000-03-26 Gerd Moellmann <gerd@gnu.org>
8841
3d4ff2dd
GM
8842 * doc.c (Qfunction_documentation): New variable.
8843 (syms_of_doc): Initialize Qfunction_documentation.
8844 (Fdocumentation): If FUNCTION is a symbol with non-nil
8845 `function-documentation' property, return a documentation derived
8846 from that.
8847
bd96bd79
GM
8848 * buffer.c (syms_of_buffer): Add default-cursor-type.
8849 (init_buffer_once): Don't let cursor_type have a local value
8850 in every buffer.
8851
19d1bc27
GM
8852 * xterm.c (x_display_and_set_cursor): Choose cursor depending
8853 on buffer-local value of cursor_type.
8854 (x_draw_bar_cursor): Add parameter WIDTH.
8855
8856 * buffer.c (reset_buffer): Initialize buffer's cursor_type.
8857 (init_buffer_once): Set default cursor_type value to t.
8858 Mark cursor_type as local everywhere.
8859 (syms_of_buffer): New per-buffer variable cursor-type.
8860
89e80928
GM
8861 * buffer.h (struct buffer): Remove member local_var_flags,
8862 add local_flags.
8863 (MAX_BUFFER_LOCAL_VARS): New macro.
8864 (BUFFER_LOCAL_VAR_OFFSET, BUFFER_LOCAL_VAR_IDX)
8865 (BUFFER_HAS_LOCAL_VALUE_P, SET_BUFFER_HAS_LOCAL_VALUE_P)
8866 (BUFFER_LOCAL_IDX, BUFFER_LOCAL_DEFAULT_VALUE, BUFFER_LOCAL_VALUE)
8867 (BUFFER_LOCAL_SYMBOL, BUFFER_LOCAL_TYPE): New macros.
8868
8869 * print.c (print_object): Use new macros for per-buffer
8870 variables.
8871
8872 * category.c (Fset_category_table): Use new macros for per-buffer
8873 variables.
8874
8875 * buffer.c (buffer_permanent_local_flags): Make a char array.
8876 (max_buffer_local_idx): New variable.
8877 (reset_buffer_local_variables, Fbuffer_local_variables): Rewritten
8878 for new handling of per-buffer variables.
8879 (buffer_slot_type_mismatch): Use new macros for per-buffer vars.
8880 (init_buffer_once): Initialize per-buffer vars differently.
8881 Set max_buffer_local_idx.
8882
8883 * syntax.c (Fset_syntax_table): Use new macros for per-buffer
8884 variables.
8885
8886 * lread.c (defvar_per_buffer): Use new macros for per-buffer
8887 variables.
8888
8889 * data.c (do_symval_forwarding, store_symval_forwarding)
8890 (find_symbol_value, set_internal, default_value, Fset_default)
8891 (Fkill_local_variable, Flocal_variable_p): Use new macros for
8892 per-buffer variables.
8893
8894 * Makefile.in (bootstrap-emacs): Use `mv -f' instead of `mv'.
8895
9a0dd3dc
GM
88962000-03-24 Gerd Moellmann <gerd@gnu.org>
8897
b68c375f
GM
8898 * xterm.c (x_term_init): Unblock input around call1 of
8899 Qvendor_specific_keysyms.
8900
9a0dd3dc
GM
8901 * syntax.c (open_paren_in_column_0_is_defun_start): New variable.
8902 (find_defun_start): Consider an open parenthesis in column 0
8903 a defun start only if open_paren_in_column_0_is_defun_start is set.
8904 (syms_of_syntax): New variable open-paren-in-column-0-is-defun-start.
8905
7973e637
SM
89062000-03-24 Stefan Monnier <monnier@cs.yale.edu>
8907
8908 * eval.c (Fautoload): Add entry in load-history (if after dump).
8909 * lread.c (load-history): Update docstring.
8910
39210e90
GM
89112000-03-24 Gerd Moellmann <gerd@gnu.org>
8912
8913 * indent.c (Fvertical_motion): Always use the current buffer.
8914 Temporarily change the window's buffer, if necessary.
8915
72db3ab5
GM
89162000-03-23 Gerd Moellmann <gerd@gnu.org>
8917
8918 * xterm.c (fast_find_position): Make sure not to consider rows
8919 not visible in the window.
8920
990b2375
SM
89212000-03-22 Stefan Monnier <monnier@cs.yale.edu>
8922
8923 * regex.c (enum syntaxcode): Provide default for non-Emacs.
8924 (re_compile_fastmap, re_match_2_internal): Undo Dave's previous fix.
8925
ff4df011
JR
89262000-03-22 Jason Rumney <jasonr@gnu.org>
8927
8928 * w32menu.c (single_submenu): Set help string to NULL if none.
8929 (w32_menu_show): Set help string correctly.
8930 (add-menu-item): Set help string in MIIM_DATA for menu item.
8931 Load SetMenuItemInfoA explicitly.
8932 (w32_menu_display_help): New function.
427ec082 8933
ff4df011
JR
8934 * w32fns.c (w32_wnd_proc): Handle WM_MENUSELECT message.
8935 (QCdata): Moved to xdisp.c.
8936
8937 * w32term.c (w32_read_socket): Handle WM_MENUSELECT message.
8938 (Vw32_charset_to_codepage_alist): Removed.
8939 (Vw32_charset_info_alist): New variable.
8940 (Qw32_charset_[ansi, default, symbol, shiftjis, hangul, gb2312,
8941 chinesebig5, oem, easteurope, turkish, baltic, russian, arabic,
8942 greek, hebrew, thai, johab, mac, unicode]): New symbols.
8943 (x_produce_glyphs): Remove out of date #ifdef 0'd section. Replace
8944 with TODO comment.
8945 (w32_codepage_for_font): Use Vw32_charset_info_alist.
8946 (syms_of_w32term): Remove Vw32_charset_to_codepage_alist.
8947 Define Vw32_charset_info_alist and w32_charset symbols.
8948
89492000-03-22 Jason Rumney <jasonr@gnu.org>
8950
8951 * makefile.nt (w32bdf.obj): Update dependencies.
8952
8953 * w32bdf.c: Include frame.h and dispextern.h before fontset.h.
8954
8955 * w32fns.c: Include fontset.h after dispextern.h.
8956 (Fx_create_frame): Do not create fontset.
8957 (w32_load_system_font): Doc fix.
8958 (Fx_close_connection): Free full_name if it is not shared.
8959
8960 * w32term.c: Include fontset.h after dispextern.h.
8961 (x_get_glyph_face_and_encoding): New parameter two_byte_p. Callers
8962 updated.
8963 (w32_per_char_metric): If PCM is invalid, delete and return NULL.
8964 (x_get_char_and_face_encoding): Use FACE_FOR_CHAR to get face_id.
8965 (w32_font_is_double_byte): New function, needs body.
8966 (x_append_glyph): Set glyph->glyph_not_available_p.
8967 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
8968 it->charset. If it->multibyte_p is zero and it->c is a multibyte
8969 character, convert it to a unibyte character.
8970 (struct glyph_string): Delete member `charset'.
8971 (W32_TEXTOUT): Temporarily remove charset_dim until another way of
8972 calculating it is found.
8973 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
8974 the case that per char metric is not available correctly.
8975 (x_fill_glyph_string): Handle the case that the specific glyph is
8976 not available correctly.
8977 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
8978 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
8979 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
8980 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
8981 fontset. Don't call FS_LOAD_FONT.
8982
439d5cb4
KR
89832000-03-22 Ken Raeburn <raeburn@gnu.org>
8984
8985 * intervals.h (NULL_INTERVAL): Cast to INTERVAL type.
8986 (INT_LISPLIKE): New macro.
8987 (NULL_INTERVAL_P): Use it.
8988 (INTERVAL_HAS_PARENT, INTERVAL_HAS_OBJECT, SET_INTERVAL_PARENT,
8989 SET_INTERVAL_OBJECT, INTERVAL_PARENT, COPY_INTERVAL_PARENT,
8990 GET_INTERVAL_OBJECT, INTERVAL_PARENT_OR_NULL): New macros.
8991
8992 * alloc.c (make_interval, gc_sweep): Use new macros; eliminate all
8993 explicit references to "parent" field of struct interval and
8994 associated unclean type conversions.
8995 * intervals.c (create_root_interval, root_interval, rotate_right,
8996 rotate_left, balance_possible_root_interval, split_interval_right,
8997 split_interval_left, interval_start_pos, find_interval,
8998 next_interval, previous_interval, update_interval,
8999 adjust_intervals_for_insertion, delete_node, delete_interval,
9000 adjust_intervals_for_deletion, merge_interval_right,
9001 merge_interval_left, reproduce_tree, graft_intervals_into_buffer,
9002 copy_intervals_to_string): Likewise.
9003 * intervals.h (AM_LEFT_CHILD, AM_RIGHT_CHILD, RESET_INTERVAL):
9004 Likewise.
9005 * syntax.c (update_syntax_table): Likewise.
9006
9007 * intervals.c (reproduce_tree_obj): New function, like
9008 reproduce_tree but takes a Lisp_Object for the parent. Declare
9009 with prototype.
9010 (graft_intervals_into_buffer): Use it when appropriate.
9011 (reproduce_tree): Declare with prototype.
9012 (balance_possible_root_interval): Check that the parent is a lisp
9013 object before trying to examine its type.
9014
ee1c5b21
GM
90152000-03-22 Gerd Moellmann <gerd@gnu.org>
9016
9017 * xfaces.c (lface_same_font_attributes_p): Compare font attributes
9018 as strings only if both are known to be strings.
9019
9020 * s/openbsd.h (LIBS_TERMCAP): Undef.
9021
1fb352e0
SM
90222000-03-21 Stefan Monnier <monnier@cs.yale.edu>
9023
9024 * regex.c (CHAR_CHARSET, CHARSET_LEADING_CODE_BASE): Add default
9025 definitions for non-Emacs compilation.
9026 (enum re_opcode_t): Remove (not)wordchar and move (not)syntaxspec
9027 outside of `#ifdef emacs'.
9028 (print_partial_compiled_pattern): Update.
9029 (regex_compile): Use (not)syntaxspec(Sword) instead of (not)wordchar.
9030 (re_compile_fastmap): Merge handling of charset and charset_not (for
9031 emacs and non-emacs compilation as well).
9032 Similarly for (not)categoryspec and (not)syntaxspec.
9033 Don't use the fastmap when reaching `anychar' since the added
9034 complexity is not justified.
9035 (re_match_2_internal): Merge (not)wordchar (emacs and non-emacs)
9036 and (not)syntaxspec. Merge (not)categoryspec.
9037
fdaa1f77
KH
90382000-03-22 Kenichi Handa <handa@etl.go.jp>
9039
ff1a0d8e
KH
9040 * dispextern.h [!HAVE_WINDOW_SYSTEM] (FACE_SUITABLE_FOR_CHAR_P,
9041 FACE_FOR_CHAR): Define them differently for the configuration of
9042 --without-x.
fdaa1f77 9043
d152fb46
DL
90442000-03-21 Dave Love <fx@gnu.org>
9045
9046 * fontset.c (Fset_fontset_font, Ffontset_font): Fix newlines in
9047 doc string.
9048
d2cafc8c
GM
90492000-03-21 Gerd Moellmann <gerd@gnu.org>
9050
9051 * xfaces.c (check_lface_attrs) [GLYPH_DEBUG]: Fix syntax error.
9052 (lface_fully_specified_p): Don't check contents of
9053 LFACE_FONT_INDEX because that attribute is optional.
9054 (realize_x_face): Remove now unwarranted xassert.
9055
9111d4b5
KH
90562000-03-21 Kenichi HANDA <handa@etl.go.jp>
9057
9058 The following changes are to make font selection based on
9059 characters, not charset. In addition, they recover fontset
9060 facilities while utilizing the new font selection mechanism.
9061
6c4bfdc0
KH
9062 * Makefile.in (fontset.o): Depend on dispextern.h.
9063
9064 * alloc.c (mark_face_cache): Don't mark face->registry.
9065
9111d4b5
KH
9066 * dispextern.h (struct glyph): New member glyph_not_available_p.
9067 Use 22 bits for face_id.
9068 (enum lface_attribute_index): Add LFACE_FONT_INDEX.
9069 (struct face): Delete member registry, new member ascii_face.
9070 (FACE_SUITABLE_FOR_CHAR_P): Renamed from
9071 FACE_SUITABLE_FOR_CHARSET_P. Caller changed.
9072 (FACE_FOR_CHAR): Renamed from FACE_FOR_CHARSET. Caller changed.
9073 (struct it): Delete member charset, new member
9074 glyph_not_available_p.
9075
9076 * fontset.h (FONT_NOT_OPENED, FONT_NOT_FOUND): Macros removed.
9077 (struct fontset_info, struct fontset_data): Structs removed.
9078 (allloc_fontset_data, free_fontset_data, fs_regiser_fontset,
9079 Vglobale_fontset_alist, font_idx_temp): Externs removed.
9080 (fs_load_font, fs_query_fontset): Adjusted for new argument.
9081 (fs_free_face_fontset, fontset_font_pattern,
9082 face_suitable_for_char_p, face_for_char,
9083 make_fontset_for_ascii_face): Extern them.
9084 (FS_LOAD_FONT): Adjusted for the change of fontset implementation.
9085 (FS_LOAD_FACE_FONT): New macro.
9086
9087 * fontset.c: All codes rewritten or adjusted for the change of
9088 fontset implementation. Now fontset is represented by char table.
9089 (Vglobal_fontset_alist, font_idx_temp, my_strcasetbl): Variables
9090 removed.
9091 (my_strcasecmp): Function removed.
9092 (Vfontset_table, next_fontset_id, Vdefault_fontset): New
9093 variables.
9094 (AREF, ASIZE): New macros.
9095 (FONTSET_FROM_ID, FONTSET_ID, FONTSET_NAME, FONTSET_FRAME,
9096 FONTSET_ASCII, FONTSET_BASE, BASE_FONTSET_P, FONTSET_REF,
9097 FONTSET_REF_VIA_BASE, FONTSET_SET): New macros.
9098 (fontset_ref, fontset_ref_via_base, fontset_set, make_fontset,
9099 fontset_id_valid_p, font_family_registry, fontset_name,
9100 fontset_ascii, free_face_fontset, face_suitable_for_char_p,
9101 face_for_char, make_fontset_for_ascii_face, fontset_font_pattern):
9102 New functions.
9103 (fs_load_font): New arg FACE. Caller changed.
9104 (fs_query_fontset): Argument changed. Caller changed.
9105 (Fquery_fontset): call fs_query_fontset.
9106 (fs_register_fontset, alloc_fontset_data, free_fontset_data):
9107 Functions removed.
9108 (clear_fontset_elements, check_registry_encoding,
9109 check_fontset_name): New functions.
9110 (syms_of_fontset): Set char-table-extra-slots property of fontset
9111 to 3. Staticpro and initialize Vfontset_table and
9112 Vdefault_fontset. Defsubr fontset_font and fontset_list.
9113
9114 * frame.h (struct frame): Member `fontset_data' removed.
9115 (FRAME_FONTSET_DATA): Macro removed.
9116
9117 * frame.c (make_frame): Don't allocate f->fontset_data.
9118 (Fdelete_frame): Don't free f->fontset_data.
9119
6c4bfdc0
KH
9120 * msdos.c (XMenuActivate): Args to lookup_derived_face changed.
9121
9111d4b5
KH
9122 * xdisp.c (charset_at_position): Function removed.
9123 (init_iterator): Don't set member charset of struct `it'.
9124 (handle_face_prop, reseat_to_string, set_iterator_to_next,
9125 next_element_from_display_vector, insert_left_trunc_glyphs):
9126 Likewise.
9127 (face_before_or_after_it_pos): Call FACE_FOR_CHAR, not
9128 FACE_FOR_CHARSET.
9129 (get_next_display_element, append_space,
9130 extend_face_to_end_of_line): Likewise.
9131
9132 * xfaces.c (Qx_charset_registry, Vface_default_registry):
9133 Variables removed.
9134 (clear_font_table, frame_update_line_height, load_face_font):
9135 Adjusted for the change of fontset implementation.
9136 (load_face_fontset_font): Function removed.
9137 (pixel_point_size): New function.
9138 (font_list): Argument type changed. Caller changed.
9139 (LFACE_FONT): New macro.
9140 (check_lface_attrs): Check attr[LFACE_FONT_INDEX].
9141 (set_lface_from_font_name): Type of arg FONTNAME is changed to
9142 Lisp_Object. Determine the font name by actually loading a font
9143 by the specified pattern. Set LFACE_FONT (lface) to the specified
9144 pattern. Even if a font is not found, don't try alternatives.
9145 (Finternal_set_lisp_face_attribute): Handle `font' slot in lface.
9146 (set_font_frame_param): If `font' is specified in lface, use it.
9147 (Finternal_get_lisp_face_attribute): Handle `font' slot in lface.
9148 (lface_same_font_attributes_p): Likewise.
9149 (make_realized_face): Arguent changed. Caller changed. Set
9150 face->ascii_face to face itself.
9151 (free_realized_face): Free face->fontset if face is for ASCII.
9152 (face_suitable_for_iso8859_1_p, face_suitable_for_charset_p,
9153 deduce_unibyte_registry, x_charset_registry): Functions removed.
9154 (free_realized_multibyte_face): New function.
9155 (lookup_face, lookup_named_face, lookup_derived_face): Argument
9156 changed. Caller changed.
9157 (try_font_list): Argument type changed.
9158 (face_fontset): Check `font' slot of ATTRS, not `family' slot.
9159 (choose_face_font): Argument changed. Handle fontset properly.
9160 (choose_face_fontset_font): Function removed.
9161 (realize_default_face, realize_named_face): Don't remove the
9162 former face here.
9163 (realize_face): Argument changed. Caller changed. Remove face
9164 with the arg former_face_id in advance. Load font for the new
9165 face.
9166 (realize_x_face): Argument changed. Caller changed. For a
9167 multibyte character, share fontset with base_face. For a single
9168 byte character, make a new realized fontset. Don't load a font
9169 here.
9170 (realize_tty_face): Argument changed. Caller changed.
9171 (compute_char_face): Call FACE_FOR_CHAR, not FACE_FOR_CHARSET.
9172 (face_at_buffer_position): Don't check multibyte_p for returning
9173 DEFAULT_FACE_ID.
9174 (face_at_string_position): Call FACE_SUITABLE_FOR_CHAR_P, not
9175 FACE_SUITABLE_FOR_CHARSET_P.
9176 (syms_of_xfaces): Remove code for Qx_charset_registry and
9177 Vface_default_registry.
9178
6c4bfdc0
KH
9179 * xterm.c: Include fontset.h after dispextern.h. Undo the changes
9180 related to PER_CHAR_METRIC done by Gerd on 2000-03-03.
9111d4b5
KH
9181 (x_per_char_metric): Don't try FONT->default_char. Even if
9182 pcm->width is zero, glyph bits may exist.
9183 (x_encode_char): Always initialize char2b->byte1.
9184 (x_get_char_face_and_encoding): Call FACE_FOR_CHAR to get face_id.
9185 (x_get_glyph_face_and_encoding): New arg two_byte_p. Caller
9186 changed.
9187 (x_append_glyph): Set glyph->glyph_not_available_p.
9188 (x_produce_glyphs): Set it->glyph_not_available_p. Don't set
9189 it->charset. Handle the case that per char metric is not
9190 available. If it->multibyte_p is zero and it->c is a multibyte
9191 character, convert it to a unibyte character.
9192 (struct glyph_string): Delete member `charset'.
9193 (x_set_mouse_face_gc): Call FACE_FOR_CHAR to get face_id. Handle
9194 the case that per char metric is not available correctly.
9195 (x_fill_glyph_string): Handle the case that the specific glyph is
9196 not available correctly.
9197 (BUILD_CHAR_GLYPH_STRINGS): Don't set s->charset.
9198 (BUILD_COMPOSITE_GLYPH_STRING): Likewise.
9199 (x_new_font): Call FS_LOAD_FONT, not fs_load_font.
9200 (x_new_fontset): Call fontset_ascii to get ASCII font name of the
9201 fontset. Don't call FS_LOAD_FONT.
9202
9203 * xfns.c (Fx_create_frame): Don't cal fs_register_fontset.
9204 (x_create_tip_frame): Likewise.
9205 (Fx_close_connection): Free full_name of font_info.
9206
9207 * fns.c (optimize_sub_char_table): New function.
9208 (Foptimize_char_table): New function.
9209 (syms_of_fns): Defsubr Soptimize_char_table.
9210
b33dd3b0
GM
92112000-03-20 Gerd Moellmann <gerd@gnu.org>
9212
9213 * buffer.c (Fset_buffer_modified_p): Set update_mode_lines
9214 only if buffer is displayed in some window.
9215
9216 * xdisp.c (handle_single_display_prop): Initialize local `value'.
9217 (try_window_reusing_current_matrix): Don't call scroll run
9218 function if run's current and desired position are the same;
9219 this prevents cursor flickering.
9220
4e8a9132
SM
92212000-03-19 Stefan Monnier <monnier@cs.yale.edu>
9222
9223 * regex.h (RE_TRANSLATE. RE_TRANSLATE_P): Moved to regex.c.
9224
9225 * regex.c (RE_STRING_CHAR): New macro.
9226 (GET_CHAR_AFER_2): Remove.
9227 (RE_TRANSLATE, RE_TRANSLATE_P): New macros moved from regex.h.
9228 (enum re_opcode_t): Remove on_failure_jump_exclusive.
9229 (print_partial_compiled_pattern, re_compile_fastmap)
9230 (re_match_2_internal): Remove on_failure_jump_exclusive.
9231 (regex_compile): Turn optimizable P+ loops into PP*, so that the
9232 optimization only need to work for * (ie. can use of_keep_string_jump).
9233 Remove the special case for .*\n since it is now covered by the general
9234 optimization.
9235 (re_search_2): Don't bother with `room'.
9236 (skip_one_char): New function.
9237 (skip_noops): Simplify since `memory' is not needed any more.
9238 (mutually_exclusive_p): Restructure slightly to use `switch' and
9239 add handling for "all" remaining cases.
9240 (re_match_2_internal): Change on_failure_jump_smart to use
9241 on_failure_keep_string_jump (and redirect the end-of-loop jump)
9242 rather than on_failure_jump_exclusive.
9243
2136fdd4
GM
92442000-03-19 Gerd Moellmann <gerd@gnu.org>
9245
9246 * xfns.c (select_visual): Don't set dpyinfo->n_planes to the
9247 number of bits per RGB because it's everywhere used as the depth
9248 of the visual.
9249
9250 * term.c (calculate_costs): Remove code dealing with X frames.
9251
18e21ce8 92522000-03-19 Richard M. Stallman <rms@gnu.org>
e53ae11c
RS
9253
9254 * lread.c (syms_of_lread): Doc fix for load-convert-to-unibyte.
9255
d7b511c4
GM
92562000-03-18 Gerd Moellmann <gerd@gnu.org>
9257
9258 * lread.c (read_integer): Unread the last char not consumed.
9259
16b5d424
GM
92602000-03-17 Gerd Moellmann <gerd@gnu.org>
9261
9262 * xterm.c (x_update_window_cursor): Don't update in frames
d7b511c4 9263 which are in the process of being deleted.
16b5d424 9264
1fa28578
GM
92652000-03-16 Gerd Moellmann <gerd@gnu.org>
9266
83488cce
GM
9267 * Makefile.in (mostlyclean): Add `*.core'.
9268 (clean): Add `bootstrap-emacs'.
9269
1fa28578
GM
9270 * lread.c (read_integer): New function.
9271 (read1): Support read syntax #o, #x, #b, #r.
9272
99633e97
SM
92732000-03-15 Stefan Monnier <monnier@cs.yale.edu>
9274
1fa28578
GM
9275 * regex.c (re_match_2): Fix string shortening (to fit `stop') to
9276 make sure POINTER_TO_OFFSET gives the same value before and after
9277 PREFETCH. Use `dfail' to guarantee "atomic" matching.
99633e97
SM
9278 (PTR_TO_OFFSET): Use POINTER_TO_OFFSET.
9279 (debug): Now only active if > 0 rather than if != 0.
9280 (DEBUG_*): Update for the new meaning of `debug'.
1fa28578
GM
9281 (print_partial_compiled_pattern): Add missing `succeed' case. Use
9282 CHARSET_* macros in the charset(_not) branch. Fix off-by-two bugs
9283 in `succeed_n', `jump_n' and `set_number_at'.
99633e97
SM
9284 (store_op1, store_op2, insert_op1, insert_op2)
9285 (at_begline_loc_p, at_endline_loc_p): Add prototype.
1fa28578
GM
9286 (group_in_compile_stack): Move to after its arg's types are
9287 declared and add a prototype.
99633e97 9288 (PATFETCH): Define in terms of PATFETCH_RAW.
1fa28578
GM
9289 (GET_UNSIGNED_NUMBER): Add the usual `do { ... } while(0)'
9290 wrapper.
99633e97 9291 (QUIT): Redefine as a nop except for NTemacs.
1fa28578
GM
9292 (regex_compile): Handle intervals {,M} as if it was {0,M}. Fix
9293 indentation of the greedy-op and shy-group code.
99633e97
SM
9294 (at_(beg|end)line_loc_p): Fix argument's types.
9295 (re_compile_fastmap): Ifdef out failure_stack_ptr to shut up gcc.
9296 (re_search_2): Use POS_AS_IN_BUFFER. Simplify `room' computation.
9297 (MATCHING_IN_FIRST_STRING): Remove.
1fa28578
GM
9298 (re_match_2): Use POS_AS_IN_BUFFER. Ifdef out failure_stack_ptr
9299 to shut up gcc. Use FIRST_STRING_P and POINTER_TO_OFFSET. Use
9300 QUIT unconditionally.
99633e97 9301
699238d9
GM
93022000-03-15 Gerd Moellmann <gerd@gnu.org>
9303
9304 * minibuf.c (Fminibuffer_complete): Set point to ZV if finding
9305 a sole completion.
9306
9307 * process.c (send_process): Add a hint that the function
9308 can call Lisp code to its comment.
9309
9310 * lread.c (load_dangerous_libraries): New variable.
9311 (Vbytecomp_version_regexp): New variable.
9312 (safe_to_load_p): New function.
9313 (Fload): Handle files not compiled with Emacs specially.
9314 (syms_of_lread): New Lisp variable load-dangerous-libraries.
9315
34e23e5a
GM
93162000-03-14 Gerd Moellmann <gerd@gnu.org>
9317
9c763cca
GM
9318 * lisp.h (free_frame_xic) [HAVE_X_I18N]: Add missing semicolon.
9319
9320 * xterm.c (xim_close_dpy, xim_initialize): Use X11R6-style XIM
9321 support functions only if HAVE_X11R6_XIM is defined.
9322 (xim_instantiate_callback): Define only if HAVE_X11R6_XIM.
9323
9324 * s/sol2.h (INHIBIT_X11R6_XIM): Define.
9325
9326 * xfns.c (X_I18N_INHIBITED): Don't define.
9327 (create_frame_xic): Remove conditional compilation on
9328 X_I18N_INHIBITED.
9329 (x_kill_gs_process, x_window): Use FRAME_X_VISUAL.
9330
9331 * config.in (HAVE_X_I18N): Moved here from xterm.h.
9332 (HAVE_X11R6_XIM): Define.
9333
9334 * xterm.h (HAVE_X_I18N) [HAVE_X11R6]: Moved to config.in.
9335
34e23e5a
GM
9336 * xterm.c (x_term_init): Add support for X resource `synchronous'.
9337 If set, call XSynchronize.
9338
66f0296e
SM
93392000-03-13 Stefan Monnier <monnier@cs.yale.edu>
9340
34e23e5a
GM
9341 * regex.c: Declare a new type `re_char' used throughout the code
9342 for the string char type. It's `const unsigned char' to match the
9343 rest of Emacs. Consistently make sure all pointers to strings use
9344 it and make sure all pointers into the pattern use `unsigned
9345 char'.
66f0296e 9346 (re_match_2_internal): Use `PREFETCH+STRING_CHAR' instead of
34e23e5a
GM
9347 GET_CHAR_AFTER_2. Also merge wordbound and notwordbound to reduce
9348 code duplication.
66f0296e
SM
9349
9350 * charset.h (GET_CHAR_AFTER_2): Remove.
9351 (GET_CHAR_BEFORE_2): Use unsigned chars, like everywhere else.
9352
854a025c
KR
93532000-03-12 Ken Raeburn <raeburn@gnu.org>
9354
9355 * Makefile.in (temacs): Evaluate ALL_LDFLAGS into a temporary
9356 variable before the invocation of YMF_PASS_LDFLAGS, in case both
9357 of them try to use backquotes.
9358
b9d2c7e2
DL
93592000-03-12 Dave Love <fx@gnu.org>
9360
9361 * unexelf.c: Restore changes of 1999-10-19.
9362 (unexec): Don't adjust bss for sbss type SHT_PROGBITS; otherwise
9363 fix its type and alignment; copy it from current process.
9364
5e5dff44
GM
93652000-03-12 Gerd Moellmann <gerd@gnu.org>
9366
9b2f3c38
GM
9367 * atimer.c (cancel_atimer): Break out of the loop as soon as timer
9368 has been found. Fix bug not computing timer's predecessor.
9369
427ec082 9370 * fileio.c (Fread_file_name): Handle case that DIR contains a
9172b88d
GM
9371 file name.
9372
e1cff360
GM
9373 * window.c (Fsave_window_excursion): Doc fix.
9374
5e5dff44
GM
9375 * xfns.c (x_defined_color): Rewritten to use
9376 x_allocate_nearest_color.
9377
e411ce4b
EZ
93782000-03-12 Eli Zaretskii <eliz@is.elta.co.il>
9379
9380 * msdos.c (vga_installed): New function, code moved from
9381 dos_set_window_size.
9382 (Qbar, Qcursor_type, outside_cursor): New variables.
9383 (syms_of_msdos): Intern and staticpro them.
9384 (dos_ttraw) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Save the cursor
9385 shape used outside Emacs when called for the first time.
9386 (dos_ttcooked) [__DJGPP__ >= 2, !HAVE_X_WINDOWS]: Restore the
9387 cursor shape used outside Emacs.
9388 (msdos_set_cursor_shape, IT_set_cursor_type): New functions.
9389 (IT_frame_up_to_date): Call IT_set_cursor_type, in case the cursor
9390 type has changed.
9391 (IT_set_frame_parameters): Call IT_set_cursor_type if the frame
9392 parameters specify the cursor. Make qreverse a global
9393 variable (renamed to Qreverse).
9394
80460654
GM
93952000-03-09 Gerd Moellmann <gerd@gnu.org>
9396
9397 * fns.c (Fy_or_n_p): Cancel busy-cursor.
9398
95cd4c40
SM
93992000-03-08 Stefan Monnier <monnier@cs.yale.edu>
9400
9401 This is a big redesign of failure-stack and register handling, prompted
9402 by bugs revealed when trying to add shy-groups. Overall, what happened
9403 is that loops are now structured a little differently, groups can be
9404 shy and the code is a little simpler.
9405
9406 * regex.h: Update the copyright.
9407 (RE_SHY_GROUPS): New value.
9408 (RE_UNMATCHED_RIGHT_PAREN_ORD): Renumber.
9409 (RE_SYNTAX_EMACS): Add RE_SHY_GROUPS.
9410
80460654
GM
9411 * regex.c (enum re_opcode_t): Remove jump_past_alt,
9412 maybe_pop_jump, push_dummy_failure and dumy_failure_jump. Add
9413 on_failure_jump_(exclusive, loop and smart). Also fix the comment
9414 for (start|stop)_memory since they now only take one argument (the
9415 second has becomes unnecessary).
9416 (print_partial_compiled_pattern): Adjust for changes in
9417 re_opcode_t.
9418 (print_compiled_pattern): Use %ld to printf long ints and flush to
9419 make debugging a little easier.
95cd4c40
SM
9420 (union fail_stack_elt): Make the integer unsigned.
9421 (struct fail_stack_type): Add a `frame' element.
9422 (INIT_FAIL_STACK): Init `frame' as well.
9423 (POP_PATTERN_OP): New macro for re_compile_fastmap.
9424 (DEBUG_PUSH, DEBUG_POP): Remove.
9425 (NUM_REG_ITEMS): Remove.
9426 (NUM_NONREG_ITEMS): Adjust.
80460654
GM
9427 (FAILURE_PAT, FAILURE_STR, NEXT_FAILURE_HANDLE)
9428 (TOP_FAILURE_HANDLE): New macros for the cycle detection.
95cd4c40 9429 (ENSURE_FAIL_STACK): New macro for PUSH_FAILURE_(REG|POINT).
80460654
GM
9430 (PUSH_FAILURE_REG, POP_FAILURE_REG, CHECK_INFINITE_LOOP): New
9431 macros.
9432 (PUSH_FAILURE_POINT): Don't push registers any more. The pattern
9433 address pushed is not the destination of the jump but the source
9434 of it instead.
95cd4c40
SM
9435 (NUM_FAILURE_ITEMS): Remove.
9436 (POP_FAILURE_POINT): Adapt to the new stack structure (i.e. pop
80460654
GM
9437 registers before the actual failure point). Don't hardcode any
9438 meaning for str==NULL anymore.
95cd4c40 9439 (union register_info_type, REG_MATCH_NULL_STRING_P, IS_ACTIVE)
80460654
GM
9440 (MATCHED_SOMETHING, EVER_MATCHED_SOMETHING, SET_REGS_MATCHED):
9441 Remove.
95cd4c40
SM
9442 (REG_UNSET_VALUE): Use NULL (why not?).
9443 (compile_range): Remove declaration since it doesn't exist.
9444 (struct compile_stack_elt_t): Remove inner_group_offset.
9445 (old_reg(start|end), reg_info, reg_dummy, reg_info_dummy): Remove.
9446 (regex_grow_registers): Remove dead code.
9447 (FIXUP_ALT_JUMP): New macro.
80460654
GM
9448 (regex_compile): Add shy-groups Change loops to use
9449 on_failure_jump_smart&jump instead of
9450 on_failure_jump&maybe_pop_jump. Change + loops to eliminate the
9451 initial (dummy_failure_)jump. Remove c1_base (looks like unused
9452 variable to me). Use `jump' instead of `jump_past_alt' and don't
9453 bother with push_dummy_failure in alternatives since it is now
9454 unnecessary. Use FIXUP_ALT_JUMP. Eliminate a useless `#ifdef
9455 emacs' for (re)allocating the stack.
9456 (re_compile_fastmap): Remove dead variables i and num_regs. Exit
9457 from loop when bufp->can_be_null rather than jumping to `done'.
9458 Avoid jumping backwards so as to ensure termination. Use
9459 PATTERN_STACK_EMPTY and POP_PATTERN_OP. Improved handling of
9460 backreferences. Remove dead code in handling of `anychar'.
95cd4c40 9461 (skip_noops, mutually_exclusive_p): New functions taken from the
80460654
GM
9462 handling of `maybe_pop_jump' in re_match_2_internal. Slightly
9463 improve mutually_exclusive_p to handle ".+\n".
9464 (lowest_active_reg, highest_active_reg,
9465 NO_(LOWEST|HIGHEST)_ACTIVE_REG) Remove.
9466 (re_match_2_internal): Use %p instead of 0x%x when printf'ing
9467 ptrs. Don't SET_REGS_MATCHED anymore. Remove many dead
9468 variables. Push register (in `start_memory') on the stack rather
9469 than storing it in old_reg(start|end). Remove the cycle detection
9470 from `stop_memory', replaced by the use of on_failure_jump_loop
9471 for greedy loops. Add code for the new on_failure_jump_<foo>.
9472 Remove ad-hoc code in `on_failure_jump' to push more registers in
9473 the case of a loop. Take out code from `maybe_pop_jump' into
9474 separate functions and adapt it to the semantics of
9475 `on_failure_jump_smart'. Remove jump_past_alt, dummy_failure_jump
9476 and push_dummy_failure. Remove dummy_failure handling and
9477 handling of `failures to jump to on_failure_jump' (this last one
9478 was already dead code, it seems).
9479 (group_match_null_string_p, alt_match_null_string_p)
9480 (common_op_match_null_string_p): Remove.
95cd4c40 9481
7397acc4
DL
94822000-03-08 Dave Love <fx@gnu.org>
9483
9484 * config.in: Don't depend on __STDC__ for volatile.
9485 Add POINTER_TYPE, PTR, PROTOTYPES.
9486
9487 * hftctl.c, strftime.c: Use PROTOTYPES.
9488 * eval.c (find_handler_clause): Likewise.
9489
9490 * mem-limits.h: Use POINTER_TYPE.
9491
9492 * lisp.h (P_): Define based on PROTOTYPES, not __STDC__.
9493 (memory_warnings): Declare using POINTER_TYPE.
9494
5e91ff9e
GM
94952000-03-08 Gerd Moellmann <gerd@gnu.org>
9496
feab4fba
GM
9497 * xfns.c (x_set_cursor_type): If ARG is nil, give frame no cursor.
9498
25edb08f
GM
9499 * xdisp.c (display_echo_area): Temporarily inhibit garbage
9500 collection.
9501
5e91ff9e
GM
9502 * xfns.c: Remove obsolete code in #if 0.
9503 (Fx_focus_frame): New function.
9504
a735b7e1
KH
95052000-03-07 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
9506
9507 * coding.c (coding_category_name): Add coding-category-utf-8,
9508 coding-category-utf-16-be, coding-category-utf-16-le.
9509 (UTF_8_1_OCTET_P, UTF_8_EXTRA_OCTET_P, UTF_8_2_OCTET_LEADING_P,
9510 UTF_8_3_OCTET_LEADING_P, UTF_8_4_OCTET_LEADING_P,
9511 UTF_8_5_OCTET_LEADING_P, UTF_8_6_OCTET_LEADING_P): New macros.
9512 (detect_coding_utf_8): New function.
9513 (UTF_16_INVALID_P, UTF_16_HIGH_SURROGATE_P
9514 UTF_16_LOW_SURROGATE_P): New macros.
9515 (detect_coding_utf_16): New function
9516 (detect_coding_mask): When priorities are specified, skip any
9517 categories that have `nil' coding-system. Fix bug of returning
9518 wrong mask when PRIORITIES is specified and detect_coding_XXX()
9519 returns a mask not set in PRIORITIES.
9520 (detect_eol_type_in_2_octet_form): New function.
9521 (detect_eol): selects detect_eol_type_XXX to call according to
9522 cooding->category_idx.
9523 (detect_coding_system): Remove `nil' coding-system in the result.
9524 (Fupdate_coding_systems_internal): Update all coding-categories.
9525
9526 * coding.h (CODING_CATEGORY_IDX_UTF_8,
9527 CODING_CATEGORY_IDX_UTF_16_BE, CODING_CATEGORY_IDX_UTF_16_LE): New
9528 macros.
9529 (CODING_CATEGORY_IDX_RAW_TEXT, CODING_CATEGORY_IDX_BINARY,
9530 CODING_CATEGORY_IDX_MAX): Adjusted for the above macros.
9531 CODING_CATEGORY_IDX_UTF_16_LE.
9532 (CODING_CATEGORY_MASK_UTF_8, CODING_CATEGORY_MASK_UTF_16_BE,
9533 CODING_CATEGORY_MASK_UTF_16_LE): New macros.
9534 (CODING_CATEGORY_MASK_ANY): Include the above macros.
9535 (CODING_CATEGORY_MASK_UTF_16_BE_LE): New macro.
9536
9994cc69
GM
95372000-03-07 Gerd Moellmann <gerd@gnu.org>
9538
e9b4e5ff
GM
9539 * doc.c (Fdocumentation_property): If value is not a string,
9540 and doesn't refer to etc/DOC, evaluate it to obtain a string.
9541
f7daf1e1
GM
9542 * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Don't try to
9543 close the display with XtCloseDisplay. This caused a bus error
9544 on OpenWindows.
9545
9994cc69
GM
9546 * minibuf.c (Fminibuffer_complete): Move point to ZV when input is
9547 complete but not unique.
9548
4336c705
GM
95492000-03-06 Gerd Moellmann <gerd@gnu.org>
9550
18bb0684
GM
9551 * process.c (send_process): Remove local variable `procname' that
9552 might become invalid when a GC happens. Instead, access the
9553 process name slot directly.
9554
4336c705
GM
9555 * xfns.c (x_set_menu_bar_lines_1): Adjust window's orig_top and
9556 orig_height if set.
9557
9558 * frame.c (set_menu_bar_lines_1): Adjust window's orig_top and
9559 orig_height if set.
9560
515d0d0e
EZ
95612000-03-06 Eli Zaretskii <eliz@is.elta.co.il>
9562
9563 * msdos.c (IT_note_mouse_highlight): Return immediately if frame's
9564 glyph matrices have been freed.
9565
100b3cbb
GM
95662000-03-05 Gerd Moellmann <gerd@gnu.org>
9567
50df5e5a 9568 * Makefile.in (tags): Include ../lwlib/TAGS in TAGS.
6178bc23 9569 (bootstrap-temacs): Set LC_ALL to C like for temacs.
50df5e5a
GM
9570
9571 * xfns.c (QCdata): Moved to xdisp.c.
9572
9573 * xdisp.c (QCdata): Moved here from xfns.c.
9574 (syms_of_xdisp): Initialize QCdata.
9575
9576 * frame.h (FRAME_INTERNAL_BORDER_WIDTH) [!HAVE_X_WINDOWS]: Define.
9577
9578 * window.c (coordinates_in_window): Use
9579 FRAME_INTERNAL_BORDER_WIDTH_SAFE instead of
9580 FRAME_INTERNAL_BORDER_WIDTH.
9581
100b3cbb 9582 * xdisp.c (try_window_id): Recompute unchanged information if
4336c705 9583 it is obviously invalid.
100b3cbb
GM
9584
9585 * xterm.c (x_term_init): Create a colormap if not using the
9586 default visual.
9587
9588 * xterm.h (select_visual): Change prototype.
9589
9590 * xfns.c (select_visual): Rewritten. Recognize user-specified
9591 visual classes.
9592 (visual_classes): New variable.
9593
64d739c4
GM
95942000-03-04 Gerd Moellmann <gerd@gnu.org>
9595
9596 * xfns.c (x_defined_color, x_set_mouse_color, lookup_rgb_color)
9597 (lookup_pixel_color, x_laplace, x_build_heuristic_mask)
9598 (png_load): Access colormap of frame using FRAME_X_COLORMAP.
9599 (x_decode_color): Don't handle allocation of white and black
9600 specially.
9601 (x_window) [USE_X_TOOLKIT]: Set XtNvisual, XtNdepth, and
9602 XtNcolormap resources.
9603 (x_window) [!USE_X_TOOLKIT]: Pass colormap to XCreateWindow.
9604 (Fx_create_frame): Initialize color members of x_output structure.
9605 (xpm_load): Pass colormap to XPM lib.
9606
9607 * xfaces.c (x_free_colors): Access colormap of frame using
9608 FRAME_X_COLORMAP. Be paranoid about freeing black and white
9609 when default colormap is used.
9610
9611 * xterm.c (x_term_init): Set Colormap member of x_display_info
9612 structure. Copy colormap if resource `privateColormap' is
9613 specified (PseudoColor only).
9614 (x_setup_relief_color): Access colormap of frame using
9615 FRAME_X_COLORMAP.
9616
9617 * xterm.h (struct x_display_info): Add Colormap member `cmap'.
9618 (FRAME_X_COLORMAP, FRAME_X_VISUAL): New macros.
9619
c3cee013
JR
96202000-03-04 Jason Rumney <jasonr@gnu.org>
9621
9622 * xfaces.c Change many FRAME_X... macros to FRAME_WINDOW... or
9623 other non-platform-specific equivalents.
64d739c4 9624 [WINDOWSNT]: Include w32term.h, fontset.h and define X
c3cee013
JR
9625 specific functions and macros as their w32 equivalents where
9626 non-platform-specifics are not available.
9627 [HAVE_X_WINDOWS]: Change most of these to HAVE_WINDOW_SYSTEM.
9628 (x_create_gc, x_free_gc) [WINDOWSNT]: Add W32 versions.
9629 (clear_font_table) [WINDOWSNT]: Call w32_unload_font.
9630 (frame_update_line_height): Use macros to access f->output_data.
9631 (defined_color): Remove FIXME comments; fixed.
9632 (x_face_list_fonts, prepare_face_for_display): Put X specifics
9633 into #ifdef blocks. Add WINDOWSNT blocks.
9634 (Fx_list_fonts): Use macros for accessing font data.
9635 (set_lface_from_font_name): Different default fonts for X and
9636 WINDOWSNT.
9637 (font_scalable_p) [WINDOWSNT]: Treat wildcard XLFD_AVGWIDTH as
9638 scalable for backward compatibility.
64d739c4 9639 (realize_tty_face) [MSDOS]: Do the same for WINDOWSNT.
c3cee013
JR
9640 (syms_of_xfaces) [WINDOWSNT]: Allow scalable fonts by default.
9641
64d739c4 9642 * emacs.c (main) [HAVE_NTGUI]: Call syms_of_xfaces instead of
c3cee013
JR
9643 syms_of_w32faces.
9644
9645 * makefile.nt (w32faces.obj): Remove.
9646 (xfaces.obj): Add.
9647
807cc41c
JR
96482000-03-03 Jason Rumney <jasonr@gnu.org>
9649
9650 * keyboard.c (make_lispy_event): Call buffer_posn_from_coords with
9651 correct parameters.
9652
0007072a
KR
96532000-03-03 Ken Raeburn <raeburn@gnu.org>
9654
9655 * unexelf.c (PT_LOAD, SHT_*, SHN_*) [__NetBSD__]: Only provide
9656 standard ELF definitions here if the system header does not.
9657
71a6ba55
GM
96582000-03-03 Gerd Moellmann <gerd@gnu.org>
9659
9660 * xterm.c (PER_CHAR_METRIC): Removed.
9661 (x_per_char_metric_1, x_default_char): New functions.
9662 (x_per_char_metric): If font's default char is invalid, return
9663 metrics of a suitably chosen usable default char.
9664 (x_draw_glyph_string_foreground): If font has an invalid default
64d739c4
GM
9665 char, replace occurrences of unprintable chars with a suitably
9666 chosen usable default char.
71a6ba55 9667
900fa1f1
GM
96682000-03-02 Gerd Moellmann <gerd@gnu.org>
9669
42f55fe0
GM
9670 * xterm.c (note_mouse_highlight): Return quickly if frame's
9671 glyph matrices have been freed.
9672
9673 * dispnew.c (free_glyphs): Block input while freeing matrices.
9674
900fa1f1
GM
9675 * xfns.c (x_clear_image, x_kill_gs_process): Use x_free_colors.
9676
9677 * xterm.c (x_alloc_lighter_color, x_setup_relief_color): Use
9678 x_free_colors.
9679
9680 * dispextern.h (x_free_colors): Add prototype.
9681
9682 * xfaces.c (x_free_colors): New function.
9683 (unload_color, free_face_colors): Use it.
9684
2f950292
EZ
96852000-03-02 Eli Zaretskii <eliz@is.elta.co.il>
9686
9687 * msdos.h (FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
9688
9689 * window.c [MSDOS]: Include msdos.h.
9690
54d04320
DL
96912000-03-02 Dave Love <fx@gnu.org>
9692
9693 * m/powerpcle.h, m/sparc.h: Don't set C_OPTIMIZE_SWITCH.
9694
9695 * m/mips-siemens.h, m/news-r6.h, m/news-risc.h, m/tekxd88.h: Don't
9696 set C_OPTIMIZE_SWITCH for gcc.
9697
0ba93ac4
KH
96982000-03-02 Kenichi Handa <handa@etl.go.jp>
9699
9700 * coding.c (coding_save_composition): Be sure to allocate
9701 composition data area in coding even if there's no composition in
9702 the current run.
9703
a2bc11d4
JR
97042000-03-01 Jason Rumney <jasonr@gnu.org>
9705
9706 * w32term.c: Equivalent changes to those made to xterm.c on
9707 2000-02-25 and 2000-02-24.
9708
9709 * w32fns.c: Equivalent changes to those made to xfns.c on
9710 2000-02-25 and 2000-02-21.
9711
9712 * sysdep.c: [WINDOWSNT]: Use sys_read and sys_write to ensure
9713 correct line-end convention is followed.
9714
9715 * w32menu.c [HAVE_BOXES]: Remove #undef.
9716 (single_keymap_panes): Remove code for simulating checkmarks.
9717 (single_menu_item): Remove notbuttons_ptr argument. Callers changed.
9718 Remove code for drawing simulated checkmarks.
9719 (w32_menu_show): make unibyte help string correctly.
9720 (add_menu_item): draw standard Windows checkmarks. Draw radio
9721 buttons as radio buttons if possible.
9722
72d19d75
GM
97232000-03-01 Gerd Moellmann <gerd@gnu.org>
9724
2df636f4
GM
9725 * sysdep.c (start_of_text): Don't define this function for NetBSD
9726 with ELF.
9727
427ec082 9728 * m/pmax.h (START_FILES, CANNOT_DUMP) [__NetBSD__ || __OpenBSD__]:
2df636f4
GM
9729 Don't define.
9730 (UNEXEC) [__NetBSD__ || __OpenBSD__]: Define to unexelf.o.
9731 (LINKER): Don't undef if __NetBSD__ is defined.
9732
9733 * m/mips.h (LINKER) [__NetBSD__ || __OpenBSD__]: Don't define.
9734
9735 * fileio.c [__NetBSD__]: Define `unix'.
9736
72d19d75
GM
9737 * xfns.c (start_busy_cursor): Allow floats for busy-cursor-delay.
9738
ed4d0512
GM
97392000-02-29 Gerd Moellmann <gerd@gnu.org>
9740
50b1039f
GM
9741 * atimer.c (start_atimer): Don't abort when timers are stopped.
9742 (append_atimer_lists): New function.
9743 (cancel_atimer, stop_other_atimers, run_all_atimers): Handle
9744 arbitrary lists of stopped and running atimers.
9745
ed4d0512
GM
9746 * atimer.c (cancel_atimer): Handle canceling an atimer when
9747 some timers are stopped.
9748
9749 * xfns.c (cancel_busy_cursor): Set busy_cursor_atimer to null
9750 after canceling it.
9751
9752 * fns.c (maybe_resize_hash_table): Handle case of new size
9753 coming out as being the same as old size.
9754
387023ee
JR
97552000-02-27 Jason Rumney <jasonr@gnu.org>
9756
9757 * makefile.nt: Add atimer.h to dependencies.
9758 * w32.c (init_environment): Set Vw32_num_mouse_buttons here.
9759 * w32console.c: Only disable window system features for dispextern.h
9760 (initialize_w32_display): Build a display info for the console.
9761 * w32faces.c (tty_defined_color): Apply xfaces.c change from 02-17.
9762 * w32fns.c (w32_wnd_proc) [WM_LBUTTON_DOWN, WM_RBUTTON_DOWN,
9763 WM_LBUTTON_UP, WM_RBUTTON_UP]: Do not treat 4 or more button mice
9764 as 2 button mice.
9765 * w32gui.h (struct W32FontStruct): Revert last change after change
9766 to xdisp.c.
9767 * w32menu.c (single_submenu): Set up help string.
9768 [!HAVE_MULTILINGUAL_MENU]: Don't overwrite item_name with descrip.
9769 (w32_dialog_show): Set up help string.
9770 * w32term.c (w32_display_info_for_display): Remove unused function.
9771 (w32_draw_bitmap): Use pre-built bitmaps.
9772 (w32_initialize_display_info): New function to initialize parts of
9773 display info that are common to both GUI and console frames.
9774 (w32_term_init): Use w32_initialize_display_info. Do not set
9775 Vw32_num_mouse_buttons here, as it is not called for console
9776 frames. Build bitmaps for indicating truncated lines etc.
9777 (x_delete_display): Destroy pre-built bitmaps.
9778 * xdisp.c (handle_single_display_prop): Use FONT_HEIGHT macro.
9779 (echo_area_display): Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM.
9780
4516715a
DL
97812000-02-27 Dave Love <fx@gnu.org>
9782
9783 * lisp.h: Add a bunch of prototypes.
9784
171ca836
KH
97852000-02-26 Kenichi Handa <handa@etl.go.jp>
9786
9787 * keyboard.c (read_char): Set `usec' correctly.
9788
4013921d
KH
97892000-02-25 Miyashita Hisashi <himi@bird.scphys.kyoto-u.ac.jp>
9790
9791 * ccl.c (ccl_driver) [CCL_MapMultiple]: When the mapped value is
9792 `lambda', set reg[RRR] to the map index.
9793 (ccl_driver) [CCL_MapSingle]: When the mapped value is found, set
9794 reg[RRR] to 0. Otherwise, set it to -1.
9795
9244a058
GM
97962000-02-25 Gerd Moellmann <gerd@gnu.org>
9797
2df636f4 9798 * emacs.c (main): Remove code snippet commented out with `//'.
9244a058 9799
18e21ce8 98002000-02-25 Richard M. Stallman <rms@gnu.org>
427ec082 9801
f43d79c1
GM
9802 * fileio.c (Ffile_symlink_p): If result starts with a `/'
9803 and contains a `:', prepend `/:'.
9804
9805 * window.c (select_window_1): If selected_window is nil,
9806 don't "swap out" the buffer's point.
9807 (Fset_window_configuration): Set selected_window to nil
9808 before calling Fselect_window.
9809 (unshow_buffer): Don't set point in buffer from window's point
9810 if another more recently selected window also shows the buffer.
9811
bed0c171
GM
98122000-02-25 Gerd Moellmann <gerd@gnu.org>
9813
449c3c52
GM
9814 * keyboard.c (recursive_edit_1): Cancel busy-cursor.
9815
f5b58615
GM
9816 * xfns.c (inhibit_busy_cursor, busy_count): Removed.
9817 (Fx_show_busy_cursor, Fx_hide_busy_cursor): Removed.
9818 (busy_cursor_atimer, busy_cursor_shown_p, Vbusy_cursor_delay): New
9819 variables.
9820 (DEFAULT_BUSY_CURSOR_DELAY): New define.
9821 (start_busy_cursor, cancel_busy_cursor, show_busy_cursor)
9822 (hide_busy_cursor): New functions.
9823 (syms_of_xfns): DEFVAR_LISP Vbusy_cursor_delay.
9824
9825 * minibuf.c (read_minibuf): Cancel busy-cursor.
9826
9827 * keyboard.c (command_loop_1): Call start_busy_cursor before
9828 Fcommand_execute and cancel_busy_cursor after it.
9829 (timer_check): Remove busy-cursor code.
9830 (Fread_key_sequence, Fread_key_sequence_vector): Start/cancel busy
9831 cursor timer.
9832
9833 * process.c (wait_reading_process_input): Remove busy-cursor code.
9834
9835 * eval.c (Fsignal): Call cancel_busy_cursor instead of
9836 Fx_hide_busy_cursor.
9837
9838 * dispextern.h (Fx_show_busy_cursor, Fx_hide_busy_cursor):
9839 Remove prototyoes.
9840 (start_busy_cursor, cancel_busy_cursor): Add prototypes.
9841
9842 * lisp.h (Fx_hide_busy_cursor): Remove prototype.
9843
9844 * xterm.c (XTread_socket): Remove busy-cursor code.
9845
4eb8436f
GM
9846 * dispnew.c (flush_stdout) [GLYPH_DEBUG]: New function.
9847 (build_frame_matrix_from_leaf_window): Put code handling
9848 glyph row's not being a slice of a frame row in #if 0.
9849 (sync_window_with_frame_matrix_rows): New function.
9850 (frame_row_to_window): New function.
9851 (mirror_line_dance): Handle copies between windows.
9852
3cb65b0e
GM
9853 * lread.c (Fload): Use `xfree' instead of `free'.
9854 (init_obarray): Use `xmalloc' instead of `malloc'.
9855
bed0c171
GM
9856 * window.c (Fset_window_buffer): Set WINDOW to the window
9857 after decoding.
2add4349
GM
9858 (coordinates_in_window): Take frame's internal border width
9859 into account.
bed0c171 9860
42088c12
GM
98612000-02-24 Gerd Moellmann <gerd@gnu.org>
9862
9863 * xterm.c (x_display_and_set_cursor): Display cursor of
9864 non-selected windows depending on the setting of
9865 cursor_in_non_selected_windows.
9866
9867 * xdisp.c (cursor_in_non_selected_windows): New variable.
9868 (syms_of_xdisp): DEFVAR_BOOL it.
9869
d1e103b2
GM
98702000-02-23 Gerd Moellmann <gerd@gnu.org>
9871
723e779c
GM
9872 * data.c (Fstring_to_number): If number is greater than what
9873 fits into an integer, return a float.
9874
d1e103b2
GM
9875 * eval.c (specbind): Remove references to
9876 keyword_symbols_constant_flag.
9877
9878 * data.c (keyword_symbols_constant_flag): Removed.
9879 (Fmakunbound, set_internal, syms_of_data): Remove references to
9880 keyword_symbols_constant_flag.
9881
9882 * bytecode.c (Fbyte_code): Remove keyword_symbols_constant_flag.
9883
214f877f
KH
98842000-02-23 Kenichi Handa <handa@etl.go.jp>
9885
9886 * syntax.c (multibyte_syntax_as_symbol): New variable.
9887 (syms_of_syntax): Declare it as a Lisp variable.
9888 (SYNTAX_WITH_MULTIBYTE_CHECK): New macro.
9889 (scan_lists): If both sexpflag and multibyte_syntax_as_symbol are
9890 nonzero, treat all multibyte characters as symbol.
42088c12 9891 (init_syntax_once): Give syntax `word' to all multibyte
214f877f
KH
9892 characters.
9893
130adcb7
EZ
98942000-02-22 Eli Zaretskii <eliz@is.elta.co.il>
9895
3cb65b0e 9896 * frame.c (Fdelete_frame): Don't let echo_area_window remain on
d7d0dac0 9897 a deleted frame.
130adcb7 9898
17cbbf95
GM
98992000-02-21 Gerd Moellmann <gerd@gnu.org>
9900
9901 * frame.c (Fmouse_position): GCPRO retval instead of x and y.
9902
9903 * xfns.c (x_window_to_frame, x_any_window_to_frame)
9904 (x_non_menubar_window_to_frame): Check the busy-cursor window.
9905
beb0bc36
DL
99062000-02-21 Dave Love <fx@gnu.org>
9907
9908 * frame.c (Vmouse_position_function): New variable.
9909 (Fmouse_position): Use it.
9910 (syms_of_frame): Install it.
9911
9912 * charset.c (find_charset_in_str): Fix use of `c' instead of `c1'.
9913
1d92afcd
GM
99142000-02-20 Gerd Moellmann <gerd@gnu.org>
9915
9916 * fileio.c (Finsert_file_contents): Unbind the binding of
9917 standard-output done by temp_output_buffer_setup.
329eed9f
GM
9918
9919 * eval.c (funcall_lambda): Don't bind Qmocklisp_arguments unless
9920 Vmocklisp_arguments is nil. Inline Fcar and Fcdr.
9921 (specbind, unbind_to): Handle most common case of non-constant
9922 symbol with trivial value specially.
9923
9924 * bytecode.c (Fbyte_code) <Bvarset>: Inline most common case.
9925
18e21ce8 99262000-02-20 Richard M. Stallman <rms@gnu.org>
2d06696f
RS
9927
9928 * data.c (Fmake_variable_buffer_local): Doc fix.
9929 Init found_for_buffer to 0.
9930 (Fmake_variable_frame_local): If the variable has already
9931 been buffer-local, set the check_frame field.
9932
1d4311c3
EZ
99332000-02-20 Eli Zaretskii <eliz@is.elta.co.il>
9934
9935 * msdos.c (IT_write_glyphs): Allocate a larger screen_buf as data
9936 produced for CODING_MODE_LAST_BLOCK requires.
9937
2dc95ddd
DL
99382000-02-18 Dave Love <fx@gnu.org>
9939
9940 * keyboard.c (echo_keystrokes): Remove declaration.
9941 (Vecho_keystrokes) New variable.
9942 (read_char, record_menu_key, read_key_sequence): Use it to allow
9943 use of float value.
9944 (syms_of_keyboard): Change Vecho_keystrokes declaration.
9945
9946 * lread.c: Undef feature selection macros before defining.
9947
f0930f35
GM
99482000-02-18 Gerd Moellmann <gerd@gnu.org>
9949
9950 * data.c (let_shadows_buffer_binding_p): Ignore specbindings
9951 for symbols other than the symbol in question.
9952
e3d4de90
DL
99532000-02-17 Dave Love <fx@gnu.org>
9954
9955 * s/sol2.h (C_DEBUG_SWITCH): Define to allow optimization.
9956
0b378936
GM
99572000-02-17 Gerd Moellmann <gerd@gnu.org>
9958
d621caf7
GM
9959 * emacs.c (main): Use #if GC_MARK_STACK instead of #ifdef.
9960
0b378936
GM
9961 * alloc.c (enum mem_type): Compile unconditionally.
9962
3b451f74
EZ
99632000-02-17 Eli Zaretskii <eliz@is.elta.co.il>
9964
9965 * xfaces.c (tty_defined_color): Don't return faulire indication
9966 for unspecified-fg and unspecified-bg pseudo-colors.
9967
10689a01
GM
99682000-02-17 Gerd Moellmann <gerd@gnu.org>
9969
1216f5e4
GM
9970 * alloc.c (mark_object): Don't mark symbol names in pure space.
9971 (gc_sweep): Don't unmark symbol names in pure space.
9972
9973 * lisp.h (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
9974 (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
9975 [GC_MARK_STACK]: New defines.
427ec082 9976 (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, UNGCPRO)
1216f5e4
GM
9977 [GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS]: Define as no-ops.
9978
9979 * emacs.c (main) [GC_MARK_STACK]: Initialize stack_base.
9980
9981 * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use
9982 allocate_buffer instead of xmalloc.
9983
9984 * alloc.c (toplevel): Include setjmp.h.
9985 (PURE_POINTER_P): New define.
9986 (enum mem_type) [GC_MARK_STACK]: New enumeration.
9987 (Vdead) [GC_MARK_STACK]: New variable.
9988 (lisp_malloc): Add parameter TYPE, call mem_insert if
9989 GC_MARK_STACK is defined.
9990 (allocate_buffer): New function.
427ec082 9991 (lisp_free) [GC_MARK_STACK]: Call mem_delete.
1216f5e4
GM
9992 (free_float) [GC_MARK_STACK]: Set type to Vdead.
9993 (free_cons) [GC_MARK_STACK]: Set car to Vdead.
9994 (stack_base, mem_root, mem_z) [GC_MARK_STACK]: New variables.
9995 (MEM_NIL) [GC_MARK_STACK]: New define.
9996 (struct mem_node) [GC_MARK_STACK]: New structure.
9997 (mem_init, mem_find, mem_insert, mem_delete, mem_insert_fixup)
9998 (mem_delete_fixup, mem_rotate_left, mem_rotate_right)
9999 (live_string_p, live_cons_p, live_symbol_p, live_float_p)
10000 (live_misc_p, live_vector_p, live_buffer_p, mark_memory)
10001 (mark_stack) [GC_MARK_STACK]: New functions.
10002 (Fgarbage_collect) [GC_MARK_STACK]: Call mark_stack.
10003 (clear_marks): Removed.
10004 (gc_sweep): Set free conses' car, free floats' type, free
10005 symbols' function to Vdead. Use lisp_free to free buffers.
10006 (init_alloc_once): Initialize Vdead.
10007 (survives_gc_p): Return non-zero for pure objects.
10008
10009 * alloc.c: Add comments throughout the file.
10010
2503c8b1
GM
10011 * atimer.c (stop_other_atimers): Don't call cancel_atimer because
10012 that unblocks alarms.
10013
8389e1e2
GM
10014 * alloc.c, bytecode.c, data.c, dispnew.c, ecrt0.c, editfns.c,
10015 emacs.c, floatfns.c, fns.c, lread.c, print.c, config.in, lisp.h,
10016 Makefile.in: Remove `LISP_FLOAT_TYPE' and `standalone'.
10017
10689a01 10018 * frame.c (make_frame): Set frame initiallly to `garbaged'.
427ec082 10019
bfc17d18
KH
100202000-02-17 Kenichi Handa <handa@etl.go.jp>
10021
4a09dee0
KH
10022 * xdisp.c (decode_mode_spec_coding): Delete superfluous code to
10023 avoid infinite error signaling. Allocate sufficient memory for
10024 eol_str in the case that eoltype is Lisp_Int.
bfc17d18 10025
2b927d02
SM
100262000-02-17 Stefan Monnier <monnier@cs.yale.edu>
10027
10028 * syntax.c (Fforward_comment): Undo the previous change, since cc-mode
10029 depends on the previous behavior.
10030
b49cb764
GM
100312000-02-16 Gerd Moellmann <gerd@gnu.org>
10032
10033 * sysdep.c (vfork) [!HAVE_VFORK]: Removed.
10034
99e95407
GM
100352000-02-15 Gerd Moellmann <gerd@gnu.org>
10036
10037 * s/freebsd.h (BROKEN_PTY_READ_AFTER_EAGAIN): Define.
10038
10039 * process.c (send_process) [BROKEN_PTY_READ_AFTER_EAGAIN]:
b49cb764 10040 Workaround for FreeBSD bug. Clear output queue after EAGAIN in
99e95407
GM
10041 write(2).
10042
6ffd3cf7
RS
100432000-02-15 Richard M. Stallman <rms@gnu.org>
10044
10045 * data.c (set_internal): Don't make variable buffer-local
10046 if within a let-binding for the same buffer.
10047 (let_shadows_buffer_binding_p): New function.
10048
10049 * eval.c (specbind): For buffer-local value,
10050 record the current buffer also.
10051 (unbind_to): Cope with that change.
10052
cad53475
GM
100532000-02-15 Gerd Moellmann <gerd@gnu.org>
10054
10055 * window.c (Fsave_window_excursion): Doc fix.
10056
1aa963c8
SM
100572000-02-15 Stefan Monnier <monnier@cs.yale.edu>
10058
10059 * syntax.c (back_comment): Make sure we only consider comment-starters
10060 of the relevant style and return -1 in case of a failure to find the
10061 beginning of the comment.
10062 (Fforward_comment): If back_comment fails, go back to the position just
10063 after the comment-end.
10064 (scan_lists): Add comment describing a very minor bug.
10065
b9b84fd3
SM
100662000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10067
10068 * minibuf.c (Ftry_completion, Fall_completions): Add a reference to
10069 `completion-regexp-list' in the docstring.
10070
3a28db80
DL
100712000-02-14 Dave Love <fx@gnu.org>
10072
10073 * xfaces.c (tty_defined_color): Declare color_idx unsigned long.
10074
fb4a568d
SM
100752000-02-14 Stefan Monnier <monnier@cs.yale.edu>
10076
10077 * regex.h (RE_SYNTAX_EMACS): Add RE_CHAR_CLASSES and RE_INTERVALS
10078 to Emacs' syntax. Also fix the comment about set/not-set meanings
10079 since Emacs syntax is not the value 0 any more.
10080 * search.c (compile_pattern_1): Remove RE_CHAR_CLASSES from the syntax
10081 since it's now part of RE_SYNTAX_EMACS.
10082
1063ebb5
DL
100832000-02-12 Dave Love <fx@gnu.org>
10084
10085 * frame.h (SELECTED_FRAME): Use NULL, not 0 to avoid warnings on
10086 Alpha.
10087
fb07a302
GM
100882000-02-12 Gerd Moellmann <gerd@gnu.org>
10089
10090 * xdisp.c (syms_of_xdisp): Doc fix for scroll-conservatively.
10091
aaf2320c
DL
100922000-02-12 Dave Love <fx@gnu.org>
10093
10094 * s/aix3-2.h, s/osf-1.h: Define C_DEBUG_SWITCH for non-gcc.
10095
10096 * s/ux4800.h, s/umips.h, s/umax.h, s/sol2.h, s/sco5.h, s/rtu.h:
fb07a302
GM
10097 * s/ptx4.h, s/umax.h, s/dgux.h, s/bsd4-2.h, s/bsd4-3.h:
10098 * s/hpux.h: Don't define HAVE_VFORK.
aaf2320c
DL
10099
10100 * s/gnu-linux.h: Don't define HAVE_VFORK or HAVE_SYS_SIGLIST.
10101
10102 * s/nextstep.h: Don't define HAVE_ALLOCA.
10103
10104 * config.in: Add vfork bits.
10105
eedf8bde
GM
101062000-02-12 Gerd Moellmann <gerd@gnu.org>
10107
10108 * process.c (Fopen_network_stream) [POLL_FOR_INPUT]: Register
10109 unwind function to undo the effect of stopping atimers.
10110
10111 * keyboard.c (bind_polling_period): Stop all timers except
10112 poll_timer.
10113
10114 * atimer.c (stopped_atimers): New variable.
10115 (stop_other_atimers, run_all_atimers, unwind_stop_other_atimers):
10116 New functions.
10117
10118 * atimer.h (stop_other_atimers, run_all_atimers)
10119 (unwind_stop_other_atimers): Add function prototypes.
427ec082 10120
eedf8bde
GM
10121 * s/hpux10.h (HAVE_XRMSETDATABASE): Define if not already defined.
10122
8476c2f8
KR
101232000-02-11 Ken Raeburn <raeburn@gnu.org>
10124
10125 * Makefile.in (LIBX): Link in tiff library before jpeg, since tiff
10126 library may depend on jpeg.
10127 (atimer.o): Depends on atimer.c.
10128
0e85e4a3
KH
101292000-02-11 Kenichi Handa <handa@etl.go.jp>
10130
10131 * insdel.c (del_range_1): Call update_compositions.
10132 (del_range_both): Call update_compositions just once..
10133
97fa0cc8
DL
101342000-02-10 Dave Love <fx@gnu.org>
10135
10136 * xfns.c (create_frame_xic): Fix initialization of automatic
10137 aggregates for pcc.
10138
25566a3c
KH
101392000-02-09 Kenichi Handa <handa@etl.go.jp>
10140
10141 * ccl.c (CCL_MAKE_CHAR): New macro.
10142 (ccl_driver) <CCL_TranslateCharacter>: Check the validity of
10143 registers by CCL_MAKE_CHAR before calling translate_char.
10144 <CCL_TranslateCharacterConstTbl> Likewise.
10145
69da54ba
DL
101462000-02-08 Dave Love <fx@gnu.org>
10147
10148 * lread.c (__EXTENSIONS__): Define.
10149
f7136ee8
GM
101502000-02-08 Gerd Moellmann <gerd@gnu.org>
10151
10152 * puresize.h (BASE_PURESIZE): Increase to 650000.
10153
7768790b
EZ
101542000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10155
10156 * msdos.c (XMenuActivate): Turn off the cursor after displaying
10157 the help message.
10158
38fd211b
EZ
101592000-02-07 Eli Zaretskii <eliz@is.elta.co.il>
10160
10161 * s/msdos.h (INTERNAL_TERMINAL): Add capabilities se, so, us, ue,
10162 md, mh, mb, mr, and me to the fake termcap entry.
10163
66e4690f
KR
101642000-02-06 Ken Raeburn <raeburn@gnu.org>
10165
10166 * sound.c (sound_cleanup): Don't call device close routine if the
10167 function pointer is null.
10168
a75dfea0
AI
101692000-02-06 Andrew Innes <andrewi@gnu.org>
10170
10171 * dispextern.h: Change HAVE_X_WINDOWS to HAVE_WINDOW_SYSTEM,
10172 around image definitions and prototypes.
10173 (gamma_correct) [WINDOWSNT]: New prototype.
10174
10175 * w32term.c (x_make_frame_visible): Replace call to
10176 input_poll_signal with poll_for_input.
10177
10178 * window.c [WINDOWSNT]: Include w32term.h.
10179
10180 * xdisp.c [WINDOWSNT]: Include w32term.h.
10181
10182 * makefile.nt: Add dependencies on w32gui.h.
10183 (OBJ1): Include atimer.obj.
10184 ($(BLD)\atimer.obj): New dependency rule.
10185
10186 * w32.c (sigmask): New function (does nothing).
10187 (sigunblock): Ditto.
10188
10189 * frame.c [WINDOWSNT]: Include w32term.h.
10190
10191 * w32gui.h (struct W32FontStruct): Add ascent and descent slots.
10192
10193 * lread.c (syms_of_lread): Fix literal newlines.
10194
10195 * emacs.c (USAGE): Split into USAGE1 and USAGE2, to work-around
10196 the string constant limit (2048 bytes) in MSVC.
10197 (main): Ditto.
10198
59ddecde
GM
101992000-02-05 INOUE Seiichiro <inoue@ainet.or.jp>
10200
10201 * xterm.c (x_display_and_set_cursor) [HAVE_X_I18N]: Set pre-edit
10202 area.
10203 (x_display_cursor) [HAVE_X_I18N]: Don't set it here.
10204 (XTread_socket) [HAVE_X_I18N]: <KeyPress, KeyRelease>: Don't
10205 dispatch the event.
10206
07590973
DL
102072000-02-04 Dave Love <fx@gnu.org>
10208
10209 * fileio.c: Remove some unused vars.
10210 (_GNU_SOURCE): Define (for euidaccess).
10211
10212 * lread.c (_XOPEN_SOURCE): Declare (for ftello).
10213
10214 * minibuf.c (read_minibuf_noninteractive): Remove undeclared
10215 gcpro1, gcpro2.
10216 (read_minibuf): Deal with allow_props correctly.
10217
649351f9
EZ
102182000-02-03 Eli Zaretskii <eliz@is.elta.co.il>
10219
10220 * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Enlarge to 60000.
10221
66e4690f 102222000-02-03 Ken Raeburn <raeburn@gnu.org>
f1b9c7c1
KR
10223
10224 * search.c (compile_pattern): If a cache entry has a nil regexp,
10225 fill in that entry instead of clobbering a previously cached
10226 string regexp.
10227
66e4690f 102282000-02-02 Ken Raeburn <raeburn@gnu.org>
15c9cf81
KR
10229
10230 * puresize.h (BASE_PURESIZE): Increase to 610000.
10231
d240a249
GM
102322000-02-02 Gerd Moellmann <gerd@gnu.org>
10233
10234 * frame.c (Fframe_parameters): Add GCPRO because tty_color_name
10235 can GC.
10236
ca91fb26
KH
102372000-02-02 Kenichi Handa <handa@etl.go.jp>
10238
25660570
KH
10239 * ccl.c (ccl_driver) <CCL_WriteExprRegister>: Set jump_address
10240 instead of incrementing ic directly.
10241 <CCL_WriteExprConst> Likewise.
10242 <ccl_set_expr>: Set ic to jump_address.
10243
ca91fb26
KH
10244 * fileio.c (e_write): Fix the handling of
10245 CODING_FINISH_INSUFFICIENT_SRC.
10246
2ede9689
DL
102472000-02-01 Dave Love <fx@gnu.org>
10248
10249 * editfns.c (Fpropertize): Doc fix.
10250
10251 * process.c (Fstart_process): Doc fix.
10252
10253 * eval.c: Fix various doc strings not to duplicate information
10254 from help-manyarg-func-alist.
10255
10256 * window.c (Fset_window_margins): Don't make interactive. Doc
10257 fix.
10258
10259 * doc.c (Vhelp_manyarg_func_alist): New variable.
10260 (Fdocumentation): Use it.
10261 (syms_of_doc): Define it.
10262
b6680a0e
GM
102632000-01-31 Gerd Moellmann <gerd@gnu.org>
10264
2cb750ba
GM
10265 * xterm.c (xim_open_dpy): Remove unused local variable.
10266
74e9213b
GM
10267 * emacs.c (USAGE): Use term `display options' instead of `X
10268 options'.
10269
10270 * xdisp.c (Ftrace_to_stderr) [GLYPH_DEBUG]: New function.
10271 (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
10272
b6680a0e
GM
10273 * fns.c (sweep_weak_table): New function.
10274 (sweep_weak_hash_tables): Use it. Keep on marking until there
10275 is no more change.
10276
994c5afe
GM
102772000-01-30 Gerd Moellmann <gerd@gnu.org>
10278
10279 * xterm.c (x_delete_display): Update next_noop_dpyinfo to ensure
10280 that XTread_socket does not crash by trying to call XNoOp on a
10281 closed display.
427ec082 10282
f00276e3
JR
102832000-01-30 Jason Rumney <jasonr@gnu.org>
10284
10285 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10286 Change selected_frame to SELECTED_FRAME ().
10287 (w32_console_mouse_position): Remove #ifndef MULE from around
10288 `insist' parameter.
10289
10290 * makefile.nt: Remove dosfns.obj.
10291
10292 * term.c (term_init) [WINDOWSNT]: Initialize TN_max_colors.
10293
10294 * w32fns.c (w32_defined_color): Check for valid frame before
10295 applying gamma correction. Eliminate dependency on frame elsewhere.
10296 (w32_load_system_font): Switch FIXED_PITCH and VARIABLE_PITCH.
10297 (w32_to_x_font): Use resx and resy not height_in and width_in.
10298 (x_to_w32_font): Doc fix.
10299 (xlfd_strip_height): New function to strip and return font height.
10300 (w32_font_match): Compare height separately from rest of xlfd
10301 spec, using xlfd_strip_height.
10302
10303 * w32term.c (w32_term_init): Swap resx and height_in, resy and
10304 width_in. Use w32_defined_color in place of defined_color.
10305
10306 * w32faces.c: Merge more of DOS and X specifics in preparation for
10307 merge with xfaces.c.
10308 (defined_color): Remove FIXME comment.
10309 (tty_color_name): Provide w32-specific function.
10310 (realize_tty_face): Handle FACE_TTY_DEFAULT*_COLOR specially.
10311
10312 * w32console.c (turn_on_face, turn_off_face): Removed.
10313 (w32_face_attributes): New function.
10314 (Global_variables): Reduce scope where possible.
10315 (clear_frame, ins_del_lines, scroll_line): Use char_attr_normal as
10316 fill attribute.
10317 (hl_mode): Don't modify text attributes.
10318 (write_glyphs): Don't do anything if len <= 0. Use
10319 w32_face_attributes to get attributes for drawing. Write
10320 terminating codes using char_attr_normal.
10321 (reset_terminal_modes, set_terminal_modes): Turn off highlight.
10322 (update_begin, update_end): Likewise.
10323 (vga_stdcolor_name): New function.
10324 (initialize_w32_display): Remove char_attr_reverse and char_attr.
10325 (Fset_screen_color): Remove char_attr_reverse.
10326
b08e8bb2
GM
103272000-01-29 Gerd Moellmann <gerd@gnu.org>
10328
10329 * xfns.c (xic_set_preeditarea): Take window parameter and
10330 window-relative pixel-positions.
10331
10332 * xterm.c (x_display_cursor): Set XIC pre-edit area only if window
10333 is its frame's selected window.
10334 (xim_instantiate_callback): Likewise.
10335
10336 * xfns.c (x_create_im): Removed.
10337 (DEFAULT_STYLE, DEFAULT_FONT): Removed.
10338 (supported_xim_styles): Renamed from supported_styles.
10339 (best_xim_style): Renamed from best_style.
10340 (create_frame_xic): Renamed from xic_create_frame.
10341 (free_frame_xic): Renamed from xic_destroy_frame.
427ec082 10342
b08e8bb2
GM
103432000-01-29 INOUE Seiichiro <inoue@ainet.or.jp>
10344
10345 * xterm.c (XTread_socket) [HAVE_X_I18N]: If event is for none of
10346 our frames, call XFilterEvent with 2nd parameter `None'.
10347 (XTread_socket) <KeyPress> [HAVE_X_I18N]: Handle XmbLookupString
10348 returning XBufferOverflow.
10349 (XTread_socket) <ConfigureNotify> [HAVE_X_I18N]: Set XIC status
10350 area.
10351 (x_display_cursor) [HAVE_X_I18N]: Set XIC pre-edit area.
10352 (x_new_fontset) [HAVE_X_I18N]: Create XIC status area fontset.
10353 (xim_destroy_callback, xim_open_dpy, xim_instantiate_callback)
10354 (xim_initialize, xim_close)
10355 [HAVE_X_I18N && HAVE_X11R6]: New functions.
10356 (x_destroy_window) [HAVE_X_I18N]: Call xic_destroy_frame.
10357 (x_term_init) [HAVE_X_I18N]: Call xim_initialize.
10358 (x_delete_display) [HAVE_X_I18N]: Call xim_close.
10359
10360 * xterm.h (struct x_display_info) [HAVE_X_I18N]: Add members `xim'
10361 and `xim_styles'.
10362 (struct x_output) [HAVE_X_I18N]: Remove member `xim', add
10363 `xic_style' and `xic_xfs'.
10364 (FRAME_MENUBAR_HEIGHT, FRAME_X_XIM, FRAME_X_XIM_STYLES)
10365 (FRAME_XIC_STYLE, FRAME_XIC_FONTSET): New macros.
10366 (FRAME_XIM): Removed.
10367
10368 * xfns.c (supported_styles): New variable.
10369 (DEFAULT_STYLE, DEFAULT_FONT): New macros
10370 (xic_create_xfontset, best_style, xic_create_frame)
10371 (xic_destroy_frame, xic_set_preeditarea, xic_set_statusarea)
10372 (xic_set_xfontset): New functions.
10373
142e109c
DL
103742000-01-28 Dave Love <fx@gnu.org>
10375
10376 * s/irix6-5.h: Revert last change after change to irix5-0.h.
10377
10378 * m/iris4d.h (C_SWITCH_MACHINE): Don't use -G0.
10379
b02786f9
GM
103802000-01-28 Gerd Moellmann <gerd@gnu.org>
10381
d060bc9f
GM
10382 * buffer.c (Fother_buffer): Don't call Fset_buffer_major_mode
10383 for *scratch* if it already existed.
10384
b02786f9
GM
10385 * emacs.c (USAGE): New macro.
10386 (main): Use it to display usage information.
10387
2c52d7e4
EZ
103882000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10389
10390 Support for the menu-help feature:
10391
10392 * msdos.h: Change prototypes of XMenuAddSelection and
10393 XMenuActivate.
10394
10395 * msdos.c (IT_clear_end_of_line): Print the extent of the cleared
10396 part of the line to the termscript file.
10397 (IT_clear_to_end): Clear the entire line, not just its beginning.
10398 (menu_help_message, prev_menu_help_message): New variables.
10399 (IT_menu_make_room): Make room for the help_text member.
10400 (IT_menu_display): New argument disp_help; all callers changed.
10401 If disp_help is non-zero, store the help text of the active menu
10402 item in menu_help_message.
10403 (XMenuAddPane): Initialize the help_text member to NULL.
10404 (XMenuAddSelection): New argument help_text. Store it in the
10405 XMenu structure.
10406 (XMenuActivate): New argument help_callback. If the value of
10407 menu_help_message has changed since the last time, display the
10408 menu help message text while waiting for the mouse to move. Clear
10409 the echo area before exiting.
10410 (XMenuDestroy): Free the help_text member.
10411
ffe0bcd1
GM
104122000-01-27 Gerd Moellmann <gerd@gnu.org>
10413
10414 * xmenu.c (xmenu_show) [!USE_X_TOOLKIT]: Pass help to
10415 XMenuAddSelection. Pass help callback to XMenuActivate.
10416 (menu_help_callback) [!USE_X_TOOLKIT]: New function.
10417
50dbd23f
EZ
104182000-01-27 Eli Zaretskii <eliz@is.elta.co.il>
10419
10420 * atimer.c (start_atimer) [!HAVE_SETITIMER]: Use EMACS_SET_SECS
10421 and EMACS_SET_USECS.
10422
f5941bf8
GM
104232000-01-26 Dave Love <fx@gnu.org>
10424
6c67ddee
DL
10425 * editfns.c (Fchar_after, Fchar_before): Doc fix.
10426
f5941bf8
GM
10427 * bytecode.c (Fbyte_code): Use {BEFORE,AFTER}_POTENTIAL_GC where
10428 an error may be signalled.
10429
9e49c990
GM
104302000-01-26 Gerd Moellmann <gerd@gnu.org>
10431
fc3cb460
GM
10432 * s/irix6-5.h [__GNUC__ && __GNUC_MINOR__ >= 95]: Undef
10433 LD_SWITCH_SYSTEM inherited from irix5-0.h.
10434
9e49c990
GM
10435 * bytecode.c (Fbyte_code) [BYTE_CODE_SAFE]: Fix typo.
10436
d0c037d8
GM
104372000-01-25 Gerd Moellmann <gerd@gnu.org>
10438
10439 * charset.c (Fstring): If there is a multibyte char among
10440 the args, always return a multibyte string.
10441
e12489f9
GM
104422000-01-25 Gerd Moellmann <gerd@gnu.org>
10443
10444 * sysdep.c (sys_select): Turn atimers off and on instead of
10445 recording and restoring old alarm handler
10446
10447 * process.c (toplevel): Include atimer.h.
10448 (create_process_1): Rewritten.
10449 (create_process): Use atimers instead of alarm.
10450 (wait_reading_process_input) [hpux]: Turn atimers off instead
10451 of turning off SIGALRM.
10452 (wait_reading_process_input): Turn off atimers instead off
10453 calling stop_polling.
10454
10455 * emacs.c (main): Call init_atimer.
10456
10457 * keyboard.c (toplevel): Include systime.h and atimer.h.
10458 (polling_for_input): Removed because unused.
10459 (input_poll_signal) [POLL_FOR_INPUT]: Removed.
10460 (poll_timer): New variable.
10461 (poll_for_input, poll_for_input_1): New functions.
10462 (start_polling, stop_polling): Rewritten.
10463
10464 * keyboard.h (polling_for_input): Removed.
427ec082 10465
e12489f9
GM
10466 * atimer.h, atimer.c: New files.
10467
10468 * Makefile.in (obj): Add atimer.o.
10469 (atimer.o): New target.
10470
10471 * blockinput.h (pending_atimers): Add extern declaration.
10472 (UNBLOCK_INPUT): Rewritten. Handle pending atimers.
10473
10474 * lisp.h (popup_activated_flag): Add extern declaration.
10475
10476 * xmenu.c (popup_activated_flag): Make externally visible.
10477 (popup_activate_callback) [USE_MOTIF]: Increment
10478 popup_activated_flag.
10479 (popup_deactivate_callback) [USE_MOTIF]: Decrement it.
10480
10481 * xterm.c (toplevel): Include atimer.h.
10482 (toolkit_scroll_bar_interaction): New variable.
10483 (Fxt_process_timeouts): Removed.
10484 (x_process_timeouts): New function.
10485 (xt_action_hook): Clear toolkit_scroll_bar_interaction.
10486 (x_send_scroll_bar_event): Set toolkit_scroll_bar_interaction.
10487 (x_make_frame_visible): Call poll_for_input_1 instead of
10488 input_poll_signal. Don't call alarm.
10489 (x_initialize): Install timer calling x_process_timeouts.
427ec082 10490
1e5279b9
DL
104912000-01-24 Dave Love <fx@gnu.org>
10492
6c67ddee 10493 * s/irix5-0.h: Don't set LD_SWITCH_SYSTEM -- we use unexelf now.
1e5279b9
DL
10494 Don't use -cckr -- apparently not now necessary.
10495
edf6aeb8
EZ
104962000-01-24 Eli Zaretskii <eliz@is.elta.co.il>
10497
10498 * msdos.c (IT_menu_display): Truncate long menu lines at the right
10499 screen boundary.
10500
9badad41
JR
105012000-01-23 Jason Rumney <jasonr@gnu.org>
10502
10503 * w32fns.c (w32_defined_color): Apply gamma correction before
10504 trying to map to the palette.
10505 (w32_wnd_proc) [WM_ERASE_BACKGROUND]: Pass device context of frame
10506 to w32_clear_rect.
10507
10508 * w32term.c (w32_fill_rect): Do not try to deal with NULL hdc
10509 here. Callers changed to always pass real device context.
10510 (w32_draw_bitmap): Likewise.
10511 (w32_get_glyph_overhangs): Likewise.
10512 (w32_draw_box_rect): Make use of s->hdc rather than getting a new
10513 one.
10514 (w32_set_vertical_scroll_bar): Pass correct HWND parameters to
10515 pfnSetScrollInfo and SetScrollRange.
10516 (x_get_char_face_and_encoding): Don't turn iso8859-1 characters
10517 back into MULE characters after decoding them.
10518 (x_get_glyph_face_and_encoding): Likewise.
10519 (w32_per_char_metric): Use GetCharExtentPoint32W as fallback when
10520 GetCharABCWidthsW fails, since this is defined on Windows 9x.
10521 (x_produce_glyphs): Calculate per char metrics for a character
10522 that we know exists in default font when font_not_found_p is true.
10523
63bd786b
JR
105242000-01-22 Jason Rumney <jasonr@gnu.org>
10525
10526 * makefile.nt (intervals.obj, composite.obj): New modules.
10527 (composite.h): Added as dependency where appropriate.
10528
10529 * w32gui.h (XGCValue): New struct for emulating X GCs.
10530
10531 * w32term.h (XCharStruct): New struct for emulating X.
10532
10533 * w32console.c (turn_on_face, turn_off_face): New functions.
10534 (change_line_highlight): New prototype for new redisplay.
10535 (write_glyphs): Support multibyte text. Support faces.
10536
10537 * w32faces.c: Complete rewrite for new redisplay based on new
10538 xfaces.c.
10539
10540 * w32fns.c: Use SELECTED_FRAME macro in place of selected_frame
10541 throughout. struct frame * in place of FRAME_PTR.
10542 Skeleton support for images, toolbars, tooltips from xfns.c.
10543 (Fx_create_frame): Use system default for default scroll bar
10544 width.
10545 (w32_get_arg): Renamed from x_get_arg.
10546 (Fx_file_dialog): New function.
10547 (w32_list_fonts): Check cache before asking system.
10548 (Vw32_enable_synthesized_fonts): New variable.
10549 (Vw32_enable_italics): Obsolete, removed.
10550
10551 * w32inevt.c (get_frame, w32_console_mouse_position, mouse_moved_to):
10552 Use SELECTED_FRAME macro.
10553
10554 * w32menu.c: Add skeleton support for help strings on menus.
10555 (add_menu_item): Native checkbox and radio support added, but not
10556 yet enabled due to bugs.
10557 (push_menu_item): Add parameters type, selection and help.
10558 Callers updated.
10559 Formatting changes to reduce unnecessary diffs with xmenu.c.
10560
10561 * w32select.c (Fw32_set_clipboard_data): Update call to
10562 find_charset_in_str.
10563
10564 * w32term.c: Complete rewrite for new redisplay based on new
10565 xterm.c with necessary sections merged back in from old w32term.c.
10566
6ffd3cf7 105672000-01-21 Richard M. Stallman <rms@gnu.org>
b50c9214
RS
10568
10569 * data.c (set_internal): Further fix in same criterion.
10570
6ffd3cf7 105712000-01-20 Richard M. Stallman <rms@gnu.org>
8cc95642
RS
10572
10573 * data.c (set_internal): Fix the criteria for whether
10574 to swap out the old cached binding.
10575
60af03f1
DL
105762000-01-19 Dave Love <fx@gnu.org>
10577
10578 * lread.c: (syms_of_lread) [user-init-file]: Doc change.
10579
f9be074f
KH
105802000-01-18 Kenichi Handa <handa@etl.go.jp>
10581
10582 * regex.c (re_compile_fastmap): While checking a range table for
10583 `charset', skip flag bits for a character class correctly.
10584
52b8dbf9
GM
105852000-01-17 Gerd Moellmann <gerd@gnu.org>
10586
d36100c9
GM
10587 * m/news-risc.h (LD_SWITCH_MACHINE): Define differently for GCC.
10588
52b8dbf9
GM
10589 * xfns.c (x_window): Call lw_create_widget with new parameter
10590 list.
10591
10592 * widget.c (EmacsFrameSetCharSize): Change size of children first
10593 because of problems with main window geometry management under
10594 Lesstif.
10595
10596 * xmenu.c (enum menu_item_idx): New enumeration replacing defines
10597 MENU_ITEMS_ITEM_.*.
10598 (MENU_ITEMS_ITEM_HELP): New enumerator.
10599 (push_menu_item): Add parameter HELP. Record help in menu_items.
10600 (single_menu_item, single_submenu, list_of_items): Call
10601 push_menu_item with new parameter.
10602 (single_submenu): Set help string in widget value.
10603 (menu_highlight_callback): New function.
10604 (set_frame_menubar): Call lw_create_widget with new
10605 parameter list.
10606 (xmenu_show, xdialog_show): Ditto.
10607
3139018f
GM
106082000-01-13 Gerd Moellmann <gerd@gnu.org>
10609
10610 * sound.c (Fplay_sound): Improve doc string.
10611
83c8f461
RS
106122000-01-11 Richard M. Stallman <rms@gnu.org>
10613
10614 * lisp.h (set_internal): Enter the new arg.
10615
10616 * eval.c (specbind): Record buffer-local variables specially,
10617 indicating which buffer's binding was saved.
10618 (unbind_to): Restore buffer-local variables specially
10619 in the proper buffer.
10620
10621 * data.c (set_internal): New arg BUF.
427ec082 10622
83c8f461
RS
10623 * eval.c (specbind, unbind_to): Pass new arg to set_internal.
10624 * data.c (Fset): Pass new arg to set_internal.
10625 * bytecode.c (Fbyte_code): Pass new arg to set_internal.
427ec082 10626
1fab1775
GM
106272000-01-11 Gerd Moellmann <gerd@gnu.org>
10628
10629 * .gdbinit: Adapt to new strings. Add xbacktrace, xreload,
10630 xprintsym.
10631
83c8f461 106322000-01-11 Richard M. Stallman <rms@gnu.org>
6f59462e
RS
10633
10634 * minibuf.c (Ftry_completion): Doc fix.
10635
7a85e4df
GM
106362000-01-11 Gerd Moellmann <gerd@gnu.org>
10637
10638 * keyboard.c (Fclear_this_command_keys): Clear recent_keys
10639 vector, too.
10640
a970dae4
AS
106412000-01-11 Andreas Schwab <schwab@suse.de>
10642
10643 * coding.c (code_convert_region): Initialize total_skip.
10644
c65d14ee
DL
106452000-01-08 Dave Love <fx@gnu.org>
10646
10647 * eval.c (Fuser_variable_p): Check customizability too.
10648
834938d2
GM
106492000-01-07 Gerd Moellmann <gerd@gnu.org>
10650
10651 * minibuf.c (Fcompleting_read): Doc fix.
10652
e0303cd6
GM
106532000-01-05 Gerd Moellmann <gerd@gnu.org>
10654
8a26744b
GM
10655 * s/freebsd.h (C_SWITCH_SYSTEM): Add -I /usr/local/include and
10656 -L /usr/local/lib.
10657
e0303cd6
GM
10658 * xfns.c (x_create_im): New function to set IM and IC of a frame.
10659 Check that input style is supported before trying to create an
10660 IC for it.
10661 (x_window): Call x_create_im.
427ec082 10662
2e471eb5
GM
106632000-01-04 Gerd Moellmann <gerd@gnu.org>
10664
560a7bd2
GM
10665 * xfns.c (current_gif_memory_src): New variable.
10666 (gif_load): Record the address of the current memory source
10667 in current_gif_memory_src.
10668 (gif_read_from_memory): Use current_gif_memory_src.
10669
f9ee84a3
GM
10670 * systime.h (EMACS_GET_TIME, EMACS_ADD_TIME, EMACS_SUB_TIME): Give
10671 macros statement form.
10672
d1299cde
GM
10673 * sound.c (struct sound): Renamed from struct sound_file.
10674 (struct sound): Add members `data' and `header_size'.
10675 (enum sound_attr): Add SOUND_DATA.
10676 (current_sound, current_sound_device): Variables renamed from
10677 sound_file and sound_device.
10678 (parse_sound): Parse :data.
10679 (parse_sound): Handle sound data in strings.
10680 (find_sound_type): Function renamed from find_sound_file_type.
427ec082 10681 (wav_init, au_init): Fail if sound's header_size is smaller than
d1299cde
GM
10682 needed header size.
10683 (wav_play, au_play): Play sounds from string data.
10684
2e471eb5
GM
10685 * puresize.h (BASE_PURE_SIZE): Increase to 600000.
10686
10687 * lisp.h: Add prototype for allocate_string_data.
10688
10689 * alloc.c (Fgarbage_collect): Return number of live and free
10690 strings.
10691
10692 * alloc.c (mark_buffer): Remove code in #if 0.
10693 (gc_sweep): Ditto.
10694 (UNMARK_BALANCE_INTERVALS): Give the macro statement form.
10695 (strings_consed): New variable.
10696 (allocate_string): Set it.
10697 (syms_of_alloc): Add DEFVAR_INT for strings_consed.
10698 (Fmemory_use_counts): Return strings_consed. Use Flist.
10699
10700 * alloc.c: General cleanup in comments etc. Remove conditional
10701 compilation for `standalone'.
10702
10703 * lisp.h (struct Lisp_String): Make DATA member `unsigned char *'.
10704
10705 * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P):
10706 (GC_STRING_BYTES, GC_STRING_CHARS): New macros.
10707 (DONT_COPY_FLAG): Removed.
10708 (SBLOCK_SIZE, LARGE_STRING_BYTES): New macros.
10709 (struct sdata, struct sblock): New
10710 (struct string_block): Rewritten.
10711 (STRINGS_IN_STRING_BLOCK): New macro.
10712 (oldest_sblock, current_sblock, total_strings, total_free_strings)
10713 (large_sblocks, string_blocks, string_free_list): New variables.
10714 (NEXT_FREE_LISP_STRING, SDATA_OF_STRING, SDATA_SIZE): New macros.
10715 (init_strings): Rewritten.
10716 (allocate_string, allocate_string_data, compact_small_strings)
10717 (free_large_strings, sweep_strings): New functions.
10718 (STRING_BLOCK_SIZE, STRING_BLOCK_OUTSIZE)
10719 (struct string_block_head, current_string_block)
10720 (first_string_block, large_string_blocks, STRING_FULLSIZE)
10721 (STRING_PAD): Removed.
10722 (make_uninit_multibyte_string, make_pure_string): Rewritten.
10723 (Fgarbage_collect): Don't set mark bit in large strings.
10724 (mark_object): Mark strings differently. Mark symbol names
10725 differently.
10726 (survives_gc_p): Test marked strings differently.
427ec082 10727 (gc_sweep): Sweep strings differently, unmark strings in
2e471eb5
GM
10728 symbol names.
10729 (compact_strings): Removed.
10730
42608ba8
EZ
107312000-01-04 Eli Zaretskii <eliz@is.elta.co.il>
10732
10733 * xfaces.c (syms_of_xfaces): defsubr Scolor_gray_p and
10734 Scolor_supported_p even if HAVE_X_WINDOWS is not defined.
10735
e0a09e1a
KH
107362000-01-04 Kenichi Handa <handa@etl.go.jp>
10737
dd9f0750 10738 * fileio.c (Finsert_file_contents): Signal error if visiting file
427ec082 10739 in a non-empty buffer.
dd9f0750 10740
3c0f3b15 10741 * term.c (encode_terminal_code): Fix the previous change.
e0a09e1a 10742
44cd3ae5
GM
107432000-01-03 Gerd Moellmann <gerd@gnu.org>
10744
10745 * xfaces.c (syms_of_xfaces): Change Sface_color_gray_p to
10746 Scolor_gray_p, Sface_color_supported_p to Scolor_supported_p.
10747
10748 * s/hpux9.h (NO_EDITRES): Define even if HAVE_LIBXMU.
10749
c182a70f
EZ
107502000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10751
10752 * xdisp.c (handle_single_display_prop) [HAVE_WINDOW_SYSTEM]: No
10753 need to test for MSDOS frames.
10754
24480d5b
EZ
107552000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10756
10757 * dosfns.c (unspecified_colors): Remove.
10758 (msdos_stdcolor_idx): Use global variables unspecified_fg and
10759 unspecified_bg.
10760 (msdos_stdcolor_name): Return strings for unspecified fore- and
10761 back-ground colors.
10762
10763 * xfaces.c (Qunspecified_fg, Qunspecified_bg): Remove.
aaf2320c 10764 (syms_of_xfaces): Remove their staticpro's.
24480d5b
EZ
10765 (tty_color_name): Return Lisp strings for unspecified fore- and
10766 back-ground colors.
10767 (Finternal_set_lisp_face_attribute): Remove the special treatment
10768 for Qunspecified_{f,b}g.
10769 (realize_default_face): Replace Qunspecified_{f,b}g with a Lisp
10770 string.
10771
047f434a
GM
107722000-01-03 Gerd Moellmann <gerd@gnu.org>
10773
10774 * xdisp.c (reseat_at_next_visible_line_start): Position before
10775 newline only if ending up on a newline.
10776 (next_element_from_ellipsis): Return success. Handle case of
10777 displaying no ellipsis. Fix case of ellipsis defined in display
10778 table.
10779 (next_element_from_buffer): Return 0 if next_element_from_ellipsis
10780 returns 0.
10781
d684c676
EZ
107822000-01-03 Eli Zaretskii <eliz@is.elta.co.il>
10783
10784 * xfaces.c (Fcolor_gray_p): Renamed from face-color-gray-p.
10785 (Fcolor_supported_p): Renamed from face-color-supported-p.
10786
5fe1d139
EZ
107872000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10788
10789 * xfaces.c (tty_defined_color): Pass frame to tty-color-desc. The
10790 list of colors renamed to tty-defined-color-alist.
10791 (tty_color_name): Pass the frame to tty-color-by-index.
10792 (realize_tty_face): tty-color-alist is now a function which
10793 accepts the frame as argument.
10794
10795 * term.c (Ftty_display_color_p): Accept an optional argument
10796 FRAME.
10797
816be8b8
EZ
107982000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10799
10800 * term.c (insert_glyphs): Pass glyph, not &glyph, to
10801 encode_terminal_code.
10802
b635321e
EZ
108032000-01-02 Eli Zaretskii <eliz@is.elta.co.il>
10804
10805 * dispnew.c (mode_line_string): Support termcap frames as well.
10806
9b784e96
GM
108072000-01-01 Gerd Moellmann <gerd@gnu.org>
10808
27189709
GM
10809 * syntax.c (Fforward_word): Undo previous change.
10810
10811 * editfns.c (Fconstrain_to_field): Don't constrain if
10812 inhibit-field-text-motion is non-nil.
10813 (Fline_beginning_position): Undo previous change.
10814 (Fline_end_position): Ditto.
10815
10816 * syntax.c (Fforward_word): Notice field boundaries only if
10817 inhibit-field-text-motion is nil.
10818
10819 * lisp.h: Add extern declaration for Vinhibit_field_text_motion.
10820
10821 * editfns.c (Vinhibit_field_text_motion): New variable.
10822 (inhibit-field-text-motion): New DEFVAR_LISP.
10823 (Fline_beginning_position, Fline_end_position): Notice field
10824 boundaries only if inhibit-field-text-motion is nil.
10825
45158a91
GM
10826 * xfns.c (x_create_x_image_and_pixmap): Remove parameter FILE.
10827 All calls adjusted.
10828 (x_build_heuristic_mask): Likewise.
10829 (xbm_load_image_from_file): Change error output.
10830 (xbm_load, xpm_load, pbm_load, png_load, jpeg_load, tiff_load)
10831 (gif_load, gs_load, x_kill_gs_process): Ditto.
10832
9b784e96
GM
10833 * xfns.c (gif_load): Avoid sign extension and thus out of bounds
10834 color indices when accessing raster pixels.
63cec32f
GM
10835 (gif_image_p, png_image_p, jpeg_image_p, tiff_image_p): Allow only
10836 one of :file or :data.
10837 (enum pbm_keyword_index): Add PBM_DATA.
10838 (pbm_format): Add :data.
10839 (pbm_image_p): Allow either :file or :data.
10840 (pbm_read_file): New function.
10841 (pbm_scan_number): Rewritten to read from string.
10842 (pbm_load): Support :data.
9b784e96 10843
2cb085db 10844See ChangeLog.8 for earlier changes.
6922b018
KH
10845
10846;; Local Variables:
49b3bd82 10847;; coding: iso-2022-7bit
6922b018 10848;; End: