(REGEX_FREE_STACK, RESET_FAIL_STACK): Make them usable as an expression.
[emacs.git] / src / ChangeLog.7
blob576aebd87e25c65b6f0084594ec3f345cd2f0d99
1 1998-08-19  Richard Stallman  <rms@psilocin.ai.mit.edu>
3         * Version 20.3 released.
5         * callproc.c (Fcall_process): Use malloc for decoding_buf.
6         
7         * s/freebsd.h (LD_SWITCH_SYSTEM): Delete -dp.
9         * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Increased.
11 1998-08-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
13         * xselect.c (selection_data_to_lisp_data): Code-convert selections
14         regardless of enable-multibyte-characters.
15         (lisp_data_to_selection_data): Likewise for decoding.
17 1998-08-18  Ken'ichi Handa  <handa@delysid.gnu.org>
19         * ccl.c (ccl_driver): In case
20         ccl_read_multibyte_character_suspend:, if ccl->last_block is
21         nonzero, jump to ccl_repeat.
23 1998-08-18  Kenichi Handa  <handa@etl.go.jp>
25         * ccl.c (CCL_READ_CHAR): If eof is encounterd while processing the
26         last block, don't just finish but processes eol block of the
27         current CCL program.
28         (ccl_driver): Add a new jump label ccl_repeat for the above
29         change.
31         * coding.c (ccl_coding_driver): Setup ccl->last_block properly.
32         (setup_coding_system): Correctly setup `valid_codes' member.
34         * term.c (write_glyphs): When terminal_coding require flushing,
35         call encode_coding with "" as the SOURCE arg so that ccl_driver
36         correctly processes eof block of a CCL program.
38 1998-08-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
40         * keyboard.c (read_char): If not reading a key sequence (MAPS is nil),
41         bind input-method-exit-on-first-char and input-method-use-echo-area
42         to t.
43         (read_char): If PREV_EVENT is non-nil, don't run the input method.
44         (read_key_sequence): Do not bind input-method-function. 
45         
46         * callint.c (Fcall_interactively): Pass new args to Fread_event
47         and Fread_char.  Let Fread_char do the prompting.
49         * lread.c (read_filtered_event): New arg INPUT_METHOD.  Calls changed.
50         (Fread_event): New args PROMPT and SUPPRESS-INPUT-METHOD.
51         (Fread_char, Fread_char_exclusive): Likewise.
52         * lisp.h (Fread_event, Fread_char, Fread_char_exclusive):
53         Update declarations.
55         * fns.c (Fy_or_n_p): Don't bind input-method-function.
56         Instead, pass 0 as INPUT_METHOD to read_filtered_event.
58         * insdel.c (replace_range): Rename NOMARKERS arg to MARKERS.
60         * editfns.c (Ftranspose_regions): Pass 0 as NOMARKERS to replace_range.
62         * cmds.c (internal_self_insert): Pass 1 as NOMARKERS to replace_range.
64         * fns.c (Fy_or_n_p): Bind input-method-function to nil.
66 1998-08-17  Richard Stallman  <rms@psilocin.ai.mit.edu>
68         * keyboard.c (Freset_this_command_lengths): Return nil.
69         (read_char): [Changes in the input method code.]
70         Process and clear before_command_restore_flag before the input method.
71         Save and restore ok_to_echo_at_next_pause and
72         current_kboard->echo_after_prompt.
73         Save, copy and empty this_command_keys, if it is not empty.
74         Clear the echo area before the input method.
75         Then in all cases restore this_command_keys, and reenable echoing
76         if it was enabled before.
78 1998-08-16  Richard Stallman  <rms@psilocin.ai.mit.edu>
80         * charset.c (Fmultibyte_char_to_unibyte): New function.
81         (syms_of_charset): defsubr it.
83 1998-08-15  Richard Stallman  <rms@psilocin.ai.mit.edu>
85         * xterm.c, xterm.h: x_display_unibyte_char_with_fontset renamed to
86         unibyte_display_via_language_environment.
87         
88         * xfns.c (unibyte_display_through_language_environment):
89         Renamed from x_display_unibyte_char_with_fontset.
91         * xterm.h (widget_store_internal_border): Conditionalize declaration.
93 1998-08-15  Kenichi Handa  <handa@etl.go.jp>
95         * coding.c (coding_category_name): Fix the order of initial
96         contents.
97         (detect_coding_mask): Fix previous change.
99         * insdel.c (copy_text): Fix previous change, call
100         multibyte_char_to_unibyte.
102         * puresize.h (BASE_PURESIZE): Increased.
104         * xfns.c (x_display_unibyte_char_with_fontset): New variable.
105         (syms_of_xfns): Declare x-display-unibyte-char-with-fontset as a
106         Lisp variable.
108         * xterm.h (x_display_unibyte_char_with_fontset): Extern it.
110         * xterm.c (dumpglyphs): If x_display_unibyte_char_with_fontset is
111         nonzero, convert a unibyte 8-bit char to a multibyte char and
112         display it by a font listed in the current fontset.
114         * xselect.c (Vnext_selection_coding_system): New variable.
115         (selection_data_to_lisp_data): If Vnext_selection_coding_system is
116         non-nil, use it.
117         (lisp_data_to_selection_data): Likewise.
118         (syms_of_xselect): Declare next-selection-coding-system as a Lisp
119         variable.
121 1998-08-13  Eli Zaretskii  <eliz@delysid.gnu.org>
123         * msdos.c (dos_set_keyboard): Set up stack and flags before
124         calling _go32_dpmi_simulate_int.
126 1998-08-13  Andrew Innes  <andrewi@harlequin.co.uk>
128         * w32.c (stat): Fall-back to default behaviour when we cannot get
129         accurate information on file attributes.
131 1998-08-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
133         * indent.c (vmotion): Don't use WINDOW for Fget_char_property
134         when it is not showing the right buffer.
136 1998-08-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
138         * process.c (wait_reading_process_input): If a pty gives EIO,
139         raise SIGCHLD just in case.
141 1998-08-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
143         * syntax.c (scan_sexps_forward): Set up the syntax table scanning
144         stuff before jumping into the loop.
146 1998-08-10  Eli Zaretskii  <eliz@delysid.gnu.org>
148         * msdos.c (IT_cmgoto): In the echo area, only put the cursor at
149         the end of text if it is beyond the displayed text end.
151 1998-08-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
153         * keyboard.c (read_char): Don't decrement this_command_key_count
154         when saving it.
156 1998-08-09  Kenichi HANDA  <handa@etl.go.jp>
158         * fileio.c (Fwrite_region): Reflect the eol conversion
159         specification of default value of buffer-file-coding-system if
160         any.
162         * coding.c (default_buffer_file_coding): New variable.
163         (init_coding_once): Initialize default_buffer_file_coding.
165         * coding.h (default_buffer_file_coding): Extern it.
167 1998-08-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
169         * s/freebsd.h (__FreeBSD_version): Define it, or else
170         include osreldate.h to define it.
171         (LIB_GCC): Unconditional definition deleted.
172         [ELF] (LD_SWITCH_SYSTEM, START_FILES, UNEXEC, LIB_STANDARD, LIB_GCC):
173         New alternative definitions.
174         [! ELF] (START_FILES, LIB_GCC): New alternative definitions.
176         * unexelf.c (unexec): Check for section names end and edata
177         with no underscore.
179         * coding.c (CHARSET_OK): Check that coding_system_table[IDX] != 0.
181 1998-08-08  Richard Stallman  <rms@psilocin.ai.mit.edu>
183         * coding.c: Avoid using initializers for Lisp_Object.
185 1998-08-07  Paul Eggert  <eggert@twinsun.com>
187         * xterm.c (x_term_init): Don't reset LC_TIME to "C", since we
188         want strftime to be localized.
190 1998-08-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
192         * s/ptx4-2.h: New file.
194         * xterm.c (x_list_fonts): Fix previous change.
196         * callproc.c (Fcall_process): Check type of process cmd args
197         earlier on.
199         * process.c (Fprocess_send_eof): Transfer proc_encode_coding_system
200         data to the new outfd.
202         * commands.h (Vthis_command): Renamed from this_command.
204         * minibuf.c (Fminibuffer_complete): 
205         this_command renamed to Vthis_command.
207         * macros.c (Fcall_last_kbd_macro):
208         this_command renamed to Vthis_command.
210         * keyboard.c (Vthis_command): Renamed from this_command.
211         (real_this_command): New variable, but not a Lisp variable;
212         updated like Vthis_command, but never altered by Lisp programs.
213         (command_loop_1): Use real_this_command to set Vreal_last_command.
214         
215 1998-08-07  Kenichi Handa  <handa@etl.go.jp>
217         * cmds.c (internal_self_insert): If enable-multibyte-characters is
218         nil, convert a multibyte character to unibyte appropriately.
220         * editfns.c (general_insert_function): Likewise.
222         * charset.c (multibyte_char_to_unibyte): New function.
223         (charset_id_internal): Avoid initializer for Lisp_Object.
224         (init_charset_once): Likewise.
226         * lisp.h (multibyte_char_to_unibyte): Extern it.
228 1998-08-06  Richard Stallman  <rms@psilocin.ai.mit.edu>
230         * window.c (Fsplit_window): Doc fix.
232         * macros.c (Fexecute_kbd_macro): Fix error message.
233         (Fend_kbd_macro): Fix error message.
235         * coding.c (setup_coding_system): Avoid initializer for Lisp_Object.
236         (setup_raw_text_coding_system, detect_coding): Likewise.
237         (code_convert_region, code_convert_string): Likewise.
238         (Fset_coding_priority_internal): Likewise.
240 1998-08-06  Kenichi Handa  <handa@etl.go.jp>
242         * dired.c (Fdirectory_files): If MATCH is non-nil, decode filenames
243         before checking them against MATCH.
245 1998-08-05  Richard Stallman  <rms@psilocin.ai.mit.edu>
247         * keyboard.c (read_char): When input method returns no chars,
248         call cancel_echoing.  Restore the previous echo area message
249         and this_command_keys, too.
251         * abbrev.c (Funexpand_abbrev): Add ADJUST instead of subtracting.
253         * w32select.c (Vselection_coding_system):
254         Renamed from Vclipboard_coding_system.
255         (syms_of_w32select): No need to staticpro Vselection_coding_system.
257 1998-08-04  Eli Zaretskii  <eliz@delysid.gnu.org>
259         * w16select.c (Vselection_coding_system):
260         Renamed from Vclipboard_coding_system.
261         (Fw16_set_clipboard_data): Don't count trailing zero in the string
262         for the purposes of conversion.
264 1998-08-04  Richard Stallman  <rms@psilocin.ai.mit.edu>
266         * xterm.c (x_list_fonts): Call XFreeFont after the new call
267         to XLoadQueryFont.
268         (fast_find_position): Handle case where position is before
269         an invisible character, thus not actually listed in charstarts.
270         
271         * keyboard.c (Vinput_method_previous_message): New variable.
272         (syms_of_keyboard): Set up lisp variable.
273         (Qinput_method_exit_on_first_char, Qinput_method_use_echo_area):
274         New variables.
275         (syms_of_keyboard): Initialize them.
276         (Fread_key_sequence): New arg COMMAND_LOOP.
277         Bind those variables.
279         * lisp.h (Fread_key_sequence): Update declaration.
281         * callint.c (Fcall_interactively): Pass new arg to Fread_key_sequence.
282         
283 1998-08-03  Richard Stallman  <rms@psilocin.ai.mit.edu>
285         * window.c (Fmove_to_window_line): Doc fix.
287         * xterm.h (FRAME_OUTER_WINDOW): New macro.
289         * xterm.c (x_make_frame_visible): Use XGetGeometry to see if
290         position has been changed by the window manager.  Use
291         FRAME_OUTER_WINDOW.
293         * insdel.c (replace_range): Don't assume PT is at the place
294         where the change is being done.
296         * editfns.c (Fsubst_char_in_region): Use replace_range in case
297         where we may need to combine bytes.
298         (Ftranslate_region): Likewise.
300 1998-08-01  Richard Stallman  <rms@psilocin.ai.mit.edu>
302         * lread.c (read1): In reading a string, treat Qlambda
303         like Qget_file_char.
305         * doc.c (Fdocumentation): Specify UNIBYTE = 0
306         when calling get_doc_string for a compiled function.
308 1998-08-01  Kenichi HANDA  <handa@etl.go.jp>
310         * ccl.h (ccl_spec): New member valid_codes.
312         * coding.c (Qvalid_codes): New variable.
313         (coding_category_name): Include "coding-category-ccl".
314         (detect_coding_ccl): New function.
315         (setup_coding_system): Setup coding->spec.ccl.valid_codes from the
316         coding system priority `valid-codes' for CCL based coding systesm.
317         (detect_coding_mask): Check also a CCL based coding system.
318         (Fupdate_coding_systems_internal): Renamed from
319         Fupdate_iso_coding_systems.
320         (syms_of_coding): Change property char-table-extra-slot of
321         translation-table to 1.  Initialize and static pro Qvalid_codes.
323         * coding.h (CODING_CATEGORY_IDX_CCL): New macro.
324         (CODING_CATEGORY_IDX_BIG5, CODING_CATEGORY_IDX_RAW_TEXT,
325         CODING_CATEGORY_IDX_BINARY, CODING_CATEGORY_IDX_MAX): Increased by
326         one.
327         (CODING_CATEGORY_MASK_CCL): New macro.
328         (CODING_CATEGORY_MASK_ANY): Include CODING_CATEGORY_MASK_CCL.
330         * insdel.c (copy_text): In multibyte to unibyte conversion, take
331         nonascii-translation-table and nonascii-insert-offset into
332         account.
334 1998-07-30  Paul Eggert  <eggert@twinsun.com>
335         
336         * src/Makefile.in (widget.o, xfns.o, xmenu.o):
337         Prepend $(srcdir)/ to rule dependencies outside this dir.
339 1998-07-29  Kenichi Handa  <handa@etl.go.jp>
341         * fns.c (concat): Fix previous change.
343 1998-07-29  Richard Stallman  <rms@psilocin.ai.mit.edu>
345         * process.c (create_process): For outchannel, set up
346         proc_encode_coding_system, not proc_decode_coding_system.
348 1998-07-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
350         * keymap.c (push_key_description): Output multibyte char as itself.
352 1998-07-27  Richard Stallman  <rms@psilocin.ai.mit.edu>
354         * keyboard.c (Fexecute_extended_command):
355         Don't delay before displaying the suggestion message
356         if the command did not display anything in the echo area.
358 1998-07-26  Richard Stallman  <rms@psilocin.ai.mit.edu>
360         * s/ultrix4-3.h (rint): Add declaration.
362 1998-07-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
364         * s/aix3-2.h (HAVE_STRING_H): Move #undef here.
365         * s/aix4.h (HAVE_STRING_H): Delete #undef here.
367         * sysdep.c [AIXHFT] (hft_init, hft_reset): Add declarations.
369 1998-07-25  Kenichi Handa  <handa@etl.go.jp>
371         * coding.c (syms_of_coding): Mention auto-coding-alist in the
372         docstring of file-coding-system-alist.
374         * fileio.c (Finsert_file_contents): Call Vset_auto_coding_function
375         with two arguments.
376         (Fwrite_region): If buffer-file-coding-system is set locally, use
377         the coding system whithout checking file-coding-system-alist.
378         (syms_of_fileio): Docstring of set-auto-coding-function adjusted
379         for the change of argument number.
381 1998-07-20  Kenichi HANDA  <handa@etl.go.jp>
383         * callproc.c (Fcall_process): Use alloca instead of
384         get_conversion_buffer.
386         * coding.c (init_coding): New function.
387         (init_coding_once): Don't initialize conversion_buffer here.  It
388         is done in init_coding.
390         * emacs.c (main): Call init_coding.
392         * lisp.h (init_coding): Extern it.
394 1998-07-19  Kenichi Handa  <handa@etl.go.jp>
396         * charset.c (Fdefine_charset): Fix doc-string.
398         * xterm.c (dumpglyphs): After calling ccl_driver, set cp->byte1 to
399         zero for 1-byte font.
401 1998-07-15  kenichi HANDA  <handa@kowloon.etl.go.jp>
403         * process.c (read_process_output): Even if we read data without
404         code conversion, calculate character counts.  If we insert the
405         data into a unibyte buffer, treat the data as unibyte.
407 1998-07-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
409         * keyboard.c (Qinput_method_function): New variable.
410         (syms_of_keyboard): Init and staticpro it.
411         (read_key_sequence): Bind input-method-function,
412         and set it to nil after reading the first event.
413         (raw_keybuf, raw_keybuf_count): New variables, to record
414         raw input events as they are read with read_char.
415         (GROW_RAW_KEYBUF): New macro.
416         (Fthis_single_command_raw_keys): New function.
417         (syms_of_keyboard): defsubr it.
419 1998-07-13  Andrew Innes  <andrewi@delysid.gnu.org>
421         * w32menu.c (add_menu_item): Draw menu items like titles if
422         call_data is 0.
424 1998-07-13  Eli Zaretskii  <eliz@mescaline.gnu.org>
426         * w16select.c (set_clipboard_data, get_clipboard_data,
427         Fw16_set_clipboard_data, Fw16_get_clipboard_data,
428         Fx_selection_exists_p): Use CF_OEMTEXT instead of CF_TEXT.
430 1998-07-12  Andrew Innes  <andrewi@delysid.gnu.org>
432         * w32select.c: (Fw32_set_clipboard_data): Set Vlast_coding_system_used.
433         (Fw32_get_clipboard_data): Likewise.
435 1998-07-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
437         * marker.c (Fcopy_marker): Make return from wrong_type_argument
438         fall thru into normal case.
440         * fileio.c (Finsert_file_contents): When replacing, in multibyte bfr,
441         always extend the range to a character boundary.
443 1998-07-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
445         * keyboard.c (read_char): Call the input method if appropriate.
446         Change logic for distinguishing rereads from new events;
447         use local var `reread'.  Take events from
448         Vunread_input_method_events and Vunread_post_input_method_events.
449         (Vunread_input_method_events, Vunread_post_input_method_events)
450         (Vinput_method_function): New variable.
451         (syms_of_keyboard): Set up Lisp vars.
452         (command_loop_1): Check Vunread_input_method_events and
453         Vunread_post_input_method_events along with Vunread_command_events.
454         
455 1998-07-11  Andrew Innes  <andrewi@harlequin.co.uk>
457         * w32menu.c (w32_menu_show): Set widget call_data to 0 if
458         definition is nil.
459         (add_menu_item): Gray menu entry if widget call_data is 0.
461 1998-07-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
463         * xselect.c (Vselection_coding_system):
464         Renamed from Vclipboard_coding_system.  All uses changed.
465         (syms_of_xselect): Rename Lisp variable.
467 1998-07-09  Eli Zaretskii  <eliz@mescaline.gnu.org>
469         * w16select.c (Vclipboard_coding_system): New variable.
470         (set_clipboard_data, set_clipboard_data): New parameter Raw
471         determines whether CRLF <-> NL translation needs to be done.  All
472         callers changed.
473         (Fw16_set_clipboard_data): Encode the text using
474         Vclipboard_coding_system, if necessary.
475         (Fw16_get_clipboard_data): Decode the text using
476         Vclipboard_coding_system, if necessary.
477         (syms_of_win16select): DEFVAR Vclipboard_coding_system and
478         staticpro it.
480 1998-07-09  Kenichi Handa  <handa@etl.go.jp>
482         * coding.c (code_convert_string): Count characters again if we
483         encounter some invalid code while decoding.
485 1998-07-09  Kenichi Handa  <handa@etl.go.jp>
487         * ccl.c: Typo in comments fixed.
489         * coding.c (DECODE_ISO_CHARACTER): While decoding two-byte code,
490         if the sencond byte is invalid, produce the first byte as is.
492         * fontset.c (fs_load_font): Typo in comments fixed.
494         * xselect.c (selection_data_to_lisp_data): Set
495         Vlast_coding_system_used.
496         (lisp_data_to_selection_data): Likewize.
498 1998-07-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
500         * charset.c (Fchars_in_region): Coerce markers.
502 1998-07-08  Kenichi Handa  <handa@etl.go.jp>
504         * editfns.c (Fformat): Replace explicit numeric constants with
505         proper macros.
507         * fns.c (concat): Likewize.
509 1998-07-06  Kenichi Handa  <handa@etl.go.jp>
511         * charset.h (MAX_CHAR_COMPOSITION): Defined as (GLYPH_MASK_CHAR - 1),
512         one less than the previous value.
513         (GENERIC_COMPOSITION_CHAR): New macro. 
515         * charset.c (Vgeneric_character_list): New variable.
516         (init_charset_once): Init and staticpro it.
517         (Fgeneric_character_list): New function. 
518         (syms_of_charset): defsubr it.
520         * fns.c (Fset_char_table_default): Check only if the charset of
521         the arg CH is in the valid range or not.  Handle the case that CH
522         is a generic character for composite characters.
524 1998-07-06  Kenichi Handa  <handa@etl.go.jp>
526         * editfns.c (Fformat): Pay attention to the byte combining problem.
528         * fileio.c (Finsert_file_contents): Cancel previous change.  Setup
529         the variable coding even if the inserted bytes is zero.
531         * fns.c (concat): Deal with combining bytes between two args.
533 1998-07-03  Richard Stallman  <rms@psilocin.ai.mit.edu>
535         * print.c (print_escape_multibyte, Qprint_escape_multibyte)
536         (Qprint_escape_nonascii): New variables.
537         (syms_of_print): Initialize them and set up Lisp variable.
538         (PRINTPREPARE): Bind print-escape-multibyte to t if appropriate.
539         Also bind print-escape-nonascii if appropriate.
540         (print): Test print_escape_multibyte and print_escape_nonascii,
541         rather than enable-multibyte-characters.
543 1998-06-29  Andrew Innes  <andrewi@harlequin.co.uk>
545         * fileio.c (Ffile_regular_p) [WINDOWSNT]: Bind
546         `w32-get-true-file-attributes' to t while calling stat.
547         (Finsert_file_contents) [WINDOWSNT]: Likewise.
548         (Fwrite_region): Don't try seeking to end of FILENAME for
549         appending if not a regular file.
551 1998-07-03  Kenichi Handa  <handa@etl.go.jp>
553         * editfns.c (Finsert): Typo in doc-string fixed.
554         (Finsert_and_inherit, Finsert_before_markers,
555         Finsert_and_inherit_before_markers):  Likewize.
557 1998-07-02  Ken'ichi Handa  <handa@melange.gnu.org>
559         * fileio.c (Finsert_file_contents): Do not set Vlast_coding_system
560         if inserted bytes is zero.
562 1998-06-28  Eli Zaretskii  <eliz@is.elta.co.il>
564         * unexec.c [COFF]: New variable coff_offset.
565         (make_hdr) [MSDOS]: If a_name is a coff-go32-exe executable with a
566         prepended stub, compute coff_offset.
567         (make_hdr, copy_sym) [COFF]: Use coff_offset when seeking into temacs.
569 1998-06-29  Richard Stallman  <rms@psilocin.ai.mit.edu>
571         * editfns.c (Fbyte_to_position): New function.
572         (syms_of_editfns): defsubr it.
574 1998-06-29  Eli Zaretskii  <eliz@delysid.gnu.org>
576         * callproc.c (Fcall_process) [! subprocesses]: Balance parentheses
577         in an if clause.
579 1998-06-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
581         * fileio.c (Fread_file_name): Bind minibuffer-completing-file-name to t.
583         * minibuf.c (Vminibuffer_completing_file_name): New var.
584         (syms_of_minibuf): Set up Lisp variable.
585         (Fminibuffer_complete_word): Test it, instead of checking
586         specifically for Qread_file_name_internal.
587         (Fcompleting_read): Likewise.
589 1998-06-27  Richard Stallman  <rms@psilocin.ai.mit.edu>
591         * xterm.c (x_list_fonts): Fix prev change: cast result of alloca.
593 1998-06-26  Ken'ichi Handa  <handa@melange.gnu.org>
595         * coding.h (Qemacs_mule): Extern it.
597         * process.c (init_process): Initilize Vdefault_process_coding_system.
599 1998-06-26  Kenichi Handa  <handa@etl.go.jp>
601         * coding.c (setup_raw_text_coding_system): New function.
602         (decode_coding_sjis_big5): Bug for handling invalid code fixed.
604         * coding.h (setup_raw_text_coding_system): Extern it.
606         * fileio.c (Finsert_file_contents): Call
607         setup_raw_text_coding_system.
609         * process.c (Fstart_process): Check process-coding-system-alist
610         and default-process-coding-system even in unibyte mode.
611         (create_process): In unibyte mode, suppress character code
612         conversion.
614 1998-06-25  Andrew Innes  <andrewi@harlequin.co.uk>
616         * w32fns.c (Fx_list_fonts): Bring arglist into sync with xfns.c.
617         (x_set_font): Call face-set-after-frame-default.
618         (Qface_set_after_frame_default): New variable.
619         (syms_of_w32fns): Initialize it.
621 1998-06-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
623         * search.c (wordify): Fix i_byte even in unibyte case for copy loop.
624         If input is unibyte, make the output unibyte.
626 1998-06-24  Richard Stallman  <rms@psilocin.ai.mit.edu>
628         * print.c (PRINTFINISH): Convert text to unibyte before
629         inserting in a unibyte buffer.
631         * doc.c (get_doc_string): Take both UNIBYTE and DEFINITION as args.
632         All callers changed.
633         * lisp.h (get_doc_string): Adjust declaration.
634         
635         * lread.c (read_list): Pass new arg to get_doc_string.
637         * doc.c (get_doc_string): 2nd arg is now DEFINITION;
638         if non-nil, read a dynamic function definition.
639         (read_doc_string): Don't call read here.
641 1998-06-23  Richard Stallman  <rms@psilocin.ai.mit.edu>
643         * indent.c (indented_beyond_p): Return the right kind of value.
645 1998-06-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
647         * emacs.c (sort_args): Discard duplicate options with no args.
648         (main): With duplicate -d options, use the last one.  Likewise for -t.
649         Check -d last, by checking for -nl earlier on.
650         
651 1998-06-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
653         * keyboard.c (command_loop): Reset executing_macro after
654         command_loop_2 has returned, in case a throw to exit or top-level
655         was executed as part of a keyboard macro.
657         * callproc.c (Fcall_process): Handle third argument BUFFER
658         consistently when it is an integer or a list.
660 1998-06-22  Kenichi Handa  <handa@etl.go.jp>
662         * syntax.c (Fmodify_syntax_entry): Use macro STRING_BYTES to get
663         byte size of a string.
665 1998-06-22  Andrew Innes  <andrewi@harlequin.co.uk>
667         * w32select.c: Include buffer.h, charset.h, and coding.h.
668         (Vclipboard_coding_system): New variable.
669         (syms_of_w32select): DEF_VAR it.
670         (Fw32_set_clipboard_data): Encode string using
671         Vclipboard_coding_system if necessary.
672         (Fw32_get_clipboard_data): Decode clipboard contents using
673         Vclipboard_coding_system if necessary.
675         * w32console.c (initialize_w32_display): Call init_crit to
676         initialize interrupt_handle (referenced by sys_select).
678 1998-06-22  Richard Stallman  <rms@gnu.org>
680         * print.c (print_string): Properly compute number of chars
681         in multibyte case, before calling strout.
683         * lisp.h (Qinhibit_redisplay): Declared.
685         * keyboard.c (menu_item_eval_property): Bind Qinhibit_redisplay.
687         * xdisp.c (Vinhibit_redisplay, Qinhibit_redisplay): New variables.
688         (syms_of_xdisp): Set up Lisp var.
689         (redisplay_internal): Test Vinhibit_redisplay.
691 1998-06-21  Ken'ichi Handa  <handa@melange.gnu.org>
693         * process.c (read_process_output): While processing carryover,
694         check the size of p->decoding_buf.
696 1998-06-21  Eli Zaretskii  <eliz@mescaline.gnu.org>
698         * process.c (wait_reading_process_input) [! subprocesses]:
699         Recompute timeout each time through the loop.  Check
700         requeued_events_pending_p and exit the loop if there is unread
701         keyboard input.
703 1998-06-20  Richard Stallman  <rms@gnu.org>
705         * search.c (Freplace_match): Work by chars, not by bytes,
706         for scanning the old text, and for inserting new string in buffer.
708 1998-06-20  Karl Heuer  <kwzh@gnu.org>
710         * xterm.c (x_list_fonts): Keep alloca usage simple.
712 1998-06-20  Per Starback  <starback@strindberg.ling.uu.se>
714         * xdisp.c, charset.h, coding.c, emacs.c: Doc fixes.
716 1998-06-20  Kenichi Handa  <handa@etl.go.jp>
718         * print.c (strout): Show multibyte message correctly.
720         * ccl.c: Comment for CCL_MapMultiple modified.
722         * charset.c (find_charset_in_str): Do not set the value of
723         charsets[LEADING_CODE_COMPOSITION].
725         * process.c (read_process_output): Handle carryover correctly.
727         * xterm.c (dumpglyphs): Check the case that FACE_FONT (face) is
728         NULL.  While displaing cursor with non-default face, if the
729         variable `font' is NULL, don't set GCFont.
731 1998-06-19  Richard Stallman  <rms@gnu.org>
733         * minibuf.c (syms_of_minibuf): Initialize buffer-name-history.
735 1998-06-18  Richard Stallman  <rms@gnu.org>
737         * casefiddle.c (casify_object): Cope with modifier bits in character.
739 1998-06-17  Geoff Voelker  <voelker@cs.washington.edu>
741         * w32.c (is_unc_volume, open_unc_volume, read_unc_volume,
742         close_unc_volume, unc_volume_file_attributes): New functions.
743         (wnet_enum_handle): New variable.
744         (opendir, readdir, closedir, sys_access, stat): Handle UNC volumes.
746 1998-06-16  Kenichi Handa  <handa@etl.go.jp>
748         * xterm.c (x_list_fonts): If SIZE is zero and MAXNAMES is 1, use
749         XLoadQueryFont instead of XListFonts.
750         (x_load_fonts): Call x_list_fonts with MAXNAMES 1.
752 1998-06-16  Andrew Innes  <andrewi@harlequin.co.uk>
754         * xdisp.c (message_dolog): GCPRO the oldpoint, oldbegv and oldzv
755         markers, and old_deactivate_mark.
757 1998-06-15  Andrew Innes  <andrewi@harlequin.co.uk>
759         * w32.c (sys_rename): On some network drives, rename fails with
760         EACCES instead of EEXIST if target already exists.
762         * coding.c (encode_eol): Fix typo that prevented converting to Mac
763         line endings.  Always update dst_bytes to number of bytes actually
764         copied.
765         (decode_eol): Fix value of coding->produced when decoding Unix
766         line endings (in case this function is ever used for that).
768 1998-06-14  Ken'ichi Handa  <handa@melange.gnu.org>
770         * fileio.c (Finsert_file_contents): Redo the change for handling
771         set-auto-coding while adding a kludgy code to avoid a compiler
772         bug.
773         (syms_of_fileio): Doc-string of the variable
774         set-auto-coding-function modified for the change above.
776 1998-06-14  Eli Zaretskii  <eliz@mescaline.gnu.org>
778         * msdos.c (dos_set_keyboard): Call Int 2Fh via the DPMI server,
779         not directly. 
780         (dos_yield_time_slice): New function.
781         (sys_select): Use it instead of __dpmi_yield.
783 1998-06-14  Erik Naggum  <erik@naggum.no>
785         * minibuf.c (Fcompleting_read): Escape bare newline in doc string.
787 1998-06-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
789         * fileio.c (Finsert_file_contents): Fix change to set INSERTED.
791 1998-06-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
793         * keyboard.c (parse_menu_item): Put a quote around DEF
794         to pass it as an argument to the filter function.
796         * syntax.c (skip_chars):
797         Don't examine STRING before verifying that it is a string.
799 1998-06-13  Kenichi Handa  <handa@etl.go.jp>
801         * coding.c (detect_coding_system): Always return a list of HIGHEST
802         is zero.
803         (Fdetect_coding_region): Doc-string adjusted for the above change.
804         (Fdetect_coding_string): Likewise.
806 1998-06-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
808         * emacs.c (standard_args): Fix arg order to match code in `main'.
810 1998-06-12  Ken'ichi Handa  <handa@melange.gnu.org>
812         * fileio.c (Finsert_file_contents): Undo the previous change for
813         handling set-ault-coding.
815 1998-06-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
817         * fileio.c (Finsert_file_contents): After calling handler,
818         get INSERTED from the handler's value.
820         * callint.c (Fcall_interactively) <k, K>: If sequence ends in a down
821         event, discard following up event.
823 1998-06-12  Kenichi Handa  <handa@etl.go.jp>
825         * fileio.c (set_auto_coding_unwind): New function.
826         (Finsert_file_contents): If the current buffer is empty, decide
827         the coding system after the file is inserted in the buffer.  If
828         not, insert the head and tail of a file in a temporary buffer and
829         call set-auto-coding-function.
830         (e_write): If there are carryover bytes in encoding because of
831         incomplete multibyte form, write them out as is.
833 1998-06-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
835         * syntax.c (scan_lists): Use prev_char_comend_first, not ...comstart...
837 1998-06-11  Geoff Voelker  <voelker@cs.washington.edu>
839         * makefile.nt (LINK_FLAGS): Place debug info in executable in
840         unoptimized compile.  Link to run off of cd or network.
842 1998-06-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
844         * syntax.c (Fforward_comment):
845         Properly compute BYTEPOS arg to char_quoted.
847 1998-06-09  Andrew Innes  <andrewi@harlequin.co.uk>
849         * w32.c (sys_rename): Don't examine errno if rename didn't fail.
851         * s/ms-w32.h (getcwd): Remove define.
852         (getdefdir) [emacs]: Redefine to always return root directory.
854 1998-06-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
856         * lisp.h (Feval_region): Accept 4 args.
858         * lread.c (readevalloop): New arg READFUN.  Callers changed.
859         (Feval_region): New arg READ_FUNCTION.
861 1998-06-08  Richard Stallman  <rms@psilocin.ai.mit.edu>
863         * syntax.h (SETUP_SYNTAX_TABLE): Don't call update_syntax_table
864         for FROM-1 if that's before BEGV.
866 1998-06-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
868         * syntax.c (struct lisp_parse_state): New field, levelstarts.
869         (scan_sexps_forward): Use 10th elt of STATE to set levelstarts.
870         (parse-partial-sexp): Add 10th elt to return value.
872         * keyboard.c (lispy_function_keys): Add kanji...eisu-toggle.
874         * keyboard.c (cmd_error): Init Vlast_prefix_arg.
875         (init_kboard, command_loop_1): Init Vlast_prefix_arg.
876         (Fcommand_execute): Set Vlast_prefix_arg to prefix arg used.
878         * callint.c (syms_of_callint): Set up Lisp variable.
880         * alloc.c (mark_kboards): Mark all the Lisp_Object fields.
882         * keyboard.c (command_loop_1):
883         Set Vreal_last_command with Vlast_command.
884         (init_kboard): Init Vreal_last_command field.
885         (syms_of_keyboard): Set up Lisp var real-last-command.
887         * keyboard.h (struct kboard): New elts Vreal_last_command
888         and Vlast_prefix_arg.
890 1998-06-06  Richard Stallman  <rms@psilocin.ai.mit.edu>
892         * xterm.c (XTread_socket): Accept Japanese XK keysyms.
894         * xdisp.c (redisplay_internal): If cursor's in the frame's echo area,
895         make last_point invalid instead of setting it normally.
896         (display_text_line): If cursor's in the frame's echo area,
897         don't set this_line_endpos.
898         (redisplay_window): Use Fwindow_end to find lower scroll margin.
899         
900         * syntax.c (scan_lists): Properly skip the comment-fence character
901         that ends a comment, when moving forward.
902         (Fbackward_prefix_chars): Return immediately if point is at BEGV.
904         * callproc.c (init_callproc): Check Vinstallation_directory
905         even if !initialized.
907 1998-06-06  Richard Stallman  <rms@sucrose.ai.mit.edu>
909         * syntax.c (prev_char_comend_first): New function.
910         (back_comment): Use that.  Carefully update syntax table position
911         for each character that is fetched.
912         (Fforward_comment): Likewise.
913         (scan_lists): Likewise.
914         (prev_char_comstart_first): New function.
916         * syntax.c 
917 1998-06-05  Andrew Innes  <andrewi@harlequin.co.uk>
919         * w32.c: #include sys/file.h
920         (sys_access): Provide our own implementation which recognizes D_OK.
921         (is_exec): New function.
922         (stat): Use it.
923         (init_environment): Set TMPDIR to an existing directory.
924         Abort if none of the usual places is available.
925         (sys_rename): On Windows 95, choose a temp name that
926         includes the original file's base name and use an explicit loop
927         rather than calling mktemp.  Only attempt to unlink the newname if
928         the rename fails, rather than second-guessing whether the old and
929         new names refer to the same file.
931         * fileio.c (Finsert_file_contents): Always update
932         Vlast_coding_system_used when we actually perform IO.
933         (Fwrite_region): Update documentation.
935 1998-06-03  Richard Stallman  <rms@gnu.org>
937         * emacs.c (main): Don't implement --version if not initialized.
939         * intervals.c (create_root_interval): Initialize position to 0
940         for a string.
941         (interval_start_pos): New function.
942         (find_interval): Handle string positions starting at 0.
943         (adjust_intervals_for_insertion): Likewise.
944         (adjust_intervals_for_deletion): Likewise.
945         (compare_string_intervals): Likewise.
946         (graft_intervals_into_buffer): Set `position' in reproduce_tree value.
947         (copy_intervals): Init `position' to 0.
949         * textprop.c: Handle the new convention that `position' values
950         in a string's intervals start from zero.
951         (validate_interval_range, interval_of, Fnext_property_change)
952         (property_change_between_p, Fnext_single_property_change)
953         (Fprevious_property_change, Fprevious_single_property_change):
954         (Ftext_property_any, Ftext_property_not_all): Implement that.
956         * textprop.c: Undo previous change.
958         * coding.c (code_convert_string_norecord): New function.
959         Does encoding or decoding but doesn't set Vlast_coding_system_used.
961         * coding.h (DECODE_FILE, ENCODE_FILE):
962         Use code_convert_string_norecord.
964 1998-06-02  Richard Stallman  <rms@gnu.org>
966         * sysdep.c (sys_subshell): Cast arg to chdir.
967         (init_sys_modes): Cast arg to setbuf or setvbuf.
969         * keyboard.c (syms_of_keyboard): Doc fix for suggest-key-bindings.
971 1998-06-02  Ken'ichi Handa  <handa@melange.gnu.org>
973         * charset.c (string_to_non_ascii_char): Don't check the arg
974         EXCLUDE_TAIL_GARBAGE for an invalid composite characters.
976 1998-06-01  Ken'ichi Handa  <handa@melange.gnu.org>
978         * coding.c (detect_coding_mask): Initilize local variable C.
980 1998-06-01  Richard Stallman  <rms@gnu.org>
982         * emacs.c (main): Test `initialized' before clearing *Messages*.
984 1998-06-01  Karl Heuer  <kwzh@gnu.org>
986         * s/aix4.h (SOCKLEN_TYPE): Define as int.
988         * callproc.c (Fcall_process): Avoid initializer on auto struct.
990 1998-06-01  Andrew Innes  <andrewi@mescaline.gnu.org>
992         * s/ms-w32.h: Use 1 as explicit value of empty #defines.
994         * makefile.nt (LOCAL_FLAGS): Define HAVE_NTGUI if appropriate.
996 1998-05-31  Karl Heuer  <kwzh@gnu.org>
998         * doprnt.c (doprnt1): Fix char signedness mismatches.
999         * fileio.c (Finsert_file_contents): Likewise.
1001 1998-05-31  Richard Stallman  <rms@gnu.org>
1003         * dispnew.c (Fredraw_frame): Don't erase frame or its glyph records
1004         if it hasn't got any.
1006 1998-05-30  Geoff Voelker  <voelker@cs.washington.edu>
1008         * w32proc.c (sys_spawnve): Place Emacs pid in EM_PARENT_PROCESS_ID.
1010         * w32.c (sys_rename): Handle filenames with accented characters.
1011         (stat): Handle "c:/.." and "/.." specially.
1012         
1013         * unexw32.c (w32_fatal_reload_error): Update error message.
1015 1998-05-30  Karl Heuer  <kwzh@gnu.org>
1017         * Makefile.in (distclean): Delete config.stamp, stamp-oldxmenu.
1019         * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fix.
1020         * charset.c (syms_of_charset): Put \n\ at eol of docstring.
1022 1998-05-29  Richard Stallman  <rms@gnu.org>
1024         * textprop.c (Fnext_property_change): Properly offset interval
1025         position for string when comparing with LIMIT.
1026         (property_change_between_p): Likewise.
1027         (Fnext_single_property_change, Fprevious_property_change): Likewise.
1028         (Fprevious_single_property_change): Likewise.
1030 1998-05-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
1032         * keyboard.c (command_loop_1): In shortcuts for forward-char etc.,
1033         use FETCH_CHAR not FETCH_BYTE.
1035 1998-05-28  Andrew Innes  <andrewi@harlequin.co.uk>
1037         * lread.c (read1): Swap saved_doc_string_length and
1038         prev_saved_doc_string_length.
1039         (read_list): Negate docstring position if negative before checking
1040         against saved_doc_string_length et al.
1042 1998-05-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
1044         * lread.c: Remember the last TWO strings skipped with #@.
1045         (prev_saved_doc_string*): New variables.
1046         (Fload): Initalize prev_saved_doc_string.
1047         (read1): Copy saved_doc_string to prev_saved_doc_string
1048         before storing a new string in saved_doc_string.
1049         (read_list): Look in prev_saved_doc_string as well as
1050         in saved_doc_string.
1052 1998-05-25  Andrew Innes  <andrewi@harlequin.co.uk>
1054         * doc.c (get_doc_string): Make non-static.
1056         * lisp.h: Add prototype for get_doc_string.
1058         * lread.c (read_vector): Add bytecodeflag parameter, which is
1059         nonzero when reading a bytecode object.  If
1060         `load-force-doc-strings' is t when reading a lazily-loaded
1061         bytecode vector, the loaded docstring must be treated as unibyte
1062         and passed to Fread to obtain the actual bytecode string and
1063         constants vector.
1064         (read1): Add extra parameter to read_vector calls.
1066         (read1): Enable saving of doc strings on WINDOWSNT.
1067         (read_list): Call get_doc_string instead of read_doc_string, when
1068         forced to load doc strings.
1069         
1070 1998-05-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1072         * s/gnu-linux.h (setpgrp): Remove extra parens around parameters.
1074         * xterm.c (XTread_socket): Fix second argument of
1075         x_any_window_to_frame.
1077         * print.c (print) <Lisp_Cons>: Detect circular list.
1079 1998-05-25  Kenichi Handa  <handa@etl.go.jp>
1081         * coding.c (detect_coding_system): Treat CODING_EOL_INCONSISTENT
1082         like CODING_EOL_UNDECIDED.
1084         * coding.c (ascii_skip_code): New variable.
1085         (detect_coding_mask): Skip ASCII codes at the head according to
1086         ascii_skip_code.
1087         (coding_priorities): New variable.
1088         (Fset_coding_priority_internal): New function.
1089         (detect_coding): Call set_coding_mask with coding_priorities as
1090         arg CODING.
1091         (init_coding_once): Initialize ascii_skip_code.
1092         (syms_of_coding): Declare set-coding-priority-internal as a Lisp
1093         function.
1095 1998-05-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
1097         * config.in (RE_TRANSLATE): Use CHAR_TABLE_TRANSLATE.
1099         * lisp.h (CHAR_TABLE_TRANSLATE): New macro.
1101 1998-05-24  Richard Stallman  <rms@psilocin.ai.mit.edu>
1103         * window.c (Fdelete_windows_on): For FRAME, change t to nil
1104         and nil to t, but don't change other values.
1106         * xdisp.c (message_dolog): Do set windows_or_buffers_changed,
1107         if *Messages* is displayed in a window.
1109 1998-05-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
1111         * indent.c (compute_motion): Check for past vpos/hpos target
1112         before skipping invisible chars.
1114         * buffer.c (Fother_buffer): Doc fix.
1116         * window.c (window_loop): Pass new arg to Fother_buffer.
1118         * frame.c (frame_buffer_predicate): New arg FRAME.
1119         (frame_buffer_list, set_frame_buffer_list): Likewise.
1120         (make_frame): Pass new arg to Fother_buffer.
1122         * buffer.c (Fother_buffer): New arg FRAME.
1123         Pass it to frame_buffer_list, frame_buffer_predicate.
1124         Calls changed.
1125         (record_buffer): Pass selected frame to them
1126         and set_frame_buffer_list.
1128         * lisp.h (frame_buffer_predicate, frame_buffer_list)
1129         (set_frame_buffer_list, Fother_buffer): Decls changed.
1131         * window.c (select_window_1): New subroutine, from Fselect_window.
1132         (Fselect_window): Use select_window_1.
1133         (temp_output_buffer_show): Use select_window_1.
1134         
1135 1998-05-22  Kenichi Handa  <handa@etl.go.jp>
1137         * ccl.c: Change term "character translation table" to "translation
1138         table".
1140         * charset.c: Change term "character translation table" to
1141         "translation table".
1142         (string_to_non_ascii_char): New arg EXCLUDE_TAIL_GARBAGE.  Caller
1143         changed.
1144         (Funibyte_char_to_multibyte): Doc-string fixed.
1145         (syms_of_charset): Doc-string fixed.
1147         * charset.h (STRING_CHAR_AND_CHAR_LENGTH): New macro.
1148         (string_to_non_ascii_char): Adjusted for the new arg.
1150         * coding.c: Change term "character translation table" to
1151         "translation table".
1153         * coding.h: Change term "character translation table" to
1154         "translation table".
1156         * print.c (print_string): Don't ignore garbage bytes following a
1157         multibyte characters.
1158         (print): Likewise.
1160 1998-05-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
1162         * search.c (shrink_regexp_cache): New function.
1164         * alloc.c (Fgarbage_collect): Call shrink_regexp_cache.
1166 1998-05-20  Richard Stallman  <rms@psilocin.ai.mit.edu>
1168         * editfns.c (Fchar_after): Make nil fully equivalent to (point) as arg.
1169         (Fchar_before): Likewise.
1171 1998-05-20  Eli Zaretskii  <eliz@is.elta.co.il>
1173         * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
1174         [DOS_NT]: Handle the special construct "/:" when followed by d:foo.
1176         * buffer.c (init_buffer): Support DOS_NT absolute file names.
1178 1998-05-20  Kenichi Handa  <handa@etl.go.jp>
1180         * charset.c (find_charset_in_str): New arg CMPCHARP.
1181         (Ffind_charset_region): Call find_charset_in_str with CMPCHARP 0.
1182         (Ffind_charset_string): Likewise.
1184         * charset.h (find_charset_in_str): Number of arguments fixed.
1186         * coding.c (shrink_decoding_region): No short cut by
1187         coding->heading_ascii if eol conversion is necessary.
1189         * fns.c (Fstring_make_multibyte): Call CHECK_STRING.
1190         (Fstring_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte):
1191         Likewise.
1193         * xselect.c (lisp_data_to_selection_data): Call
1194         find_charset_in_str with CMPCHARP 1 to encode Lisp string if it
1195         contains a composite character.
1197 1998-05-19  Richard Stallman  <rms@psilocin.ai.mit.edu>
1199         * minibuf.c (syms_of_minibuf): Doc fix.
1201         * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fixes.
1202         
1203         * frame.c (make_frame_visible_1): New function.
1204         (Fmake_frame_visible): Use that.
1206         * xdisp.c (redisplay_window): Don't use window->start
1207         if it is out of range of BEGV/ZV.
1209 1998-05-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
1211         * minibuf.c (read_minibuf): If history list var is void, make it nil.
1213 1998-05-18  Ken'ichi Handa  <handa@melange.gnu.org>
1215         * syntax.c (skip_chars): Fix previous change.
1217 1998-05-17  Kenichi HANDA  <handa@etl.go.jp>
1219         * ccl.c: Change term translation to code conversion, then change
1220         terms unify/unification to translate/translation respectively
1221         throughtout the file.
1223         * charset.c: Change terms unify/unification to
1224         translate/translation respectively throughtout the file.
1225         (ONE_BYTE_CHAR_WIDTH): Delete unnecessary continuation line at the
1226         tail.
1228         * charset.h: Change terms unify/unification to
1229         translate/translation respectively throughtout the file.
1230         (GET_TRANSLATION_TABLE): Name changed from UNIFICATION_ID_TABLE.
1232         * coding.c: Change terms unify/unification to
1233         translate/translation respectively throughtout the file.
1234         (encode_coding_iso2022): Fix bug in encoding a text ending by a
1235         composite character.
1236         (check_composing_code): If we are decoding the last block of data,
1237         return 0 even if the source doesn't end by an escape sequence
1238         which terminates the current composing sequence.
1239         (decode_coding_iso2022): Decode correctly even if the source
1240         doesn't end by an escape sequence which terminates the current
1241         composing sequence.
1243         * coding.h: Change terms unify/unification to
1244         translate/translation respectively throughout the file.
1246         * fns.c (concat): Fix bug in concatinating a list of multibyte and
1247         unibyte characters.
1249         * lisp.h (Vnonascii_translation_table): Name changed from
1250         Vnonascii_translate_table.
1252         * syntax.c (skip_chars): Fix bug in handling a range which
1253         contains multibyte characters.
1255 1998-05-17  Richard Stallman  <rms@psilocin.ai.mit.edu>
1257         * filelock.c (get_boot_time): Scan the whole wtmp file
1258         to find the most recent reboot.
1260         * window.c (Fselect_window): Doc fix.
1261         (temp_output_buffer_show): Make the temp buffer current
1262         before running Qtemp_buffer_show_hook.
1264         * fileio.c (Fexpand_file_name): Change conditional
1265         in previous change from WINDOWSNT to DOS_NT.
1267 1998-05-16  Richard Stallman  <rms@psilocin.ai.mit.edu>
1269         * buffer.h (struct buffer): New slot display_time.
1271         * buffer.c (syms_of_buffer): Set up Lisp variable buffer-display-time.
1272         Doc fixes.
1273         (reset_buffer): Initialize display_time slot.
1274         (init_buffer_once): Initialize display_time slot.
1276         * window.c (Fset_window_buffer): Update buffer's display_time.
1278         * insdel.c (insert_1_both, insert_from_string_1, replace_range)
1279         (insert_from_buffer_1, adjust_before_replace, adjust_after_replace): 
1280         Don't copy text being deleted, if undo is disabled.
1282         * lread.c (readchar): Use readchar_backlog again
1283         to read a character byte by byte, if its byte sequence
1284         does not really match the character code.
1285         (unreadchar): Handle readchar_backlog.
1286         (readevalloop, Fread): Initialize readchar_backlog to -1.
1288 1998-05-15  Geoff Voelker  <voelker@cs.washington.edu>
1290         * fileio.c (Fexpand_file_name) [WINDOWSNT]: Be careful not to
1291         concatenate the directory prefix and file name to accidentally
1292         create a network share name.
1294 1998-05-14  Andrew Innes  <andrewi@harlequin.co.uk>
1296         * w32xfns.c (interrupt_handle): New variable.
1297         (init_crit): Initialize it.
1298         (delete_crit): Cleanup on exit.
1299         (signal_quit): New function.  Signal any threads that are blocked
1300         on a "system" call (provided they have been specially written to
1301         check for this), so the call can fail with EINTR as on Unix.
1303         * w32term.h (signal_quit): Add prototype.
1305         * w32fns.c (w32_wnd_proc): Call signal_quit when C-g is received.
1307         * w32proc.c (sys_select): Always wait on interrupt_handle, so that
1308         user can break out of `accept-process-input' (for instance) by
1309         typing C-g.
1311 1998-05-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
1313         * keyboard.c (read_char): If redisplay is preempted,
1314         try swallow_events; if that clears input_pending,
1315         finish the redisplay.
1317 1998-05-14  Geoff Voelker  <voelker@cs.washington.edu>
1319         * w32term.c (w32_ring_bell): Flash window correctly.
1321 1998-05-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
1323         * fileio.c (Finsert_file_contents): Don't check non-regular
1324         files for a coding: specification.
1326 1998-05-13  Inge Frick  <inge@nada.kth.se>
1328         * keyboard.c (parse_menu_item): Removed unnecessary gcproing.
1329         Fix a test of inmenubar.
1331 1998-05-13  Eli Zaretskii  <eliz@mescaline.gnu.org>
1333         * msdos.c (init_environment): Set TMPDIR to an existing
1334         directory.  Abort if none of the usual places is available.
1336 1998-05-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
1338         * syntax.c (skip_chars): When fetching char after \,
1339         don't fail to set c_leading_code.
1341 1998-05-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
1343         * fileio.c (Finsert_file_contents): Check that a -*- coding: -*- spec
1344         or a local variables list exists, before Vset_auto_coding_function.
1346         * minibuf.c (Fminibuffer_complete_word):
1347         Fix the string-comparison loop.
1349         * search.c (search_buffer): Set search regs for all success
1350         with an empty string.
1351         (set_search_regs): Clear out all regs except 0.
1353         * minibuf.c (Fall_completions, Ftry_completion):
1354         Compare char sizes, not STRING_BYTES.
1356 1998-05-12  Inge Frick  <inge@nada.kth.se>
1358         * keyboard.c (parse_menu_item): Argument inmenubar < 0 now means
1359         parsing a keyboard menu item.
1360         (read_char_minibuf_menu_prompt): Use `parse_menu_item' to understand
1361         new menu item format.
1363 1998-05-12  Andrew Innes  <andrewi@harlequin.co.uk>
1365         * w32.c (stat, get_long_basename): Fail if filename contains any
1366         characters that are illegal in file names.
1368 1998-05-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
1370         * minibuf.c (assoc_for_completion): Use Fcompare_strings.
1371         (test_completion): In obarray, try both unibyte and multibyte strings.
1372         (read_minibuf): Convert unibyte prompt to multi if minibuffer is multi.
1373         (Fdisplay_completion_list): Convert unibyte to strings to multibyte
1374         to conform to the buffer.
1376         * fileio.c (Finsert_file_contents): Don't use the fast replace code
1377         if coding needs eol conversion.
1378         (Finsert_file_contents) [DOS_NT]: When setting buffer_file_type,
1379         if code conversion is needed, file is not binary.
1381         * xdisp.c (redisplay_window): Handle scroll_step along with
1382         scroll_conservatively.  Fix 1-off error checking the limit for them.
1384         * filelock.c (unlock_file): Encode the file name. 
1386 1998-05-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
1388         * buffer.c (Fset_buffer_multibyte): Error if marker is put
1389         on buffer's marker-chain while we have temporarily put nil there.
1391         * marker.c (unchain_marker): Abort if the marker is not
1392         in its buffer's chain.
1393         (buf_bytepos_to_charpos): Fix assignment of `record'
1394         when scanning from below.
1395         Don't create a marker if buffer's marker chain is empty.
1397         * coding.c (code_convert_region1): Set Vlast_coding_system_used.
1398         (code_convert_string1): Likewise.
1399         (Fdecode_coding_region, Fencode_coding_region): Doc fixes.
1400         (Fdecode_coding_string, Fencode_coding_string): Doc fixes.
1402         * Makefile.in (TAGS): Specify directory when running etags.
1404 1998-05-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
1406         * bytecode.c (Fbyte_code): Don't use Bmark.
1408         * .gdbinit (xstring): Handle unibyte strings.
1409         (xchartable, xboolvector): New commands.
1411         * xdisp.c (redisplay_window): Don't use last_point_x and last_point_y
1412         if cursor_in_echo_area.
1414         * minibuf.c (Qbuffer_name_history): New variable.
1415         (syms_of_minibuf): Initialize it.
1416         (Fread_buffer): Use that history list.
1418 1998-05-09  Richard Stallman  <rms@psilocin.gnu.org>
1420         * syntax.c (scan_lists, scan_sexps_forward): Move complex expressions
1421         outside of the switch statement.
1423 1998-05-09  Ken'ichi Handa  <handa@melange.gnu.org>
1425         * indent.c (compute_motion): Fix previous change.
1427 1998-05-08  Kenichi Handa  <handa@etl.go.jp>
1429         * coding.c (detect_coding_mask): Check also coding-category-binary.
1431 1998-05-08  Richard Stallman  <rms@psilocin.gnu.org>
1433         * doc.c (get_doc_string): New arg UNIBYTE
1434         Maybe use make_unibyte_string.  All callers changed.
1435         (read_doc_string): Specify 1 for UNIBYTE.
1437         * process.c (Fstart_process): Remove the special case for
1438         unibyte, for initializing the process coding systems.
1439         Instead, use the normal multibyte code, but check
1440         BUFFER's value and the default value of enable-multibyte-characters.
1441         (Fopen_network_stream): Likewise.
1443 1998-05-08  Ken'ichi Handa  <handa@melange.gnu.org>
1445         * indent.c (compute_motion): Fix, in a different way, the bug of
1446         handling wide-column character around right margin.
1448 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
1450         * indent.c (compute_motion): Undo both May 7 changes.
1452         * doprnt.c (doprnt1): Cast arg to CHAR_STRING.
1454 1998-05-07  Andrew Innes  <andrewi@harlequin.co.uk>
1456         * callproc.c (Fcall_process): Fix test for when to call
1457         Ffind_operation_coding_system.
1459 1998-05-07  Ken'ichi Handa  <handa@melange.gnu.org>
1461         * indent.c (compute_motion): Fix previous change.
1463 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
1465         * search.c (Freplace_match): Fix the loop for copying text
1466         from a string, in handling lastpos and pos.
1468 1998-05-07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
1470         * data.c (set_internal): Properly compare lisp objects.
1471         (Fmakunbound): Likewise.
1472         * lread.c (Fintern): Properly compare lisp objects.
1474 1998-05-07  Andrew Innes  <andrewi@harlequin.co.uk>
1476         * fileio.c (Fexpand_file_name) [DOS_NT]: Note when special escape
1477         prefix /: is present, and reinsert after name has been expanded.
1478         Only recognize drive specifier at beginning of name.
1480         * fileio.c (Fexpand_file_name):
1481         Don't strip trailing slash if newdir is just /.
1483 1998-05-07  Eli Zaretskii  <eliz@mescaline.gnu.org>
1485         * process.c (init_process, syms_of_process) [not subprocesses]:
1486         Make definition consistent with prototypes on lisp.h
1488 1998-05-07  Kenichi Handa  <handa@etl.go.jp>
1490         * indent.c (compute_motion): Fix bug of handling wide-column
1491         character around right margin.
1493 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
1495         * buffer.c (syms_of_buffer) <buffer-file-coding-system>: Doc fix.
1497 1998-05-07  Kenichi Handa  <handa@etl.go.jp>
1499         * callproc.c (Fcall_process): If we must display received data on
1500         the fly, don't wait until a buffer is filled.
1502 1998-05-05  Richard Stallman  <rms@psilocin.gnu.org>
1504         * fileio.c (barf_or_query_if_file_exists): Encode file name.
1506 1998-05-04  Kenichi HANDA  <handa@etl.go.jp>
1508         * coding.c (encode_coding_iso2022): Don't skip a code following
1509         some invalid code.
1511 1998-05-04  Richard Stallman  <rms@psilocin.gnu.org>
1513         * fileio.c (Finsert_file_contents): Don't use gap pos to set point
1514         if del_range_byte deleted 0 characters.
1516         * search.c (boyer_moore): Check more reliably for ptr[1] being
1517         out of range.  Use pat_end to point at the pattern's end.
1519         * emacs.c (main): Call the syms_of_... and keys_of_... functions
1520         earlier, before init_vms_input and init_display.
1521         
1522 1998-05-04  E. Jay Berkenbilt  <ejb@ql.org>
1524         * window.h (WINDOW_RIGHT_MARGIN): Don't subtract 1 from width when
1525         there are no vertical scrollbars and this is the rightmost window
1526         in the frame.
1528 1998-05-04  Eli Zaretskii  <eliz@mescaline.gnu.org>
1530         * lread.c (Fload): Rename dosmode to fmode and use it on all
1531         platforms.  Avoid calling fdopen only for WINDOWSNT, use fdopen
1532         for the the MSDOS version.
1533         (read1): Avoid recording doc strings positions only for WINDOWSNT,
1534         not for MSDOS.
1536 1998-05-04  Andreas Schwab  <schwab@delysid.gnu.org>
1538         * xterm.c: Include syssignal.h after lisp.h.
1540         * syssignal.h: Declare init_signals and add prototypes.
1542         * lisp.h: Declare init functions.
1544 1998-05-03  Richard Stallman  <rms@psilocin.gnu.org>
1546         * s/sunos4shr.h (LIBXMU): Don't bother testing CANNOT_DUMP.
1548         * Makefile.in (TAGS-LISP): New target.
1549         (${lispsource}TAGS): Target deleted.
1550         (tags): Depend on TAGS-LISP.
1551         (TAGS): Generate the TAGS file in the build dir.
1552         (lisptagsfiles): Variable deleted.
1554         * Makefile.in (shortnamesdir, cppdir): Vars deleted.
1555         (shortnames): Target deleted.
1556         (temacs): Don't use $(SHORT).
1557         (SHORT): Var deleted.
1559 1998-05-02  Richard Stallman  <rms@psilocin.gnu.org>
1561         * alloc.c (Fmake_bool_vector): Clear out extraneous bits at end.
1563         * lread.c (read1): Clear out extraneous bits at end of bool-vector.
1565         * search.c (compile_pattern_1): Declare raw_pattern as unsigned char *.
1566         Fix casts when assigning raw_pattern.
1567         Cast raw_pattern when calling re_compile_pattern.
1569 1998-05-02  Hallvard B Furuseth  <h.b.furuseth@usit.uio.no>
1571         * process.c (create_process): Add cast when calling encode_coding
1572         and another when storing buf into new_argv.
1574         * search.c (search_buffer): Fix casts when assigning raw_pattern.
1576         * editfns.c (Fformat): Fix casts when assigning buf.
1578         * lread.c (isfloat_string): Don't look at bytes before the string.
1580 1998-05-02  Richard Stallman  <rms@psilocin.gnu.org>
1582         * s/nextstep.h (HAVE_STRING_H): Add #undef.
1583         (NO_ABORT): Defined.
1585         * editfns.c (Finsert_char): Doc fix.
1587 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
1589         * fileio.c (Fmake_temp_name): Improve randomness of generated file 
1590         names.
1592 1998-05-01  Richard Stallman  <rms@psilocin.gnu.org>
1594         * search.c (wordify): Do the second loop by chars, not by bytes.
1596 1998-05-01  Kenichi Handa  <handa@etl.go.jp>
1598         * coding.c (encode_coding_iso2022): If encoding a last block,
1599         reset graphic planes and registers.
1601 1998-04-30  Geoff Voelker  <voelker@cs.washington.edu>
1603         * keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) 
1604         New variables.
1605         (make_lispy_event): Handle drag_n_drop events.
1606         (syms_of_keyboard): Initialize new symbols.
1608         * w32fns.c (enum_font_cb2): Only ignore raster fonts when
1609         determining height and width.
1611         * termhooks.h (event_kind): New event type `drag_n_drop'.
1613         * makefile.nt (LIBS): Link in shell32.lib.
1614         
1615         * w32fns.c: Include shellapi.h.
1616         (w32_createwindow): Enable drag-n-drop on new windows.
1617         (w32_wnd_proc): Handle WM_DROPFILES messages.
1618         Disable drag-n-drop on closing windows.
1620         * w32term.c: Include shellapi.h.
1621         (construct_drag_n_drop): New function.
1622         (w32_read_socket): Handle WM_DROPFILES messages.        
1624 1998-04-30  Skip Collins  <ColliBF1@APLMSG.JHUAPL.EDU>
1626         * w32fns.c (msh_mousewheel): New variable.
1627         (w32_msg_pump): Register that Emacs accepts mousewheel events.
1628         (w32_wnd_proc): Check for mousewheel events.
1630         * w32term.c (msh_mousewheel): Declare.
1631         (w32_read_socket): Check for mousewheel events.
1633         * w32term.h (WM_MOUSEWHEEL): Define relative to WM_MOUSELAST.
1634         (MSH_MOUSEWHEEL): New macro.
1636 1998-04-29  Richard Stallman  <rms@psilocin.gnu.org>
1638         * indent.c (compute_motion): When invisible text cross TO,
1639         return TO, not the start of the invisible text.
1641         * process.c (Fset_process_inherit_coding_system_flag, Fstart_process): 
1642         Store inherit_coding_system_flag as a Lisp_Object.
1643         (Fopen_network_stream): Likewise.
1644         (Fprocess_inherit_coding_system_flag): Access it as Lisp_Object.
1645         (read_process_output): Likewise.
1647         * process.h (struct Lisp_Process):
1648         Make inherit_coding_system_flag a Lisp_Object.
1650 1998-04-29  David Mosberger-Tang  <David.Mosberger@acm.org>
1652         * unexelf.c [__alpha__ && !__NetBSD__ && !__OpenBSD__]:
1653         Include definition of HDRR structure that used to be in sym.h,
1654         instead of sym.h
1656 1998-04-29  Andreas Schwab  <schwab@delysid.gnu.org>
1658         * xfns.c: Fix -Wimplicit warnings.
1660         * xdisp.c (redisplay_window): Update STARTP_BYTE alongside with
1661         STARTP.  New variable scroll_margin_bytepos, to parallel
1662         scroll_margin_pos.  Fix arguments of pos_tab_offset to agree with
1663         the first argument of compute_motion.
1665         * window.c (make_window): Initialize last_point field.
1667         * sysdep.c (emacs_get_tty): Zero out termios structure before
1668         getting attributes to get consistent values for holes.
1669         (emacs_set_tty): Likewise.
1671         * lisp.h: Declare Fcompare_strings.
1673         * fns.c: Include <time.h> for time.
1675         * emacs.c (main): Use Vbuffer_alist instead of Fbuffer_list.
1676         (syms_of_emacs): Fix doc of Vsignal_USR1_hook and
1677         Vsignal_USR2_hook.
1679         * coding.c (setup_coding_system): Properly check for nil.
1681 1998-04-29  Richard Stallman  <rms@psilocin.gnu.org>
1683         * editfns.c (Fcompare_buffer_substrings): Rewrite to loop by chars.
1685         * coding.h (Vfile_name_coding_system)
1686         (Vdefault_file_name_coding_system): Declarations added.
1688         * emacs.c (abort): Omit this definition, if NO_ABORT.
1689         End by calling exit, to avoid warning.
1690         
1691 1998-04-28  Richard Stallman  <rms@psilocin.gnu.org>
1693         * filelock.c: Include coding.h.
1694         (lock_file): Encode the file name, to make lock file name.
1696         * editfns.c (Fgap_position, Fgap_size): New functions.
1697         (syms_of_editfns): defsubr them.
1699         * filelock.c (lock_file): gcpro `fn'.
1701         * insdel.c (insert_1_both): Call prepare_to_modify_buffer before
1702         moving or making gap.
1703         (insert_from_string_1): Don't check max buffer size here.
1705         * data.c (Flsh, Fash): Handle out-of-range shift counts reasonably.
1707 1998-04-28  Dave Love  <d.love@dl.ac.uk>
1709         * s/aix4.h (HAVE_STRING_H): Add #undef.
1710         (HAVE_WAIT_HEADER): Defined.
1712 1998-04-28  Richard Stallman  <rms@psilocin.gnu.org>
1714         * emacs.c (main): Fix bug report address in --help message.
1715         (main): Doc --multibyte and --unibyte in --help message.
1717         * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_X_WINDOWS.
1719 1998-04-28  Eli Zaretskii  <eliz@mescaline.gnu.org>
1721         * Makefile.in (callproc.o, print.o, cmds.o, dispnew.o, fileio.o,
1722         frame.o, keyboard.o, minibuf.o, process.o, scroll.o, sysdep.o,
1723         term.o, w16select.o, window.o, xdisp.o, xfaces.o, lread.o): Depend
1724         on msdos.h.
1725         (print.o): Depend on dispextern.h.
1727 1998-04-28  Andreas Schwab  <schwab@delysid.gnu.org>
1729         * process.c (Fset_process_inherit_coding_system_flag):
1730         Fix test for non-nil FLAG.
1732         * lread.c: Fix -Wimplicit warnings.
1733         (readevalloop): Fix type of UNIBYTE parameter.
1735 1998-04-27  Richard Stallman  <rms@psilocin.gnu.org>
1737         * xterm.c (XTwrite_glyphs): Don't advance cursor X beyond limit.
1738         (XTcursor_to): Likewise.
1740         * blockinput.h (reinvoke_input_signal): Don't use prototype decl.
1742 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
1744         * fns.c (Fload_average): New arg USE_FLOATS.
1746 1998-04-27  Eli Zaretskii  <eliz@mescaline.gnu.org>
1748         * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_WINDOW_SYSTEM
1749         is defined.
1751         * callproc.c, fileio.c: Include msdos.h after lisp.h.
1753         * msdos.c (IT_ring_bell, IT_write_glyphs, IT_clear_end_of_line,
1754         IT_clear_screen, IT_clear_to_end, IT_clear_to_end, IT_cursor_to,
1755         IT_cmgoto, IT_reassert_line_highlight, IT_change_line_highlight,
1756         IT_update_begin, IT_update_end, IT_set_terminal_modes,
1757         IT_reset_terminal_modes, IT_set_terminal_window,
1758         pixel_to_glyph_coords, IT_menu_display):  Bring definitions in
1759         accordance with prototype declarations.
1761         * msdos.h [!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
1762         and prototypes for external functions.
1764 1998-04-26  Richard Stallman  <rms@psilocin.gnu.org>
1766         * fns.c (Fcompare_strings): Doc fix.
1768         * minibuf.c (minibuf_conform_representation): New function.
1769         (Ftry_completion): Use it to return multibyte string
1770         if and only if the completion table has a multibyte string.
1771         (Fdisplay_completion_list): 
1772         Convert string to unibyte before displaying it, if default is unibyte.
1774         * eval.c (find_handler_clause): Cast Fbacktrace to proper type.
1776         * data.c (Fmakunbound): Test keywordness only in initial obarray.
1778 1998-04-26  Erik Naggum  <erik@naggum.no>
1780         * emacs.c (standard_args): Apply --unibyte/multibyte after --nw.
1782         * lisp.h: Include initial_obarray from lread.c
1784         * data.c (set_internal): Test keywordness only in initial obarray.
1786         * lread.c (Fintern): Initialize keywords only in initial obarray.
1788 1998-04-25  Richard Stallman  <rms@psilocin.gnu.org>
1790         * sysdep.c (croak): Add forward declaration.
1792         * xfns.c (x_set_foreground_color, x_set_background_color)
1793         (x_set_mouse_color, x_set_cursor_color): Don't call unload_color
1794         if same pixel is used in another slot in the frame.
1796         * xterm.c (x_display_cursor): Use FRAME_CURSOR_X_LIMIT.
1798         * dispnew.c (change_frame_size_1): Use FRAME_CURSOR_X_LIMIT.
1799         (update_frame): Likewise.
1801         * frame.h (FRAME_CURSOR_X_LIMIT): New macro.
1803 1998-04-25  Erik Naggum  <erik@naggum.no>
1805         * lread.c (Fread_from_string): Initialize startval and endval.
1807 1998-04-24  Richard Stallman  <rms@psilocin.gnu.org>
1809         * lread.c (read1): Allow multibyte and unibyte together
1810         in one string.
1812         * xdisp.c (Qinhibit_point_motion_hooks): New variable.
1813         (syms_of_xdisp): Init and staticpro it.
1814         (redisplay_window): Bind the symbol to t.
1816 1998-04-24  Geoff Voelker  <voelker@cs.washington.edu>
1818         * w32.c (sys_socket): Make sockets non-inheritable.
1820 1998-04-23  Andrew Innes  <andrewi@harlequin.co.uk>
1822         * coding.c (shrink_decoding_region): Do not consider LF as ascii
1823         if preceded by CR, since that confuses eol decoding.
1824         (code_convert_region): When conversion fails with
1825         CODING_FINISH_INSUFFICIENT_SRC, was overwriting src with garbage
1826         from dst instead of copying from src to dst.
1828         * fileio.c (Fcopy_file): Skip dev/inode check on Windows.
1830         * lread.c (dir_warning): Don't log a warning if Emacs hasn't
1831         finished initializing.
1833         * s/ms-w32.h (utimbuf): New macro.
1835         * w32.c (fstat, utime): New functions; these are provided in
1836         conjunction with stat to make handling of file timestamps
1837         consistent.
1838         (convert_from_time_t): Fix calculation of low-order bits.
1839         (sys_unlink): Allow read-only files to be unlinked as on Unix.
1841         * w32fns.c (x_set_vertical_scroll_bars): Put scroll bars on the
1842         right, as is conventional on MS-Windows.
1843         (w32_wnd_proc): Add code to draw popup menu titles.
1844         Ensure mouse capture is released before running popup menu.
1846         * w32term.c (w32_read_socket): Don't misinterpret WM_PAINT message
1847         as an expose event if the repaint region is actually empty.  Also
1848         use the standard menubar_selection_callback routine.
1850         * w32menu.c: Replace code with a new version written from scratch
1851         based on xmenu.c; menu construction is now completely lazy.
1853         * w32proc.c (sys_kill): Fix indenting.
1855 1998-04-23  Inge Frick  <inge@nada.kth.se>
1857         * keyboard.c: (parse_menu_item): Support keywords :keys and
1858         :key-sequence.  Some changes to provide GC-protection. Some
1859         cosmetic changes.
1860         (syms_of_keyboard): Define new symbols `:keys' and `:key-sequence'.
1862 1998-04-23  Richard Stallman  <rms@psilocin.gnu.org>
1864         * Makefile.in (emacs.o): Depend on buffer.h.
1866         * charset.c (syms_of_charset): Doc fix for nonascii-insert-offset.
1868         * editfns.c (Fbuffer_substring): Doc fix.
1869         (Finsert_and_inherit_before_markers): Doc fix.
1870         (Finsert_and_inherit, Finsert_before_markers, Finsert): Doc fixes.
1872         * fns.c (Fstring_make_multibyte): Doc fix.
1873         (Fstring_make_unibyte): Doc fix.
1875 1998-04-22  Richard Stallman  <rms@psilocin.gnu.org>
1877         * charset.c (Funibyte_char_to_multibyte): Doc fix.
1879         * xfns.c (x_set_foreground_color): Call unload_color on the old color.
1880         (x_set_background_color, x_set_mouse_color): Likewise.
1881         (x_set_cursor_color, x_set_border_pixel): Likewise.
1883         * xfaces.c (unload_color): No longer static.
1885         * insdel.c (insert_from_string, insert_from_string_before_markers): 
1886         Don't special case LENGTH = 0.
1887         (insert_from_buffer): Likewise.
1889 1998-04-22  Erik Naggum  <erik@naggum.no>
1891         * filelock.c (get_boot_time): Remove extraneous semicolon.
1893         * lisp.h: Remove extraneous semicolon.
1895 1998-04-22  Eli Zaretskii  <eliz@delysid.gnu.org>
1897         * w16select.c (Fwin16_set_clipboard_data): Call UNBLOCK_INPUT
1898         before calling sit_for.  
1899         (Fwin16_get_clipboard_data, Fwin16_set_clipboard_data): Balance
1900         the calls to BLOCK_INPUT and UNBLOCK_INPUT.
1901         (alloc_xfer_buf): If want_size is more than 1MB, return
1902         immediately with failure.
1903         (Fw16_set_clipboard_data, Fw16_get_clipboard_data): Replace win16
1904         with w16.
1906 1998-04-21  Richard Stallman  <rms@psilocin.gnu.org>
1908         * eval.c (Fsignal): Unconditionally do TOTALLY_UNBLOCK_INPUT.
1910         * dispnew.c (update_frame): Move echo area cursor into range.
1912 1998-04-21  Eli Zaretskii  <eliz@delysid.gnu.org>
1914         * callproc.c (Fcall_process) [MSDOS]: Call child_setup instead of
1915         run_msdos_command. 
1916         (child_setup) [MSDOS]: Call run_msdos_command here.
1917         (child_setup) [DOS_NT]: Get past drive letter in pwd.  Don't call
1918         close_load_descs, since we are not in a vfork.
1920         * msdos.c (run_msdos_command): Don't construct process
1921         environment, it's already done in child_setup.
1922         (run_msdos_command): Add ENVV to argument list.
1924 1998-04-20  Richard Stallman  <rms@psilocin.gnu.org>
1926         * emacs.c (main): Move the --unibyte code below
1927         the most basic initializations.
1928         Clear out *Messages* at that point.
1930         * lread.c (read_from_string_index_byte): New variable.
1931         (read_from_string_index): Now counts characters.
1932         (readchar, unreadchar, Fread_from_string): Changed accordingly.
1934         * lread.c (readchar): Read a multibyte char all at once
1935         from a buffer, marker or string.
1936         (unreadchar): Unread a multibyte char all at once.
1937         (read1): Properly handle non-escaped multibyte chars.
1938         They force a string to be multibyte.
1939         When reading direct from a file, any multibyte sequence means
1940         a multibyte string.
1941         Insist on MAX_LENGTH_OF_MULTI_BYTE_FORM bytes when checking
1942         for read_buffer full; this way need not check specially for multibyte.
1944         * emacs.c: Include buffer.h
1945         (main): When handling --unibyte, mark all existing
1946         buffers as unibyte; but don't handle it when dumping.
1948         * alloc.c (Fgarbage_collect): Don't truncate command-history here.
1950         * callint.c (Fcall_interactively): Truncate command-history here.
1952         * keyboard.c (Fcommand_execute): Truncate command-history here.
1954         * lread.c (readevalloop): New arg UNIBYTE.  Callers changed.
1955         Use it to bind load_convert_to_unibyte.
1956         (Feval_buffer): New arg UNIBYTE.  Pass it to readevalloop.
1957         (readevalloop_1): New unwind-protect subroutine.
1958         (load_convert_to_unibyte): New variable.
1959         (syms_of_lread): Set up Lisp var.
1960         (read1): If load_convert_to_unibyte, convert strings to unibyte.
1961         
1962         * insdel.c (copy_text): Count down bytes_left properly
1963         in multibyte to unibyte case.
1965         * fns.c (Fcompare_strings): Require first 6 args.
1967 1998-04-20  Kenichi HANDA  <handa@etl.go.jp>
1969         * Makefile.in (lisp): Add czech.elc, slovak.elc, and romanian.elc.
1970         (shortlisp): Likewise.
1972         * coding.c (setup_coding_system): For a type 4 coding system,
1973         FLAGS member of coding spec is a cons of CCL program symbols.
1975         * ccl.c (Fregister_ccl_program): Put ccl-program-idx property to
1976         NAME.
1978 1998-04-19  Eli Zaretskii  <eliz@delysid.gnu.org>
1980         * process.h (struct Lisp_Process): Add inherit_coding_system_flag
1981         member.
1983         * process.c (Fset_process_inherit_coding_system_flag,
1984         Fprocess_inherit_coding_system_flag): New functions.
1985         (syms_of_process): Defsubr them.
1986         (Fstart_process, Fopen_network_stream): Initialize
1987         inherit_coding_system_flag.
1988         (read_process_output): If the process buffer isn't dead, call
1989         after-insert-file-set-buffer-file-coding-system.
1991 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
1993         * fileio.c (Fmake_temp_name): Complete rewrite.
1995 1998-04-18  Richard Stallman  <rms@psilocin.gnu.org>
1997         * minibuf.c (Ftry_completion): Use Fcompare_strings.
1998         (Fall_completions, Fminibuffer_complete_word): Likewise.
2000         * fns.c (Fcompare_strings): New function.
2001         (syms_of_fns): defsubr it.
2003         * xselect.c (Fx_get_cut_buffer_internal):
2004         If FORMAT is 0, cut buffer is empty.
2006         * emacs.c (main): --unibyte affects minibuffer too.
2008 1998-04-17  Richard Stallman  <rms@psilocin.gnu.org>
2010         * emacs.c (syms_of_emacs): Fix patching error in previous change.
2012         * lread.c (read1): Compute NaN and infinities using 0.0 in a
2013         variable, to cope with compilers that think they are smarter than us.
2015         * lread.c (readchar): Find the previous byte's address properly
2016         for the buffer case, as for the marker case.
2018 1998-04-17  Geoff Voelker  <voelker@cs.washington.edu>
2020         * emacs.c (Vpath_separator): New variable.
2021         (syms_of_emacs): Define Vpath_separator using SEPCHAR.
2023         * lastfile.c (_my_endbss, my_endbss_static): New variables.
2025         * term.c (reset_terminal_modes): Only invoke hook if defined.
2027         * makefile.nt (LINK_TYPE): Do not include debug info in optimized
2028         binary.
2029         (LIBS): Include mpr.lib.
2030         (clean): Delete patch generated files, optimized build directory.
2032         * s/ms-w32.h (HAVE_STRING_H, HAVE_STRFTIME): Define macros.
2033         (SYSTEM_PURESIZE_EXTRA): Increase to handle more dumped lisp files.
2035         * unexw32.c (my_begbss_static, my_endbss_static): Declare.
2036         (get_bss_info_from_map_file): Only define if SEPARATE_BSS_SECTION.
2037         (get_section_info): Use my_begbss_static, my_endbss_static to
2038         determine bounds of bss.
2039         (w32_fatal_reload_error): New function.
2040         (read_in_bss, map_in_heap): Invoke w32_fatal_reload_error upon error.
2042         * w32.c (sys_read): Clear carriage return flag.
2043         Report normal EOF when read fails if nothing in buffer.
2044         Only read more if more remaining.
2045         (check_windows_init_file): New function.
2046         (term_ntproc): Invoke check_windows_init_file.
2048         * w32.h (FILE_SEND_SIGCHLD): New macro.
2050         * w32faces.c (Qforeground_color, Qbackground_color): Declare.
2051         (compute_char_face, merge_face_list): Update from xterm.c.
2053         * w32fns.c (w32_msg_pump): Handle WM_EMACS_SETLOCALE.
2054         (w32_wnd_proc): Handle WM_EMACS_SETFOREGROUND.
2056         * w32heap.c (recreate_heap): Invoke w32_fatal_reload_error upon error.
2057         * w32heap.h (w32_fatal_reload_error): Declare.
2059         * w32inevt.c (Vw32_recognize_altgr): Declare.
2060         (w32_kbd_mods_to_emacs): Obey Vw32_recognize_altgr.
2061         Add more keys for Vw32_capslock_is_shiftlock.
2062         (w32_kbd_patch_key): Obey Vw32_recognize_altgr.
2063         (map_virt_key): Brazilian keyboards use 0xc1 for /(?) key.
2065         * w32menu.c (Vmenu_updating_frame): New variable.
2066         (Fx_popup_menu, set_frame_menubar): Record frame whose menu is 
2067         being updated.
2068         (syms_of_w32menu): Define Vmenu_updating_frame.
2070         * w32proc.c (w32_executable_type): Properly cast dos_header when
2071         making size comparison.
2072         (sys_spawnve): Update comments.
2073         (sys_select): Ignore children dead children with pending input.
2074         Delay sending SIGCHLD until all output has been read.
2075         (sys_kill): Sleep to allow focus change events to propagate.
2076         Use TerminateProcess on Win95.
2077         (int_from_hex, enum_locale_fn, Fw32_get_valid_locale_ids):
2078         New functions.
2079         (Vw32_valid_locale_ids): New variable.
2080         (Fw32_set_current_locale): Send message to input thread.
2081         (syms_of_ntproc): defsubr Sw32_get_valid_locale_ids.
2083         * w32term.c (Vw32_recognize_altgr): New variable.
2084         (dumpglyphs): Update from xterm.c.
2085         (w32_ring_bell): Flash window, don't just reset its state.
2086         (dumprectangle, show_mouse_face, x_draw_single_glyph): Use new 
2087         args to dumpglyphs.
2088         (my_set_foreground_window): New function.
2089         (w32_condemn_scroll_bars): Mark all as condemned scroll bars.
2090         (w32_redeem_scroll_bar): Look through all scroll bars.
2091         (w32_judge_scroll_bars): Don't clear out condemned list.
2092         (w32_read_socket): Clip window after frame has been restored.
2093         (x_focus_on_frame, x_raise_frame): Use my_set_foreground_window.
2094         (syms_of_w32term): Define Vw32_recognize_altgr.
2096         * w32term.h (WM_EMACS_SETFOREGROUND, WM_EMACS_SETLOCALE):
2097         New message macros.
2099 1998-04-16  Richard Stallman  <rms@psilocin.gnu.org>
2101         * callproc.c (Fcall_process_region): Unbind coding-system-for-write
2102         after calling Fwrite_region.
2104         * eval.c (Fcatch): Doc fix.
2106         * mocklisp.c (Fml_if): Initialize val.
2108 1998-04-16  Erik Naggum  <erik@naggum.no>
2110         * emacs.c (main): Fix typo, add --multibyte and --no-multibyte.
2111         (standard_args): Add --multibyte and --no-multibyte.
2113 1998-04-16  Richard Stallman  <rms@psilocin.gnu.org>
2115         * fns.c (time): Declare it only if not HAVE_UNISTD_H.
2117         * emacs.c (standard_args): Add --no-unibyte.
2118         (main): Recognize --no-unibyte to inhibit EMACS_UNIBYTE.
2120         * fns.c (Frequire): Doc fix.
2122         * fileio.c (file_name_as_directory): For empty arg, return `./'.
2124 1998-04-16  Eli Zaretskii  <eliz@gnu.org>
2126         * msdos.c (it_keyboard): New variable, supports Italian keyboard.
2127         (keyboard_layout_list): Add Italian keyboard.
2129 1998-04-15  Ken'ichi Handa  <handa@melange.gnu.org>
2131         * coding.c (code_convert_region): If point in the conversion
2132         region, move it to FROM in advance.
2134 1998-04-15  Eli Zaretskii  <eliz@delysid.gnu.org>
2136         * callproc.c (Fcall_process): Call
2137         after-insert-file-set-buffer-file-coding-system if
2138         inherit-process-coding-system is non-nil.
2140         * coding.c (syms_of_coding): Declare and define
2141         inherit-process-coding-system.
2143         * coding.h: Declare inherit-process-coding-system.
2145         * w32.c (sys_pipe): Use binary pipe I/O unconditionally.
2147         * callproc.c: Remove binary-process-{in,out}put.
2148         (syms_of_callproc): Likewise.
2149         (Fcall_process, Fcall_process_region): Don't use
2150         binary-process-{in,out}put.
2152 1998-04-15  Andreas Schwab  <schwab@delysid.gnu.org>
2154         * config.in (RE_TRANSLATE_P): Define.
2156 1998-04-15  Ken'ichi Handa  <handa@melange.gnu.org>
2158         * ccl.c (Fccl_execute_on_string): Put \n\ at eol of docstring.
2160         * xfns.c (x_set_font): Give 2nd arg nil to Fquery_fontset.
2161         (Fx_create_frame): Likewise.
2163 1998-04-15  Kenichi Handa  <handa@etl.go.jp>
2165         * ccl.c: Typo in comments fixed.
2166         (Qccl_program_idx, Qunification_table, Qunification_table_id): New
2167         variables.
2168         (syms_of_ccl): Initialize and staticpro them.
2169         (CCL_ReadMultibyteChar2): Macro name changed from
2170         CCL_ReadMultibyteCharacter.
2171         (CCL_WriteMultibyteChar2): Macro name changed from
2172         CCL_WriteMultibyteChar2.
2173         (CCL_
2174         (MAX_TABLE_SET_LEVEL): New macro.
2175         (tr_stack): New type.
2176         (translate_stack, translate_stack_pointer): New variables.
2177         (PUSH_TRANSLATE_STACK, POP_TRANSLATE_STACK): New macros.
2178         (ccl_driver): Adjusted for the above changes.
2179         (resolve_symbol_ccl_program): New function.
2180         (Fccl_execute): The arg CCL-PROGRAM can be a symbol of CCL
2181         program.  If CCL-PRGRAM is a vector, convert symbols in it to ID
2182         numbers by resolve_symbol_ccl_program.
2183         (Fccl_execute_on_string): Likewise.
2184         (Fregister_ccl_program): If the arg CCL-PRGRAM is a vector,
2185         convert symbols in it to ID numbers by resolve_symbol_ccl_program.
2187         * ccl.h (Vccl_program_table, Qccl_program_idx): Extern them.
2189         * fontset.c (find_ccl_program_func): New variable.
2190         (fs_load_font): Call a function pointed by find_ccl_program_func
2191         instead of finding CCL program to encode a character by itself.
2192         (Fquery_fontset): New optional 2nd arg REGEXPP.  Callers changed.
2194         * fontset.h (FONT_ENCODING_NOT_DECIDED): The value is changed to 255.
2195         (find_ccl_program_func): Extern it.
2196         (Fquery_fontset): Args number changed to 2.
2197         
2198         * xfns.c (syms_of_xfns): Initialize find_ccl_program_func.
2200         * xterm.c (x_find_ccl_program): New function.
2202         * xterm.h (x_find_ccl_program): Extern it.
2204 1998-04-14  Dave Love  <fx@gnu.org>
2206         * keymap.c: Revert erroneous 1998-04-07 change.
2208 1998-04-14  Karl Heuer  <kwzh@gnu.org>
2210         * xfns.c (x_destroy_bitmap): Declare as void, not int.
2211         (x_report_frame_params, x_set_border_pixel): Likewise.
2212         (x_set_internal_border_width): widget_store_internal_border takes
2213         just one arg, not two.
2215 1998-04-14  Andreas Schwab  <schwab@delysid.gnu.org>
2217         * xdisp.c (try_window): Fix mixing of Lisp_Object and int.
2219         * window.c (Fset_window_configuration): Fix mixing of Lisp_Object
2220         and int.
2222         * sysdep.c (init_sys_modes): Fix mixing of Lisp_Object and int
2224         * search.c (compile_pattern, compile_pattern_1): Fix mixing of
2225         Lisp_Object and int.
2227         * process.c (read_process_output): Fix mixing of Lisp_Object and
2228         int.
2230         * minibuf.c (Fself_insert_and_exit): Fix mixing of Lisp_Object and
2231         int.
2233         * marker.c (set_marker_both): Remove bogus checks on charpos.
2235         * keyboard.c (parse_menu_item): Don't GCPRO non-lisp variables.
2237         * insdel.c (signal_after_change): Fix mixing of Lisp_Object and
2238         int.
2240         * indent.c (indented_beyond_p): Fix mixing of Lisp_Object and int.
2242         * frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Fix
2243         mixing of Lisp_Object and int.
2245         * fns.c (Fsubstring, substring_both, Fchar_table_range,
2246         Fset_char_table_range): Fix mixing of Lisp_Object and int.
2248         * fileio.c (Fwrite_region): Fix mixing of Lisp_Object and int.
2250         * editfns.c (Fchar_after, Fchar_before): Fix mixing of Lisp_Object
2251         and int
2253         * coding.c (code_convert_region): Fix mixing of Lisp_Object and
2254         int.
2256         * charset.c (Fchars_in_region): Fix mixing of Lisp_Object and int.
2258         * ccl.c (ccl_driver, syms_of_ccl): Fix mixing of Lisp_Object and
2259         int.
2261         * cm.h: Update return types of declarations.
2263         * xterm.h, puresize.h, termhooks.h, lisp.h, keyboard.h,
2264         intervals.h, dispextern.h, blockinput.h, coding.h: Add more
2265         prototypes.
2267         * xterm.c, xselect.c, xrdb.c, xmenu.c, xdisp.c, window.c,
2268         widget.c, undo.c, terminfo.c, term.c, sysdep.c, syntax.c,
2269         search.c, scroll.c, process.c, print.c, mocklisp.c, prefix-args.c,
2270         marker.c, keymap.c, keyboard.c, intervals.c, insdel.c, indent.c,
2271         frame.c, fontset.c, fns.c, floatfns.c, filelock.c, fileio.c,
2272         eval.c, emacs.c, editfns.c, doprnt.c, doc.c, dispnew.c, dired.c,
2273         data.c, coding.c, cmds.c, cm.c, charset.c, ccl.c, category.c,
2274         casetab.c, casefiddle.c, callproc.c, callint.c, bytecode.c,
2275         buffer.c, alloc.c, abbrev.c: Fix -Wimplicit warnings.
2277         * buffer.c (Fset_buffer_multibyte): Do nothing if nothing actually
2278         changes.
2280         * coding.c (code_convert_region): Call adjust_after_insert also
2281         in unibyte mode.
2283         * fileio.c (Finsert_file_contents): Call adjust_after_insert also
2284         in unibyte mode.
2286 1998-04-13  Ken'ichi Handa  <handa@melange.gnu.org>
2288         * coding.c (code_convert_string): Give decode_coding correct byte
2289         length of source text.
2291 1998-04-13  Richard Stallman  <rms@gnu.org>
2293         * print.c (strout): Convert old echo area to multibyte, like printchar.
2294         (printchar, strout): If echo area text converted to multibyte
2295         does not all fit, truncate it at char boundary.
2297         * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): 
2298         When calling set_marker_both, pass the right buffer.
2300         * indent.c (Fcompute_motion): Check that TO and FROM are in range.
2302 1998-04-13  Eli Zaretskii  <eliz@delysid.gnu.org>
2304         * msdos.c (dosv_refresh_virtual_screen): Do not use negative
2305         arguments.
2306         (dos_direct_output): Fix the offset passed to
2307         dosv_refresh_virtual_screen.
2308         (IT_display_cursor): Don't call dosv_refresh_virtual_screen.
2309         (IT_reset_terminal_modes): Don't call dosv_refresh_virtual_screen
2310         when setting cursor.
2312 1998-04-12  Richard Stallman  <rms@gnu.org>
2314         * print.c (temp_output_buffer_setup): Clear out overlays,
2315         visited file, undo list, etc.
2317         * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
2318         (SYNTAX_TABLE_BYTE_TO_CHAR): Handle the offset properly
2319         both before and after conversion.
2321         * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Arg renamed to charpos.
2322         (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise.
2324         * xdisp.c (display_text_line): When handling selective > 0,
2325         update pos and pos_byte with results of calling scan_newline.
2327         * data.c (set_internal, Fmakunbound): Fix previous change.
2329 1998-04-12  Hallvard B Furuseth  <h.b.furuseth@usit.uio.no>
2331         * print.c (print) <Lisp_String>: Fix "\ " handling.
2333 1998-04-11  Richard Stallman  <rms@gnu.org>
2335         * s/netbsd.h (LINKER): Add definition.
2336         (LD_SWITCH_SYSTEM): Undo previous change.
2338         * data.c (set_internal, Fmakunbound): No error if setting
2339         a keyword to itself.
2341 1998-04-09  Karl Heuer  <kwzh@gnu.org>
2343         * marker.c (Fbuffer_has_markers_at): Fix termination condition.
2345         * search.c (min, max): Make these macros, not functions.
2346         (scan_buffer, boyer_moore): Simplify args to those macros.
2347         * unexw32.c (min, max): Define as macros.
2348         * w32.c (min, max): Define as macros.
2349         * w32term.c (min, max): Define as macros.
2350         * callproc.c (relocate_fd): Avoid `min'/`max' as variable names.
2351         * print.c (print): Likewise.
2352         * dispnew.c (minmax): New macro.
2353         (update_frame): Use it.
2355         * w32proc.c: Delete incorrect prototype of report_file_error.
2356         * w32.c (unrequest_sigio, request_sigio): Fix prototype.
2358         * w32menu.c (set_frame_menubar): Call Fset_match_data, not
2359         Fstore_match_data.
2361         * emacs.c (abort): Don't redefine on DOS_NT.
2363 1998-04-09  Kenichi Handa  <handa@etl.go.jp>
2365         * charset.c (string_to_non_ascii_char): Include garbage bytes (if
2366         any) following a multibyte character in *ACTUAL_LEN.
2367         (Fcharset_after): New function.
2368         (syms_of_charset): Defsubr it.
2369         (multibyte_form_length): Modified to be consistent with
2370         string_to_non_ascii_char.
2371         
2372         * charset.h (MULTIBYTE_FORM_LENGTH): Don't check LEN here.
2374         * xdisp.c (display_text_line): Code for displaying a character by
2375         octal form is modified.
2377 1998-04-08  Richard Stallman  <rms@gnu.org>
2379         * data.c (keyword_symbols_constant_flag): New variable.
2380         (syms_of_data): Set up Lisp variable.
2381         (set_internal): Obey it and give error for :-symbols.
2382         (Fmakunbound): Likewise.
2384 1998-04-08  Eli Zaretskii  <eliz@delysid.gnu.org>
2386         * dosfns.c (init_dosfns): Fix bug in passing segment address of
2387         the transfer buffer.
2389 1998-04-08  Karl Heuer  <kwzh@gnu.org>
2391         * keymap.c (fix_submap_inheritance): Fix parens.
2393 1998-04-07  Richard Stallman  <rms@gnu.org>
2395         * fileio.c (Fmake_temp_name): Detect error return from mktemp.
2397 1998-04-07  Eli Zaretskii  <eliz@is.elta.co.il>
2399         * charset.c (string_to_non_ascii_char, multibyte_form_length)
2400         (split_non_ascii_string, str_cmpchar_id): Make the STR argument
2401         const unsigned char *.
2402         * charset.h: Update prototypes for the above.
2404         * filelock.c: Include <utmp.h> only if CLASH_DETECTION is
2405         defined.
2407         * process.c (kill_buffer_processes): Make consistent with
2408         prototype in lisp.h.
2410         * msdos.c (request_sigio, unrequest_sigio): Make consistent with
2411         prototypes in lisp.h.
2413         * charset.h (CHAR_STRING): Cast to unsigned char ** explicitly.
2415         * w16select.c (Fwin16_set_clipboard_data): Call message2 with 3
2416         arguments.
2418         * emacs.c (abort): Don't redefine on MSDOS.
2420 1998-04-07  Dave Love  <fx@gnu.org>
2422         * keymap.c (describe_command): Use quotes around symbol name.
2424         * emacs.c (main): Obey environment variable EMACS_UNIBYTE as
2425         alternative to --unibyte.
2427 1998-04-06  Jonathan I. Kamens  <jik@kamens.brookline.ma.us>
2429         * config.in (GSSAPI, HAVE_LIBGSSAPI_KRB5, HAVE_LIBGSSAPI)
2430         (HAVE_GSSAPI_H): Add undefs for GSS-API support in movemail.
2432 1998-04-06  Richard Stallman  <rms@gnu.org>
2434         * dired.c (Fdirectory_files): Use make_uninit_multibyte_string.
2435         Use STRING_BYTES on encoded_directory.
2437 1998-04-06  Andreas Schwab  <schwab@gnu.org>
2439         * fns.c (Flength): Doc fix.
2441         * unexelf.c (unexec): Account for possible padding before the old
2442         .bss section.
2444         * editfns.c (Ftranspose_regions): Fix order of parameters for
2445         replace_range.
2447         * dired.c (Fdirectory_files): GCPRO encoded_directory and list.
2448         Compute needsep only once.  Pass correct arg to chars_in_text.
2450         * alloc.c (gc_sweep): Avoid using two loop variables counting the
2451         same thing.
2453 1998-04-06  Ken'ichi Handa  <handa@delysid.gnu.org>
2455         * fns.c (Fstring_as_unibyte): Set size_byte field to -1.
2457 1998-04-05  Eli Zaretskii  <eliz@is.elta.co.il>
2459         * config.in: Don't include <string.h> when configuring.
2461 1998-04-04  Richard Stallman  <rms@psilocin.gnu.org>
2463         * s/netbsd.h (LD_SWITCH_SYSTEM): Add -L/usr/lib.
2465 1998-04-03  enami tsugutomo  <enami@but-b.or.jp>
2467         * editfns.c (Fmessage_box): Pass the missing third argument
2468         STRING_MULTIBYTE (val) to message2.
2470         * frame.c (make_frame_without_minibuffer): Conditionalize on
2471         HAVE_WINDOW_SYSTEM.
2472         (make_minibuffer_frame): Likewise.
2473         * frame.h: Ditto.
2475 1998-04-03  Richard Stallman  <rms@psilocin.gnu.org>
2477         * intervals.c (set_intervals_multibyte):
2478         Function moved after set_intervals_multibyte_1.
2480         * xdisp.c (redisplay_window): If updating mode line,
2481         temporarily change selected_frame
2483 1998-04-02  Dave Love  <fx@gnu.org>
2485         * emacs.c (main): Add [--unibyte] to usage.
2487 1998-04-02  Richard Stallman  <rms@psilocin.gnu.org>
2489         * print.c (print) <Lisp_String>: Follow a hex escape with `\ ' if nec.
2491         * data.c (Fmake_variable_frame_local): Doc fix.
2493         * fns.c (Fstring_as_multibyte): Never return unibyte string unchanged.
2495 1998-04-02  NIIBE Yutaka  <gniibe@mri.co.jp>
2497         * fns.c (Fstring_as_multibyte): Set size_byte field.
2499 1998-04-02  Richard Stallman  <rms@psilocin.gnu.org>
2501         * fns.c (char_table_translate): New function.
2502         * config.in (RE_TRANSLATE): Use char_table_translate.
2504 1998-04-02  Kenichi Handa  <handa@etl.go.jp>
2506         * coding.c (CHARSET_OK): Don't reject safe charsets.
2507         (DECODE_DESIGNATION): Likewise.
2508         (check_composing_code): Likewise.
2510         * marker.c (buf_charpos_to_bytepos): Delete local variable
2511         gapend_byte.
2513         * xselect.c (selection_data_to_lisp_data): Give
2514         make_string_from_bytes a correct char size.
2516 1998-04-01  Richard Stallman  <rms@psilocin.gnu.org>
2518         * xdisp.c (redisplay_window): Fix computing pos from last_point.
2520 1998-03-30  Kenichi Handa  <handa@etl.go.jp>
2522         * coding.c (code_convert_region): Handle skipped ASCII characters
2523         at the head and tail of conversion region correctly when adjusting
2524         position keepers.  Call adjust_after_insert to record undo info
2525         and adjust markers when we don't have to change byte sequence of
2526         a buffer.
2528         * coding.h (struct coding_system): Comment for the member
2529         heading_ascii modified.
2531         * fileio.c (Finsert_file_contents): Call adjust_after_insert when
2532         a text is inserted in a multibyte buffer without any code
2533         conversion.
2535         * insdel.c (adjust_markers_for_replace): New function.
2536         (adjust_after_replace): Arguments changed.  Call
2537         adjust_markers_for_replace if this function is called after
2538         replacement.
2539         (adjust_after_insert): New function.
2541         * lisp.h (adjust_after_replace, adjust_after_insert): Extern them.
2543 1998-03-28  Richard Stallman  <rms@psilocin.gnu.org>
2545         * xdisp.c (display_text_line): Handle overlay-arrow correctly.
2547 1998-03-28  Richard Stallman  <rms@psilocin.gnu.org>
2549         * fileio.c (barf_or_query_if_file_exists): New arg QUICK.
2550         All calls changed.
2551         
2552 1998-03-27  Richard Stallman  <rms@psilocin.gnu.org>
2554         * insdel.c (check_markers_debug_flag): New variable.
2555         (syms_of_insdel): Set up Lisp var.
2556         (CHECK_MARKERS): New macro.  Use it everywhere
2557         instead of calling check_markers directly.
2558         It tests check_markers_debug_flag.
2560 1998-03-26  Richard Stallman  <rms@psilocin.gnu.org>
2562         * alloc.c (mark_buffer): Mark the undo_list slot specially;
2563         don't mark a marker just cause it is in this list.
2564         (Fgarbage_collect): Discard from all undo-lists
2565         all elements that adjust markers that were not marked.
2567         * buffer.h (struct buffer): Field `undo_list' moved before `name'
2568         so it won't get marked in the usual way.
2570         * coding.c (code_convert_region): Call adjust_before_replace
2571         in the no-conversion case.  Adjust GPT, ZV and Z in chars.
2572         
2573 1998-03-25  Richard Stallman  <rms@psilocin.gnu.org>
2575         * lread.c (init_lread): Init Vstandard_input.
2577 1998-03-25  Ken'ichi Handa  <handa@melange.gnu.org>
2579         * xdisp.c (redisplay_window): Fix previous change.
2581 1998-03-25  Kenichi Handa  <handa@etl.go.jp>
2583         * indent.c (compute_motion): Call strwidth only when necessary.
2584         Set wide_column_end_hpos only when MULTIBYTE_BYTES_WIDTH set
2585         nonzero to wide_column.
2587         * xdisp.c (redisplay_window): Give byte position to FETCH_BYTE.
2588         Call pos_tab_offset appropriately.
2589         (try_window_id): Give byte position to FETCH_BYTE.  Set
2590         val.bytepos to pos_byte.
2592         * lisp.h (make_buffer_string, make_buffer_string_both): Extern
2593         them.
2595         * process.c (read_process_output): Count multibyte characters.  If
2596         received data is stored in p->decoding_buf, copy it to a temporary
2597         buffer and call insert_before_makers instead of
2598         insert_from_string_before_markers.
2600 1998-03-24  Ken'ichi Handa  <handa@melange.gnu.org>
2602         * lisp.h (record_delete): The second arg is Lisp_Object.
2604 1998-03-24  Kenichi Handa  <handa@etl.go.jp>
2606         * indent.c (MULTIBYTE_BYTES_WIDTH): Set wide_column only when we
2607         encounter a wide-column character.
2609         * undo.c (record_delete): Record last_point_position when there's
2610         no record other than marker adjustment before undo boundary.
2612         * insdel.c (del_range_2): Move gap again to a proper place just
2613         after calling make_buffer_string_both.
2615         * coding.c (shrink_decoding_region): If EOL_CONVERSION is nonzero,
2616         don't skip `\r' (instead of `\n').
2618 1998-03-23  Andreas Schwab  <schwab@gnu.org>
2620         * xmenu.c (popup_get_selection): On receiving a KeyPress event
2621         only deactivate the menu when the key is not a modifier key.
2623         * xfns.c (Fx_create_frame): Use "borderWidth", not "borderwidth",
2624         as resource name, to be consistent with other X applications.
2626 1998-03-21  Richard Stallman  <rms@delysid.gnu.org>
2628         * dired.c (Fdirectory_files):
2629         In FULL case, compute number of characters
2631         * fns.c (substring_both, Fsubstring): Use make_specified_string.
2632         (concat): Make string result unibyte or multibyte as appropriate.
2634         * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string.
2636         * alloc.c (make_specified_string): New function.
2637         (make_string_from_bytes): New function.
2638         (compact_strings): Get byte size from size, if size_byte < 0.
2639         (Fmake_string): Use make_uninit_string for single-byte char.
2640         (make_unibyte_string): Mark string as unibyte.
2641         (make_uninit_string): Likewise.
2642         (make_string): Likewise, if size == size in bytes.
2643         (make_pure_string): New arg MULTIBYTE.
2644         (Fpurecopy): Pass new arg to make_pure_string.
2646         * editfns.c (Fchar_to_string): Use make_string_from_bytes.
2647         (Fformat): Use make_specified_string.
2648         (make_buffer_string_both): Use make_uninit_string if buffer is unibyte.
2650         * casefiddle.c (casify_object): Use make_specified_string.
2652         * charset.c (Fstring): Use make_string_from_bytes.
2653         (Fcompose_string): Likewise.
2655         * cmds.c (internal_self_insert): Use make_string_from_bytes.
2657         * coding.c (code_convert_string): Use make_string_from_bytes.
2659         * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes.
2661         * lread.c (read1): Pass new arg to make_pure_string.
2662         (make_symbol): Likewise.
2663         (init_obarray): Likewise.
2664         (read1): Use make_specified_string.
2666         * print.c (PRINTPREPARE): Use make_string_from_bytes.
2668         * process.c (read_process_output): Use make_string_from_bytes.
2670         * search.c (Fregexp_quote): Use make_specified_string.
2672         * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes.
2674         * insdel.c: (insert_from_string_1, replace_range):
2675         Use STRING_MULTIBYTE to determine whether string is multibyte.
2677         * editfns.c: Use STRING_BYTES and SET_STRING_BYTES.
2679         (Ftranspose_regions): Try to handle combining bytes.
2681         * alloc.c, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, search.c,
2682         process.c, print.c, lread.c, keymap.c, insdel.c, keyboard.c,
2683         frame.c, fns.c, filelock.c, doc.c, dispnew.c, data.c, coding.c,
2684         charset.c, ccl.c, category.c, casefiddle.c, callproc.c, callint.c,
2685         bytecode.c, abbrev.c, minibuf.c, buffer.c, fileio.c: Use
2686         STRING_BYTES and SET_STRING_BYTES.
2688         * xmenu.c: Don't include puresize.h any more as code that needs it
2689         has moved to keyboard.c.
2690         (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p):
2691         Functions deleted; code moved to parse_menu_item in keyboard.c.
2692         (single_keymap_panes): Large part of code moved to single_menu_item.
2693         (single_menu_item): New function that uses parse_menu_item.
2694         (Qmenu_alias): Variable deleted.
2695         (QCtoggle, QCradio): New variables.
2696         (syms_of_xmenu): Change initializations of variables.
2698         * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap)
2699         (copy-keymap, where_is_internal_1):
2700         Support new format for menu items.
2701         (syms_of_keymap): New symbol `menu-item'.
2703         * keyboard.c: Include puresize.h for CHECK_IMPURE.
2704         (parse_menu_item): New function.
2705         (menu_item_eval_property_1, menu_item_eval_property) New suroutines.
2706         (menu_bar_one_keymap): Moved some code to menu_bar_item.
2707         (menu_bar_item): Rewritten to use parse_menu_item.
2708         (menu_bar_item_1): Function deleted.
2709         (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio):
2710         (Qmenu_alias): New variables.
2711         (syms_of_keyboard): Initialize them, and item_properties.
2713         * insdel.c (replace_range): New arg NOMARKERS.
2715 1998-03-21  Richard Stallman  <rms@psilocin.gnu.org>
2717         * dired.c (Fdirectory_files): In FULL case,
2718         compute number of characters
2720         * insdel.c (insert_from_string_1, replace_range):
2721         Use STRING_MULTIBYTE to determine whether string is multibyte.
2723         * lisp.h: Declarations changed.
2724         (STRING_MULTIBYTE, STRING_BYTES, SET_STRING_BYTES):
2725         New definitions treating negative size_byte as a flag for unibyte.
2727         * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes.
2729         * search.c (Fregexp_quote): Use make_specified_string.
2731         * process.c (read_process_output): Use make_string_from_bytes.
2733         * print.c (PRINTPREPARE): Use make_string_from_bytes.
2735         * fns.c (substring_both, Fsubstring): Use make_specified_string.
2736         (concat): Make string result unibyte or multibyte as appropriate.
2737         
2738         * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes.
2740         * coding.c (code_convert_string): Use make_string_from_bytes.
2742         * cmds.c (internal_self_insert): Use make_string_from_bytes.
2744         * charset.c (Fstring): Use make_string_from_bytes.
2745         (Fcompose_string): Likewise.
2747         * casefiddle.c (casify_object): Use make_specified_string.
2749         * editfns.c (Fchar_to_string): Use make_string_from_bytes.
2750         (Fformat): Use make_specified_string.
2751         (make_buffer_string_both): Use make_uninit_string if buffer is unibyte.
2752         
2753         * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string.
2755         * lread.c (read1): Pass new arg to make_pure_string.
2756         (make_symbol): Likewise.
2757         (init_obarray): Likewise.
2758         (read1): Use make_specified_string.
2760         * alloc.c (make_specified_string): New function.
2761         (make_string_from_bytes): New function.
2762         (compact_strings): Get byte size from size, if size_byte < 0.
2763         (Fmake_string): Use make_uninit_string for single-byte char.
2764         (make_unibyte_string): Mark string as unibyte.
2765         (make_uninit_string): Likewise.
2766         (make_string): Likewise, if size == size in bytes.
2767         (make_pure_string): New arg MULTIBYTE.
2768         (Fpurecopy): Pass new arg.
2770         * lisp.h (STRING_BYTES, SET_STRING_BYTES): New macros.
2772         * All files: Use STRING_BYTES and SET_STRING_BYTES.
2773         
2774         * editfns.c (Ftranspose_regions): Try to handle combining bytes.
2775         * insdel.c (replace_range): New arg NOMARKERS.
2776         
2777 1998-03-20  Richard Stallman  <rms@psilocin.gnu.org>
2779         * cmds.c (internal_self_insert): Pass new arg to replace_range.
2780         
2781         * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1):
2782         (adjust_before_replace, adjust_after_replace, replace_range):
2783         (del_range_2): Call record_delete the new way.
2784         Use make_buffer_string_both to make the string to pass.
2786         * editfns.c (make_buffer_string_both): New function.
2787         (make_buffer_string): Use make_buffer_string_both.
2789         * undo.c (record_delete): Replace LENGTH arg with STRING.
2790         (record_change): Call record_delete the new way.
2791         
2792         * Makefile.in (keymap.o): Depend on puresize.h.
2793         (xmenu.o): Don't depend on puresize.h.
2795 1998-03-20  Inge Frick  <inge@nada.kth.se>
2797         * keyboard.h (item_properties): New variable.
2798         (ITEM_PROPERTY_...): New macros.
2800         * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap,
2801         copy-keymap, where_is_internal_1): Support new format for menu items.
2802         (syms_of_keymap): New symbol `menu-item'.
2803         
2804         * keyboard.c: Include puresize.h for CHECK_IMPURE.
2805         (parse_menu_item): New function.
2806         (menu_item_eval_property_1, menu_item_eval_property) New suroutines.
2807         (menu_bar_one_keymap): Moved some code to menu_bar_item.
2808         (menu_bar_item): Rewritten to use parse_menu_item.
2809         (menu_bar_item_1): Function deleted.
2810         (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio):
2811         (Qmenu_alias): New variables.
2812         (syms_of_keyboard): Initialize them, and item_properties.
2814         * xmenu.c: Don't include puresize.h any more as code that needs it
2815         has moved to keyboard.c.
2816         (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p):
2817         Functions deleted; code moved to parse_menu_item in keyboard.c.
2818         (single_keymap_panes): Large part of code moved to single_menu_item.
2819         (single_menu_item): New function that uses parse_menu_item.
2820         (Qmenu_alias): Variable deleted.
2821         (QCtoggle, QCradio): New variables.
2822         (syms_of_xmenu): Change initializations of variables.
2824 1998-03-20  Richard Stallman  <rms@psilocin.gnu.org>
2826         * window.c (window_display_table): Don't look inside buffer if its nil.
2828         * insdel.c (del_range_2): Use adjust_markers_for_record_delete.
2830 1998-03-19  Kenichi Handa  <handa@etl.go.jp>
2832         * editfns.c (Fgoto_char): If POSITION is a marker pointing a
2833         different buffer, don't rely on the byte position of the marker.
2835 1998-03-19  Richard Stallman  <rms@psilocin.gnu.org>
2837         * editfns.c (Fformat): Handle padding before or after, for %s etc.
2838         Treat 0 like a multibyte char in %c.
2840 1998-03-19  Erik Naggum  <erik@naggum.no>
2842         * filelock.c (get_boot_time): Conditionalize on BOOT_TIME.
2843         (lock_file_1): Add boot-time to lock only if available.
2845 1998-03-19  Kenichi Handa  <handa@etl.go.jp>
2847         * fns.c (Fstring_as_multibyte): Call multibyte_chars_in_text
2848         instead of chars_in_text because we must ignore
2849         enable-multibyte-characters here.
2850         * lread.c (read1): Likewise.
2851         * marker.c (byte_char_debug_check): Likewise.
2853 1998-03-19  Richard Stallman  <rms@psilocin.gnu.org>
2855         * filelock.c (current_lock_owner): If lock file data doesn't include
2856         the uptime, assume the lock is from this system boot.
2858 1998-03-18  Richard Stallman  <rms@psilocin.gnu.org>
2860         * lread.c (read0): Swap args to Fmake_string.
2862 1998-03-17  Richard Stallman  <rms@psilocin.gnu.org>
2864         * callproc.c (syms_of_callproc): Doc fixes.
2866         * insdel.c (adjust_markers_for_delete):
2867         Delete unused local coming_gap_size.
2868         (adjust_markers_for_record_delete): New function.
2869         (insert_1_both, insert_from_string_1, insert_from_buffer_1)
2870         (adjust_after_replace, replace_range):
2871         Use adjust_markers_for_record_delete.
2873         * editfns.c (Fsave_excursion): Doc fix.
2875         * window.c (Frecenter): Operate on window's buffer even
2876         if some other was current.
2878         * filelock.c (get_boot_time): New function.
2879         (lock_file_1): Include boot time in the lock text.
2880         (current_lock_owner): Parse and compare the boot time.
2882 1998-03-16  Erik Naggum  <erik@naggum.no>
2884         * editfns.c (Fformat): Properly print floats.
2886 1998-03-16  Kenichi Handa  <handa@etl.go.jp>
2888         * insdel.c (ADJUST_CHAR_POS): New macro.
2889         (combine_bytes): Use the macro ADJUST_CHAR_POS.
2890         (adjust_after_replace): New arg REPLACE.  If it is zero, give LEN
2891         as the arg LENGTH to offset_intervals.
2892         (del_range_2): Give correct args to count_combining_before and
2893         combine_bytes.  Adjust the gap position after record_delete if
2894         necessary.  Give character position to adjust_overlays_for_delete.
2896         * fileio.c (Finsert_file_contents):
2897         Give adjust_after_replace the new arg REPLACE as 0.
2899         * coding.c (code_convert_region): The 6th arg name is changed to
2900         REPLACE.  Even if there's no need of code conversion, call
2901         adjust_after_replace to handle bytes combining.
2903 1998-03-15  Richard Stallman  <rms@psilocin.gnu.org>
2905         * syntax.h (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
2906         (SYNTAX_FLAGS_COMSTART_SECOND): Likewise.
2907         (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND): Likewise.
2908         (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLE): Likewise.
2910         * syntax.c (Fbackward_prefix_chars): Set point properly while scanning.
2911         (scan_sexps_forward): Make INC_FROM do UPDATE_SYNTAX_TABLE_FORWARD.
2912         Delete the explicit calls to UPDATE_SYNTAX_TABLE_FORWARD.
2913         Also set prev_from_syntax (new local var).  Test that in the loop,
2914         instead of fetching syntax of the previous char.
2916         * editfns.c (Fchar_after, Fchar_before): Properly check arg type
2917         and whether in range, for all cases.
2919 1998-03-14  Richard Stallman  <rms@psilocin.gnu.org>
2921         * process.c (exec_sentinel, read_process_output):
2922         Fstore_match_data => Fset_match_data.
2923         
2924         * xmenu.c (set_frame_menubar): Fstore_match_data => Fset_match_data.
2926         * xdisp.c (message_dolog): Save and restore Vdeactivate_mark.
2927         (prepare_menu_bars): Fstore_match_data => Fset_match_data.
2928         (update_menu_bar): Likewise.
2930 1998-03-13  Richard Stallman  <rms@psilocin.gnu.org>
2932         * search.c (Fset_match_data): Renamed from Fstore_match_data.
2933         (syms_of_search): Corresponding change.
2935         * lisp.h: Fstore_match_data => Fset_match_data.
2937         * window.c (Fwindow_end): New arg UPDATE.
2939         * window.c (Fset_window_configuration): Don't call do_switch_frame
2940         or run Qwindow_configuration_change_hook if frame is dead.
2942         * cmds.c (internal_self_insert): Call Fforward_buffer to advance
2943         over the replacement characters.
2945 1998-03-12  Richard Stallman  <rms@psilocin.gnu.org>
2947         * process.c (Fstart_process): Doc fix.
2949         * s/ptx4.h (SETUP_SLAVE_PTY): New definition.
2951         * buffer.c (init_buffer): Call Fset_buffer_multibyte for *scratch*.
2953 1998-03-11  Richard Stallman  <rms@psilocin.gnu.org>
2955         * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1)
2956         (adjust_after_replace, replace_range):
2957         Account for combining bytes in args to record_insert.
2958         (del_range_2): Make undo records for combining bytes.
2959         Put second call to move_gap_both before setting beg_unchanged.
2961 1998-03-12  Kenichi HANDA  <handa@etl.go.jp>
2963         * coding.c (code_convert_region): Adjusted for the change of
2964         adjust_after_replace.
2966         * fileio.c (Finsert_file_contents): Don't do position adjustments
2967         and handling post-read-conversion here, they are done in
2968         code_convert_region.  Even if a file is read by no-conversion,
2969         call adjust_after_replace to adjust positions.
2971         * insdel.c (adjust_before_replace): Call
2972         adjust_overlays_for_delete.
2973         (adjust_after_replace): Delete args COMBINED_BEFORE_BYTES and
2974         COMBINED_AFTER_BYTES.  This makes the newly generated text
2975         following GPT_ADDR a buffer contents.
2977 1998-03-10  Richard Stallman  <rms@psilocin.gnu.org>
2979         * insdel.c (adjust_markers_for_insert): Don't leave a marker within
2980         the combined_after_bytes.  Use DEC than INC when leaving
2981         a marker before the insertion.
2982         (count_combining_before): Return number of bytes from start
2983         of insertion that will combine.
2984         (insert_1_both): Compensate for change in count_combining_before.
2985         Delete intervals for the combined_after_bytes.
2986         Compensate for that when updating other intervals.
2987         (insert_from_buffer_1, replace_range): Likewise.
2988         (adjust_after_replace): Likewise.
2989         (insert_from_string_1): Likewise.  Also handle intervals
2990         for inserting just part of string.
2992         * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1):
2993         Count all of combined_after_bytes, not just 1, when correcting
2994         nchars, and in related places.
2995         (adjust_after_replace, replace_range): Likewise.
2997 1998-03-09  Gerd Moellmann  <gerd@gnu.org>
2999         * fontset.c (fontset_pattern_regexp): `==' was used instead of `='.
3001 1998-03-09  Richard Stallman  <rms@psilocin.gnu.org>
3003         * insdel.c (combine_bytes): New function.
3004         (insert_1_both, insert_from_string_1, insert_from_buffer_1):
3005         Simplify greatly by using combine_bytes near the end
3006         to handle all aspects of combining except for undo-recording.
3007         This means most of the code deals with the text as if there were
3008         no combining.
3009         (replace_range): Likewise.  Also handle unibyte-multibyte conversion
3010         as in insert_from_string_1.
3011         (del_range_2): Handle combining of character before the deletion
3012         with strays after the deletion.
3013         (adjust_markers_for_delete): Delete debugging code for Z == Z_BYTE.
3014         (adjust_markers_for_insert): Move Z == Z_BYTE debugging code
3015         to before we relocate the marker.
3017 1998-03-09  Richard Stallman  <rms@psilocin.gnu.org>
3019         * lisp.h (struct Lisp_Buffer_Local_Value):
3020         Field car renamed to realvalue.  New fields check_frame,
3021         found_for_buffer, found_for_frame, buffer, frame.
3022         
3023         * data.c (store_symval_forwarding, swap_in_symval_forwarding)
3024         (set_internal, default_value, Fset_default, Fmake_local_variable)
3025         (Fmake_variable_buffer_local, Fkill_local_variable):
3026         Handle new data structure for struct Lisp_Buffer_Local_Value.
3027         (Fmake_variable_frame_local): New function.
3029         * buffer.c (set_buffer_internal_1) 
3030         (swap_out_buffer_local_variables): Handle new data structure
3031         for struct Lisp_Buffer_Local_Value.
3033         * print.c (print): Handle new data structure
3034         for struct Lisp_Buffer_Local_Value.
3036         * alloc.c (gc_sweep, mark_object): Handle new data structure
3037         for struct Lisp_Buffer_Local_Value.
3039 1998-03-08  Richard Stallman  <rms@psilocin.gnu.org>
3041         * insdel.c (adjust_markers_for_insert): New arg COMBINED_BEFORE_BYTES.
3042         Calls changed.
3044         * search.c (simple_search): Don't count a character until it matches!
3045         Call set_search_regs differently in a forward search.
3046         (boyer_moore): Fix up the code that translates the pattern
3047         and loops thru equivalent characters.
3048         
3049 1998-03-07  Richard Stallman  <rms@psilocin.gnu.org>
3051         * insdel.c (adjust_markers_for_insert): New arg COMBINED_AFTER_BYTES.
3052         Calls changed.
3053         (insert_1): Call insert_1_both.
3054         (count_combining_before): New function.
3055         (count_combining_after): New function.
3056         (insert_1_both, insert_from_string_1): Handle bytes that combine
3057         with chars adjacent to the inserted text.
3058         (insert_from_buffer_1, replace_range): Likewise.
3059         (adjust_after_replace):
3060         New args COMBINED_BEFORE_BYTES, COMBINED_AFTER_BYTES.
3062 1998-03-06  Kenichi Handa  <handa@etl.go.jp>
3064         * Makefile.in (alloc.o): Depend on charset.h.
3066         * alloc.c (Fmake_string): Handle the case INIT is a multibyte
3067         character correctly.
3069         * buffer.c (advance_to_char_boundary): Handle the case the code
3070         0240..0377 is not a constituent of a multibyte sequence.
3072         * coding.c (code_convert_region): Fix previous change.  Adjusted
3073         for the change of adjust_after_replace (see insdel.c change above).
3075 1998-03-04  Ken'ichi Handa  <handa@melange.gnu.org>
3077         * coding.c (code_convert_region): Fix previous change.
3079 1998-03-04  Kenichi HANDA  <handa@etl.go.jp>
3081         * buffer.c (Fset_buffer_multibyte): Fix arg for chars_in_text.
3082         Be sure not to have a multibyte sequence striding over the GAP
3084         * charset.c (strwidth): Make it work for invalid bytes sequence.
3085         (Fstring_width): Give byte length of STR to strwidth.
3087         * coding.c (code_convert_region): Handle the case that codes
3088         0240..0377 are generated just after a multibyte character.
3090         * editfns.c (Fformat): Format multibyte characters by "%c"
3091         correctly.  Handle padding for multibyte characters correctly.
3093 1998-03-03  Richard Stallman  <rms@psilocin.gnu.org>
3095         * puresize.h (BASE_PURESIZE): Increased.
3097 1998-03-03  Kenichi Handa  <handa@etl.go.jp>
3099         * Makefile.in (dired.o): Depend on charset.h and coding.h.
3101         * callproc.c (Vdefault_file_name_coding_system): Extern it.
3102         (Fcall_process): Use ENCODE_FILE.
3104         * coding.h (ENCODE_FILE): Moved from fileio.c.  Use
3105         default-file-name-coding-system if file-name-coding-system is nil.
3106         (DECODE_FILE): New macro.
3108         * dired.c: Include charset.h and coding.h.
3109         (ENCODE_FILE): This macro is moved to coding.h.
3110         (Vdefault_file_name_coding_system): Extern it.
3111         (Fdirectory_files): Use DECODE_FILE.
3112         (file_name_completion): Likewise.
3114         * editfns.c (Fformat): Fix previous change.
3116         * fileio.c (ENCODE_FILE): This macro is moved to coding.h.
3117         (Vdefault_file_name_coding_system): New variable.
3118         (syms_of_fileio): Defsubr it.
3119         (Ffile_symlink_p): Use DECODE_FILE.
3120         (Ffile_name_directory): Use size_byte member of XSTRING (filename).
3121         (Ffile_name_as_directory): Likewise.
3122         (Fdirectory_file_name): Likewise.
3123         (Fsubstitute_in_file_name): Likewise.
3124         (expand_and_dir_to_file): Likewise.
3125         (Fdo_auto_save): Likewise.
3126         (Fread_file_name): Likewise.
3128         * insdel.c (insert_1_both): If enable-multibyte-characters is nil,
3129         insert each byte as one character.
3131         * process.c (Vdefault_file_name_coding_system): Extern it.
3132         (create_process): Use ENCODE_FILE.
3134 1998-03-02  Kenichi Handa  <handa@etl.go.jp>
3136         * callproc.c (Fcall_process): Calculate CARRYOVER correctly.
3138         * charset.h (NONASCII_INSERT_OFFSET): New macro.
3139         (VALID_MULTIBYTE_CHAR_P): New macro.
3141         * charset.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
3142         moved to charset.h.
3143         (unibyte_char_to_multibyte): Always return a valid character.
3144         (Funibyte_char_to_multibyte): New function.
3145         (syms_of_charset): Defsubr it.  Doc-string of
3146         nonascii-insert-offset is modified.
3148         * coding.h: Typo in comment fixed.
3150         * cmds.c (internal_self_insert): Avoid checking
3151         enable-multibyte-characters twice.
3153         * editfns.c (string1): Cast ARGS to `char **' to avoid
3154         compiler warning.
3156         * fileio.c (Ffile_name_nondirectory): Use size_byte member of
3157         XSTRING (filename).
3159         * fns.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
3160         moved to charset.h.
3161         (concat): Use unibyte_char_to_multibyte.
3163         * insdel.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
3164         moved to charset.h.
3165         (copy_text): Don't convert codes in the range 0200..0237 to
3166         multibyte characters.  For codes in the range 0240..0377, use
3167         unibyte_char_to_multibyte.
3168         (count_size_as_multibyte): Likewise.
3169         (adjust_before_replace): Comment fixed.
3171         * xdisp.c (try_window_id): Use DEC_BOTH unconditionally.
3172         (display_text_line): Likewise.
3174 1998-03-02  Richard Stallman  <rms@psilocin.gnu.org>
3176         * lisp.h (Vnonascii_translate_table, Qcharset): New variable decls.
3177         (Fstring_make_multibyte, Fstring_make_unibyte): New function decl.
3178         (Fstring_as_multibyte, Fstring_as_unibyte): New function decl.
3179         (list2, list3, list4, list5): New function decl.
3180         (Fwrite_region): Add an argument.
3181         (compare_window_configurations): New function decl.
3182         
3183         * keyboard.c: Include syntax.h.
3184         (interrupt_signal): Save and restore gl_state
3185         around an immediate quit, in case debugger returns.
3187         * Makefile.in (keyboard.o): Depend on syntax.h.
3189         * syntax.h (UPDATE_SYNTAX_TABLE):
3190         Do nothing unless parse_sexp_lookup_properties.
3191         (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
3192         (SYNTAX_TABLE_BYTE_TO_CHAR): If parse_sexp_lookup_properties is 0,
3193         return 0 right away.
3194         (SETUP_SYNTAX_TABLE): Add if (1) ... else.
3196 1998-03-01  Richard Stallman  <rms@psilocin.gnu.org>
3198         * fileio.c (auto_save_1): Pass new arg to Fwrite_region.
3199         (Fwrite_region): New arg CONFIRM.  If non-nil, confirm overwriting.
3201         * callproc.c (Fcall_process_region): Pass new arg to Fwrite_region.
3203 1998-03-01  Ilya Zakharevich  <ilya@math.ohio-state.edu>
3204         
3205         * syntax.c (update_syntax_table): Properly update `position'
3206         field of used intervals.
3208         * interval.c (update_interval): Properly update `position'
3209         field of used intervals.
3211 1998-02-28  Richard Stallman  <rms@psilocin.gnu.org>
3213         * fns.c (internal_equal): compare_window_configurations takes new arg.
3215         * window.c (compare_window_configurations): New arg ignore_positions.
3216         (Fcompare_window_configurations): New function.
3217         (syms_of_window): defsubr it.
3219         * keyboard.c (Fthis_command_keys_vector): New function.
3220         (Fread_key_sequence_vector): New function.
3221         (syms_of_keyboard): defsubr them.
3222         (Fthis_single_command_keys): Always return a vector.
3224 1998-02-27  Richard Stallman  <rms@psilocin.gnu.org>
3226         * xterm.c (XTframe_up_to_date): Check that mouse_face_mouse_frame
3227         is non-null before calling note_mouse_highlight.
3228         (x_destroy_window): If f equals mouse_face_mouse_frame,
3229         clear that, and clear mouse_face_deferred_gc too.
3231         * xdisp.c (syms_of_xdisp): Doc fix.
3233         * data.c (store_symval_forwarding) <Lisp_Misc_Buffer_Objfwd>:
3234         If buffer_local_types has -1, this variable is read-only.
3236         * buffer.c (syms_of_buffer): enable-multibyte-characters is read-only.
3238         * data.c (Fset_default) <BUFFER_OBJFWDP>:
3239         Unconditionally set the slot in buffer_defaults.
3241         * buffer.c (reset_buffer): Initialize enable_multibyte_characters.
3243         * buffer.c (init_buffer_once): Force enable-multibyte-characters
3244         to be local in every buffer whether it is set or not.
3246         * fns.c (mapcar1): Handle bool-vectors.
3247         (Fmapconcat, Fmapcar): Doc fixes.
3248         (Flength): For char-table, length is based on max valid char code.
3250         * syssignal.h: Delete #endif left over from previous change.
3252 1998-02-27  Andreas Schwab  <schwab@gnu.org>
3254         * indent.c (compute_motion): If we just moved over a continuation
3255         return contin_hpos as prevhpos.
3257 1998-02-27  Karl Heuer  <kwzh@gnu.org>
3259         * insdel.c (del_range_2): Reorder args.  All callers changed.
3261 1998-02-25  Karl Heuer  <kwzh@gnu.org>
3263         * insdel.c (del_range_both): Reorder args.  All callers changed.
3265 1998-02-24  Kenichi Handa  <handa@etl.go.jp>
3267         * xdisp.c (message_dolog): Give correct args to
3268         message_log_check_duplicate and del_range_both.
3270         * search.c (scan_newline): Delete duplicated code.
3272 1998-02-21  Richard Stallman  <rms@gnu.org>
3274         * cmds.c (Fdelete_backward_char): Count both bytes and chars.
3276 1998-02-21  Ilya Zakharevich  <ilya@math.ohio-state.edu>
3278         * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Fix condition.
3279         (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise.
3280         (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix bounds.
3281         * syntax.c (update_syntax_table): Fix calculations using offset.
3282         (skip_chars): Fix loop termination condition.
3283         * textprop.c (interval_of): Handle Qt.
3285 1998-02-20  Andreas Schwab  <schwab@gnu.org>
3287         * s/gnu-linux.h (LINUX_MAP_SHARED_DOES_WORK): Define for kernel
3288         version after 2.0.
3289         (UNEXEC_USE_MAP_PRIVATE): Don't define if
3290         LINUX_MAP_SHARED_DOES_WORK.
3292         * syssignal.h (sigmask) [POSIX_SIGNALS]: Always define our own
3293         version that returns a sigset_t.
3294         (sigpause) [POSIX_SIGNALS]: Unconditionally define in terms of
3295         sigsuspend.  Don't redefine SIGEMPTYMASK.
3296         (sys_sigpause): Don't declare.
3297         (temp_mask): Don't declare.
3298         * sysdep.c (sys_sigpause): Removed.
3299         (new_action, old_action): Move as local variables into sys_signal.
3300         (old_mask, temp_mask): Removed.
3302 1998-02-20  Kenichi Handa  <handa@etl.go.jp>
3304         * editfns.c (Fmessage): Check byte size (instead of char size) of
3305         VAL against MESSAGE_LENGTH.
3307         * fileio.c (Fwrite_region): When writing a string, give byte size
3308         to a_write.
3309         (a_write): Handle annotations correctly when writing a string.
3311         * ccl.c (Fccl_execute_on_string): Put \n\ at end-of-line of
3312         doc-string.
3314 1998-02-19  Kenichi Handa  <handa@etl.go.jp>
3316         * buffer.c (advance_to_char_boundary): Make the behaviour
3317         consistent with INC_POS.
3319         * ccl.c (Fccl_execute_on_string): Add new arg UNIBYTE-P.
3321         * charset.h (INC_POS): Use macro BASE_LEADING_CODE_P.
3322         (DEC_POS): Make the behaviour consistent with INC_POS.
3323         (BUF_INC_POS, BUF_DEC_POS): Likewise.
3325         * charset.c (invalid_character): New function.
3326         (chars_in_text): Make the behaviour consistent with INC_POS.
3327         (multibyte_chars_in_text): Likewise.
3328         (str_cmpchar_id): Likewise.
3329         (non_ascii_char_to_string): Call invalid_character.
3330         (Fchar_direction): Likewise.
3332         * coding.c (decode_coding_iso2022): Update coding->fake_multibyte.
3333         (ENCODE_SINGLE_SHIFT_2, ENCODE_SINGLE_SHIFT_3,
3334         encode_coding_iso2022, decode_coding_sjis_big5,
3335         encode_coding_sjis_big5, decode_eol, encode_eol, decode_coding,
3336         encode_coding): Likewise.
3337         (shrink_decoding_region, shrink_encoding_region): Do not skip
3338         non-ASCII code in any cases.  Bug fix for getting starting address
3339         from BEG.
3340         (code_convert_region): Sync character positions correctly by
3341         paying attention to coding->fake_multibyte.
3342         (code_convert_string): Set number of character and bytes just
3343         processed in members of CODING.
3344         (code_convert_string): Adjusted for the change of
3345         code_convert_region.
3346         (code_convert_region1): Likewise.
3348         * coding.h (struct coding_system): New member fake_multibyte.
3350         * fileio.c (Finsert_file_contents): Read a file contents into the
3351         correct buffer (byte) position.  Adjusted for the change of
3352         code_convert_region.
3354         * fns.c (Fset_char_table_default): For an invalid character, call
3355         invalid_character.
3357         * indent.c (MULTIBYTE_BYTES_WIDTH): New macro.
3358         (current_column_1): Don't follow a display table for a heading
3359         byte of a multibyte character.  Use the macro
3360         MULTIBYTE_BYTES_WIDTH.
3361         (Fmove_to_column): Likewise.
3362         (compute_motion): Likewise.  Handling of wide-column character
3363         fixed.
3365         * insdel.c (adjust_before_replace): Comment added.
3366         (adjust_after_replace): Comment added.  Give correct args to
3367         adjust_point.  Don't call signal_after_change here.
3369         * intervals.c (temp_set_point_both): Declare arg BYTEPOS as int.
3370         (set_point_both): Likewise.
3372         * search.c (search_buffer): Update POS_BYTE for regexp search.
3374         * xdisp.c (display_text_line): Handling of a wide-column character
3375         fixed.  Make the behaviour consistent with INC_POS.
3377 1998-02-18  Richard Stallman  <rms@gnu.org>
3379         * editfns.c (Fchar_before): Check POS in valid range
3380         before calling CHAR_TO_BYTE.
3382         * search.c (search_command): Check LIM in valid range
3383         before calling CHAR_TO_BYTE.
3385 1998-02-15  Richard Stallman  <rms@psilocin.gnu.org>
3387         * minibuf.c (read_minibuf): Do use DEFALT in place of empty input
3388         when when expflag is nonzero.
3389         (Fread_no_blanks_input): Arg INIT renamed to INITIAL.
3391 1998-02-14  Richard Stallman  <rms@psilocin.gnu.org>
3393         * fileio.c (Fread_file_name): Alter the history
3394         to contain just the actual file name, and not any
3395         other preinserted text that is not really used.
3397         * search.c (simple_search): Call set_search_regs.
3398         (boyer_moore): New arg CHARSET_BASE says which chars
3399         to use the translate tables for.
3400         (search_buffer): Properly test which chars participate in translation.
3401         
3402 1998-02-12  Gerd Moellmann  <gerd@gnu.org>
3404         * intervals.c (split_interval_right): Make sure to call
3405         balance_possible_root_interval in case an interval doesn't have a
3406         right child, because otherwise the interval tree might degenerate
3407         into a list.
3408         (split_interval_left): Ditto if an interval hasn't a left child.
3410 1998-02-12  Richard Stallman  <rms@psilocin.gnu.org>
3412         * search.c (TRANSLATE): New arg OUT.  Handle non-integer in TRT.
3413         All calls changed.
3415         * editfns.c (Fsubst_char_in_region): Don't increment pos twice.
3417         * charset.h (INC_BOTH, DEC_BOTH): In unibyte mode,
3418         simply increment bytepos.
3420         * syntax.c (skip_chars): Use INC_POS instead of INC_BOTH.
3421         (Fforward_comment): Always use both FROM and FROM_BYTE to set point.
3422         Use dec_bytepos not DEC_POS.
3423         (scan_lists): Handle unibyte buffers when decrementing temp_pos.
3424         (INC_FROM): Use INC_BOTH.
3425         (inc_bytepos, dec_bytepos): In unibyte mode, just increment bytepos.
3427         * xdisp.c (display_text_line): Use INC_BOTH for unibyte buffers too.
3429 1998-02-10  Richard Stallman  <rms@psilocin.gnu.org>
3431         * keymap.c (describe_map_tree): Add the maps we have already
3432         handled into SUB_SHADOWS.
3434 1998-02-06  Kenichi Handa  <handa@melange.gnu.org>
3436         * fns.c (Fstring_bytes): Declare arg STRING as Lisp_Object.
3438         * editfns.c (Fposition_bytes): Declare arg POSITION as
3439         Lisp_Object.  Allow marker as arg POSITION.  Use XINT for type
3440         consistency.
3442 1998-02-09  Andreas Schwab  <schwab@gnu.org>
3444         * indent.c (compute_motion): If right margin is reached and we are
3445         truncating don't clobber PREV_HPOS if we are already past TO.
3447 1998-02-09  Richard Stallman  <rms@psilocin.gnu.org>
3449         * fns.c (concat): Use Vnonascii_translate_table.
3451         * charset.c (Vnonascii_translate_table): New variable.
3452         (unibyte_char_to_multibyte): Use Vnonascii_translate_table.
3453         (syms_of_charset): Defvar it.
3455         * insdel.c (copy_text, count_size_as_multibyte):
3456         Use Vnonascii_translate_table.
3458 1998-02-08  Richard Stallman  <rms@psilocin.gnu.org>
3460         * print.c (printchar): When outputting to echo area,
3461         update message_enable_multibyte, and convert previous text
3462         from unibyte to multibyte if necessary.
3464         * search.c (search_command): Fix call to search_buffer.
3466 1998-02-07  Richard Stallman  <rms@psilocin.gnu.org>
3468         * dired.c (Fdirectory_files): Call compile_pattern the new way.
3470         * search.c (boyer_moore, simple_search): New subroutines.
3471         (search_buffer): For non-regexp, use one of those subroutines.
3472         Args TRT and INVERSE_TRT are now Lisp_Object.  Callers changed.
3473         (compile_pattern_1): Arg TRANSLATE is now Lisp_Object.  Calls changed.
3474         (compile_pattern): Arg TRANSLATE is now Lisp_Object.  Calls changed.
3476         * config.in (RE_TRANSLATE_TYPE): Define as Lisp_Object.
3477         (RE_TRANSLATE): Use Faref to examine translate table.
3479 1998-02-06  Richard Stallman  <rms@psilocin.gnu.org>
3481         * marker.c (byte_char_debug_check): New function.
3482         (CONSIDER, both definitions): Call it.
3483         (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
3484         (byte_debug_flag): New variable.
3485         (syms_of_marker): Set up Lisp variable.
3487         * buffer.c (advance_to_char_boundary): New function.
3488         (Fset_buffer_multibyte): Advance all byte-positions to char boundaries.
3489         Clear undo list.
3490         
3491         * fontset.h (GENERIC_FONT_PTR): Commented-out definition deleted.
3493 1998-02-06  Kenichi Handa  <handa@etl.go.jp>
3495         * window.h: Change argument number of Fdisplay_buffer to 3.
3497 1998-02-06  Richard Stallman  <rms@psilocin.gnu.org>
3499         * buffer.c (Fpop_to_buffer): Pass new arg to Fdisplay_buffer.
3501         * window.c (Fdisplay_buffer): New arg FRAME.
3502         (temp_output_buffer_show): Pass new arg to Fdisplay_buffer.
3503         (Fother_window_for_scrolling): Likewise.
3505         * editfns.c (Fposition_bytes): New function.
3506         (syms_of_editfns): defsubr it.
3508         * fns.c (Fstring_bytes): New function. 
3509         (syms_of_fns): defsubr it.
3511 1998-02-05  Richard Stallman  <rms@psilocin.gnu.org>
3513         * minibuf.c (read_minibuf): If input is empty, return empty string.
3514         (Fread_string): Return DEFAULT_VALUE here, if input is empty.
3515         (Fcompleting_read): Likewise.
3517 1998-02-04  Richard Stallman  <rms@psilocin.gnu.org>
3519         * keymap.c (Fdescribe_bindings_internal):
3520         Renamed from Fdescribe_bindings.  New arg NOMENU.
3521         (syms_of_keymap): Corresponding changes.
3522         (describe_buffer_bindings): Get NOMENU out of the arg list.
3523         Pass it along to describe_map_tree.
3524         Improve text of `alternate_heading'.
3526         * alloc.c (list2, list3, list4, list5): New functions.
3528 1998-02-04  Kenichi Handa  <handa@etl.go.jp>
3530         * charset.c (Fiso_charset): Doc-string modified.
3532         * editfns.c (Fsubst_char_in_region): Handle character-base
3533         position and byte-base position correctly.
3534         (Fstring_to_char): Give byte size to STRING_CHAR.
3536         * insdel.c (copy_text): When copying from multibyte to unibyte, do
3537         not alter ASCII characters.
3539 1998-02-03  Richard Stallman  <rms@psilocin.gnu.org>
3541         * editfns.c (Fformat): If MULTIBYTE is changed to 1
3542         after we start computing TOTAL, jump back to `retry' (a new label).
3544 1998-02-01  Richard Stallman  <rms@sucrose.gnu.org>
3546         * lread.c (read1): Handle infinities, NaN and -0.0 specially.
3547         (isfloat_string): Accept e+INF and e+NAN as exponents.
3549         * print.c (float_to_string): Handle infinities and NaN specially.
3551         * fns.c (concat): Handle bool-vectors correctly.
3553         * fns.c (concat): If making a string, a nonempty bool-vector is error.
3555 1998-01-30  Richard Stallman  <rms@psilocin.gnu.org>
3557         * data.c (Faref, Faset): Allow indexing a char-table
3558         directly by numbers up to CHAR_TABLE_ORDINARY_SLOTS.
3560         * fns.c (Fset_char_table_range, Fchar_table_range):
3561         Allow a charset name symbol to designate a range.
3563         * callproc.c (Fcall_process): Allow creating a new buffer
3564         for the output.
3566 1998-01-30  Kenichi Handa  Kenichi Handa  <handa@etl.go.jp>
3568         * coding.c (ENCODE_ISO_CHARACTER): Pay attention to
3569         CODING_FLAG_ISO_USE_ROMAN and CODING_FLAG_ISO_USE_OLDJIS.
3570         (code_convert_region1): New function.
3571         (Fdecode_coding_region): Call code_convert_region1.
3572         (Fencode_coding_region): Likewise.
3573         (code_convert_string1): New function.
3574         (Fdecode_coding_string): Call code_convert_string1.
3575         (Fencode_coding_string): Likewise.
3577         * doc.c (Fsubstitute_command_keys): Declare length_byte out of
3578         internal block.
3580         * editfns.c (CONVERTED_BYTE_SIZE): Fix the logic.
3581         (Fformat): Update the variable MULTIBYTE according to the result
3582         of Fprin1_to_string.  Free BUF after making Lisp string from it.
3584 1998-01-28  Richard Stallman  <rms@psilocin.gnu.org>
3586         * search.c (search_buffer): New args pos_byte and lim_byte.
3587         (search_command): Pass new args.
3589 1998-01-28  Kenichi Handa  <handa@etl.go.jp>
3591         * coding.c (DECODE_SJIS_BIG5_CHARACTER): Don't have to increase
3592         coding->produced_char here.
3593         (code_convert_region): Initialize LEN_BYTE correctly.
3595         * search.c (fast_string_match): Give re_search byte size of
3596         STRING.
3597         (trivial_regexp_p): Initialize LEN to byte size of REGEXP.
3598         (search_buffer): Give re_search_2 STARTPOS, RANGE and STOP by
3599         counting them by bytes.
3601         * data.c (syms_of_data): Register multibyte-string-p as a Lisp
3602         function.
3604 1998-01-28  Richard Stallman  <rms@psilocin.gnu.org>
3606         * category.c (Fmodify_category_entry): Doc fix.
3607         (Fdescribe_categories): Renamed from Fdescribe_category.
3608         (syms_of_category): Corresponding changes.
3609         (Fcategory_set_mnemonics): Doc fix.
3610         (Fchar_category_set): Doc fix.
3611         (Fmake_category_set): Doc fix.
3613 1998-01-26  Richard Stallman  <rms@psilocin.gnu.org>
3615         * xdisp.c (message_dolog): Cast M to unsigned char * to access bytes.
3617         * keyboard.c (command_loop_1): Run post-command-hook before,
3618         not after, clearing this-command-keys and updating last-command.
3620         * fns.c (string_make_multibyte): In all-ASCII case, return orig STRING.
3622         * fns.c (Fstring_as_unibyte): New function.
3623         (Fstring_as_multibyte): New function.
3624         (syms_of_fns): defsubr them.
3626 1998-01-25  Richard Stallman  <rms@psilocin.gnu.org>
3628         * window.c (compare_window_configurations): New function.
3630         * fns.c (internal_equal): Use compare_window_configurations.
3632         * fileio.c (file_name_as_directory): For an empty name, return "/".
3634 1998-01-24  Richard Stallman  <rms@psilocin.gnu.org>
3636         * callproc.c (Fcall_process): Test only args past args[4]
3637         for multibyteness.
3639 1998-01-23  Ken'ichi Handa  <handa@melange.gnu.org>
3641         * charset.h: Delete garbage line "int use_dialog_box".
3643 1998-01-23  Richard Stallman  <rms@psilocin.gnu.org>
3645         * lread.c (Funintern): Clear the symbol's obarray field.
3647 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
3649         * s/sol2-5.h (SYSTEM_MALLOC): Defined.
3651 1998-01-21  Ken'ichi Handa  <handa@melange.gnu.org>
3653         * fileio.c (Finsert_file_contents): Fix previous change.
3655 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
3657         * syntax.c (back_comment): Move the find_defun_start call
3658         out of the scan_sexps_forward call.
3659         No need to call find_defun_start
3660         if we found the defun start in the initial scan.
3662 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
3664         * callproc.c (Fcall_process): Use raw-text instead of emacs-mule
3665         when enable-multibyte-characters is nil.  Adjusted for the change
3666         of encode_coding and decode_coding.
3668         * ccl.h: Definition of macros CCL_STAT_XXX are moved from ccl.c to
3669         here.
3671         * charset.c (min_composite_char): New variable.
3672         (syms_of_charset): Declare a Lisp variable min-composite-char.
3674         * charset.h (BCOPY_SHORT): New macro.
3676         * coding.h (CODING_FINISH_XXX): New macros.
3677         (CODING_MODE_XXX): New macros.
3678         (struct coding_system): New member mode, category_idx,
3679         heading_ascii.  Deleted members last_block, direction, selective,
3680         carryover, carryover_size.
3681         (CODING_MAY_REQUIRE_DECODING): New macro.
3682         (CODING_CATEGORY_MASK_ISO_7BIT, CODING_CATEGORY_MASK_ISO_8BIT,
3683         CODING_CATEGORY_MASK_ISO_SHIFT, CODING_CATEGORY_MASK_ISO): New
3684         macros.
3685         (Qraw_text): Extern it.
3687         * coding.c (DECODE_CHARACTER_ASCII): Update coding->produced_char;
3688         (DECODE_CHARACTER_DIMENSION1): Likewise.
3689         (Qraw_text, Qcoding_category): New variables.
3690         (syms_of_coding): Intern and staticpro them.
3691         (coding_system_table): New variable.
3692         (CHARSET_OK, SHIFT_OUT_OK): New macros.
3693         (detect_coding_iso2022): Detection algorithm improved.
3694         (decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
3695         return value changed.  Update members produced, produced_char,
3696         consumed, consumed_char of the struct *coding.  Pay attention to
3697         CODING_MODE_INHIBIT_INCONSISTENT_EOL.
3698         (encode_coding_iso2022): Likewise.
3699         (decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
3700         (decode_eol, encode_eol): Likewise.
3701         (ENCODE_ISO_CHARACTER): Update coding->consumed_char.
3702         (DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
3703         (ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
3704         (detect_coding_mask): New args PRIORITIES and SKIP.
3705         (detect_coding): Adjusted for the change of detect_coding_mask.
3706         Update coding->heading_ascii.
3707         (detect_eol_type): New arg SKIP.
3708         (detect_eol): Adjusted for the change of detect_eol_type.
3709         (ccl_codign_driver): New function.
3710         (decode_coding): Arg CONSUMED deleted, and the meaning of return
3711         value changed.  Update members produced, produced_char, consumed,
3712         consumed_char of the struct *coding.
3713         (encode_coding): Likewise.
3714         (shrink_decoding_region, shrink_encoding_region): New function.
3715         (code_convert_region, code_convert_string): Completely rewritten.
3716         (detect_coding_system): New arg HIGHEST.
3717         (Fdetect_coding_region): New arg HIGHEST.
3718         (Fdetect_coding_string): New function.
3719         (Fdecode_coding_region, Fencode_coding_region): Adjusted for the
3720         change of code_convert_region.
3721         (Fdecode_coding_string, Fencode_coding_string): Adjusted for the
3722         change of code_convert_string.
3723         (Fupdate_iso_coding_systems): New function.
3724         (init_coding_once): Initialize coding_system_table.
3725         
3726         * data.c (Faset): Allow setting a multibyte character in a
3727         multibyte string as far as it doesn't change the size_byte of the
3728         string.
3730         * fileio.c (Finsert_file_contents): Adjusted for the change of
3731         struct coding_system and function decode_coding.  For normail file
3732         reading, use code_convert_region.
3733         (Fwrite_region): Adjusted for the change of struct coding_system.
3734         (e_write): Adjusted for the change of encode_coding.
3736         * fns.c (mapcar1): Keep `i' in `i_before' before `i' is
3737         incremented by FETCH_STRING_CHAR_ADVANCE.
3739         * insdel.c (adjust_before_replace, adjust_after_replace): New
3740         functions.
3742         * lisp.h (detect_coding_system): Extern it.
3744         * process.c (Fstart_process): Use raw-text instead of emacs-mule
3745         if enable-multibyte-characters is nil.  Initialize members
3746         decoding_carryover and encoding_carryover of PROC.
3747         (create_process): Adjusted for the change of encode_coding.
3748         (Fopen_network_stream): Initialize members decoding_carryover and
3749         encoding_carryover of PROC.
3750         (read_process_output): Adjusted for the change of decode_coding.
3751         (send_process): Adjusted for the change of encode_coding.
3753         * process.h (struct Lisp_Process): New members decoding_carryover
3754         and encoding_carryover.
3756         * term.c (encode_terminal_code): Adjusted for the change of
3757         encode_coding.
3758         (write_glyphs): Likewise.  Adjusted for the change of struct
3759         coding_system.
3760         (insert_glyphs): Likewise.
3762         * xselect.c (selection_data_to_lisp_data): Adjusted for the change
3763         of decode_coding.
3764         (lisp_data_to_selection_data): Adjusted for the change of
3765         encode_coding.
3766         (syms_of_xselect): Initialize clipboard-coding-system to
3767         compound-text.
3769 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
3771         * fileio.c (Finsert_file_contents): Even if
3772         enable-multibyte-characters is nil, we must check `coding:' tag
3773         and `file-coding-system-alist' to handle eol-conversion.
3775         * coding.c (Vselect_safe_coding_system_function): New variable.
3776         (coding_category_table): This variable deleted.
3777         (Vcoding_category_table): New variable.
3778         (coding_category_name): Add "coding-category-iso-7-tight".
3779         (detect_coding_iso2022): Check the mask
3780         CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Check a new coding
3781         category coding-category-iso-7-tight.
3782         (DECODE_DESIGNATION): Decode only such designations that CODING
3783         can handle.
3784         (check_composing_code): New function.
3785         (decode_coding_iso2022): Decode only such characters that CODING
3786         can handle.
3787         (encode_coding_iso2022): Before and after encoding composite
3788         characters, reset designation and invocation status.
3789         (detect_coding_sjis): Delete unnecessary check.
3790         (detect_coding_big5): Likewise.
3791         (encode_designation_at_bol): Check the validity of requested
3792         designation register.
3793         (setup_coding_system): Set requested designation registers for
3794         non-supported charsets to
3795         CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION.  Set mask
3796         CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Code tuned for
3797         no-conversion and undecided.
3798         (detect_coding): Adjusted for the new variable
3799         Vcoding_category_table.
3800         (syms_of_coding): Initialize Vcoding_category_table and staticpro
3801         it.  Register select-safe-coding-system as a Lisp variable.
3803         * coding.h (CODING_FLAG_ISO_DESIGNATION): New macro.
3804         (struct iso2022_spec): New member.
3805         last_invalid_designation_register.
3806         (struct coding_system): New member inhibit_inconsistent_eol_type.
3807         (CODING_CATEGORY_IDX_ISO_7_TIGHT,
3808         CODING_CATEGORY_MASK_ISO_7_TIGHT): New macros.
3809         (CODING_CATEGORY_MASK_ANY): Include
3810         CODING_CATEGORY_MASK_ISO_7_TIGHT.
3811         (coding_category_table, coding_category_name): Extern deleted.
3812         (Vselect_safe_coding_system_function): Extern it.
3813         
3814         * charset.h (MAX_CHAR_COMPOSITION): New macro.
3815         (CHAR_CHARSET): Check more strictly.
3816         (CODING_FLAG_ISO_DESIGNATION): New macro.
3818 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
3820         * ccl.h: (struct ccl_program): New member private_state.
3822         * ccl.c (Vccl_translation_table_vector, Qccl_program,
3823         Qccl_translation_table, Qccl_translation_table_id): New variables.
3824         append new symbols.  Qccl_translation_table and
3825         Qccl_translation_table_id.
3826         (CCL_Call): Fix the comment.
3827         (CCL_ReadMultibyteCharacter, CCL_WriteMultibyteCharacter,
3828         CCL_UnifyCharacter, CCL_UnifyCharacterConstTbl,
3829         CCL_IterateMultipleMap, CCL_TranslateMultipleMap): New macros for
3830         CCL Commands.
3831         (EXCMD): New macro.
3832         (ccl_driver): New case lable `CCL_Extention'.
3833         (setup_ccl_program): Initialize the member `private_state' of CCL.
3834         (Fregister_ccl_program): Delete unused variable IDX.
3835         (Fregister_ccl_translation_table): New function.
3836         (syms_of_ccl): Intern and staticpro Qccl_program,
3837         Qccl_translation_table, and Qccl_translation_table_id.  Declare
3838         `ccl-translation-table-vector' as a Lisp variable.  Declare
3839         register-ccl-translation-table as a Lisp function.
3841         * charset.h (Vcharacter_unification_table_vector): Extern it.
3842         (UNIFICATION_ID_TABLE): New macro.
3844         * charset.c (Vcharacter_unification_table_vector): New variable.
3845         (syms_of_charset): Declare it as a Lisp symbol.
3846         (unify_char): Delete unnecessary codes.
3848 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
3850         * indent.c (current_column_1):
3851         Eliminate argument POS; use PT and PT_BYTE.
3852         When doing FETCH_BYTE, use scan_byte.
3853         (current_column): Check whether buffer really has multibyte chars,
3854         not whether they are enabled.
3856         * editfns.c (Fsave_current_buffer): Use set_buffer_if_live.
3858         * bytecode.c (Fbyte_code) <Bsave_current_buffer_1>:
3859         Use set_buffer_if_live.
3861         * buffer.c (set_buffer_if_live): New function.
3863 1998-01-20  Richard Stallman  <rms@psilocin.gnu.org>
3865         * charset.c (nonascii_insert_offset): Variable moved from cmds.c.
3866         (syms_of_charset): Initialize variable.
3868         * cmds.c (internal_self_insert, Fself_insert_command): 
3869         Use unibyte_char_to_multibyte.
3870         (nonascii_insert_offset): Variable moved to charset.c.
3871         (syms_of_cmds): Don't initialize nonascii_insert_offset.
3873         * fileio.c (Fsubstitute_in_file_name): Use unibyte_char_to_multibyte.
3874         
3875         * keyboard.c (command_loop_1): Use unibyte_char_to_multibyte.
3877         * xdisp.c (message_dolog): Use unibyte_char_to_multibyte.
3878         Pass different args to scan_newline.
3879         Properly compare oldpoint with Z.
3880         
3881         * syntax.c (skip_chars): Use unibyte_char_to_multibyte,
3883         * fns.c (concat): Use unibyte_char_to_multibyte.
3885         * charset.c (unibyte_char_to_multibyte): New function.
3886         (DEFAULT_NONASCII_INSERT_OFFSET): New macro definition.
3888         * lread.c (unreadchar): For unreading an ASCII char
3889         thru a buffer or marker, really decrement point or the marker position.
3891         * xdisp.c (display_menu_bar): Don't set maxendcol too large.
3893         * editfns.c (Fchar_equal): Fix case-conversion code.
3895 1998-01-19  Richard Stallman  <rms@psilocin.gnu.org>
3897         * window.h (WINDOW_RIGHT_MARGIN): Deduct width of vertical line
3898         if frame has no scroll bars.
3900         * fns.c (concat): Fix lossage in installing previous patch.
3902         * window.c (window_scroll): Set opoint_byte properly.
3904 1998-01-16  Richard Stallman  <rms@sucrose.gnu.org>
3906         * intervals.c (set_intervals_multibyte): New function.
3907         (set_intervals_multibyte_1): New function.
3909         * marker.c (clear_charpos_cache): New function.
3911 1998-01-16  Richard Stallman  <rms@gnu.org>
3913         * buffer.c (Fset_buffer_multibyte): New function.
3914         (syms_of_buffer): defsubr it.
3916         * syntax.c (skip_chars): Fix test for end of string, looking for `-'.
3917         (back_comment): Don't allow quoting a comment-end.
3918         (scan_lists): Likewise.
3920         * .gdbinit: Make GDB not handle SIGINT.
3922         * search.c (compile_pattern_1): If representation of STRING
3923         does not fit MULTIBYTE, convert its contents.
3924         (fast_c_string_match_ignore_case): Pass 0 to compile_pattern
3925         as MULTIBYTE.
3926         (search_buffer): If representation of STRING
3927         does not fit MULTIBYTE, convert its contents.
3929         * print.c (print) <Lisp_String>: When multibyte is enabled, print
3930         single-byte non-ASCII chars using octal escapes.
3932         * lread.c (read1): Escape codes can force multibyte or single-byte.
3933         Otherwise buffer_defaults->enable_multibyte_characters decides.
3934         Only set force_singlebyte when a \-sequence is in the relevant range.
3935         (read_escape): New arg STRINGP.  `\ ' is ignored only when STRINGP
3936         (normally, when reading a string).  Calls changed.
3938         * fns.c (concat): Move the test for all nil in `append'
3939         back to the right place.
3940         Always compute result_len_byte as for a multibyte string.  Then,
3941         if the result will be single-byte, don't use that computation.
3942         When converting single-byte to multibyte, don't use copy_text.
3943         Do use copy_text between single-byte string and multibyte string.
3945         (Fstring_make_multibyte, Fstring_make_unibyte): New functions.
3946         (syms_of_fns): defsubr them.
3948         (string_char_to_byte): Count from the beginning or the end,
3949         whichever is closer.  Keep a cache of recent values.
3950         (string_byte_to_char): Likewise.
3952         (Fstring_lessp): Compare the strings char by char.
3954         * xdisp.c (display_text_line): Set pos_byte with pos
3955         when skipping invisible.
3957         * alloc.c (STRING_BASE_SIZE): New macro.
3958         (STRING_FULLSIZE): Use STRING_BASE_SIZE instead of the whole
3959         size of struct Lisp_String.
3960         (make_pure_string): Use STRING_FULLSIZE.
3962 1998-01-16  Richard Stallman  <rms@psilocin.gnu.org>
3964         * window.c (Fspecial_display_p): Return the right value
3965         when special-display-regexps specifies frame parameters.
3967         * syntax.h (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
3969 1998-01-12  Richard Stallman  <rms@sucrose.gnu.org>
3971         * keymap.c (Fkey_description): Remember to set i_before.
3972         and use it in all cases.
3974 1998-01-12  Kenichi Handa  <handa@etl.go.jp>
3976         * minibuf.c (Fminibuffer_complete_word): Fix a bug of refering
3977         `i'.  We must refer `i_byte' instead.
3979         * insdel.c (insert_from_string_1): Decrement GAP_SIZE by
3980         outgoing_nbytes.
3982         * keymap.c (push_key_description): If C >= 128, always use octal
3983         representation.
3985         * fns.c (concat): Check STRINGP before increasing result_len_byte.
3987 1998-01-12  Richard Stallman  <rms@sucrose.gnu.org>
3989         * fileio.c (Finsert_file_contents): When not decoding,
3990         properly calculate number of chars in the text.
3991         Fix error message.
3993         * coding.c (code_convert_region): Always count chars inserted
3994         in accord with value of enable-multibyte-characters.
3995         (Fcoding_system_p): Doc fix.
3996         (Fcheck_coding_system): Doc fix.
3997         (Fterminal_coding_system): Doc fix.
3998         (Fkeyboard_coding_system): Doc fix.
4000 1998-01-11  Dave Love  <fx@gnu.org>
4002         * charset.c (Fchar_valid_p): Fix bare newlines in doc string.
4004 1998-01-11  Richard Stallman  <rms@sucrose.gnu.org>
4006         * fileio.c (file_name_as_directory): Error if arg is empty.
4007         (Fwrite_region): Don't flush the encoding buffer if failure is set.
4009 1998-01-10  Richard Stallman  <rms@sucrose.gnu.org>
4011         * syntax.h (struct gl_state_s): New field `object'.
4012         (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set it.
4013         Handle non-current buffer properly.  Args renamed to all caps.
4014         (SETUP_SYNTAX_TABLE): Set `object'.  Args renamed to all caps.
4015         (UPDATE_SYNTAX_TABLE): Use gl_state.object.
4016         (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
4018         * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Add gl_state.offset
4019         when using the arg FROM.  Use BYTE_TO_CHAR.
4021 1998-01-09  Richard Stallman  <rms@gnu.org>
4023         * callint.c (Fcall_interactively): Allocate string by bytes.
4024         Use message_with_string.
4026         * dired.c (Fdirectory_files): Fix arg to compile_pattern.
4028 1998-01-06  Richard Stallman  <rms@sucrose.gnu.org>
4030         * emacs.c (standard_args): Add "-unibyte" aka "--unibyte".
4031         (main): Handle --unibyte.
4033 1998-01-05  Richard Stallman  <rms@psilocin.gnu.org>
4035         * search.c (search_buffer): Handle bytes vs chars in non-RE case.
4036         Have two locals len and len_byte.
4038         * minibuf.c (read_minibuf): Handle bytes vs chars
4039         when checking for junk at end of expression.
4041 1998-01-04  Richard Stallman  <rms@psilocin.gnu.org>
4043         * editfns.c (Fformat): Do all the work directly--don't use doprnt.
4044         Calculate the right size the first time, so no need to retry.
4045         Count chars and bytes in the result.
4046         Convert single-byte strings to multibyte as needed.
4048         * buffer.c (record_overlay_string): Totalize sizes assuming
4049         strings are converted to match buffer in multibyteness.
4050         (overlay_strings): Convert strings to match buffer in multibyteness.
4052         * search.c (fast_c_string_match_ignore_case): Use string_make_unibyte.
4054         * fns.c (string_make_unibyte): New function.
4056         * insdel.c (count_size_as_multibyte): New function.
4057         (insert_from_string_1, insert_from_buffer_1): Use it.
4059         * lread.c (read_escape): `\ ' stands for nothing at all.
4061         * .gdbinit (xstring): Use size_byte.
4063         * lread.c (oblookup): Take args SIZE and SIZE_BYTE.  Callers changed.
4064         * abbrev.c (Fexpand_abbrev): Pass both kinds of size to oblookup.
4065         * minibuf.c (test_completion): Pass both kinds of size to oblookup.
4067         * print.c (print_string): Now static.
4068         (print): When multibyte is disabled,
4069         print multibyte string chars using hex escapes.
4071         * puresize.h (BASE_PURESIZE): Increased.
4073         * bytecode.c (Fbyte_code): Use size_byte.
4075         * filelock.c (MAKE_LOCK_NAME): Use size_byte.
4077         * lread.c (init_obarray, read1, make_symbol):
4078         Pass new arg to make_pure_string.
4079         (Fintern, oblookup, Fintern_soft, intern): Handle size_byte.
4081         * alloc.c (make_pure_string): New arg length_byte.
4082         Take account of size used by size_byte; store both sizes.
4083         (Fpurecopy): Call make_pure_string the new way.
4084         (compact_strings): Use size_byte field to compute string's size.
4086 1998-01-03  Richard Stallman  <rms@psilocin.gnu.org>
4088         * coding.c (code_convert_region): Delete duplicate local `zv_before'.
4090         * fileio.c (Fdo_auto_save): Save and restore multibyteness of minibuffer.
4092         * process.c (read_process_output): use insert_1_both.
4094         * abbrev.c (Fexpand_abbrev): Pass new args to insert_from_string.
4095         (Funexpand_abbrev): Likewise.  Use size_byte.
4097         * editfns.c (Ftranslate_region): Scan by chars and bytes
4098         using STRING_CHAR_AND_LENGTH.  Replace only single-byte chars.
4100         * insdel.c (copy_text): New function.
4101         (insert_from_buffer_1): Call copy_text to convert between
4102         single-byte and multibyte text.
4103         (insert_from_string_1): Likewise.
4104         
4105         * process.c (read_process_output): New var `multibyte'.
4106         Set it according to which coding system was used.
4108         * charset.c (multibyte_chars_in_text): New function.
4110         * fileio.c (Fwrite_region): Use message_with_string.
4111         (auto_save_error, Fdo_auto_save): Likewise.
4113         * print.c (printchar): Pass new arg to message_dolog.
4114         (strout): New arg MULTIBYTE.  Callers changed.
4116         * lread.c (dir_warning): Pass new arg to message_dolog.
4118         * emacs.c (main): Pass new arg to message_dolog.
4120         * keyboard.c (echo_now): Use message2_nolog, not message1_nolog.
4121         (Fexecute_extended_command): Likewise.
4122         (read_char_minibuf_menu_prompt): Use message2_nolog, not message1.
4124         * xdisp.c (message_dolog, message2): New arg MULTIBYTE.
4125         Callers changed.
4126         (message1, message1_nolog): String must be ASCII-only.
4127         (message2, message2_nolog): Now static.
4129         * search.c (compile_pattern): New arg MULTIBYTE.  Callers changed.
4131         * syntax.c (skip_chars): Handle multibyte and unibyte strings
4132         for either kind of buffer.  Scan string by bytes and chars.
4134         * keymap.c (describe_vector): Unconditionally handle multibyte chars.
4136         * fns.c (map_char_table): Unconditionally consider non-ASCII charsets.
4138         * cmds.c (internal_self_insert): Simplify handling of c2;
4139         avoid testing enable-multibyte-characters.
4141         * callproc.c (Fcall_process): When deciding whether to encode args,
4142         check them for multibyteness, don't check enable-multibyte-characters.
4144         * doc.c: Include charset.h.
4146         * keymap.c (describe_vector): Pass new args to insert_from_string.
4148         * search.c (wordify): Use make_uninit_multibyte_string.
4149         Scan by chars and bytes.
4151         * lread.c (read1): PCH is now int *.
4152         Declare ch as int.
4153         (read0): Declare c as int.
4154         (read_list): Declare ch as int.
4155         (read0): Use Fmake_string not make_string.
4156         (read1): When reading a string, maybe use make_unibyte_string.
4158         * keymap.c (Ftext_char_description): Use make_multibyte_string.
4160         * keyboard.c (parse_modifiers): Use size_byte.
4161         (echo_char): Use size_byte.
4162         (parse_modifiers_uncached): Likewise.
4163         (record_char): Likewise.
4164         (parse_solitary_modifier): Likewise.
4166         * fns.c (Fsubstring): Use make_multibyte_string.
4168         * minibuf.c (Fminibuffer_complete_word): Pass new args to
4169         insert_from_string.  Scan string by bytes and chars.
4170         (Ftry_completion): Use size_byte while comparing.
4171         (Fall_completions): Use size_byte while comparing.
4172         (test_completion): 
4174         * editfns.c (syms_of_editfns): Delete defsubr for sref.
4176         * fns.c (string_make_multibyte): New function.
4178         * fileio.c (Ffile_name_directory): Maybe use make_unibyte_string.
4179         (Ffile_name_nondirectory): Likewise.
4180         (Fsubstitute_in_file_name): Convert substituted envvars to multibyte
4181         if necessary.  Otherwise use make_unibyte_string.
4182         (Finsert_file_contents): Use make_unibyte_string.
4183         (double_dollars): Use make_uninit_multibyte_string.
4185         * doc.c (Fsubstitute_command_keys): Scan by bytes.
4187         * coding.c (code_convert_string): Maybe use make_unibyte_string.
4189         * cmds.c (internal_self_insert): Use make_multibyte_string.
4191         * charset.c (Fstring): Use make_multibyte_string.
4192         (Fcompose_string): Likewise.
4194         * casefiddle.c (casify_object): Scan string by bytes and chars.
4195         Use make_multibyte_string.
4197         * xselect.c (lisp_data_to_selection_data): Use size_byte.
4198         (Fx_store_cut_buffer_internal): Use size_byte.
4199         (selection_data_to_lisp_data): Use make_multibyte_string.
4201         * category.c (Fmake_category_set): Don't allow multibyte string.
4202         (describe_category): Pass new args to insert_from_string.
4203         (describe_category_1): Likewise.
4205         * dispnew.c (Fsend_string_to_terminal): Use size_byte.
4207         * xdisp.c (x_consider_frame_title): Use size_byte.
4208         (display_text_line): Likewise.
4209         And scan Voverlay_arrow_string by bytes and chars.
4210         (display_menu_bar): Call display_string with a byte size.
4211         (display_mode_line): Call display_string with a byte size.
4213         * frame.c (set_term_frame_name): Use size_byte.
4215         * ccl.c (Fccl_execute_on_string): Use size_byte.
4217         * xterm.c (x_load_font): Use string_byte.
4219         * keyboard.c (read_char): Use Faref on Vkeyboard_translate_table
4220         if it is a string.
4221         (apply_modifiers_uncached): New arg base_len_byte.  Calls changed.
4222         (read_char_minibuf_menu_prompt): 
4223         (read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE.
4224         (Fexecute_extended_command): Use Faref to access FUNCTION.
4225         Use size_byte of BINDING.
4226         (stuff_buffered_input): Use size_byte of STUFFSTRING.
4228         * xdisp.c (redisplay_window): Set pos.bytepos along with pos.bufpos.
4230         * keymap.c (Fkey_binding): Scan PREFIX a char at a time.
4231         (Fkey_description): Scan KEYS by chars.
4233         * xfns.c (x_create_bitmap_from_file): Use size_byte on strings.
4234         (x_set_name, x_set_title, validate_x_resource_name): Likewise.
4235         (Fx_get_resource, display_x_get_resource): Likewise.
4236         (x_get_resource_string): Likewise.
4238         * xmenu.c (xmenu_show): Use size_byte of strings.
4240         * callproc.c (Fcall_process): Use size_byte for the args.
4241         (Fcall_process_region): Likewise for temp file.
4242         (child_setup, getenv_internal, Fgetenv): Likewise.
4244 1998-01-02  Richard Stallman  <rms@psilocin.gnu.org>
4246         * process.c (read_process_output): Handle bytes vs chars.
4247         (send_process): Use size_byte of OBJECT.
4248         (Fprocess_send_string): Pass size_byte to send_process.
4250         * lisp.h (STRING_MULTIBYTE): New macro.
4252         * print.c (strout): Take args SIZE and SIZE_BYTE;
4253         operate on both chars and bytes.
4254         (print_string): Pass new arg to strout.
4255         If not using strout, fetch a whole multibyte char at once.
4256         (write_string): Pass new arg to strout.
4257         (write_string_1): Likewise.
4258         (print) <case Lisp_String>: Scan by chars and bytes.
4259         (print) <case Lisp_Symbol>: Scan name by chars and bytes.
4261         * insdel.c (insert_1_both): New function.
4263         * print.c (PRINTPREPARE): Use make_multibyte_string.
4264         Initialize print_buffer_pos_byte.  Use insert_1_both.
4265         (printchar): Update print_buffer_pos_byte and print_buffer_pos.
4266         (print_buffer_pos_byte): New variable.
4267         
4268         * editfns.c (general_insert_function):
4269         Pass the additional args to INSERT_FROM_STRING_FUNC.
4270         (Fchar_to_string): Use make_multibyte_string.
4271         (Fsref): Function deleted.
4272         (Fformat_time_string): Use size_byte of FORMAT_STRING.
4273         (make_buffer_string): Use make_uninit_multibyte_string.
4274         (Ftranslate_region): Use TABLE's size_byte.
4275         (Fmessage, Fmessage_box): Update message_text based on size_byte.
4277         * insdel.c (insert_from_string): New args POS_BYTE, LENGTH.
4278         (insert_from_string_before_markers): 
4279         (insert_from_string_1): New arg POS_BYTE.  Swap args NCHARS, NBYTES.
4280         Don't fail to use POS_BYTE!
4281         (insert_from_buffer_1): Get both inschars and insbytes from NEW.
4283         * alloc.c (make_uninit_multibyte_string): New function.
4284         (make_uninit_string): Use make_uninit_multibyte_string.
4285         (make_multibyte_string): New function.
4286         (make_unibyte_string): New function.
4287         (make_string): Compute number of chars from the data.
4289         * search.c (string_match_1): Convert string indices to/from bytes.
4290         (Freplace_match): Convert string indices to/from bytes.
4291         (Fregexp_quote): Convert string indices to/from bytes.
4293         * lread.c (Fread_from_string): Convert string indices to/from bytes.
4295         * data.c (Fmultibyte_string_p): New function.
4296         (Faref): Index string by chars.
4297         (Faset): Index multibyte string by chars.
4299         * charset.c (Ffind_charset_string): Handle bytes vs chars in string.
4300         Special case for single-byte strings.
4301         (Fchars_in_string): Function deleted.
4302         (Fstring): Renamed from Fconcat_chars.
4303         Handle bytes vs chars in string.
4304         (syms_of_charset): Corresponding changes.
4305         
4306         * fns.c (concat, Fsubstring, internal_equal, mapcar1):
4307         Distinguish bytes and chars when indexing strings.
4308         (Fstring_equal, Fstring_lessp): Likewise.
4309         (substring_both): New function.
4310         (string_char_to_byte, string_byte_to_char): New functions.
4311         
4312         * charset.h (FETCH_STRING_CHAR_ADVANCE): New macro.
4314         * lisp.h (struct lisp_String): New field size_byte.
4316         * charset.c (Fchar_boundary_p): Function deleted.
4317         (syms_of_charset): defsubr deleted.
4319         * insdel.c (make_gap): Set GPT_BYTE along with GPT.
4321         * window.c (Fselect_window): Don't set OW->pointm if OW->buffer is nil.
4322         (Fset_window_configuration): Set old selected window's pointm.
4323         
4324         * minibuf.c (Fcompleting_read): Doc fix.
4326         * keymap.c (current_minor_maps): 
4327         If a variable has an entry in Vminor_mode_overriding_map_alist,
4328         and also an entry in Vminor_mode_map_alist, ignore the latter.
4330 1998-01-01  Richard Stallman  <rms@psilocin.gnu.org>
4332         * Markers now have an ordinary bytepos, not including the gap:
4334         * marker.c (buf_bytepos_to_charpos): Use marker bytepos, not bufpos.
4335         (buf_charpos_to_bytepos, marker_byte_position): Likewise.
4336         (Fset_marker, set_marker_restricted, set_marker_both): Likewise.
4337         (set_marker_restricted_both): Likewise.
4339         * editfns.c (transpose_markers): Update marker's bytepos.
4341         * alloc.c (Fmake_marker): Initialize marker's bytepos and charpos.
4343         * lread.c (readchar): Use marker's bytepos instead of bufpos.
4345         * fns.c (internal_equal): For markers, use bytepos instead of bufpos.
4347         * insdel.c (adjust_markers_gap_motion): Now a no-op.
4348         (adjust_markers_for_delete): Update ->bytepos instead of ->bufpos,
4349         but don't adjust for the gap.
4350         (adjust_markers_for_insert): Likewise.
4352         * lisp.h (struct Lisp_Marker): Rename `bufpos' to `bytepos'.
4353         Its value no longer includes the gap space.
4354         
4355         * editfns.c (Fchar_after): Fix previous change.
4357         * fileio.c (a_write): Fix prototype.
4359         * lisp.h (struct Lisp_Marker): New field `charpos'.
4360         (pos_tab_offset): Decl deleted.
4361         (insert_1, indented_beyond_p): Decls changed.
4362         (move_gap_both, del_range_byte, del_range_both, del_range_2)
4363         (scan_newline, Ffile_locked_p): New decls.
4364         (struct Lisp_Marker): 
4366         * search.c (scan_newline): Always restore prev value of immediate_quit.
4368 1997-12-31  Richard Stallman  <rms@psilocin.gnu.org>
4370         * syntax.c (scan_sexps_forward): Additional arg FROM_BYTE.
4371         Calls changed.
4372         (find_defun_start): Scan bytes and chars.  Additional arg POS_BYTE.
4373         Save final byte pos in find_start_value_byte.
4374         (find_start_value_byte): New variable.
4376         * charset.c (Fchars_in_string): Update call to CHAR_HEAD_P.
4377         (chars_in_text, str_cmpchar_id, Fcompose_string): Likewise.
4379         * indent.c (current_column_1, Fmove_to_column):
4380         Update call to CHAR_HEAD_P.
4382         * fileio.c (Finsert_file_contents): Update call to CHAR_HEAD_P.
4384         * editfns.c (Fsref): Update call to CHAR_HEAD_P.
4385         (Fcompare_buffer_substrings. Ftranslate_region): Likewise.
4387         * doprnt.c (doprnt1): Call to CHAR_HEAD_P fixed.
4389         * charset.h (CHAR_HEAD_P): Take char, not pointer, as arg.
4391         * window.c (unshow_buffer): Set PT with TEMP_SET_PT_BOTH.
4392         
4393         * indent.c (indented_beyond_p): Take POS in bytes and chars.
4394         Callers changed.
4395         (pos_tab_indent): Function moved to xdisp.c.
4397 1997-12-30  Richard Stallman  <rms@psilocin.gnu.org>
4399         * xdisp.c (redisplay_internal): Use scan_newline.
4400         (display_text_line, try_window_id): Use scan_newline.
4402         * xdisp.c (pos_tab_indent): Moved from indent,c.  Now static.
4403         Take POS in bytes and chars.  Callers changed.
4404         
4405         * indent.c (Fcurrent_indentation): Use scan_newline and SET_PT_BOTH.
4406         (indented_beyond_p, current_column_1): Likewise.
4408         * fileio.c (Fwrite_region): Use scan_newline.
4410         * buffer.c (Fmake_indirect_buffer): Use set_marker_both.
4411         (set_buffer_internal_1): Likewise.
4412         (set_buffer_temp): Likewise.
4414         * xdisp.c (redisplay_window): Handle byte and char positions.
4415         (try_window): Don't move W->start if it's already at right place.
4417         * window.c (Fset_window_buffer): Use set_marker_both.
4418         (Fselect_window, Fscroll_other_window, save_window_save): Likewise.
4419         (Fset_window_configuration): Pass p->mark itself to Fset_marker
4420         and set_marker_restricted_both.
4421         (temp_output_buffer_show): Use set_marker_restricted_both.
4422         (window_scroll): Save and restore both kinds of pointers.
4424         * process.c (status_notify): Use byte and char pointers.
4425         
4426         * callint.c (Fcall_interactively) <'d', 'r'>: Use set_marker_both.
4428         * emacs.c (abort): New function.
4430 1997-12-29  Richard Stallman  <rms@psilocin.gnu.org>
4432         * window.c (Fdelete_other_windows): Rely on vmotion to give bytepos.
4433         Use set_marker_both.  Use byte positions.
4434         (Frecenter): Likewise.
4435         (Fmove_to_window_line): Use set_marker_both and Fgoto_char.
4437         * s/sco4.h (LIB_MOTIF): Define, if HAVE_LIBINTL.
4438         (LIBX11_SYSTEM): Undo previous change.
4440         * cmds.c (forward_point): Function deleted.
4441         (Fforward_point): Just add.
4442         (Fforward_char): Don't call forward_point, just add.
4443         (Fforward_line): Use scan_newline.
4444         (Fdelete_char): No need for forward_point, just add.
4445         (Fdelete_backward_char): Handle bytes and chars.
4446         (internal_self_insert): Handle bytes and chars.
4448         * xdisp.c (display_count_lines): Several changes in args.
4449         Do the work directly.
4450         (display_scan_buffer): Function deleted.
4451         (decode_mode_spec): Pass new arg.
4452         (message_log_check_duplicate): Take charpos and bytepos args.
4453         (message_dolog): Use markers to update old PT, BEGV, ZV.
4454         Use scan_newline.  Handle positions in bytes and chars.
4455         
4456 1997-12-28  Richard Stallman  <rms@psilocin.gnu.org>
4458         * xselect.c (Fx_rotate_cut_buffers_internal): Doc fix.
4460         * coding.c (code_convert_region): Handle bytepos and charpos.
4461         (Fdetect_coding_region): Likewise.
4462         
4463         * Makefile.in (marker.o): Depend on charset.h.
4465 1997-12-27  Richard Stallman  <rms@psilocin.gnu.org>
4467         * casefiddle.c (casify_region): Scan in bytes and chars.
4468         (casify_object, casify_region): Declare str, workbuf as unsigned char.
4470         * insdel.c (move_gap): Use move_gap_both.
4471         (move_gap_both): New function.
4472         (gap_left, gap_right): Take both charpos and bytepos args.
4473         (adjust_markers_gap_motion): Renamed from adjust_markers
4474         and simplified.
4475         (adjust_markers_for_delete): New function.
4476         (adjust_markers_for_insert): Take args in chars and bytes.
4477         Also new arg BEFORE_MARKERS.  One call does all marker updating
4478         needed for any insert.
4479         (adjust_point): Take 2 args and update PT and PT_BYTE.
4480         (make_gap): Handle bytes vs chars.
4481         (insert, insert_and_inherit): Handle bytes vs chars.
4482         Pass new BEFORE_MARKERS arg to insert_1.
4483         (insert_before_markers, insert_before_markers_and_inherit): Likewise.
4484         (insert_from_string, insert_from_string_before_markers): Likewise.
4485         (insert_from_buffer): Likewise.
4486         (insert_1): Handle bytes vs chars.  New arg BEFORE_MARKERS.
4487         (insert_from_string_1, insert_from_buffer_1): Likewise.
4488         (replace_range): Likewise.
4489         (del_range_2): New subroutine, taken from del_range_1.
4490         (del_range_1): Use del_range_2.
4491         (del_range_byte, del_range_both): New functions.
4493         * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
4494         Wrap in  if (1) ... else.
4495         
4496         * minibuf.c (Fminibuffer_complete_word): Handle bytes vs characters
4497         when comparing buffer against string.
4498         (temp_echo_area_glyphs): Save, update, delete text using
4499         byte and char positions.
4500         (read_minibuf): BACKUP_N counts bytes.
4502         * syntax.c (Fforward_comment): Scan by bytes and chars.
4503         (Fbackward_prefix_chars): Scan by bytes and chars.
4504         (scan_words, scan_sexps_forward): Scan bytes as well as chars.
4505         (skip_chars, scan_lists): Scan by bytes and chars.  Now static.
4507         * buffer.h (DECODE_POSITION): New macro.
4508         (CHAR_TO_BYTE, BYTE_TO_CHAR): New macros.
4509         
4510         * buffer.h (BEG_BYTE, BEGV_BYTE, PT_BYTE, GPT_BYTE)
4511         (ZV_BYTE, Z_BYTE): New macros.
4512         (BUF_BEG_BYTE, BUF_BEGV_BYTE, BUF_PT_BYTE, BUF_GPT_BYTE)
4513         (BUF_ZV_BYTE, BUF_Z_BYTE): New macros.
4514         (BUF_GAP_END_ADDR): New macro.
4515         (BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): 
4516         Use the new ..._byte buffer data.
4517         (BUFFER_CEILING_OF, BUFFER_FLOOR_OF): Likewise.
4518         (BUF_GPT_ADDR, BUF_Z_ADDR): Likewise.
4519         (SET_PT_BOTH, TEMP_SET_PT_BOTH): New macros.
4520         (SET_PT, TEMP_SET_PT, BUF_SET_PT, BUF_TEMP_SET_PT):
4521         Call functions with new arg order.
4522         (SET_BUF_BEGV, SET_BUF_BEGV_BOTH): New macros.
4523         (SET_BUF_PT): Macro deleted.
4524         (SET_BUF_ZV): Set charpos and bytepos.
4525         (SET_BUF_ZV_BOTH, SET_BUF_PT_BOTH): New macros.
4526         (BYTE_POS_ADDR): Renamed from POS_ADDR.
4527         (CHAR_POS_ADDR): New macro.
4528         (FETCH_BYTE): Use BYTE_POS_ADDR.
4529         (FETCH_MULTIBYTE_CHAR): Use ..._BYTE macros.
4530         (BUF_CHAR_ADDRESS): Convert charpos to bytepos.
4531         (BUF_BYTE_ADDRESS): New macro, like the old BUF_CHAR_ADDRESS.
4532         (PTR_BYTE_POS): Renamed from PTR_CHAR_POS.
4533         (BUF_PTR_BYTE_POS): New macro.
4534         (BUF_FETCH_CHAR, BUF_FETCH_BYTE, BUF_FETCH_MULTIBYTE_CHAR): New macros.
4535         (struct buffer_text): New fields gpt_byte, z_byte.
4536         (struct buffer): New fields pt_byte, begv_byte, zv_byte.
4538         * syntax.c (char_quoted): Take charpos and bytepos as args.
4539         (back_comment): Likewise.
4540         (update_syntax_table): Arg renamed.
4541         (inc_bytepos, dec_bytepos): New functions.
4543         * abbrev.c (describe_abbrev): Return void.
4544         (write_abbrev): Return void.
4545         (Fexpand_abbrev): Scan in bytepos along with charpos.
4546         (Funexpand_abbrev): Use bytepos to delete the expansion.
4547         
4548         * charset.h (INC_POS, DEC_POS): Fix because arg is a bufpos.
4549         (BUF_INC_POS, BUF_DEC_POS): New macros.
4550         (INC_BOTH, DEC_BOTH): New macros.
4552         * minibuf.c (Fread_command, Fread_variable): Fix previous change.
4554         * intervals.h (set_point, temp_set_point): Swap args in decl.
4555         (set_point_both, temp_set_point_both): New decls.
4557         * print.c (PRINTDECLARE): Declare old_point_byte and start_point_byte.
4558         (PRINTPREPARE): For a marker, set old_point_byte and start_point_byte.
4559         Set both kinds of PT from the marker.
4560         (PRINTFINISH): For a marker, use set_marker_both.
4561         Restore both kinds of PT.
4562         (print): For strings and symbols, handle multibyte chars.
4564 1997-12-26  Richard Stallman  <rms@psilocin.gnu.org>
4566         * lread.c (readchar_backlog): New variable.
4567         (readchar): When fetching from buffer or marker,
4568         use readchar_backlog to fetch bytes from a character.
4569         (unreadchar): Increment readchar_backlog.
4570         (readevalloop, Fread): Init readchar_backlog.
4571         
4572         * charset.c (Fchar_boundary_p): Always return 0.
4573         (Fchars_in_region): Just subtract the arguments.
4574         (chars_in_text): New function.
4575         (Ffind_charset_region): Scan in bytepos as well as charpos.
4577         * process.c (Fprocess_send_region): Make bytepos for send_process.
4578         (read_process_output): Save, restore, and update both kinds of ptrs.
4579         (send_process): OFFSET is now in bytes.
4581         * marker.c (marker_byte_position): Renamed from marker_position.
4582         (marker_position): New function returns the charpos.
4583         (Fbuffer_has_markers_at): Test the marker's charpos.
4584         (set_marker_restricted, Fset_marker): Set both kinds of position.
4585         Optimize case where POSITION is a marker.
4586         (set_marker_both, set_marker_restricted_both): New functions.
4587         (Fmarker_position): Use the charpos.
4589         * marker.c (charpos_to_bytepos, bytepos_to_charpos): New functions.
4590         (buf_charpos_to_bytepos, buf_bytepos_to_charpos): New functions.
4592         * textprop.c (Ftext_properties_at): Doc fix.
4594         * intervals.c (set_point_both): Renamed from set_point;
4595         New arg BYTE; BUFFER is now first arg; use temp_set_point_both.
4596         (set_point): New function; uses set_point_both.
4597         (temp_set_point_both): New function.
4598         (temp_set_point): Update BUF_PT_BYTE.
4599         (get_local_map): Save and restore both forms of the buffer bounds.
4601         * buffer.c (set_buffer_temp):
4602         Update BUF_PT_BYTE, BUF_BEGV_BYTE and BUF_ZV_BYTE.
4603         (Fmake_indirect_buffer, set_buffer_internal_1):
4604         Set up the pt, begv and zv markers with both kinds of position.
4605         Set BUF_PT_BYTE, BUF_BEGV_BYTE, BUF_ZV_BYTE.
4606         (Fget_buffer_create): Set BUF_..._BYTE.
4608         * indent.c (vmotion, compute_motion): Set up bytepos value
4609         to return it.  ??? This is a quick hack and must be redone.
4610         (current_column): Handle bytepos and charpos.
4611         (position_indentation): Take bytepos as arg, and scan with it.
4612         Calls changed.
4613         (Fmove_to_column): Scan with bytepos and charpos.
4614         (pos_tab_offset): Use bytepos to do FETCH_BYTE.
4615         (skip_invisible): Don't worry about position in middle of character.
4616         
4617         * xdisp.c (try_window): Pass bytepos to and from display_text_line.
4618         (try_window_id): Likewise.  Use byte pos as well as charpos.
4619         (redisplay_internal): Handle bytepos for tlbufpos.
4621         * xdisp.c (message): Cast last arg to doprnt.
4622         
4623         * indent.h (struct position): New field bytepos.
4625         * keyboard.c (command_loop_1): Use PT_BYTE when calling FETCH_BYTE.
4626         Instead of Fforward_point, just add.
4627         
4628         * search.c (looking_at_1): Use bytepos to call re_search_2.
4629         Convert search regs to charpos, if search succeeded.
4630         (search_buffer): Likewise.  Also convert charpos <-> bytepos
4631         in non-regexp case.
4632         (scan_buffer): Convert charpos <-> bytepos. 
4633         (scan_newline): New function.
4634         (find_next_newline): Function deleted.
4635         (set_search_regs): Args now in bytes; convert to charpos.
4636         (Freplace_match): Convert charpos <-> bytepos when scanning case.
4637         
4638         * fileio.c (restore_point_unwind): Now static.  Use Fgoto_char.
4639         (Funhandled_file_name_directory): Doc fix.
4640         (Finsert_file_contents): Handle bytes vs chars.
4641         (Fwrite_region): Handle bytes vs chars.
4642         (a_write): Take args in bytes; handle annotations labeled in chars.
4643         (e_write): Rename args.
4644         (Funhandled_file_name_directory): Doc fix.
4645         (a_write, e_write): Now static.
4646         
4647         * editfns.c (Fgoto_char): When arg is a marker, copy char and byte
4648         positions from it.  When arg is an integer, no need to worry that it
4649         is in middle of a character.
4650         (buildmark): Take 2 args (charpos and bytepos).  Callers changed.
4651         (Fline_beginning_position): Save and restore both kinds of PT.
4652         (Fprevious_char): Use PT_BYTE.
4653         (Fbolp, Feolp): Use PT_BYTE.
4654         (transpose_markers): Take args in chars and bytes.
4655         (Ftranspose_regions): Work with byte and char positions.
4656         (Fchar_after, Fchar_before): Use bytepos.
4657         (make_buffer_string): Convert charpos to bytepos.
4658         (Fcompare_buffer_substrings): Work with charpos and bytepos.
4659         (Fsubst_char_in_region): Handle charpos and bytepos.
4660         (Fwiden, Fnarrow_to_region): Likewise.
4661         (save_restriction_restore): Update PT and PT_BYTES.
4662         Cast arg to doprnt_lisp.
4664 1997-12-26  Richard Stallman  <rms@sucrose.gnu.org>
4666         * keymap.c (Vminor_mode_overriding_map_alist): New variable.
4667         (syms_of_keymap): Set up Lisp var.
4668         (current_minor_maps): Use Vminor_mode_overriding_map_alist first,
4669         then Vminor_mode_map_alist.
4671         * config.in (HAVE_STRING_H): Add #undef.
4672         [HAVE_STRING_H]: Include string.h.
4674 1997-12-24  Richard Stallman  <rms@psilocin.gnu.org>
4676         * fileio.c (Finsert_file_contents): Don't use coding.symbol
4677         in unusual paths which don't set it up.
4679         * xdisp.c: Declare nonascii_insert_offset.
4681 1997-12-21  Richard Stallman  <rms@psilocin.gnu.org>
4683         * xterm.c (x_display_cursor): Abort if X or Y is out of range.
4685 1997-12-20  Richard Stallman  <rms@psilocin.gnu.org>
4687         * sysdep.c (sys_signal): Undo previous change.
4689         * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables.
4690         (syms_of_emacs): Set up Lisp variables.
4691         (handle_USR1_signal, handle_USR2_signal): New signal handlers.
4692         (main): Set up signal handlers.
4694         * s/sco4.h (LIBX11_SYSTEM) [HAVE_LIBINTL and MOTIF]: Add -lintl.
4696         * config.in (HAVE_LIBINTL): Add #undef.
4698 1997-12-20  Toshiaki Nomura  <dsfrsoft@yk.fujitsu.co.jp>
4700         * s/uxpds.h: New file.
4702 1997-12-19  Richard Stallman  <rms@sucrose.gnu.org>
4704         * minibuf.c (Vread_buffer_function): New var.
4705         (syms_of_minibuf): Set up Lisp var.
4706         (Fread_buffer): Use Vread_buffer_function.
4708         * lisp.h (message2_nolog): Fix arg types.
4710         * xdisp.c (message2_nolog): New arg MULTIBYTE.
4711         (message2): Pass new arg to message2_nolog.
4712         (message1_nolog): Likewise.
4714         * keyboard.c (Fexecute_extended_command): 
4715         Save message_enable_multibyte and pass it to message2_nolog.
4716         
4717         * alloc.c (Fgarbage_collect):
4718         Save message_enable_multibyte and pass it to message2_nolog.
4720 1997-12-17  Richard Stallman  <rms@sucrose.gnu.org>
4722         * syntax.c (Fparse_partial_sexp): Return nil for 9th element
4723         whenever not inside a string or a comment.
4725 1997-12-16  Richard Stallman  <rms@sucrose.gnu.org>
4727         * minibuf.c (Fread_variable): If DEFAULT_VALUE is symbol, use its name.
4728         (Fread_command): Likewise.
4730 1997-12-15  Richard Stallman  <rms@sucrose.gnu.org>
4732         * xdisp.c (message_dolog): Update PT and ZV properly when at end of
4733         buffer, when we convert between multibyte and single-byte.
4734         Properly initialize i.
4736         * xdisp.c (message_dolog): Convert between single-byte and multibyte
4737         when inserting text into *Messages*.
4738         
4739 1997-12-11  Richard Stallman  <rms@gnu.org>
4741         * sysdep.c (sys_signal): Add two casts.
4743 1997-12-09  Richard Stallman  <rms@gnu.org>
4745         * callproc.c (Fcall_process): Don't clobber new_argv[0]
4746         in the case of no args. 
4748 1997-12-09  Kenichi Handa  <handa@etl.go.jp>
4750         * charset.c (Fget_unused_iso_final_char): New function.
4751         (syms_of_charset): Declare it as a Lisp function.
4753         * callproc.c (Fcall_process): Set Vlast_coding_system_used after
4754         reading from the process.
4756         * process.c (read_process_output): Fix previous change, i.e, if
4757         proc_encode_coding_system[p->outfd] is NULL, instead of allocating
4758         `struct coding_system' for encoding, just skip setting up coding
4759         system for encoding.  Set Vlast_coding_system_used after some text
4760         is read.
4761         (send_process): Set Vlast_coding_system_used after deciding a
4762         coding system to be used for encoding.
4764         * fileio.c (Finsert_file_contents): Set Vlast_coding_system_used
4765         before calling Vafter_insert_file_functions.
4766         (Fwrite_region): Set Vlast_coding_system_used after deciding a
4767         coding system to be used for encoding.
4769         * coding.c (setup_coding_system): Do not set
4770         Vlast_coding_system_used here.
4771         (decode_coding_sjis_big5): Decode Big5 text of CR only end-of-line
4772         correctly.
4774 1997-12-08  Ken'ichi Handa  <handa@delysid.gnu.org>
4776         * keyboard.c (Fexecute_extended_command): Fix previous change.
4778 1997-12-07  Karl Heuer  <kwzh@gnu.org>
4780         * process.c (read_process_output): Allocate for coding system, if
4781         not already done.
4783 1997-12-03  Richard Stallman  <rms@gnu.org>
4785         * emacs.c (main): Fix the stack-limit code to calculate
4786         the ratio for re_max_failures accurately and leave some extra slack.
4788         * lread.c (Feval_region): Doc correction (point does not move).
4790 1997-11-26  Richard Stallman  <rms@sucrose.gnu.org>
4792         * alloc.c (malloc_warning, display_malloc_warning): Return void.
4793         (memory_full, free_cons, free_marker): Likewise.
4795         * xdisp.c (message): Declare a as char *[3].
4797         * lisp.h, print.c (internal_with_output_to_temp_buffer):
4798         Don't declare arg type taken by 2nd arg.
4800         * eval.c (do_autoload): Return void.
4802         * sysdep.c (reset_sigio): Return void.
4803         
4804         * keyboard.c (Fsuspend_emacs): Cast init_sys_modes when calling
4805         record_unwind_protect.
4807         * keymap.c (describe_map): Fix decl of arg ELT_DESCRIBER.
4809         * process.c (create_process, deactivate_process, close_process_descs):
4810         (kill_buffer_processes, status_notify): Return void.
4811         (Fstart_process): Cast arg to create_process.
4813         * undo.c (record_insert, record_delete, record_marker_adjustment):
4814         (record_change, record_first_change, record_property_change):
4815         Return void.
4817 1997-11-27  Ken'ichi Handa  <handa@delysid.gnu.org>
4819         * undo.c (record_change, record_first_change,
4820         record_property_change): Declare them as void.
4821         (record_delete, record_marker_adjustment): Declare them as void.
4822         
4823         * indent.c (invalidate_current_column): Declare it as void.
4825         * fileio.c (report_file_error): Declare it as void.
4827         * filelock.c (unlock_buffer): Declare it as void.
4829         * buffer.c (nsberror, record_buffer, validate_region,
4830         fix_overlay_before): Declare them as void.
4832         * sysdep.c (discard_tty_input, init_baud_rate,
4833         wait_for_termination, flush_pending_output, child_setup_tty,
4834         sys_suspend, sys_subshell, init_sigio, request_sigio,
4835         unrequest_sigio, init_sys_modes, get_frame_size, reset_sys_modes,
4836         setup_pty): Declare them as void.
4838         * keymap.c (describe_vector): Declaration fixed (delete `.' at the
4839         tail of type `void'.
4840         (fix_submap_inheritance): Declare it as void.
4842         * keyboard.c (echo_now, record_auto_save, cmd_error_internal,
4843         start_polling, stop_polling, bind_polling_period,
4844         timer_start_idle, timer_stop_idle, gobble_input,
4845         record_asynch_buffer_change, clear_input_pending,
4846         stuff_buffered_input, clear_waiting_for_input,
4847         quit_throw_to_read_char): Declare these as void.
4848         (Fsuspend_emacs): Delete unnecessary extern declaration for
4849         init_sys_mode.
4850         (Fexecute_extended_command): Give Voverriding_local_map as the
4851         first arg to Faref.
4853 1997-11-27  Ken'ichi Handa  <handa@melange.gnu.org>
4855         * xterm.c (x_make_frame_visible): Give dummy arg to
4856         input_poll_signal.
4858         * xdisp.c (redisplay_preserve_echo_area): Declare it as void.
4860         * charset.c (strwidth): Remove extra argument to buffer_display_table.
4861         
4862 1997-11-25  Andreas Schwab  <schwab@delysid.gnu.org>
4864         * charset.h (SPLIT_STRING): Remove extra argument to
4865         split_non_ascii_string.
4867         * window.c: Add prototypes.
4868         (delete_window): Fix return type.
4869         (set_window_height): Likewise.
4870         (set_window_width): Likewise.
4871         (change_window_height): Likewise.
4873         * xselect.c (Fx_disown_selection_internal): Fix type of EVENT.
4875         * window.h: Add prototypes.
4877         * systty.h: Add prototypes.
4879         * sysdep.c: Add prototypes.
4880         (save_signal_handlers): Make static.
4881         (restore_signal_handlers): Likewise.
4883         * syntax.h: Add prototypes.
4885         * search.c: Include "intervals.h" for prototypes.
4887         * region-cache.h: Add prototypes.
4889 1997-11-24  Paul Eggert  <eggert@twinsun.com>
4891         * fontset.c (free_fontset_data): Don't free null pointer.
4893         The new GNU C library strftime needs the underlying host's
4894         strftime for locale dependent formats.
4896         * configure.in (AC_CHECK_FUNCS): Add strftime.
4897         * src/config.in (HAVE_STRFTIME): New undef.
4898         * src/editfns.c (emacs_strftime): New decl.
4899         (Fformat_time_string): Doc fix: %b, %h, %B, %a, %A, and %p depend on
4900         locale; don't use actual chars to describe %n and %t.
4902         * src/Makefile.in (strftime.o), src/makefile.nt ($(BLD)\strftime.obj):
4903         No need to compile with -Dstrftime=emacs_strftime any more.
4905 1997-11-22  Richard Stallman  <rms@gnu.org>
4907         * syntax.c (back_comment): Handle 2-char comment starts
4908         when reaching the first of the pair.
4910 1997-11-21  Andreas Schwab  <schwab@delysid.gnu.org>
4912         * keymap.c (copy_keymap_1): Fix return type.
4913         (accessible_keymaps_char_table): Likewise.
4914         (where_is_internal_2): Likewise.
4915         (describe_vector_princ): Likewise.
4916         (describe_vector): Likewise.  Protoize parameter.
4917         (Ftext_char_description): Fix type of `str'.
4919         * keyboard.h: Add prototypes and more function declarations.
4921         * intervals.h: Add prototypes and more function declarations.
4923         * intervals.c (traverse_intervals): Protoize parameter.
4925         * frame.h: Protoize function declarations.
4927         * fontset.h: Add prototypes and more function declarations.
4929         * fontset.c: Protoize functions declarations.
4931         * fns.c (map_char_table): Protoize parameter.
4933         * fileio.c (close_file_unwind): Fix return type and return nil.
4934         (restore_point_unwind): Likewise.
4936         * eval.c (record_unwind_protect): Protoize parameter.
4938         * editfns.c (Fchar_to_string): Declare `workbuf' as unsigned char.
4939         (general_insert_function): Likewise.  Protoize parameters.  Define
4940         as returning nothing.
4942         * doprnt.c (doprnt1): Declare `charbuf' as unsigned char.
4944         * disptab.h: Add prototypes.  Remove declaration of obsolete
4945         functions.
4947         * coding.h: Add more prototypes and function declarations.
4949         * charset.h: Add more prototypes and function declarations.
4951         * ccl.c (setup_ccl_program): Define as returning nothing.
4953         * ccl.h: Add declaration of setup_ccl_program and ccl_driver.
4955         * category.h: Add declaration of word_boundary_p.
4957         * buffer.h: Add more prototypes and function declarations.
4959         * print.c (printchar): Declare `work' as unsigned char.
4960         (internal_with_output_to_temp_buffer): Protoype parameter
4961         FUNCTION.
4962         (Ferror_message_string): Remove extra argument of
4963         print_error_message.
4964         (write_string): Define as returning nothing.
4965         (write_string_1): Likewise.
4966         (print_error_message): Likewise.
4968         * minibuf.c (read_minibuf_unwind): Fix return type and return nil.
4969         (temp_echo_area_glyphs): Define as returning nothing.
4970         (init_minibuf_once): Likewise.
4971         (syms_of_minibuf): Likewise.
4972         (keys_of_minibuf): Likewise.
4974         * marker.c (unchain_marker): Define as returning nothing.
4975         (syms_of_marker): Likewise.
4977         * macros.h: Declare finalize_kbd_macro_chars and
4978         store_kbd_macro_char.
4980         * macros.c (store_kbd_macro_char): Define as returning nothing.
4981         (finalize_kbd_macro_chars): Likewise.
4982         (init_macros): Likewise.
4983         (syms_of_macros): Likewise.
4984         (keys_of_macros): Likewise.
4986         * lread.c (read1): Declare workbuf as unsigned char.
4987         (dir_warning): Define as returning nothing.
4988         (init_lread): Likewise.
4989         (mapatoms_1): Likewise.
4990         (map_obarray): Fix type of parameter FN.
4992         * lisp.h: Add more prototypes and declarations.  Forward declare
4993         struct window and struct frame so that it can be used in
4994         prototypes.
4996 1997-11-20  Richard Stallman  <rms@gnu.org>
4998         * sysdep.c (init_system_name): Don't use sysinfo.
5000 1997-11-20  Dave Love  <d.love@dl.ac.uk>
5002         * syntax.c (skip_chars): Check type of `string' before using it.
5004 1997-11-20  Abraham Nahum  <miko@uxsrvc.tti.co.il>
5006         * sysdep.c: Treat DGUX the same as USG.
5007         * s/dgux4.h (LIBS_SYSTEM): Define this.
5009 1997-11-20  Eli Zaretskii  <eliz@is.elta.co.il>
5011         * frame.c (frame_name_fnn_p, set_term_frame_name): New functions.
5012         (store_frame_param): When the property name is "name", set the
5013         name of the frame to its value.
5015 1997-11-16  Richard Stallman  <rms@gnu.org>
5017         * keyboard.c (Fexecute_extended_command): Fix message wording.
5018         Don't print a message for a binding for mouse-movement.
5020 1997-11-15  Richard Stallman  <rms@gnu.org>
5022         * xdisp.c (minibuffer_scroll_overlap): New variable.
5023         (syms_of_xdisp): Set up Lisp var.
5024         (redisplay_window): Scroll minibuffer in a special way.
5026         * xdisp.c (display_text_line): Make decision about which windows
5027         highlight the region in just once place.
5028         When minibuffer is selected, show the region in the previous window,
5030         * charset.h (ASCII_BYTE_P): New macro.
5032         * indent.c (position_indentation): Detect non-breaking space,
5033         in either single-byte form or multibyte form (using category ' ').
5035 1997-11-15  Karl Heuer  <kwzh@gnu.org>
5037         * xselect.c (x_handle_selection_request): Use xfree, not free.
5038         (unexpect_property_change, x_get_window_property_as_lisp_data): Ditto.
5039         (x_handle_property_notify, receive_incremental_selection): Ditto.
5040         (selection_data_to_lisp_data, Fx_get_cut_buffer_internal): Ditto.
5042 1997-11-10  Eli Zaretskii  <eliz@is.elta.co.il>
5044         * msdos.c: Support for Japanese display on DOS/V systems.
5045         (screen_old_address, screen_virtual_segment,
5046         screen_virtual_offset): New variables.
5047         (dosv_refresh_virtual_screen): New function.
5048         (dos_direct_output, dos_set_window_size, IT_write_glyphs,
5049         IT_clear_end_of_line, IT_clear_screen, IT_display_cursor,
5050         IT_reset_terminal_modes, XMenuActivate, abort):  Call
5051         dosv_refresh_virtual_screen if under DOS/V.
5052         (IT_set_terminal_modes): If under DOS/V, update the address of
5053         primary screen buffer.
5054         (internal_terminal_init): Zero out screen_old_address, in case
5055         Emacs was dumped under DOS/V.
5056         (dos_get_saved_screen): Return failure indication if no screen was
5057         saved.
5059 1997-11-07  Kenichi Handa  <handa@etl.go.jp>
5061         * callproc.c (Fcall_process): GCPRO infile, buffer, and
5062         current_dir before encoding arguments.
5064         * charset.c (find_charset_in_str): Handle the case that STR
5065         contains invalid multibyte-form.
5067         * coding.c (setup_coding_system): Initialize common_flags member
5068         instead of require_flushing member of `*coding'.
5069         (code_convert_region): Fix previous change.
5071         * coding.h (struct coding_system): Add member common_flags, delete
5072         member require_flushing.
5073         (CODING_REQUIRE_FLUSHING_MASK, CODING_REQUIRE_DECODING_MASK,
5074         CODING_REQUIRE_ENCODING_MASK, CODING_REQUIRE_DETECTION_MASK): New
5075         macros.
5076         (CODING_REQUIRE_NO_CONVERSION, CODING_MAY_REQUIRE_NO_CONVERSION):
5077         These macros deleted.
5078         (CODING_REQUIRE_FLUSHING, CODING_REQUIRE_DECODING,
5079         CODING_REQUIRE_ENCODING, CODING_REQUIRE_DETECTION): New macros.
5081         * editfns.c (Fsref): If IDX points an 8-bit code which is not part
5082         of multibyte characters, return it.  Pay attention to
5083         enable-multibyte-characters.
5085         * fileio.c (Finsert_file_contents): Use new macros defined in
5086         coding.h.
5087         (Fwrite_region): Likewise.
5089         * process.c (create_process): Encode arguments for the process.
5090         (read_process_output): Use new macros defined in coding.h.
5091         (send_process): Likewise.
5093         * term.c (encode_terminal_code): Use new macros defined in
5094         coding.h.
5095         (write_glyphs): Likewise.
5097 1997-10-31  Richard Stallman  <rms@gnu.org>
5099         * sysdep.c (init_system_name): If gethostname gives a proper
5100         domain name, don't look farther for one.
5102 1997-10-29  Paul Eggert  <eggert@twinsun.com>
5104         * m/alpha.h (DBL_MIN_REPLACEMENT): New macro.
5106         * print.c (DBL_MIN): Use workaround if DBL_MIN_REPLACEMENT is defined.
5108 1997-10-27  Kenichi Handa  <handa@etl.go.jp>
5110         * charset.c (Fchars_in_string): Pay attention to
5111         enable-multibyte-characters.
5112         (Fchars_in_region): Likewise.  Avoid error when the region ends in
5113         the middle of a multibyte character.
5115         * category.c (copy_category_table): Copy also the first extra slot
5116         (vector of docstrings).
5117         (Fcopy_category_table): Do not give unused second arg to
5118         copy_category_table.
5120 1997-10-26  Kyle Jones  <kyle_jones@wonderworks.com>
5122         * buffer.c (Fkill_buffer): Don't assume buffer is current.
5124 1997-10-24  Eirik Fuller  <eirik@netcom.com>
5126         * xterm.c (XTread_socket): Check for bogus (0,0) location.
5128 1997-10-24  Richard Stallman  <rms@gnu.org>
5130         * frame.c (Fmouse_pixel_position, Fmouse_position): 
5131         Pass -1 as INSIST arg to mouse_position_hook.
5132         * w32term.c (w32_mouse_position): Handle INSIST < 0.
5133         * xterm.c (XTmouse_position): Handle INSIST < 0.
5135 1997-10-23  Simon Marshall  <simon@gnu.org>
5137         * lread.c (Fload): Indicate in messages if source code is being
5138         loaded and don't indicate when compiled code is being loaded.
5140 1997-10-23  Murata Shuuichirou  <mrt@mickey.ai.kyutech.ac.jp>
5142         * coding.c (encode_designation_at_bol): Fix bug of finding graphic
5143         registers which should be designated at bol.
5145 1997-10-23  Kenichi Handa  <handa@etl.go.jp>
5147         * charset.h (CHAR_VALID_P): Renamed from VALID_CHAR_P, new
5148         argument GENERICP.  Call char_valid_p for a non-ASCII character.
5150         * charset.c (char_valid_p): New function
5151         (Fchar_valid_p): New function.
5152         (syms_of_charset): Declare it as a Lisp function.
5154         * coding.h (struct iso2022_spec): New member
5155         charset_revision_number.
5156         (CODING_SPEC_ISO_SAFE_CHARSETS): This macro deleted.
5157         (CODING_SPEC_ISO_REVISION_NUMBER): New macro.
5158         (struct coding_system): Member `safe_charsets' is moved from
5159         struct iso2022_spec.
5161         * coding.c (Qsafe_charset): New variable.
5162         (syms_of_coding): Initialize and staticpro it.
5163         (detect_coding_iso2022): Handle SS2 and SS3 correctly.
5164         (DECODE_ISO_CHARACTER): Recover from incorrect encoding in less
5165         dangerous way.
5166         (ENCODE_DESIGNATION): Get charset revision number by
5167         CODING_SPEC_ISO_REVISION_NUMBER.
5168         (setup_coding_system): Initialize the member safe_charsets from
5169         the coding systems's safe-charsets property.  Initialize the
5170         member charset_revision_number of struct iso2022_spec.
5171         (ENCODE_ISO_CHARACTER_DIMENSION1): Adjusted for the change of
5172         `safe_charsets' member.
5173         (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
5174         (code_convert_region): Restore the current point after calling a
5175         function in coding->post_read_conversion.
5177         * fns.c (map_char_table): Do not operate on invalid characters.
5178         Pay attention to `enable-multibyte-characters'.
5180 1997-10-23  Richard Stallman  <rms@gnu.org>
5182         * filelock.c (unlock_all_files): Don't call unlock_file;
5183         do the work directly, and avoid calling Fexpand_file_name.
5185         * xdisp.c (redisplay_window): If clip_changed, always run
5186         window-scroll-functions.
5188 1997-10-23  Paul Eggert  <eggert@twinsun.com>
5190         Don't generate useless digits when converting floating point to string.
5192         * print.c (_MAXLDBL, _NMAXLDBL):
5193         Define to work around hpux 7 <math.h> problem.
5194         (<math.h>): Include.
5195         (<float.h>, <stdlib.h>): Include if STDC_HEADERS.
5196         (FLT_RADIX, DBL_MANT_DIG, DBL_DIG): Default to IEEE values.
5197         (DOUBLE_DIGITS_BOUND): New macro.
5198         (float_to_string): By default, generate the fewest number of digits
5199         that represent the floating point value exactly.
5201         * lisp.h (DBL_DIG): Remove; the default value is now set in print.c.
5202         * data.c, floatfns.c: No need to include <float.h> before "lisp.h",
5203         as the latter no longer defines DBL_DIG.
5205 1997-10-21  Kenichi Handa  <handa@etl.go.jp>
5207         * Makefile.in (xselect.o): Depend on buffer.h
5209         * coding.c (Qcoding_system_spec): Deleted.
5210         (Vcoding_system_list, Vcoding_system_alist): New variables.
5211         (setup_coding_system): Adjusted for the change in mule.el.
5212         (detect_eol): Likewise.
5213         (Fcoding_system_spec): Changed to Lisp function in mule.el.
5214         (Fcoding_system_p): Do not call Fcoding_system_spec.
5215         (Fread_coding_system): Give Vcoding_system_alist to
5216         Fcompleting_read as the arg TABLE.
5217         (Fread_non_nil_coding_system): Likewise.  Give
5218         Vcoding_system_history to Fcompleting_read as the arg HIST.
5219         (syms_of_coding): Deleted codes for Qcoding_system and
5220         Fcoding_system_spec.  Set up new Lisp variables.
5222         * xselect.c: Include buffer.h.
5223         (selection_data_to_lisp_data): Do not perform code conversion if
5224         the default value of enable-multibyte-characters is nil.
5225         (lisp_data_to_selection_data): Likewise.  Access the array
5226         `charsets' in the correct way.
5228 1997-10-20  Richard Stallman  <rms@gnu.org>
5230         * Makefile.in (LD_SWITCH_MACHINE_TEMACS): New macro (defaults empty).
5231         (ALL_LDFLAGS): Use LD_SWITCH_MACHINE_TEMACS here.
5233         * m/ibmrs6000.h (LD_SWITCH_MACHINE): Conditionalize this
5234         on THIS_IS_MAKEFILE instead of on emacs.
5236 1997-10-20  Paul Eggert  <eggert@twinsun.com>
5238         * strftime.c:
5239         Switch back to GNU C Library version.
5240         (__tz_compute): Remove unused decl.
5241         (strftime): Use tm_zone even if _LIBC is defined.
5243 1997-10-19  Kurt Swanson  <kurt@dna.lth.se>
5245         * window.c (syms_of_window): Doc fix.
5247 1997-10-16  Richard Stallman  <rms@gnu.org>
5249         * buffer.c (init_buffer): Don't add /: to default dir if it's `/'.
5251         * keymap.c (Faccessible_keymaps): Avoid alloca for fixed-size array.
5252         (Fset_keymap_parent, Fcopy_keymap, Fwhere_is_internal): Likewise.
5254         * minibuf.c (read_minibuf): Return DEFALT here, if minibuffer is empty.
5255         (Fread_from_minibuffer, Fcompleting_read): Don't do that here.
5257         * fileio.c (Fexpand_file_name): Avoid treating // specially
5258         even in a relative file name.
5260         * keymap.c (Fwhere_is_internal): some minor mode bindings weren't
5261         being found.
5263 1997-10-15  Richard Stallman  <rms@gnu.org>
5265         * window.c (replace_buffer_in_all_windows):
5266         Pass 1 as MINI to window_loop.
5268         * data.c (Fstring_to_number): Handle NEGATIVE for floats too.
5270         * lread.c (read_list): Don't recognize Vload_file_name
5271         specially if it is nil.
5273 1997-10-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5275         * alloc.c (gc_sweep): Free memory blocks that contain only unused
5276         objects.
5278         * window.c (window_scroll): When scrolling forward and point is
5279         inside the scroll margin put point at bottom of it, not at window
5280         start.
5282 1997-10-13  Andrew Innes  <andrewi@harlequin.co.uk>
5284         * callproc.c (child_setup) [WINDOWSNT]: Ensure standard handles
5285         are reset even if spawnve fails.
5287         * w32menu.c (Fx_popup_menu): Pass menu handle by value.
5289 1997-10-13  Eli Zaretskii  <eliz@melange.gnu.org>
5291         * xdisp.c (decode_mode_spec): Display non-nil title as the frame's
5292         name only on FRAME_WINDOW_P frames.
5294         * frame.c (set_menu_bar_lines): Make the function external instead
5295         of static (MS-DOS needs to call it).
5297         * emacs.c (shut_down_emacs): Call `dos_cleanup'.
5299         * msdos.c (mouse_get_pos): Remove reduntant call to `int86'.
5300         Clear the mouse-moved flag for all frames.  Update last mouse
5301         position.
5302         (IT_set_menu_bar_lines): Remove.
5303         (x_set_menu_bar_lines): Call `set_menu_bar_line' (from frame.c)
5304         instead of duplicating its code.
5305         (IT_set_frame_parameters): Support the `title' and `reverse'
5306         properties.
5308         * dosfns.h: Vdos_windows_version: declare.
5310         * dosfns.c (__tb): Define.
5311         (restore_parent_vm_title): New function.
5312         (ms_windows_version): New function.
5313         (w95_set_virtual_machine_title): New function
5314         (x_set_title): New function.
5315         (dos_cleanup): New function
5316         (syms_of_dosfns): Define `dos-windows-version' Lisp variable.
5317         (init_dosfns): Compute MS-Windows version and save the original
5318         title of our DOS box.
5320 1997-10-10  Richard Stallman  <rms@gnu.org>
5322         * s/netbsd.h (LD_SWITCH_SYSTEM): Use -Wl,-rpath if __ELF__.
5324 1997-10-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5326         * unexelf.c (round_up): Make arguments and return type unsigned.
5328         * editfns.c: Repeat the argument list of format-time-string in the
5329         comment for make-docstring.
5331         * lread.c: Make sure that make-docfile does not see the doc string
5332         of the disabled function eval-current-buffer.
5334         * print.c (syms_of_print): Fix doc string of print-gensym.
5336 1997-10-01  Richard Stallman  <rms@psilocin.gnu.org>
5338         * s/aix4-1.h [! HAVE_LIBXMU] (LIBXMU): Define as empty.
5339         [! HAVE_LIBXMU] (NO_EDITRES): Defined.
5341 1997-09-30  Hrvoje Niksic  <hniksic@srce.hr>
5343         * fns.c (Qwidget_type): New variable.
5344         (widget-plist-member, widget-put, widget-get, widget-apply): Move
5345         here from lisp/wid-edit.el; translated into C for efficiency.
5346         (syms_of_fns): Initialize Qwidget_type; defsubr new functions.
5348 1997-09-29  Karl Heuer  <kwzh@gnu.org>
5350         * s/dgux4.h: Fix name of include file to match 1996-08-24 renaming.
5352 1997-09-27  Eirik Fuller  <eirik@netcom.com>
5354         * ralloc.c (relinquish): When returning memory to the system,
5355         watch out for the original data segment boundary.
5357 1997-09-25  Kenichi Handa  <handa@etl.go.jp>
5359         * keymap.c (push_key_description): Delete useless `if' statement.
5361 1997-09-24  Kenichi Handa  <handa@etl.go.jp>
5363         * charset.c (find_charset_in_str): Return also charsets in
5364         composite characters.
5366 1997-09-24  Dave Love  <d.love@dl.ac.uk>
5368         * buffer.c (mode-line-format): Doc fix.
5370 1997-09-23  Geoff Voelker  <voelker@cs.washington.edu>
5372         * callproc.c (child_setup) [WINDOWSNT]: Change directory of
5373         child instead of parent.
5375 1997-09-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5377         * Version 20.2 released.
5379         * s/sol2-5.h (SYSTEM_MALLOC): Defined.
5381 1997-09-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5383         * Version 20.1 released.
5385         * keyboard.c (command_loop_1): Add nonascii_insert_offset
5386         before calling direct_output_for_insert.
5388 1997-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5390         * indent.c (compute_motion): Ignore the display table entry for a
5391         base leading code when dealing with multibyte characters.
5393 1997-09-14  Kenichi Handa  <handa@etl.go.jp>
5395         * fileio.c (Finsert_file_contents): If a coding system is
5396         specified explicitly on visiting a new file, set
5397         buffer-file-coding system of the new buffer to the specified one.
5399 1997-09-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5401         * minibuf.c (syms_of_minibuf): Doc fix.
5403 1997-09-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5405         * xdisp.c: When redisplaying the echo area, use the value
5406         of enable-multibyte-characters from when message was called.
5407         (message_enable_multibyte): New variable.
5408         (message2_nolog): Set the variable.
5409         (echo_area_display): Use that variable.
5410         (display_string): New arg MULTIBYTE.  Callers changed.
5412         * print.c (Fexternal_debugging_output): On Windows, output to debugger.
5414 1997-09-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5416         * msdos.c: Use raw-text as coding system.
5418 1997-09-10  Eli Zaretskii  <eliz@is.elta.co.il>
5420         * msdos.c (syms_of_msdos): Intern background-color and
5421         foreground-color, and staticpro them.
5422         (IT_set_frame_parameters): Use Qforeground_color and
5423         Qbackground_color.
5425 1997-09-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5427         * xdisp.c (display_menu_bar): Include WINDOW_LEFT_MARGIN in maxendcol.
5429         * process.c (create_process): Encode the new current dir.
5431         * callproc.c (Fcall_process): Encode the new current dir.
5433 1997-09-09  Paul Eggert  <eggert@twinsun.com>
5435         * s/sco5.h (BROKEN_MKTIME): Define.
5437 1997-09-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5439         * xfns.c (x_screen_planes): Fix type of argument.
5441         * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Add missing fourth
5442         argument of update_syntax_table.
5443         (UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
5444         (UPDATE_SYNTAX_TABLE): Likewise.
5446         * coding.c (encode_designation_at_bol): Fix type of local vars C1, C2.
5448 1997-09-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5450         * fileio.c (ENCODE_FILE): New macro.
5451         (Vfile_name_coding_system): New variable.
5452         (syms_of_fileio): Set up Lisp variable.
5453         (Fset_visited_file_modtime): Use ENCODE_FILE.
5454         (Fcopy_file, Fmake_directory_internal, Fdelete_directory, Fdelete_file)
5455         (Frename_file, Fadd_name_to_file, Ffile_exists_p Ffile_executable_p)
5456         (Ffile_readable_p, Ffile_writable_p, Faccess_file, Ffile_symlink_p)
5457         (Ffile_directory_p, Ffile_accessible_directory_p, Ffile_regular_p)
5458         (Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p, Fwrite_region)
5459         (Finsert_file_contents, Fverify_visited_file_modtime): Likewise.
5461         * fileio.c (Ffile_symlink_p): Decode the file name value.
5463         * dired.c (ENCODE_FILE): New macro.
5464         (Ffile_attributes): Encode the file names to operate on.
5465         (file_name_completion): Do completion on encoded name, then decode.
5466         (Fdirectory_files): Encode the argument.
5467         Decode all result file names using Vfile_name_coding_system.
5469         * coding.c (Fencode_coding_string, Fdecode_coding_string): Doc fixes.
5470         
5471 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5473         * lread.c (Feval_buffer): New arg FILENAME.
5475         * buffer.c (modify_overlay): Update overlay_modiff of proper buffer.
5477 1997-09-07  Geoff Voelker  <voelker@cs.washington.edu>
5479         * firstfile.c: New file.
5480         
5481 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5483         * xdisp.c (display_string): Determine multibyte from current buffer,
5484         not from W's buffer.
5486 1997-09-07  Kenneth Stailey  <kstailey@elbereth.disclosure.com>
5488         * s/openbsd.h: New file.
5490         * m/ns32000.h, m/sparc.h, m/alpha.h, m/pmax.h, unexalpha.c:
5491         Test __OpenBSD__ along with __NetBSD__.
5493         * unexelf.c: Test __OpenBSD__ along with __NetBSD__.
5494         [__OpenBSD__]: Include sys/exec_elf.h.
5495         
5496 1997-09-05  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
5498         * coding.c (Ffind_operation_coding_system): If a function in
5499         XXX-coding-system-alist returns a coding system (instead of cons
5500         of coding systems), return cons of it.
5502 1997-09-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5504         * coding.c (Fread_coding_system):
5505         New optional arg DEFAULT_CODING_SYSTEM.
5506         * lisp.h (Fread_coding_system): Update decl.
5508         * callint.c (Fcall_interactively): Pass new arg to Fread_coding_system.
5509         
5510 1997-09-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5512         * m/alpha.h (PTY_OPEN): Call sigblock properly.
5514         * fileio.c (Fexpand_file_name): If default dir isn't string, use `/'.
5516         * callproc.c (Fcall_process_region): Fix previous change:
5517         never override Vcoding_system_for_write.
5519         * m/alpha.h (PTY_OPEN): Save and restore the SIGCHLD handler.
5521 1997-09-04  Erik Naggum  <erik@naggum.no>
5523         * emacs.c (main): Update Copyright message.
5525 1997-09-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5527         * data.c (Faset): Simplify a statement in the char-table case.
5528         This is to help some compilers.
5530         * coding.c (Qcoding_system_history): New variable.
5531         (syms_of_coding): Initialize it.
5532         (Fread_coding_system): Use Qcoding_system_history.
5534         * coding.c (setup_coding_system, Ffind_operation_coding_system)
5535         (Fdetect_coding_region, Fread_coding_system):
5536         Don't initialize a Lisp_Object.
5538 1997-09-03  NIIBE Yutaka  <gniibe@mri.co.jp>
5540         * emacs.c (main): Call run_time_remap earlier, before any use of stdio.
5542 1997-09-03  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5544         * minibuf.c (read_minibuf): Fix use of Ffboundp.
5546 1997-09-03  Geoff Voelker  <voelker@cs.washington.edu>
5548         * lastfile.c (my_endbss) [WINDOWSNT]: New variable.
5550 1997-09-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5552         * coding.c (detect_coding_mask): Re-work previous change.
5553         (detect_eol): Fix use of == instead of -.
5555 1997-09-03  Kenichi Handa  <handa@etl.go.jp>
5557         * coding.c (detect_coding_mask): Cancel previous change.  Always
5558         include CODING_CATEGORY_MASK_RAW_TEXT in the return value.
5560 1997-09-02  Andrew Innes  <andrewi@harlequin.co.uk>
5562         * makefile.nt (TLIB0, TOBJ, OBJ0): New macro.
5563         (LINK_FLAGS): Separate debugging info from the executable.
5564         (LIBS): Include TLIB0.
5565         (TEMACS): Link with TLIB0.
5566         (EMACS): Copy temacs map file to emacs map file.
5567         Update file dependencies.
5569         * unexw32.c: Include config.h and time.h.
5570         Declare extern data and functions.
5571         (file_data): Move definition from w32heap.c.
5572         (_start): Add debug hook for when profiling.
5573         Spoof executable name when using profilers.
5574         Invoke sbrk immediately when undumped.
5575         (unexec): Print error messages when input and output dump files
5576         cannot be opened.
5577         Reset header checksum.
5578         (open_input_file, open_output_file): Return status instead of aborting.
5579         (get_section_size): Handle different linkers.
5580         (find_section, rva_to_section): New functions.
5581         (get_section_info) [SEPARATE_BSS_SECTION]: Make code for using
5582         a separate .bss section conditional.
5583         Use my_begbss and my_endbss to determine .bss size by default.
5584         Look for Emacs data in EMDATA section.
5585         
5586         * w32.c: Include stddef.h.
5587         (getwd): Delete macro.
5588         (startup_dir): New variable.
5589         (getwd): Return directory in which Emacs started.
5590         (init_user_info): Set SHELL environment variable if not set.
5591         (parse_root, get_long_basename, w32_get_long_filename): New functions.
5592         (init_environment): Look for CMDPROXY.
5593         Make sure that PATH and COMSPEC are capitalized in the environment.
5594         Record startup directory.
5595         (get_emacs_configuration, sys_rename): Use OS_WIN95.
5596         (map_w32_filename): Calculate returned string correctly.
5598         (sys_fopen): Use _fdopen.
5599         (sys_link): Support NTFS links.
5600         (sys_rename): Use a long file name for temporary name.
5601         (sys_pipe): Make pipes binary and non-inheritable.
5602         (sys_read, sys_write): Spoof text mode translation for pipes 
5603         and sockets.
5604         
5605         (hashval): Simplify.
5606         (generate_inode_val): Use long file name version of file.
5608         (stat): Optimize by using active readdir info.
5609         Set fake_inode to 0 for directories.
5610         Set fake_inode to xor of file indexes for files.
5611         Don't use generate_inode_val to set inode value.
5613         (volume_info_data): Renamed from volume_info.
5614         (volume_info, fixed_drives, volume_cache): New variables.
5615         (DRIVE_INDEX, VOLINFO_STILL_VALID): New macros.
5616         (lookup_volume_info, add_volume_info, GetCachedVolumeInformation):
5617         New functions.
5618         (get_volume_info): Use volume_info_data.
5619         Use GetCachedVolumeInformation. 
5621         (init_ntproc): No longer restrict to one DOS subprocess.
5622         Use CRT _open and _fdopen.
5623         Cache fixed drive information.
5624         
5625         * w32.h: Remove debugging macros.
5626         (child_process): Remove is_dos_process field, add hwnd handle field.
5627         (FILE_LAST_CR): New macro.
5628         (w32_get_long_filename): Declare extern.
5630         * w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): 
5631         Delete functions.
5632         (keyboard_init_hook): Delete variable.
5633         (prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable.
5634         (reset_terminal_modes) [! USE_SEPARATE_SCREEN]: Reset cursor info.
5635         (initialize_w32_display) [USE_SEPARATE_SCREEN]: Create separate
5636         screen buffer.
5637         (ctrl_c_handler): Only ignore interrupts when interactive.
5638         (set_terminal_modes): Set input mode.
5639         (initialize_w32_display): Record original settings.
5640         Don't reset cursor or clear frame.
5642         * w32fns.c: Include limits.h and errno.h.
5643         Declare externs from other files.
5644         (w32_in_use): New variable.     
5645         (check_w32, have_menus_p, x_set_title, w32_msg_worker,
5646         find_deferred_msg, send_deferred_msg, complete_deferred_msg,
5647         Fw32_focus_frame, W32-send-sys-command): New functions.
5648         (last_mouse_movement_time): Delete variable.
5650         (x_frame_parms): Alphabetize.  Add title parm.
5651         (x_set_icon_name): Use title if set.
5652         (x_set_menu_bar_lines): Ensure client area remains the same.
5653         (x_set_name): Don't update if the name is the same.
5654         Use title for name if available.
5655         (x_icon): Initial support for creating window iconified.
5656         (x_display_info_for_name): Set w32_in_use.
5657         (Fx_open_connection): Validate Vwindow_system.  Set w32_in_use.
5658         
5659         (w32_create_window): Set window size to frame dimensions.
5660         Set font width, line height, border, scrollbar indexes.
5661         Don't set X and Y units indexes.
5662         (w32_msg_pump): Renamed from windows_msg_worker.
5663         Make static.  Don't post done message. No longer handle
5664         create scrollbar message.  Don't abort on anomalous messages.
5665         Return when completion detected.
5666         (w32_wnd_proc): Keep track of button state.     
5667         For WINDOWPOSCHANGING, force window dimensions to be multiples
5668         of character dimensions.
5669         Handle CREATESCROLLBAR.
5670         Use correct arguments for SHOWWINDOW.
5671         For SETWINDOWPOS, use WINDOWPOS structure.
5673         (my_create_window): Abort if message post fails.
5674         (Fx_create_frame): Use title instead of name.
5675         GC protect frame before make_frame_without_minibuffer.
5676         Set icon name.
5677         Use courier new as default font (has bold and italic).
5678         Set BufferPredicate and Title default parameters.
5679         
5680         (x_to_w32_weight): Support semibold weight.
5681         (x_to_w32_charset): Map # to numeric charset identifier.
5682         (w32_to_x_charset): Encode unknown charsets as a number.
5683         (enum_font_cb2): Don't restrict to ANSI and OEM charsets.
5685         (Fx_color_values): Set high and low words of color values.
5687         (syms_of_w32fns): Zero w32_in_use.  defsubr new functions.
5689         * w32heap.c (os_subtype): New variable.
5690         (cache_system_info): Set os_subtype.
5691         (recreate_heap): Update system information after loading heap.
5693         * w32heap.h: Enumerate operating system types.
5694         Declare extern data and functions.
5695         Move file_data struct definition here.
5696         (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): New macros.
5698         * w32inevt.c: Declare externs from other files.
5699         (w32_kbd_mods_to_emacs): New parameter KEY.
5700         Use w32-capslock-is-shiftlock for old behavior.
5701         (key_event): Pass in new parameter to w32_kbd_mods_to_emacs.    
5702         
5703         * w32menu.c (init_menu_items): Disable code.
5704         (x_activate_menubar): New function.
5705         (initialize_frame_menubar): Pass in new param to set_frame_menubar.
5706         
5707         * w32proc.c: Include w32heap.h.
5708         (Vw32_start_process_share_console, Vw32_generate_fake_inodes,
5709         Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): 
5710         New variables.
5711         (find_child_console, set_process_dir, Fw32_short_file_name,
5712         Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info,
5713         Fw32_get_current_locale_id, Fw32_get_default_local_id, 
5714         Fw32_set_current_locale): New functions.
5715         (CORRECT_DIR_SEPS): New macro.
5716         (create_child): Create a new console if subprocs don't share parent's.
5717         (reap_subprocess): Don't check for dos subprocesses.  
5718         Add debug support.
5719         (sys_wait): Ignore socket child_procs.
5720         Check for quit while waiting.
5721         (w32_executable_type): Renamed from w32_is_dos_binary.
5722         Check for dos and Cygnus executables.
5723         (sys_spawnve): Always use cmdproxy if spawning a dos app.
5724         Use quotes to quote arguments for Cygnus apps, backslashes otherwise.
5725         Handle escape characters.  Escape quotes at start and end, too.
5726         (sys_select): Treat null timeout as infinite.
5727         Add handles of child processes.
5728         Loop over handles round robin to ensure fairness.
5729         (sys_kill): Send ctrl-break and ctrl-c keystrokes to subprocesses
5730         on SIGINT if not sharing consoles, otherwise generate ctrl-break event.
5731         On other termination signals, send WM_QUIT message to Win95 apps
5732         and WM_CLOSE to NT apps.
5733         (syms_of_ntproc): Intern new symbols.  defsubr new functions.
5734         DEFVAR new variables.
5736         * w32term.c (SIF_*): Win95 macros defined for NT.
5737         (struct tagSCROLLINFO): Win95 struct defined for NT.
5738         (vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border,
5739         vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos,
5740         Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock): New
5741         variables.
5742         (w32_frame_up_to_date): Block input.
5743         (do_line_dance): Use DC while erasing, release at end.
5744         (show_mouse_face): Use column and endcolumn calculated at start of
5745         loop.
5746         (my_create_scrollbar, my_show_window, my_set_window_pos,
5747         my_set_focus) [! ATTACH_THREADS]: Send message to window instead
5748         of invoking Windows procedure.
5749         (x_scroll_bar_create, x_scroll_bar_move, x_scroll_bar_handle_click,
5750         x_scroll_bar_report_motion): Use SCROLLINFO for proportional handle.
5751         (x_scroll_bar_set_handle): Create proportional sized scroll handle.
5752         (w32_set_vertical_scroll_bar): Size handle according to how much
5753         is showing in window.
5754         (x_scroll_bar_set_report_motion): Use top_range, calculated above.
5755         (x_scroll_bar_clear): Hide scroll bar until ready to repaint.
5756         (show_scroll_bars): Pass in frame to my_show_window.
5758         (w32_read_socket): Distinguish between invisible and obscured frames
5759         when handling PAINT messages.
5760         Fixup off-by-one calculation for PAINT and SIZE.
5761         Pass in new parameter to w32_kbd_mods_to_emacs.
5762         Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW,
5763         INITMENU, and ACTIVATEAPP messages.
5764         Explicitly check for visibile and obscured frames, and to see if 
5765         any event should cause a redisplay.
5767         (x_display_bar_cursor): Don't check whether frame is updating here.
5768         (x_display_cursor): Check it here instead.
5769         (x_set_offset) [HAVE_NTGUI]: Don't add border widths.
5770         Set NOACTIVATE when setting window position.
5771         (x_set_window_size): Fixup off-by-one calculation when setting
5772         window position.  Mark frame garbaged earlier.  Clear mouse
5773         highlighting state.
5774         (x_focus_on_frame): Set focus by making frame the foreground window.
5775         (x_raise_frame): Support frames to be raised without grabbing focus.
5776         (x_lower_frame): Set NOACTIVATE flag when setting window position.
5777         (x_make_frame_visible, x_make_frame_invisible): Pass in frame 
5778         to my_show_window.
5779         (x_iconify_frame): Send a MINIMIZE message to the window.       
5780         (x_wm_set_size_hint): Set font width, line height, border,
5781         and scroll bar indexes instead of X and Y unit indexes.
5783         (w32_initialize): Set input mode.  Use w32_msg_worker instead
5784         of windows_msg_worker.  Dynamically link proportional scroll bar
5785         functions and intialize proportional scroll bar variables.
5786         (syms_of_w32term): DEFVAR new variables.
5788         * w32term.h (w32_output): New fields menubar_widget, menubar_active,
5789         and pending_menu_activation.
5790         (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables. 
5791         (W32WindowPos): Delete definition.
5792         (WM_EMACS_SETFOCUS, WND_*_INDEX): New macros.
5793         (deferred_msg): New structure.
5795         * w32xfns.c (have_menus_p): Move to w32fns.c.
5797         * s/ms-w32.h (INTERRUPT_INPUT): Don't define.
5798         (bcopy): Use memmove instead of memcpy.
5799         (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE): Define.
5800         Undef system calls before redefining.  Emulated calls redefined
5801         to sys_*, real calls redefined to _*.
5802         (DebPrint): Macro defined.
5803         
5804 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
5806         * w32term.h (WM_MOUSEWHEEL): Define if not already defined.
5807         Necessary for pre VC5.0 distribution.
5808         (WM_EMACS_TRACKPOPUPMENU): New Macro.
5810         * w32term.c (construct_mouse_wheel): New function.  Constructs an
5811         input event from a WM_MOUSEWHEEL message.
5812         (w32_read_socket): Handle WM_MOUSEWHEEL.
5814         * w32fns.c (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events.
5815         Capture and handle WM_EMACS_TRACKPOPUPMENU events.
5816         Allow a dragged selection from a popup menu started up 
5817         by a mouse down event.
5818         (x_to_win32_color): Support for X Windows RGB string specifications.
5820         * w32menu.c (get_frame_menubar_event): Check for the possibility
5821         of a menu-bar button.  A menu-bar button is a caption on the menu
5822         bar with no submenu.
5823         (set_frame_menubar): Correctly handle menu-bar buttons.
5824         (add_menu_item): Equiv parameter send and paid attention to.
5825         (keymap_panes, list_of_panes): Use CreatePopupMenu.
5826         (single_keymap_panes): Use CreatePopupMenu.  Send key descriptions
5827         to add_menu_item.
5828         (list_of_items): Use CreatePopupMenu.  Send nil description to
5829         add_menu_item.
5830         (get_menu_event): Send keymap instead of menu to get_keymap_event.
5831         (Fx_popup_menu): Extra parameter to mouse_position_hook.  Don't
5832         send address of menu to win32menu_show.
5833         (win32menu_show): Send message to call popup menu rather than
5834         trying directly.  get_menu_event should take an address.
5835         Call eat_mouse_events in order to get rid of any extraneous 
5836         mouse events.
5837         (list_of_panes): Only bring up one pane if the length of the list
5838         of panes is one.
5840 1997-09-02  Nico Francois  <nico.francois@scala.nl>
5842         * w32menu.c (single_keymap_panes): Fixed problem with 'descrip'
5843         lisp object not being protected properly (GCPRO).
5844         (get_single_keymap_event): Fixed problem with 'descrip' lisp
5845         object not being protected properly (GCPRO).
5846         (name_is_separator): New function.
5847         (list_of_panes): If a pane's name is empty ("") items are now
5848         placed in the main popup instead of a blank-named submenu.  This
5849         seems to be an undocumented feature of x-popup-menu.
5850         (list_of_items): New argument HMENU.
5851         Use 1 and 0 instead of Qt and Qnil for enable in add_menu_item
5853 1997-09-02  Geoff Voelker  <voelker@cs.washington.edu>
5855         * w32.c (init_environment): Don't look for INFOPATH.
5857         * w32fns.c (w32_wnd_proc): Pass on WM_DISPLAYCHANGE messages.
5859         * w32heap.c: Don't use data_seg pragma here.
5860         (_heap_init, _heap_term) [_MSC_VER >= 1000]: New functions that
5861         override CRT routines.
5863         * w32inevt.c (key_event): New parameter isdead. Set isdead if the
5864         key press was done using a dead key.
5866         * w32term.c (w32_read_socket): Pass in new parameter to key_event.
5867         Let key_event determine whether key is dead.
5868         For MOVE, use x_real_positions to map to client coords.
5869         (x_set_mouse_pixel_position): Offset to use client area as origin.
5871         * s/ms-w32.h: Use pragmas to place Emacs initialized data in
5872         EMDATA segment, and Emacs uninitialized data in EMBSS segment.
5874 1997-09-02  Andrew Innes  <andrewi@harlequin.co.uk>
5876         * fileio.c (Fadd_name_to_file) [WINDOWSNT]: Remove conditional.
5878         * frame.h (FRAME_OBSCURED_P): New macro.
5879         (FRAME_SAMPLE_VISIBILITY): Distinguish between invisible and obscured.
5881         * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]: Support
5882         menu_bar_activate_event.
5883         (set-input-mode) [DOS_NT]: Do not invoke reset and init sys modes.
5885         * sysdep.c (sys_subshell) [DOS_NT]: Save and restore parent's
5886         working directory.
5887         (sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console.
5888         (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with 
5889         a read_socket_hook.
5891         * xdisp.c (redisplay_internal): Check to see if frame is not obscured
5892         as well as visible.
5893         
5894 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
5896         * lisp.h: Declare discard_mouse_events.
5898         * keyboard.c (Qmouse_wheel) [WINDOWSNT]: New variable.
5899         (discard_mouse_events): New function.
5900         (mouse_wheel_syms) [WINDOWSNT]: New variable.
5901         (lispy_mouse_wheel_names) [WINDOWSNT]: New variable.
5902         (make_lispy_event) [WINDOWSNT]: Make mouse-wheel events.
5903         (syms_of_keyboard) [WINDOWSNT]: Define Qmouse_wheel and
5904         mouse_wheel_syms.
5906         * termhooks.h (event_kind) [WINDOWSNT]: New event type: mouse_wheel.
5908 1997-09-02  Geoff Voelker  <voelker@cs.washington.edu>
5910         * fileio.c (Fexpand_file_name) [WINDOWSNT]: When stripping
5911         drive letter, be careful not to create a UNC filename.
5913 1997-09-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5915         * coding.c (detect_coding_mask): Add in CODING_CATEGORY_MASK_RAW_TEXT
5916         in the detect_coding_iso2022 case.
5918         * minibuf.c (Fread_from_minibuffer, Fread_string): Doc fixes.
5919         (Fread_no_blanks_input, Fcompleting_read): Doc fixes.   
5921         * unexnext.c: Include unistd.h instead of libc.h.
5923 1997-09-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5925         * s/hpux9.h (HAVE_RINT): Add #undef.
5927         * floatfns.c (emacs_rint): Define this,
5928         either as a function or as a macro for rint.
5929         (Fround, Ffround): Use emacs_rint, not rint directly.
5931         * window.c (syms_of_window): Doc fix.
5933         * fileio.c (Finsert_file_contents): Fix previous change--don't
5934         call Fboundp on Vset_auto_coding_function, just check non-nil.
5936 1997-09-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5938         * alloc.c (free_float, free_cons): Don't use the same field for
5939         chaining as for marking.
5940         (make_float, Fcons, gc_sweep): Corresponding changes.
5942 1997-09-01  Kenichi Handa  <handa@etl.go.jp>
5944         * charset.h (LEADING_CODE_PRIVATE_22): Comment fixed.
5946         * process.c (read_process_output): Index for
5947         proc_encode_coding_system should be p->outfd (not `channel' which
5948         is p->infd).
5950         * fileio.c (Vset_auto_coding_function): Name changed from
5951         Vauto_file_coding_system.
5952         (syms_of_fileio): Adjusted for the above change.  Doc change.
5953         (Finsert_file_contents): The argument for Vset_auto_coding is a
5954         concatination of the heading 1K-byte and the tailing 3K-byte.
5956         * cmds.c (internal_self_insert): Only set TARGET_CLM when C2 is tab.
5957         When multibyte characters are disabled,
5958         use 1 as the width of the inserted character.
5960 1997-08-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
5962         * category.c (describe_category): Handle a sub-chartable.
5964 1997-08-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5966         * sysdep.c (init_system_name): Don't try to use getdomainname.
5968 1997-08-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5970         * dispnew.c (change_frame_size_1): Save current buffer
5971         around calling Fset_window_buffer.
5973         * lread.c (Fload): Fix doc syntax.
5975         * m/intel386.h (HAVE_ALLOCA): Do define this, if SOLARIS2.
5977 1997-08-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5979         * lread.c (Fload): If FILE arg ends in .el or .elc,
5980         don't insist on adding a suffix.
5982 1997-08-28  Eli Zaretskii  <eliz@is.elta.co.il>
5984         * callproc.c (Fcall_process): Set EOL conversion type to LF when
5985         binary-process-output is non-nil.
5986         (Fcall_process_region): binary-process-XXXput only determines EOL
5987         conversion; if it is nil, convert LF <-> CRLF.  Don't bind
5988         coding-system-for-read, it is done in Fcall_process.
5990 1997-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
5992         * alloc.c (free_marker): Call unchain_marker.
5994 1997-08-28  Kenichi Handa  <handa@etl.go.jp>
5996         * coding.c (detect_eol): Do not select no-conversion even if EOL
5997         format of raw-text file is inconsistent.  Just read it by
5998         raw-text-unix.
5999         (Fdetect_coding_region): Do not select no-conversion even if EOL
6000         format of raw-text file is inconsistent.
6001         
6002 1997-08-28  Kenichi Handa  <handa@etl.go.jp>
6004         * coding.c (Qno_conversion, Qundecided): New variables.
6005         (syms_of_coding): Initialize and staticpro them.
6006         (coding_category_name): Include "coding-category-raw-test".
6007         (setup_coding_system): Handle coding_type_raw_text.
6008         (detect_coding_mask): Include CODING_CATEGORY_MASK_RAW_TEXT in the
6009         return value instead of CODING_CATEGORY_MASK_BINARY.
6010         (detect_coding): Do not check the case that `mask' is 0, which
6011         never happens now.
6012         (detect_eol_type): If EOL format is inconsistent, return
6013         CODING_EOL_INCONSISTENT.
6014         (detect_eol): If EOL format of raw-text file is inconsistent,
6015         detect it as no-conversion.
6016         (decode_coding): Handle coding_type_raw_text.
6017         (encode_coding): Likewise.
6018         (Fdetect_coding_region): Ajusted for the above changes.
6019         (shrink_conversion_area): Handle coding_type_raw_text.
6021         * coding.h (coding_type): New member coding_type_raw_text.
6022         (CODING_EOL_INCONSISTENT): New macro.
6023         (CODING_REQUIRE_NO_CONVERSION): Check also coding_type_raw_text.
6024         (CODING_MAY_REQUIRE_NO_CONVERSION): Likewise.
6025         (CODING_CATEGORY_IDX_RAW_TEXT): New macro.
6026         (CODING_CATEGORY_MASK_RAW_TEXT): New macro.
6028 1997-08-28  Eli Zaretskii  <eliz@psilocin.gnu.ai.mit.edu>
6030         * msdos.c: Add coding: tag, to prevent Emacs from interpreting
6031         binary strings.
6033 1997-08-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6035         * xmenu.c (free_frame_menubar): Clear menubar_height field.
6037 1997-08-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6039         * xdisp.c (redisplay_window): When trying to scroll conservatively,
6040         correctly take the scroll margin into account.
6042         * buffer.c: Include errno.h.
6043         (init_buffer) [HAVE_GETCWD]: Fix error message for getcwd failure.
6045         * fileio.c (Finsert_file_contents): Fix use of Fboundp.
6047         * fns.c (concat): Fix use of Fchar_bytes.
6049         * lisp.h: Declare Fchar_bytes.
6051 1997-08-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6053         * minibuf.c (read_minibuf): Inherit enable-multibyte-characters
6054         along with the input method, if requested.
6056 1997-08-26  Eli Zaretskii  <eliz@is.elta.co.il>
6058         * xdisp.c (decode_mode_spec): For %Z and %z, put keyboard and
6059         terminal coding systems into modeline on MSDOS frames as well.
6061 1997-08-26  Kenichi Handa  <handa@etl.go.jp>
6063         * minibuf.c (Qcurrent_input_method, Qactivate_input_method): New vars.
6064         (syms_of_minibuf): Intern and staticpro them.
6065         (read_minibuf): New argument INHERIT_INPUT_METHOD.  If it is
6066         nonzero, remember the current input method in INPUT_METHOD, and
6067         activate it after switching to the minibuffer.
6068         (Fread_from_minibuffer): New argument INHERIT_INPUT_METHOD.
6069         (Fread_minibuffer): Call read_minibuf with INHERIT_INPUT_METHOD nil.
6070         (Fread_string): New argument INHERIT_INPUT_METHOD.
6071         (Fread_no_blanks_input): Likewise.
6072         (Fread_command): Call Fcompleting_read with INHERIT_INPUT_METHOD nil.
6073         (Fread_function, Fread_variable, Fread_buffer): Likewise
6074         (Fcompleting_read): New argument INHERIT_INPUT_METHOD.
6076         * lisp.h (DEFUN_ARGS_8): New macro.
6077         (Fcompleting_read, Fread_from_minibuffer, Fread_string,
6078         Fread_no_blanks_input): Number of arguments fixed.
6080         * eval.c (Feval): Handle a subr which takes 8 arguments.
6081         (Ffuncall): Likewise.
6083         * coding.c (Fread_non_nil_coding_system): Supply the arg
6084         INHERIT-INPUT-METHOD to Fcompleting_read.
6085         (Fread_coding_system): Likewise.
6087         * callint.c (Finteractive): Document the code letter `M'.
6088         (Fcall_interactively): Call Fcompleting_read,
6089         Fread_from_minibuffer, and Fread_string with a proper value for
6090         the arg INHERIT-INPUT-METHOD.  Handle the code letter `M'.
6092         * fileio.c (Fwrite_region): Convert EOL format even if
6093         enable-multibyte-characters is nil.
6094         (Fread_file_name): Call Fcompleting_read with INHERIT-INPUT-METHOD
6095         nil.
6097         * keyboard.c (Fexecute_extended_command): Call Fread_from_minibuffer
6098         with INHERIT-INPUT-METHOD nil.
6100         * fns.c (Fyes_or_no_p): Likewise.
6102         * mocklisp.c (Fml_arg): Call Fread_string with
6103         INHERIT-INPUT-METHOD nil.
6105         * search.c (Fsearch_backward): Inherit the current input method on
6106         reading STRING.
6107         (Fsearch_forward): Likewise.
6109 1997-08-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6111         * frame.c (Fframe_pixel_height): Doc fix.
6113         * Makefile.in (emacs): Put dash at beginning.
6115 1997-08-24  NIIBE Yutaka  <gniibe@mri.co.jp>
6117         * Makefile.in (xrdb.o): Depend on paths.h.
6119 1997-08-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6121         * config.in (KERBEROS5, HAVE_LIBKRB4, HAVE_LIBDES425, HAVE_LIBKRB5)
6122         (HAVE_LIBCRYPTO, HAVE_LIBCOM_ERR, HAVE_KRB5_H, HAVE_DES_H, HAVE_KRB_H)
6123         (HAVE_KERBEROSIV_DES_H, HAVE_KERBEROSIV_KRB_H, HAVE_KERBEROS_DES_H)
6124         (HAVE_KERBEROS_KRB_H, HAVE_COM_ERR_H): Add undefs.
6126         * callproc.c (init_callproc): Don't warn about missing
6127         arch-dep data directory, while preparing to dump.
6129         * puresize.h (BASE_PURESIZE): Increased by 10k.
6131 1997-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6133         * Makefile.in (LIB_MOTIF_EXTRA): New variable.
6134         (LIBW): Use LIB_MOTIF_EXTRA.
6135         * config.in (HAVE_MOTIF_2_1): Add #undef.
6137         * fileio.c (Fmake_temp_name): Doc fix.
6139         * buffer.c (syms_of_buffer): Doc fixes.
6141 1997-08-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6143         * xdisp.c (redisplay_window): Don't try using last_point_x
6144         if point is in the left margin of an hscroll'ed window.
6146 1997-08-21  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6148         * fileio.c (syms_of_fileio): Fix previous change.
6150         * coding.c (detect_eol): If the coding system is an alias, get
6151         eol-type from the base of it.
6153 1997-08-21  Kenichi HANDA  <handa@etl.go.jp>
6155         * fileio.c (Vauto_file_coding_system_function): New variable.
6156         (Finsert_file_contents): Decide coding system after opening a
6157         file.  Call functions set in Vauto_file_coding_system_function.
6158         (syms_of_fileio): Declare auto-file-coding-system-function as a
6159         Lisp variable.
6161         * fontset.c (Valternate_fontname_alist): Name changed from
6162         Valternative_fontname_alist.
6163         (syms_of_fontset): Adjusted for the above change.
6164         
6165         * fontset.h: Adjusted for the name change of
6166         Valternate_fontname_alist.
6168         * xterm.c (x_list_fonts): Adjusted for the name change of
6169         Valternate_fontname_alist.
6171 1997-08-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6173         * charset.c (Fchars_in_region): Fix gap handling.
6175         * editfns.c (NULL): Define, if not defined.
6177 1997-08-19  Geoff Voelker  <voelker@cs.washington.edu>
6179         * fileio.c (Finsert_file_contents): Fix previous change.
6181 1997-08-18  Ken'ichi Handa  <handa@albert.gnu.ai.mit.edu>
6183         * charset.c (Fchars_in_region): Renamed form Fcount_chars_region.
6184         (syms_of_charset): Define Schars_in_region as a Lisp subroutine
6185         instead of Scount_chars_region.
6187 1997-08-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6189         * fileio.c (Fdo_auto_save): If open fails, make lispstream nil.
6191 1997-08-16  Geoff Voelker  <voelker@cs.washington.edu>
6193         * fileio.c (Finsert_file_contents) [DOS_NT]: Set buffer_file_type
6194         according to eol conversion used on file.
6196 1997-08-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6198         * Makefile.in (xselect.o): Fix previous change.
6200         * minibuf.c (read_minibuf): New arg disable_multibyte.
6201         (Fcompleting_read): Pass 1 for disable_multibyte if
6202         the completion table is read-file-name-internal.
6204         * xrdb.c: Include paths.h.
6205         (get_system_app): Use PATH_X_DEFAULTS.
6207         * paths.in (PATH_X_DEFAULTS): New macro.
6209         * term.c (term_get_fkeys_1): Use kH as alternate for move-to-last-line.
6211         * charset.c: Many doc fixes.
6212         (Fcount_chars_region): New function.
6213         (min, max): New macros.
6215         * fns.c (Flength): Doc fix.
6217         * editfns.c (Fchar_before): Do range check before decrement.
6219 1997-08-16  Kenichi Handa  <handa@etl.go.jp>
6221         * coding.h (CODING_FLAG_ISO_LATIN_EXTRA): New macro.
6223         * coding.c (Vmicrosoft_code_table): This variable deleted.
6224         (Vlatin_extra_code_table): New variable.
6225         (detect_coding_iso2022): Pay attention to Vlatin_extra_code_table.
6226         (detect_coding_mask): Likewise.
6227         (setup_coding_system): Handle a new FLAGS element
6228         ACCEPT-LATIN-EXTRA-CODE.
6229         (syms_of_coding): Delete code for Vmicrosoft_code_table.
6230         Declare latin-extra-code-table as Lisp variable, and initialize.
6232 1997-08-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6234         * Makefile.in (xselect.o): Depend on coding.h.
6236         * s/osf1.h (SOCKLEN_TYPE): New macro definition.
6238 1997-08-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6240         * xdisp.c (COERCE_MARKER): Use Fmarker_position instead of
6241         marker_position so that it works with a marker that points nowhere.
6242         (redisplay_window): Check that Voverlay_arrow_position is a
6243         marker before accessing it as such.
6245 1997-08-14  Eli Zaretskii  <eliz@is.elta.co.il>
6247         * emacs.c (main): Update re_max_failures so regex.c won't overflow
6248         the stack, except when dumping.
6250 1997-08-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6252         * xdisp.c (redisplay_window): When handling just cursor motion,
6253         do not subtract hscroll when accessing last_point_x.
6254         (display_text_line): Add WINDOW_LEFT_MARGIN into hpos
6255         later on, after handling hscroll and minibuffer prompt.
6257 1997-08-13  Eli Zaretskii  <eliz@psilocin.gnu.ai.mit.edu>
6259         * msdos.c (syms_of_msdos): Define and bind x-bitmap-file-path and
6260         delete-exited-processes, to prevent cus-start.el from complaining.
6262 1997-08-13  Kazushi (Jam) Marukawa  <maru@pdapsun2.trc.rwcp.or.jp>
6264         * filelock.c (lock_file): Use %lu instead of %d in sprintf because
6265         the variable named pid is unsigned long.
6267         * unexalpha.c (unexec): Cast arg to fprintf.
6269 1997-08-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6271         * alloc.c (free_marker): New function.
6273         * insdel.c (signal_before_change): Relocate START and END
6274         using markers for subsequent functions, when we run a function.
6276         * Makefile.in (emacs): Warn about shadowed standard libraries here.
6278 1997-08-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6280         * emacs.c (main): Fix previous change.
6282 1997-08-11 +03  Eli Zaretskii  <eliz@is.elta.co.il>
6284         * dosfns.c (init_dosfns): Avoid calling DOS memory-allocation
6285         service, NT DPMI server will crash Emacs in DOS box, if we do.
6287         * msdos.c (IT_set_frame_parameters): Actually store the frame
6288         parameters in the frame parameters' alist.
6290         * msdos.c (init_environment): Set Emacs root directory properly when
6291         the executable is in its `src' subdirectory, as under a debugger.
6292         (IT_set_face): If termscript is in use, print the number of the
6293         face as well.
6295 1997-08-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6297         * emacs.c (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
6299 1997-08-10  Eli Zaretskii  <eliz@is.elta.co.il>
6301         * msdos.c (Qbackground_color, Qforeground_color): Define vars.
6303         * dosfns.c (Finsert_startup_screen): Call `insert_char' with a
6304         single argument.
6306 1997-08-10  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6308         * coding.h (struct iso2022_spec): New member expected_charsets.
6309         (CODING_SPEC_ISO_EXPECTED_CHARSETS): New macro.
6311         * coding.c (Fset_terminal_coding_system_internal): Set
6312         CODING_FLAG_ISO_SAFE in terminal_coding.flags.
6313         (ENCODE_ISO_CHARACTER_DIMENSION1): Check
6314         CODING_SPEC_ISO_EXPECTED_CHARSETS.
6315         (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6317 1997-08-10  Kenichi Handa  <handa@etl.go.jp>
6319         * term.c (encode_terminal_code): Use safe_terminal_coding if
6320         terminal_coding seems to encode Emacs' internal code as is.
6321         (write_glyphs): Likewise.
6323         * coding.c (ENCODE_ISO_CHARACTER_DIMENSION1): Pay attention to
6324         CODING_FLAG_ISO_SAFE.
6325         (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
6326         (safe_terminal_coding): New variable.
6327         (Fset_safe_terminal_coding_system_internal): New function.
6328         (init_coding_once): Initilize safe_terminal_coding.
6329         (syms_of_coding): Declare set-safe-terminal-coding-system as a
6330         Lisp function.
6332         * coding.h (CODING_FLAG_ISO_SAFE): New macro.
6333         (CODING_INHIBIT_CHARACTER_SUBSTITUTION): New macro.
6334         coding.h (safe_terminal_coding): Extern it.
6336 1997-08-10  Kenichi Handa  <handa@etl.go.jp>
6338         * coding.c (Vmicrosoft_code_table): New variable.
6339         (syms_of_coding): Declare it as a Lisp variable and initialize it.
6340         (detect_coding_mask): Pay attention to Vmicrosoft_code_table.
6342         * xterm.c (dumpglyphs): Pay attention to
6343         Vignore_relative_composition.
6345         * fontset.h (Vignore_relative_composition): Extern it.
6347         * fontset.c (Vignore_relative_composition): New variable.
6348         (syms_of_fontset): Doc-string of use-default-ascent modified.
6349         Declare ignore-relative-composition as a Lisp variable.
6351         * fns.c (concat): Pay attention to multibyte characters when
6352         TARGET_TYPE is Lisp_String.
6354 1997-08-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6356         * sysdep.c (init_system_name): If domain is null, don't add a period.
6358 1997-08-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6360         * buffer.c (init_buffer): Use getcwd instead of getwd, if available.
6362         * eval.c (do_autoload): Require a suffix for the file.
6364         * lread.c (read1): Handle read_escape making a multibyte character.
6366         * strftime.c (gmtime_r, localtime_r): Undef before defining.
6368         * fns.c (Frequire): Don't insist on a suffix
6369         if the file name argument was explicitly specified.
6371 1997-08-07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6373         * Makefile.in (lisp, shortlisp): Add bindings.el and case-table.elc.
6375         * xdisp.c (redisplay_window): Fix access to w->last_point{,_[xy]}.
6377         * lisp.h (Flocal_variable_p, Ffind_operation_coding_system): Declared.
6378         (find_symbol_value): Fix declaration.
6380 1997-08-07  Erik Naggum  <erik@naggum.no>
6382         * emacs.c (main): Remove call to init_filelock.
6383         * filelock.c (init_filelock): Function deleted.
6384         * paths.in (PATH_LOCK): Definition deleted.
6386 1997-08-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6388         * xrdb.c (X_DEFAULT_SEARCH_PATH): Add /usr/X11R6/lib alternatives.
6390         * editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): 
6391         Don't set clip_changed if the new values are the same as the old.
6393         * fileio.c (Fwrite_region): Turn off the feature of checking
6394         whether another buffer has locked this file.
6396         * xdisp.c (COERCE_MARKER): New macro.
6397         (redisplay_internal): Coerce Voverlay_arrow_position to a number
6398         to record it in last_arrow_position.
6399         (mark_window_display_accurate, redisplay_window): Likewise.
6400         (redisplay_window): Don't do the "only point has change" optimization
6401         if the overlay arrow is in this buffer.
6403 1997-08-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6405         * unexelf.c (unexec): Cast 1st arg in mmap calls.
6407         * sysdep.c (init_sys_modes) [mips || HAVE_TCATTR]:
6408         Handle flow_control by setting VSTART and VSTOP characters.
6410         * filelock.c (lock_file_1, lock_file): Add casts.
6412         * xselect.c (syms_of_xselect): Doc syntax fixes.
6414         * coding.c (syms_of_coding): Doc syntax fixes.
6416         * xdisp.c (redisplay_internal): Count only visible frames at first.
6418         * xdisp.c (redisplay_internal): Count all visible frames in new_count.
6420 1997-08-05  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6422         * coding.c (detect_eol_type): Fix previous change.
6424 1997-08-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6426         * fontset.c (syms_of_fontset): Doc fixes.
6428 1997-08-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6430         * indent.c (current_column): Update ptr differently at newline
6431         so that current_column_bol_cache is set properly.
6433 1997-08-04  Kenichi Handa  <handa@etl.go.jp>
6435         * coding.c (detect_eol_type): If EOL representation does not
6436         seem consistent, use no conversion.
6438         * process.c (Fset_process_coding_system): Doc-string modified.
6439         (Fprocess_coding_system): Likewise.
6441         * callproc.c (Fcall_process_region): Use cdr part (not car part)
6442         of Vdefault_process_coding_system for writing out text.
6444         * coding.c (detect_coding_iso2022): Do not exclude posibility of
6445         7-bit encoding when designation to G1 occurs.  If CSI, SS2, or SS3
6446         is found, return CODING_CATEGORY_MASK_ISO_8_ELSE.
6447         (Fdetect_coding_region): Doc-string modified.
6449 1997-08-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6451         * xfaces.c (merge_face_list): New function.
6452         (compute_char_face): Use merge_face_list.
6453         Allow (foreground-color . COLOR) and (background-color . COLOR)
6454         in place of a face.
6456 1997-08-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6458         * m/intel386.h (HAVE_ALLOCA): Don't define this
6459         on USG5_4 if not using GNU C.
6461         * xdisp.c (redisplay_internal): Count number of visible frames
6462         instead of number of frames that were redisplayed.
6464         * m/ibmrs6000.h (LD_SWITCH_MACHINE):
6465         Add #ifdef emacs around all the definitions of this.
6467         * lisp.h (Fload): Update declaration.
6469 1997-08-03  Kenichi HANDA  <handa@etl.go.jp>
6471         * coding.h (CODING_CATEGORY_MASK_BINARY): New macro.
6473         * coding.c (detect_coding_mask): Include
6474         CODING_CATEGORY_MASK_BINARY in the return value if any 8-bit code
6475         is found.
6477         * xfns.c (x_set_frame_parameters): Heading comment fixed.
6478         (x_default_parameter): Likewise.
6480         * xselect.c (Vclipboard_coding_system): New variable.
6481         (selection_data_to_lisp_data): Decode text by
6482         Vclipboard_coding_system.
6483         (lisp_data_to_selection_data): Encode text by
6484         Vclipboard_coding_system.
6485         (syms_of_xselect): Declare clipboard-coding-system as Lisp
6486         variable and initialize it.
6488 1997-08-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6490         * coding.c: Doc fixes.
6491         
6492         * lread.c (Fload): New optional arg MUST-SUFFIX.
6493         * fns.c (Frequire): Pass t for the MUST-SUFFIX arg to Fload.
6494         * eval.c (do_autoload): Pass new arg to Fload.
6496         * indent.c (compute_motion): Correct the criterion for when to
6497         move back 1 space when we terminate just after continuing the line.
6499 1997-07-31  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6501         * coding.c (encode_coding_iso2022): When source data ends not at
6502         character boundardy, set data in coding->carryover correctly, and
6503         set SRC to SRC_END.
6504         (encode_coding_sjis_big5): Likewise.
6505         (encode_coding): Don't set coding->carryover_size to 0.
6507         * fileio.c (Fwrite_region): Don't try to flush out a data twice.
6509 1997-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6511         * xdisp.c (redisplay_window): Fix previous change.
6513         * dispnew.c (direct_output_for_insert): Set last_point_x properly.
6515 1997-07-31  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6517         * xterm.c (x_list_fonts): Request at least 10 fonts by XListFonts.
6519         * coding.c (encode_coding_iso2022): Write out invalid multibyte
6520         forms in a buffer as is.
6521         (detect_coding_mask): If ISO_CODE_CSI appears in an invalid
6522         sequence, ignore it.
6524 1997-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6526         * xdisp.c (redisplay_window): Fix one-off in handling
6527         scroll-conservatively for scrolling up.
6529         * filelock.c (current_lock_owner): Don't try to delete lock
6530         if this or another existing process owns it!
6532 1997-07-31  enami tsugutomo  <enami@but-b.or.jp>
6534         * process.c (read_process_output): Don't call setup_coding_system
6535         for proc_decode_coding_system[channel].  It is already done in
6536         detect_coding called via decode_coding.
6538 1997-07-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6540         * filelock.c (lock_if_free): Don't loop; for strange error, return -1.
6542         * s/sunos4shr.h (LIBXMU): Alternative definition if CANNOT_DUMP.
6544         * Makefile.in (LDFLAGS, CPPFLAGS): Get them from configure like CFLAGS.
6546 1997-07-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6548         * process.c (wait_reading_process_input): Call detect_input_pending
6549         whenever read_kbd is 0, not just when wait_for_cell.
6551         * xdisp.c (decode_mode_spec_coding): If multibyte chars disabled.
6552         display only the eol flag.
6554 1997-07-29  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6556         * xterm.c (x_list_fonts): Reject a font whose min_bounds.width is 0.
6557         
6558 1997-07-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6560         * emacs.c (sort_args): Check properly for `--'.
6562         * xdisp.c (redisplay_window): Fix previous change.
6564         * cm.h, sysdep.c, terminfo.c [HAVE_LIBNCURSES]:
6565         Declare ospeed as short, unless NCURSES_OSPEED_T.
6567         * xdisp.c (redisplay_window): When text has not changed,
6568         call compute_motion starting from the former PT if possible.
6569         If PT is unchanged from w->last_point, don't do compute_motion at all.
6571 1997-07-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6573         * editfns.c (Fformat_time_string): Don't hang if strftime produces
6574         an empty string.  Fix arguments of second call to strftime.
6575         Remove check for result being negative, this cannot happen.
6577         * xterm.c (x_new_font): Follow the change in
6578         x_set_scroll_bar_width and make the scroll bar at least 14 pixels
6579         wide.
6581         * xfns.c (Fx_create_frame): Initialize fontset in output_data.
6583 1997-07-28  Dan Nicolaescu  <done@ece.arizona.edu>
6585         * charset.c (non_ascii_char_to_string): Fix typos.
6587 1997-07-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6589         * callproc.c (syms_of_callproc):
6590         Don't init Vtemp_file_name_pattern here.
6592         * lread.c (map_obarray): Don't crash if something strange
6593         is in the obarray.
6595 1997-07-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6597         * xterm.c (x_term_init) [! HAVE_X11R5]: Don't try to use
6598         XtCvtStringToFont.
6600         * print.c (strout, printchar): Handle minibuffer_auto_raise.
6602 1997-07-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6604         * fileio.c (Fwrite_region): Fix previous change.
6606 1997-07-25  NIIBE Yutaka  <gniibe@mri.co.jp>
6608         * indent.c (compute_motion): Handle display table correctly for
6609         multibyte characters.
6611 1997-07-25  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
6613         * fontset.c (syms_of_fontset): Set Vhighlight_wrong_size_font to
6614         Qnil.
6616         * coding.h (CODING_REQUIRE_TEXT_CONVERSION,
6617         CODING_REQUIRE_EOL_CONVERSION, CODING_REQUIRE_CONVERSION): Deleted.
6618         (CODING_REQUIRE_NO_CONVERSION): New macro.
6619         (CODING_MAY_REQUIRE_NO_CONVERSION): New macro.
6621         * fileio.c (Finsert_file_contents): Use new macros
6622         CODING_MAY_REQUIRE_NO_CONVERSION and
6623         CODING_MAY_REQUIRE_NO_CONVERSION.
6624         (Fwrite_region): Correct the logic for deciding coding system.
6626         * process.c (read_process_output): Use new macro
6627         CODING_REQUIRE_NO_CONVERSION
6628         (send_process): Use new macro CODING_MAY_REQUIRE_NO_CONVERSION.
6630         * xterm.c (dumpglyphs): Check the member `encoding' of *FONTP while
6631         setting `byte1' and `byte2' members of *CP.
6633 1997-07-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6635         * Makefile.in (${lispsource}TAGS): Specify ETAGS var in inner make.
6637         * print.c (Vprint_gensym_alist): Renamed from printed_gensyms.
6638         (Vprint_gensym): Now a Lisp_Object; Renamed from print_gensym.
6639         (syms_of_print): Set up both as Lisp vars.
6640         (PRINTPREPARE, PRINTFINISH): Don't clear Vprint_gensym_alist
6641         if Vprint_gensym is a cons cell.
6643         * Makefile.in (../src/$(OLDXMENU)): New target.
6645         * xselect.c (selection_data_to_lisp_data):
6646         Make the vector the right size, when format is 16.
6648         * emacs.c (main): Make --help msg end in newline.
6650         * xfns.c (Fx_create_frame): Don't fail to initialize `font'.
6652         * syntax.c (Fforward_comment): When count1 is negative,
6653         return nil if FROM reaches STOP.
6655         * editfns.c (Fcurrent_message): New function.
6656         (syms_of_editfns): defsubr it.
6658 1997-07-23  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
6660         * xterm.c (XTread_socket): Trap the BadMatch error that can occur
6661         after a XSetInputFocus if window is not visible.
6663 1997-07-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6665         * xterm.c (XTread_socket) <ClientMessage>: Use FRAME_X_WINDOW
6666         when calling XSetInputFocus.
6668         * buffer.c (syms_of_buffer): Doc fix.
6670         * eval.c (syms_of_eval): Doc fix.
6672 1997-07-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6674         * xdisp.c (display_text_line): Don't count minibuf_prompt_width
6675         twice in taboffset.
6677         * coding.c (syms_of_coding): Doc fix.
6679 1997-07-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6681         * s/sol2.h (LIBS_SYSTEM): Undo previous change.
6682         (HAVE_LIBKSTAT): Define it.
6684         * minibuf.c (choose_minibuf_frame_1): New function.
6685         (read_minibuf): Make an unwind protect to run that.
6686         (read_minibuf_unwind): Don't call choose_minibuf_frame here.
6688         * keyboard.c (read_char): Delete spurious UNGCPRO.
6689         Add UNGCPRO before the longjmps to wrong_kboard_jmpbuf.
6690         Initialize c before the GCPRO1.
6691         
6692         * frame.c (Fdelete_frame): Undo previous change.
6694         * s/hpux8.h (LD_SWITCH_SYSTEM_TEMACS): Define this
6695         instead of LD_SWITCH_SYSTEM.
6696         
6697         * window.c (set_window_height): Allow all heights > 0
6698         for minibuffer windows.
6699         (change_window_height): Fix one-off comparing DELTA with MAXIMUM.
6701         * xfns.c (Fx_create_frame): Default vertical-scroll-bars
6702         as symbol, not boolean.
6704 1997-07-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6706         * process.c (wait_reading_process_input): Initialize total_read.
6707         Check for read_process_output giving back EIO.
6709         * keyboard.c (Fcommand_execute): gcpro c.
6711 1997-07-20  Geoff Voelker  <voelker@cs.washington.edu>
6713         * w32term.c (w32_clear_end_of_line): Include scroll bar width.
6715 1997-07-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6717         * s/irix6-0.h: Undo previous change.
6719         * xterm.c (XTread_socket) <ClientMessage>:
6720         Don't use FRAME_XIC if it is null, here.
6722         * puresize.h (BASE_PURESIZE): Increased to 410000.
6724         * xdisp.c (redisplay_internal): Calculate new_count properly
6725         for non-window displays.
6727 1997-07-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6729         * minibuf.c (Fcompleting_read): gcpro def.
6731         * xterm.c (XTread_socket) <ClientMessage>:
6732         For wm_take_focus, use x_any_window_to_frame.
6734         * fileio.c (Fread_file_name): If Fcompleting_read return the default
6735         because the buffer want empty, replace that with an empty string.
6737 1997-07-18  Simon Marshall  <simon@diazepam.gnu.ai.mit.edu>
6739         * data.c: Many doc fixes.
6741 1997-07-17  Geoff Voelker  <voelker@cs.washington.edu>
6743         * coding.c (Ffind_operation_coding_system): Use Ffboundp to
6744         check for a function entry.
6746         * fileio.c (Finsert_file_contents) [DOS_NT]: Use the coding
6747         system to determine buffer_file_type.
6748         (Fwrite_region): Only use Qbuffer_file_coding_system
6749         before checking file-coding-system-alist if non-nil.
6750         (Fwrite_region) [DOS_NT]: Delete conditional code.
6752 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6754         * dispnew.c (direct_output_forward_char): Reenable check against
6755         truncated text at end of line.
6757         * xdisp.c (display_string): Ignore W->left if OBEY_WINDOW_WIDTH is
6758         zero.
6760 1997-07-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6762         * xterm.c (dumpglyphs): Use 8-bit output to X, rather than 16-bit,
6763         if the character values permit that.
6765         * .gdbinit (xcar, xcdr): Print with /x.
6767         * fileio.c (Fdo_auto_save): Temporarily clear minibuffer_auto_raise.
6769 1997-07-17  enami tsugutomo  <enami@but-b.or.jp>
6771         * xdisp.c (decode_mode_spec_coding): Fix typo; use `val' instead
6772         of `coding-system'.
6774 1997-07-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6776         * xdisp.c (display_text_line): Handle the case of point being in
6777         the invisible part of the line beyond the left margin.
6779 1997-07-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6781         * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix previous change.
6783 1997-07-15  Kenichi HANDA  <handa@etl.go.jp>
6785         * coding.h (CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
6786         (CODING_CATEGORY_IDX_ISO_7_ELSE): New macro.
6787         (CODING_CATEGORY_IDX_ISO_8_ELSE): New macro
6788         (CODING_CATEGORY_MASK_ISO_ELSE): This macro is deleted.
6789         (CODING_CATEGORY_MASK_ISO_7_ELSE): New macro.
6790         (CODING_CATEGORY_MASK_ISO_8_ELSE): New macro.
6791         (CODING_CATEGORY_MASK_ANY): Adjusted for the above change.
6793         * coding.c (detect_coding_iso2022): Distinguish
6794         coding-category-iso-7-else and coding-category-iso-8-else.
6796 1997-07-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6798         * unexalpha.c (unexec):
6799         Don't call update_dynamic_symbols if static link.
6801         * keyboard.c (read_char): Call timer_stop_idle unconditionally
6802         at non_reread.
6804         * keyboard.c (make_lispy_event): Distinguish S-SPC from SPC.
6806         * cmds.c (internal_self_insert): Use replace_range when
6807         number_to_delete is nonzero.
6809         * insdel.c (replace_range): New function.
6811         * keyboard.c (make_lispy_event): Handle non_ascii_keystroke
6812         in the ASCII range.
6814         * xterm.c (XTread_socket): Treat SPC as a function key.
6816 1997-07-13  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
6818         * xterm.c (x_draw_box): Use scratch_cursor_gc to draw the cursor
6819         box using the color specified by cursor_pixel.
6821 1997-07-13  Eli Zaretskii  <eliz@is.elta.co.il>
6823         * fileio.c (Fwrite_region) [DOS_NT]: Always use binary mode since
6824         coding conversion now takes care of NL -> CRLF.
6826         * callproc.c (Fcall_process) [MSDOS]: Request EOL conversion of
6827         the process output, unless we were promised it is binary.
6829         * coding.c: Substantial comment changes.
6831         * lread.c (init_lread): Don't add to load-path lisp subdirectories
6832         of the source tree if the parent of the source was moved after
6833         dumping Emacs.
6835 1997-07-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6837         * search.c (compile_pattern_1): Don't declare val with CONST.
6839         * cmds.c (internal_self_insert): When overwriting, insert first
6840         and then delete.
6842 1997-07-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6844         * s/irix4-0.h (XPointer): Define as macro.
6846         * emacs.c (main): Use setrlimit only if RLIMIT_STACK.
6848 1997-07-11  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
6850         * xdisp.c (decode_mode_spec): Initialize and use `p' (for the termcap
6851         case).
6853         * dispnew.c (init_display): Go ahead and prepare for
6854         a X configuration in the CANNOT_DUMP case.
6856 1997-07-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6858         * editfns.c (get_system_name): Don't crash if Vsystem_name does
6859         not contain a string.
6860         * filelock.c (lock_file_1): Don't crash if Fuser_login_name or
6861         Fsystem_name don't return strings.
6862         (current_lock_owner): Likewise.
6864         * ralloc.c (r_alloc_reinit): New function.
6865         * emacs.c (main) [DOUG_LEA_MALLOC]: Call it when restarting a
6866         dumped Emacs.
6868 1997-07-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6870         * m/news-r6.h: Renamed from news-risc6.h.
6872 1997-07-10  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
6874         * xdisp.c (display_text_line): Exit the outer loop immediately
6875         when the right margin has been reached.
6877         * lisp.h (EXFUN, P_): New definitions.  Use them to declare
6878         prototypes for external functions.
6880         * xterm.c (dumpglyphs): Declare local variable first_ch as
6881         Lisp_Object, not int.
6882         * xselect.c (selection_data_to_lisp_data): Convert Fmake_vector
6883         and Faset arguments to Lisp_Integer.
6884         (clean_local_selection_data): Likewise.
6885         * x-list-font.c (Fx_list_fonts): Fix Fnconc argument.
6886         * window.c (Fcoordinates_in_window_p): Convert Fcons arguments to
6887         Lisp_Integer.
6888         (save_window_save): Convert Fset_marker argument to Lisp_Integer.
6889         * textprop.c (interval_of): Convert args_out_of_range arguments to
6890         Lisp_Integer.
6891         * syntax.c (init_syntax_once): Convert Fmake_vector argument to
6892         Lisp_Integer.
6893         * process.c (Fprocess_send_region): Convert move_gap argument to int.
6894         * mocklisp.c (Fml_arg): Add missing Fread_string arguments.
6895         * minibuf.c (Fread_from_minibuffer): Remove extra get_keymap argument.
6896         (Fminibuffer_complete): Convert Fset_window_start argument to
6897         Lisp_Integer.
6898         * keyboard.c (command_loop_1): Add missing message2 argument.
6899         (menu_bar_items): Add missing get_keyelt argument.
6900         (follow_key): Likewise.
6901         (read_key_sequence): Likewise.
6902         * intervals.c (set_point): Convert call2 arguments to Lisp_Integer.
6903         * fileio.c (Fwrite_region): Fix call2 argument.
6904         (Fread_file_name): Convert Fcons argument to Lisp_Integer.
6905         * editfns.c (Fcurrent_time_zone): Convert Fmake_list argument to
6906         Lisp_Integer.
6907         (Ftranspose_regions): Convert Fset_text_properties arguments to
6908         Lisp_Integer.
6909         * doc.c (Fsubstitute_command_keys): Add missing describe_map_tree
6910         argument.
6911         * coding.c (Ffind_coding_system): Use call1, not call2.
6912         * cmds.c (Fdelete_backward_char): Convert Finsert_char argument to
6913         Lisp_Integer and add missing argument.
6914         (internal_self_insert): Convert Fmove_to_column argument to
6915         Lisp_Integer and add missing argument.
6916         * ccl.c (Fregister_ccl_program): Convert Fmake_vector argument to
6917         Lisp_Integer.
6918         (syms_of_ccl): Likewise.
6919         * category.h (CATEGORY_DOCSTRING): Convert Fchar_table_extra_slot
6920         argument to Lisp_Integer.
6921         (CATEGORY_TABLE_VERSION): Likewise.
6922         * buffer.c (set_buffer_internal_1): Convert Fset_marker argument
6923         to Lisp_Integer.
6924         (set_buffer_temp): Likewise.
6925         (fix_overlays_in_range): Likewise.
6927         * xdisp.c (message2_nolog): Don't call fwrite will null string.
6929 1997-07-10  Geoff Voelker  <voelker@cs.washington.edu>
6931         * w32.c (sys_shutdown): New function.
6932         * s/ms-win32.h: Define HAVE_SHUTDOWN.
6933         
6934 1997-07-10  Eli Zaretskii  <eliz@pogo.gnu.ai.mit.edu>
6936         * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer
6937         only if HAVE_X_WINDOWS is defined.
6939 1997-07-09  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
6941         * xdisp.c (echo_area_display): Don't offset using left-side
6942         scroll bar width because it is included in the width; clear
6943         the entire line.
6945 1997-07-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6947         * process.c (read_process_output): Add cast.
6949         * filelock.c (current_lock_owner, lock_file_1): Add casts.
6951         * xdisp.c (redisplay_internal): Fix previous change.
6953         * s/irix4-0.h (C_SWITCH_SYSTEM): Add -Wf,-XNh option.
6955         * s/ms-w32.h: Don't define HAVE_SHUTDOWN.
6957         * frame.c (Fdelete_frame): Always err for deleting the only frame.
6959 1997-07-09  Kenichi HANDA  <handa@etl.go.jp>
6961         * fontset.c (Ffont_info): Make vector of correct size.
6963         * xterm.c (x_load_font): Get value of fontp->height from
6964         ascent and descent members of structure font->max_bounds.
6965         (dumpglyphs): Draw background by FillSolid if a font is too short. 
6967 1997-07-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6969         * xterm.c (x_term_init): Don't use initializer for null_bits.
6971         * cm.h, sysdep.c, terminfo.c: Fix previous change.
6973         * fns.c (syms_of_fns): Fix previous change.
6975         * xdisp.c (decode_mode_spec) <z,Z>: Display buffer coding system
6976         last of the three.
6978         * doprnt.c: Use #ifdef to test STDC_HEADERS.
6980         * Makefile.in (shortlisp): Fix typo.
6982 1997-07-08  enami tsugutomo  <enami@but-b.or.jp>
6984         * emacs.c (main) [__NetBSD__]: Round up new stack limit to page bdry.
6986         * fileio.c (Finsert_file_contents): Give up match-end only if
6987         coding requires conversion.  Adjust end of non-matching text area
6988         to multibyte character boundary if enable_multibyte_character is
6989         non-nil.
6991 1997-07-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
6993         * xdisp.c (decode_mode_spec_coding): Really don't display
6994         EOL indicator when eol_flag is 0.
6995         (echo_area_display): Use proper width when scroll bars on left.
6997         * syntax.h (struct gl_state_s): New field `offset'.
6998         (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set offset field.
6999         (SETUP_SYNTAX_TABLE): Clear offset field.
7000         (UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): 
7001         (UPDATE_SYNTAX_TABLE_BACKWARD): Use the offset field.
7003         * s/sol2.h (LIBS_SYSTEM): Add -lkvm and -lelf.
7005 1997-07-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7007         * editfns.c (Fuser_full_name): Declare p, q and r as unsigned char *.
7009         * xterm.c (XTread_socket) <KeyPress>: Call XFilterEvent.
7011         * terminfo.c (ospeed):
7012         Define as short, unless HAVE_TERMIOS_H and LINUX.
7014         * cm.h (ospeed): Declare as short unless HAVE_TERMIOS_H and LINUX.
7015         * sysdep.c (ospeed): Likewise.
7017         * window.c: Include blockinput.h.
7018         (Fset_window_configuration): Block input around frobbing the frame.
7019         Preseve point in the current buffer if we do not switch
7020         to a different one.
7022 1997-07-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7024         * xdisp.c (redisplay_internal): Fix previous change.
7025         (echo_area_display): Use proper vpos when clearing extra minibuf lines.
7027 1997-07-04  Kenichi HANDA  <handa@etl.go.jp>
7029         * callproc.c (Fcall_process): If enable-multibyte-characters is
7030         nil, do not encode arguments for process, and decode output of
7031         process by emacs-mule.
7032         (Fcall_process_region): If enable-multibyte-characters is nil, do
7033         not encode text to be given to process, and decode output of
7034         process by emacs-mule.
7036         * process.c (Fstart_process): If enable-multibyte-characters is
7037         nil, set coding system for decoding output of process to
7038         emacs-mule, and set coding system for encoding to nil.
7039         (Fopen_network_stream): If enable-multibyte-characters is nil, set
7040         coding systems for decoding and encoding to nil.
7041         
7042         * fileio.c (Finsert_file_contents): If enable-multibyte-characters
7043         is nil, decode character code by emacs-mule.
7044         (Fwrite_region): Use buffer-file-coding-system for encoding if
7045         enable-multibyte-characters is nil.
7047         * coding.c (Qemacs_mule, inhibit_eol_conversion): New variables.
7048         (setup_coding_system): If inhibit_eol_conversion is 0, set
7049         coding->eol_type to CODING_EOL_LF.
7050         (syms_of_coding): Initialize and staticpro Qemacs_mule.  Change
7051         error-message property of coding-system-error.  Declare
7052         inhibit-eol-conversion as Lisp variable.
7053         (system_eol_type): New variable.
7054         (init_coding_once): Initialize it.
7055         (ENCODE_SJIS_BIG5_CHARACTER): Bug in encoding a BIG5 character
7056         fixed.
7058         * coding.h (Qemacs_mule): Extern it.
7060         * xterm.c (x_list_fonts): Initialize the variable LIST to Qnil.
7062 1997-07-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7064         * xdisp.c (display_menu_bar): Always pass W to display_string.
7066         * unexalpha.c (update_dynamic_symbols): Add cast when setting reladdr.
7068         * sysdep.c (init_system_name): Don't be fooled if getdomainname
7069         string starts with a period.
7071 1997-07-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7073         * xdisp.c (redisplay_internal): At the end, if more frames have
7074         become visible, repeat the redisplay.
7075         (decode_mode_spec): Don't display subprocess coding systems.
7076         Don't display EOL for keyboard and terminal coding systems.
7078         * xfns.c (x_set_font): Funcall Qface_set_after_frame_default.
7079         (Qface_set_after_frame_default): New variable.
7080         (syms_of_xfns): Initialize and staticpro it.
7082         * xterm.c (x_make_frame_visible): Don't move the frame
7083         if it was iconified--only if it was invisible.
7085 1997-07-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7087         * gmalloc.c: Rename macro __P to PP.
7089         * floatfns.c, data.c, doprnt.c: Include float.h before lisp.h.
7091         * dired.c (Ffile_attributes): Use cast to avoid warnings.
7093         * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Treat nil like a buffer.
7095         * lread.c (Vpreloaded_file_list): New variable.
7096         (syms_of_lread): Set up Lisp variable.
7097         (Fload): Add to Vpreloaded_file_list, if dumping.
7099 1997-07-04  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7101         * editfns.c (Fformat): Add second argument in call to Ftruncate.
7103         * alloc.c, buffer.c, casefiddle.c, casetab.c, category.c,
7104         category.h, ccl.c, coding.c, editfns.c, fileio.c, fns.c, indent.c,
7105         intervals.c, intervals.h, keymap.c, lisp.h, minibuf.c, print.c,
7106         syntax.c, syntax.h, sysdep.c, textprop.c, xfns.c: Fix numerous
7107         bugs with inappropriate mixing of Lisp_Object with int.
7108         * config.in (RE_TRANSLATE): Define to extract integers from
7109         array of Lisp_Objects.
7111 1997-07-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7113         * buffer.c (overlay_strings): Finish up previous change.
7115         * Makefile.in (lisp, shortlisp): Some files moved to subdirs.
7117 1997-07-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7119         * s/sunos4shr.h (LD_SWITCH_SYSTEM_TEMACS): Add #undef.
7121         * syssignal.h [sigmask] (SIGEMPTYMASK): Define to use sigmask.
7123         * eval.c (Fsignal, find_handler_clause): If ERROR_SYMBOL
7124         is nil, assume it's in the car of DATA.
7125         * alloc.c (memory_full): Pass Qnil to Fsignal for ERROR_SYMBOL.
7127         * s/sunos4-0.h (LD_SWITCH_SYSTEM_TEMACS): Defined.  Move -e here.
7128         (LD_SWITCH_SYSTEM): Don't use -e option here.
7130         * Makefile.in (ALL_LDFLAGS): Use LD_SWITCH_SYSTEM_TEMACS.
7132 1997-07-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7134         * process.c (send_process): Make buf and temp_buf  `unsigned char *'.
7136         * buffer.c (overlay_strings): Use unsigned char for things
7137         that relate to overlay_str_buf.
7139         * syssignal.h (sigpause): Don't define if already defined.
7141         * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable.
7142         
7143 1997-07-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
7145         * Makefile.in (lisp, shortlisp): Add widget.elc.
7147 1997-07-02  Kenichi Handa  <handa@etl.go.jp>
7149         * xselect.c (selection_data_to_lisp_data): Call free instead of
7150         xfree.
7152         * coding.h (struct coding_system): New members
7153         character_unification_table_for_decode and
7154         character_unification_table_for_encode.
7156         * coding.c (Vstandard_character_unification_table_for_decode):
7157         Name changed from Vstandard_character_unification_table_for_read.
7158         (Vstandard_character_unification_table_for_encode): Name changed
7159         from Vstandard_character_unification_table_for_write.
7160         (Qcharacter_unification_table_for_decode): New variable.
7161         (Qcharacter_unification_table_for_encode): New variable.
7162         (decode_coding_iso2022): Adjusted for the above name change.
7163         (encode_coding_iso2022): Likewise.
7164         (ENCODE_ISO_CHARACTER): Bug of handling return value of unify_char
7165         fixed.
7166         (DECODE_SJIS_BIG5_CHARACTER): New macro.
7167         (decode_coding_sjis_big5): Handle character unificatoin table.
7168         Use macro DECODE_SJIS_BIG5_CHARACTER.
7169         (encode_coding_sjis_big5): Handle character unificatoin table.
7170         Use macro ENCODE_SJIS_BIG5_CHARACTER.
7171         (setup_coding_system): Handle members
7172         character_unification_table_for_decode and
7173         character_unification_table_for_encode of the variable coding.
7174         (Ffind_operation_coding_system): Renamed from Ffind_coding_system.
7175         (syms_of_coding): Initialize and staticpro
7176         Qcharacter_unification_table_for_decode and
7177         Qcharacter_unification_table_for_decode.  Declare
7178         Ffind_operation_coding_system as Lisp functions.  Declare
7179         Vstandard_character_unification_table_for_decode and
7180         Vstandard_character_unification_table_for_encode as Lisp
7181         variables.
7183         * charset.c (Fchar_width): Check if the current buffer has display
7184         table.
7186         * fileio.c (Finsert_file_contents): Doc-string fixed.  Call
7187         Ffind_operation_coding_system.
7188         (Fwrite_region):  Call Ffind_operation_coding_system.
7190         * callproc.c: Call Ffind_operation_coding_system.
7192         * process.c (Fstart_process): Call Ffind_operation_coding_system.
7193         (Fopen_network_stream): Likewise.
7195         * fontset.h: Move "#endif /* _FONTSET_H */" at the tail.
7197 1997-07-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7199         * sysdep.c (init_system_name): Don't accept "(none)" as domain.
7201         * xterm.c (x_make_frame_visible): Check has_been_visible
7202         field before the UNBLOCK_INPUT.
7204 1997-07-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7206         * coding.c (syms_of_coding): Change initial values of
7207         eol_mnemonic_... variables.
7209         * xdisp.c (decode_mode_spec_coding): Clean up handling of
7210         eol conversions.
7212         * .gdbinit (xcons): Print car and cdr in hex.
7213         (nextcons): New command.
7215         * xfns.c (x_set_scroll_bar_width): By default, use enough
7216         columns to give 14 or more pixels.
7218 1997-06-30  Geoff Voelker  <voelker@cs.washington.edu>
7220         * emacs.c (decode_env_path): Ensure path elements use proper
7221         directory separator.
7223         * keyboard.c (make_lispy_event):
7224         Check that ISO_FUNCTION_KEY_OFFSET is defined.
7226         * process.c (READ_CHILD_OUTPUT): Deleted.
7227         (read_process_output): Use read instead of READ_CHILD_OUTPUT.
7229         * makefile.nt (OBJ2): Include new source files.
7230         
7231         * s/ms-w32.h: Duplicate undefs from config.in to check completeness.
7232         (STDC_HEADERS, HAVE_TZNAME, HAVE_MKTIME): Define to have a value.
7233         (HAVE_GETPAGESIZE, HAVE_SETLOCALE, HAVE_SHUTDOWN, HAVE_TZSET,
7234         HAVE_LIMITS_H, HAVE_STRERROR): Define.
7235         [HAVE_NTGUI] (HAVE_MENUS): Define.
7236         (SYSTEM_PURESIZE_EXTRA): Increase value.
7238         * unexw32.c, w32heap.c: Add pragma to force zero initialized 
7239         data into .data segment.
7241         * w32console.c, w32term.c: Include charset.h.
7243         * w32fns.c (syms_of_w32fns): Delete defsubrs of Sfocus_frame and
7244         Sunfocus_frame.
7246         * w32heap.c (getpagesize): Define.
7248 1997-06-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7250         * editfns.c (Fformat_time_string): Move doc string outside DEFUN.
7252         * buffer.c (overlay_str_buf): Declare as unsigned char *.
7254         * fns.c (Fy_or_n_p, Fyes_or_no_p): Obey use_dialog_box.
7255         (use_dialog_box): New variable, controls whether to use dialog boxes.
7256         (syms_of_fns): Set up Lisp variable.
7258 1997-06-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7260         * buffer.c (syms_of_buffer): enable-multibyte-characters is a user var.
7262         * callproc.c (Fcall_process): Fix previous change.
7264         * fns.c (concat): Use XCONS rather than Fcar, Fcdr--for known cons.
7265         (Fassq, assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq): Likewise.
7266         (Fdelete, Fplist_get, mapcar1, Fmember, Fmemq): Likewise.
7268         * lread.c (init_lread): Add leim subdir, like lisp subdir.
7270         * syntax.c (scan_sexps_forward): Split up a complex if-test.
7272         * keyboard.c (read_char): Add a call to swallow_events
7273         when deciding whether to redisplay.
7274         (swallow_events): Add forward declaration.
7276         * sysdep.c [HAVE_TERMIOS_H]: Include termios.h.
7278         * callproc.c (Fcall_process): Avoid storing alloca result
7279         directly into array element.
7281         * process.c (wait_reading_process_input): If wait_for_cell,
7282         do check for keyboard input and swallow events, just don't exit.
7283         (max): New macro.
7284         (wait_reading_process_input): Pass a smaller first arg to select.
7286         * buffer.c (Fbury_buffer): Undo previous change.
7288 1997-06-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7290         * window.c (temp_output_buffer_show):
7291         Copy default-directory from current buffer.
7293         * cm.h (ospeed): Always use `extern' in the declaration.
7295         * Makefile.in (lisp, shortlisp): Some files are in international/.
7297         * unexelf.c [__NetBSD__]: Add some conditionals for NetBSD.
7299         * unexelf1.c: File deleted.
7301 1997-06-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7303         * s/unixware.h: New file.
7305 1997-06-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7307         * fileio.c (Finsert_file_contents):
7308         Pass new arg to prepare_to_modify_buffer.
7310         * insdel.c (prepare_to_modify_buffer, signal_before_change):
7311         New argument PRESERVE_PTR.
7312         (del_range_1): Use PRESERVE_PTR to preserve FROM.
7313         Save the length of the range separately.
7314         (NULL): Define if not defined.
7316 1997-06-23  Karl Heuer  <kwzh@gnu.ai.mit.edu>
7318         * fileio.c (Ffile_directory_p): Doc fix.
7320 1997-06-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7322         * buffer.c (Fbuffer_list): New optional argument FRAME.
7324         * fns.c (Freverse): Simplify.
7326 1997-06-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7328         * s/bsdos3.h: New file.
7329         
7330         * s/bsdos2.h (KERNEL_FILE): New overriding definition.
7332         * keyboard.c (read_avail_input): Check for failure with EIO.
7334         * s/gnu-linux.h (LD_SWITCH_SYSTEM) [__mips__]: Alternate definition.
7336         * m/mips.h: Test __linux__ along with NEWSOS5.
7337         (KERNEL_FILE, UNEXEC): Don't redefine them if __linux__.
7338         [__linux__] (TEXT_START, DATA_START, DATA_SEG_BITS):
7339         Alternate definitions.
7340         
7341         * emacs.c (Fdump_emacs): Bind command-line-processed to nil here.
7343         * xdisp.c (init_xdisp): Pay attention to FRAME_MENU_BAR_LINES.
7345         * emacs.c (Fdump_emacs): Error if not run in batch mode.
7347         * s/hpux10.h (LIBS_TERMCAP): Use -ltermcap instead of -lc.
7349         * unexelf.c [__sony_news && _SYSTYPE_SYSV]: Include sym.h
7350         and sys/elf_mips.h.
7351         (unexec): Add __sony_news && _SYSTYPE_SYSV conditionals.
7352         Add a _nec_ews_svr4 conditional.
7354         * s/newsos6.h: New file.
7356         * m/news-risc6.h: New file.
7358         * frame.c (Fdelete_frame): Clear echo_area_glyphs if it was
7359         in this frame.
7361         * process.c (wait_reading_process_input): Don't check for
7362         keyboard input if wait_for_cell.
7364         * minibuf.c (read_minibuf): New arg allow_props.
7365         If it is 0, discard text properties from the result.  Callers changed.
7366         (minibuffer_allow_text_properties): New variable.
7367         (Fread_from_minibuffer): That variable controls allow_props arg.
7368         (syms_of_minibuf): Set up Lisp var.
7370 1997-06-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7372         * insdel.c (del_range_1): Make markers for TO and FROM
7373         in case prepare_to_modify_buffer changes the text.
7375 1997-06-21  Kenichi Handa  <handa@etl.go.jp>
7377         * fontset.h (font_idx_temp): Extern it.
7378         (FS_LOAD_FONT): New macro.
7380         * fontset.c (font_idx_temp): New temprary variable used in
7381         FS_LOAD_FONT.
7383         * xfaces.c (Fset_face_attribute_internal): Use FS_LOAD_FONT
7384         instead of calling fs_load_font directly.
7386         * xterm.c (dumpglyphs): Use FS_LOAD_FONT.
7387         (x_new_fontset): If frame F has already using FONTSET, avoid the
7388         duplicated work.  Use FS_LOAD_FONT.
7389         (x_list_fonts): Call Fassoc to search Valternate_charset_table.
7390         (x_load_font): Get around a buf of XListFonts
7392 1997-06-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7394         * print.c (Ferror_message_string): Optimize (error STRING) case.
7396 1997-06-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7398         * process.c (Fprocess_send_eof): Properly conditionalize prev. change.
7400 1997-06-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7402         * process.c (Fprocess_send_eof): Use shutdown, if it's a socket.
7403         Don't close the output descriptor if that is also the input descriptor.
7404         
7405         * config.in (HAVE_SHUTDOWN): Add #undef.
7407         * editfns.c (Fchar_before): Validate N after decrementing.
7408         Don't use POS as integer.
7410 1997-06-18  Kenichi Handa  <handa@etl.go.jp>
7412         * coding.c (detect_coding_iso2022): Initilize mask correctly.
7414         * fns.c (concat): Pay attention to multibyte characters when
7415         TARGET_TYPE is Lisp_String.
7417 1997-06-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7419         * process.c (wait_reading_process_input): Fix previous change.
7421 1997-06-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7423         * fileio.c (Fdo_auto_save): Use stdio to write the save-list file.
7425         * fileio.c (Finsert_file_contents): Don't give up on the fast
7426         replace method if the coding remains undecided.
7428 1997-06-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7430         * process.c (wait_reading_process_input): When exiting because
7431         the process WAIT_PROC has terminated, first read all its output. 
7433 1997-06-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7435         * editfns.c (Fchar_after, Fchar_before): Make arg optional.
7437 1997-06-14  Karl Heuer  <kwzh@gnu.ai.mit.edu>
7439         * buffer.h (point): Obsolete macro deleted in favor of PT.
7440         * editfns.c (Fprevious_char): Use PT, not point.
7441         * cmds.c (internal_self_insert): Use PT, not point.
7443 1997-06-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7445         * bytecode.c (Bread_char): Deleted.
7446         (Bsave_current_buffer_1): New byte code.
7447         (Fbyte_code): Delete handling Bread_char.
7448         Handle Bsave_current_buffer_1 like Bsave_current_buffer.
7450 1997-06-11  Paul Eggert  <eggert@twinsun.com>
7452         * callproc.c (Fcall_process): Use setsid to disconnect child
7453         process from controlling terminal.
7455 1997-06-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7457         * unexalpha.c (unexec): Call update_dynamic_symbols unconditionally.
7458         (update_dynamic_symbols): Define unconditionally, but do nothing
7459         if __linux__or __NetBSD__.
7461         * s/netbsd.h (HAVE_TEXT_START, START_FILES, UNEXEC):
7462         Don't define these if __ELF__.
7463         (RUN_TIME_REMAP, N_PAGSIZ, N_BSSADDR, N_TRELOFF): Likewise.
7465         * m/alpha.h (TEXT_END, COFF, DATA_END): 
7466         Define them if __NetBSD__ just as if LINUX.
7467         (HAVE_TEXT_START): Define, if __NetBSD__ and __ELF__.
7469 1997-06-10  Erik Naggum  <erik@naggum.no>
7471         * fileio.c (Fwrite_region): Fix previous doc change.
7473 1997-06-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7475         * process.c (wait_reading_process_input): Return if unread events
7476         appear.
7478         * keyboard.c (kbd_buffer_get_event): When wait_reading_process_input
7479         returns, check Vunread_command_events.
7481 1997-06-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7483         * sysdep.c (init_sys_modes): Enable VSTART and VSTOP
7484         if flow_control.
7486         * editfns.c (Finsert_char): Check QUIT.
7488         * fontset.c (list_fontsets, fs_load_font): 
7489         fast_c_string_match_ignore_case renamed.
7490         
7491         * xterm.c (x_list_fonts): fast_c_string_match_ignore_case renamed.
7493         * search.c (fast_c_string_match_ignore_case):
7494         Renamed from fast_string_match_ignore_case.  Set re_match_object.
7496 1997-06-09  Kenichi Handa  <handa@etl.go.jp>
7498         * buffer.c (init_buffer_once): Inititialize the member
7499         buffer_file_coding_system.
7500         (syms_of_buffer): Declare Lisp variables
7501         default-buffer-file-coding-system and buffer-file-coding-system.
7503         * buffer.h (struct buffer): New member buffer_file_coding_system.
7505         * coding.c (Vcoding_system_alist): Deleted.
7506         (Qcoding_system_spec): Renamed from Qcoding_system_vector.
7507         (Vdefault_process_coding_system, Vfile_coding_system_alist,
7508         Vprocess_coding_system_alist, Vnetwork_coding_system_alist): New
7509         variables.
7510         (Ffind_coding_system): Adjusted for the above change.
7511         (syms_of_coding): Declare them as lisp variables.
7512         (Fcheck_coding_system): Pass list as DATA argument to Fsignal.
7514         * coding.h (Vdefault_process_coding_system): Extern it.
7516         * callproc.c (Fcall_process): Pay attention to
7517         Vdefault_process_coding_system.
7518         (Fcall_process_region): Likewise.
7520         * process.c (Fstart_process): Likewise.
7521         (Fopen_network_stream): Likewise.
7523         * xdisp.c (decode_mode_spec): Access the value of
7524         buffer-file-coding-system by b->buffer_file_coding_system.
7526         * fileio.c (Fwrite_region): Cancel the 7th argument CODING_SYSTEM
7527         added by the previous change.
7528         (auto_save_1): Adjusted for the above change.
7530         * data.c (Faset): Inherit default value correctly while creating
7531         sub char table.
7533         * xselect.c (selection_data_to_lisp_data): Change coding system
7534         name to iso-latin-1.
7535         (lisp_data_to_selection_data): Likewise.
7537         * xterm.c (dumpglyph): Shift baseline for such a font that is
7538         shorter but ascent or descent exceed the line height.
7539         For a larger font, draw a small hook at right-bottom edge instead
7540         of a rectangle.
7542 1997-06-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7544         * keymap.c (Fcopy_keymap): After copying a sub-char-table,
7545         do store the copy.
7547 1997-06-04  Kenichi Handa  <handa@etl.go.jp>
7549         * casefiddle.c (casify_object): Fix bug on handling a character
7550         argument.
7552 1997-06-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7554         * s/netbsd.h (NO_SHARED_LIBS): Test __alpha__ && ! __ELF__.
7556         * keyboard.c (syms_of_keyboard): Doc fix.
7558         * search.c (Freplace_match): If opoint is 0, that's relative to ZV.
7560         * intervals.c (find_interval): No longer inline.
7562 1997-06-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7564         * lisp.h (VALMASK, GCTYPEMASK, MARKBIT, ARRAY_MARK_FLAG)
7565         (PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): 
7566         Define regardless of NO_UNION_TYPE.
7567         
7568         * xfns.c (Fx_create_frame): Use XINT to access parent.
7570         * syntax.c (Fsyntax_table_p, check_syntax_table): Use EQ.
7571         (Fmodify_syntax_entry): Use XINT to access c.
7572         (describe_syntax): Use XINT to access first.
7574         * search.c (search_buffer): Use XINT around refs to trt.
7576         * lisp.h (concat3, get_truename_buffer): Declare them.
7578         * keyboard.c (read_key_sequence): Change some locals to `int'.
7580         * indent.c (compute_motion): Use XFASTINT on width_table elts.
7582         * fns.c (map_char_table): Use XSETFASTINT.
7584         * fileio.c (Fwrite_region, build_annotations):
7585         Set start and end using XSETFASTINT.
7587         * editfns.c (Fcompare_buffer_substrings): trt contains Lisp_Objects.
7588         (transpose_markers): Use marker_position, not Fmarker_position.
7590         * buffer.c (Fmove_overlay): Clean up setting o_beg and o_end.
7592         * alloc.c (Fmake_byte_code): Set val from p, not from val.
7593         (make_event_array): Convert nargs to Lisp_Object.
7595         * m/powerpcle.h: New file.
7597         * unexalpha.c [__NetBSD__]: Don't include filehdr.h, aouthdr.h
7598         scnhdr.h or syms.h.  Add many other conditionalized definitions.
7600         * m/alpha.h [__NetBSD__]: Include stdlib.h, not alloca.h.
7601         (ORDINARY_LINK): Defined (if __NetBSD__).
7603         * s/netbsd.h [__alpha__] (NO_SHARED_LIBS): Defined.
7604         
7605 1997-05-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7607         * lread.c (init_lread): Sometimes add to load-path
7608         the lisp and site-lisp dirs under the source directory.
7610         * xfaces.c: Include frame.h unconditionally.
7612         * Makefile.in (stamp-oldxmenu): Always define this
7613         one way or another.
7615         * search.c (Freplace_match): Fix previous change.
7617         * syntax.c (back_comment): Detect 2-char comment starts properly.
7618         New arg COMSTYLE; callers changed.
7619         (Fforward_comment): Handle unmatched two-character comment starters.
7621         * intervals.c (move_if_not_intangible): Fix previous change.
7623         * Makefile.in (XOBJ, MSDOS_OBJ, SOME_MACHINE_OBJECTS): Delete xfaces.o.
7624         (obj): Add xfaces.o.
7625         (FACE_SUPPORT, SOME_MACHINE_LISP): Delete faces.elc.
7626         (shortlisp, lisp): Add faces.elc
7628         * emacs.c (main): Call syms_of_xfaces whenever ! HAVE_NTGUI.
7630         * xfaces.c (Fframe_face_alist, Fset_frame_face_alist):
7631         Define unconditionally.
7632         (Finternal_next_face_id, next_face_id): Likewise.
7633         (syms_of_xfaces): Define unconditionally,
7634         but conditionalize some of the contents.
7636 1997-06-01  Roderick Schertler  <roderick@ibcinc.com>
7638         * sysdep.c (init_baud_rate): Use INIT_BAUD_RATE if it's defined.
7639         (sys_signal): Lose DGUX special case.
7641         * s/dgux.h (signal): Define only if not NO_DGUX_SIGNAL_REDEF.
7642         * s/dgux4.h: New file.
7644 1997-05-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7646         * xterm.c (process_expose_from_menu, XTread_socket): 
7647         Set has_been_visible field.
7648         (x_make_frame_visible): Don't do XMoveWindow unles has_been_visible.
7650         * xterm.h (struct x_output): New field has_been_visible.
7652         * lread.c (intern): Don't make a pure string here,
7653         since Fintern does that.
7655         * Makefile.in (lisp, shortlisp): Use cus-start.el, not .elc.
7657         * data.c (Farrayp): Accept bool-vectors and char-tables.
7659         * fns.c (Fchar_table_range, Fset_char_table_range):
7660         Make one-element vector work for RANGE.
7662 1997-05-30  NIIBE Yutaka  <gniibe@mri.co.jp>
7664         * term.c (insert_glyphs): Use &, not &&.
7666 1997-05-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7668         * search.c (Freplace_match): Use move_if_not_intangible
7669         to handle intangible text better.
7671         * intervals.c (move_if_not_intangible): New function.
7673         * editfns.c (Fcurrent_time_string): Doc fix.
7675         * eval.c (Fsignal): Use call2 to call Vsignal_hook_function.
7677 1997-05-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7679         * dispnew.c (scrolling): If a line is not enabled,
7680         give it an infinite draw_cost.
7682         * data.c (Faset): Doc fix.
7684         * alloc.c (Fmake_bool_vector): Doc fix.
7686         * buffer.c (syms_of_buffer): Doc fix.
7688 1997-05-27  Kenichi Handa  <handa@etl.go.jp>
7690         * fontset.h (FONT_ENCODING_NOT_DECIDED): New macro.
7692         * fontset.c (fs_load_font): Before using a fontset, be sure to
7693         load the ASCII font of the fontset.  Size and height of a fontset
7694         is set to the same as those of the ASCII font of the fontset.  Use
7695         macro FONT_ENCODING_NOT_DECIDED.
7697         * xterm.c (x_load_font): Use macro FONT_ENCODING_NOT_DECIDED.
7699         * fns.c (map_char_table): For sub char-table, index should be
7700         start from 0 (not from 32) considering a composite character.
7701         (Fmap_char_table): Doc-string adjusted.  The variable indices is
7702         declared as an array of Lisp_Object.
7704         * coding.h (struct iso2022_spec): Member requested_designation is
7705         changed to array of `unsigned char'.
7706         (CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION): New macro.
7708         * coding.c (encode_invocation_designation): Use macro
7709         CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION.
7710         (encode_designation_at_bol, setup_coding_system): Likewise.
7711         (Fset_terminal_coding_system_internal): Renamed from
7712         Fset_terminal_coding_system.  Make it non-interactive.
7713         Do not call Fredraw_display.
7714         (Fset_keyboard_coding_system_internal): Renamed from
7715         Fset_keyboard_coding_system.  Make it non-interactive.
7717         * charset.c (Ffind_charset_string): The variable CHARSETS is
7718         changed to (int *).
7720         * casetab.c (case_temp1, case_temp2): New variables temporarily
7721         used in macros DOWNCASE and UPCASE1.
7722         (set_case_table): Setup canonical table correctly.  Use
7723         map_char_table instead of compute_trt_inverse.
7724         (set_canon, set_identity, shuffle): New functions given to
7725         map_char_table.
7726         (compute_trt_identity, compute_trt_shuffle, compute_trt_inverse):
7727         Deleted.
7729         * casefiddle.c (casify_object): Handle multibyte characters.
7730         (casify_region): Change the way of handling multibyte characters.
7732         * lisp.h (CHAR_TABLE_REF): Do not check validity of CT.
7733         (CHAR_TABLE_SET): Likewise.
7734         (DOWNCASE_TABLE): Return case-table instead of the `contents' field.
7735         (UPCASE_TABLE): Likewise.
7736         (DOWNCASE): Use CHAR_TABLE_REF.
7737         (NOCASEP): Use UPCASE1.
7738         (UPCASE1): Use CHAR_TABLE_REF.
7740         * search.c (looking_at_1): Change using DOWNCASE_TABLE.
7741         (string_match_1): Likewise.
7743         * editfns.c (Fchar_equal): Make it handle case of multibyte
7744         characters.
7746 1997-05-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7748         * window.c (Fsplit_window): Ignore FRAME_NO_SPLIT_P here.
7749         (inhibit_frame_unsplittable): Variable deleted.
7750         (syms_of_window): Don't set up Lisp variable.
7752         * xterm.c (XTread_socket) <ConfigureNotify>: Don't call
7753         x_wm_set_size_hint if window has no parent yet.
7754         Simplify the call to x_real_positions.
7755         (x_make_frame_visible): Use win_gravity to decide whether to
7756         call XMoveWindow.  Also, don't do it if frame already visible.
7757         
7758         * xfns.c (x_real_positions): Subtract border width from results.
7760 1997-05-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7762         * window.c (syms_of_window): Initialize inhibit_frame_unsplittable.
7764         * w16select.c (Fwin16_set_clipboard_data): Pass new arg to sit_for.
7766         * fileio.c (Fdo_auto_save): Pass new arg to sit_for.
7768         * callint.c (Fcall_interactively): Pass new arg to sit_for.
7770         * keyboard.c (command_loop_1): Pass 1 as new arg to sit_for.
7771         (read_char): Likewise, pass 0 for it.
7773         * dispnew.c (sit_for): New arg initial_display.
7774         (Fsit_for): Pass new arg.
7776         * indent.c (compute_motion): Return correctly if skip_invisible
7777         takes us past TO.
7779         * xterm.c (XTread_socket) <UnmapNotify>: Don't make an iconify_event
7780         when frame was made invisible.
7781         (x_make_frame_visible): Put the call to x_set_offset back as it was.
7782         Near the end, instead call XMoveWindow, but only if original
7783         positions were not negative.
7785 1997-05-26  Simon Marshall  <simon@diazepam.gnu.ai.mit.edu>
7787         * window.c (syms_of_window): Change frame_override_unsplittable to
7788         inhibit_frame_unsplittable.
7789         (Fsplit_window): Check inhibit_frame_unsplittable.
7791 1997-05-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7793         * window.c (Fdisplay_buffer): Use B not b for interactive argument.
7795         * xfns.c (x_real_positions): Directly compare the frame's window
7796         or parent with the root window.
7798         * xterm.c (x_make_frame_visible): Call x_set_offset only after
7799         mapping the window and accepting input.
7800         (x_calc_absolute_position): Do nothing if current position
7801         is already for the top-left corner.
7802         Handle errors in XTranslateCoordinates.
7803         (XTread_socket): Simplify handling of ConfigureNotify events.
7804         Always call x_wm_set_size_hint for them.
7805         No need to call XTranslateCoordinates here.
7806         (x_clear_errors): New function.
7807         
7808 1997-05-20  Erik Naggum  <erik@naggum.no>
7810         * editfns.c (Fformat_time_string): Doc update.
7811         
7812 1997-05-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7814         * editfns.c (Fformat_time_string): Doc update.
7815         Handle emacs_strftime returning -1.
7816         If it returns 0, compute actual buffer size needed.
7818         * Makefile.in (shortlisp): Add custom.elc and cus-start.elc.
7820         * fns.c (internal_equal): When comparing strings, ignore text props.
7821         Friedman offers to fix anything that has trouble due to this.
7823         * dispnew.c (sit_for): Delete #if 0.
7825         * keymap.c (access_keymap, store_in_keymap): Don't look in a char-table
7826         for a character that has modifier bits.
7828 1997-05-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7830         * keymap.c (access_keymap): For a char-table,
7831         look only for chars with no modifier bits.
7833 1997-05-19  Kenichi Handa  <handa@etl.go.jp>
7835         * s/osf1.h (HAVE_TERMIOS): Define it.
7837         * m/alpha.h (PTY_OPEN): Call sigblock instead of sigblockx.
7839         * Makefile.in (xdisp.o): Add coding.h in dependency list.
7841         * fontset.h (struct font_info): Change the declaration of encoding
7842         from `char' to `unsigned char'.
7844         * xterm.c (x_load_font): Set 4 instead of -1 in fontp->encoding[1]
7845         for the meaning of `can not be decided'.
7847         * fontset.c (fs_load_font): Modified to cope with the above
7848         change.
7850         * charset.c (Ffind_charset_region): Change the declaration of
7851         charsets from `char' to `int'.
7852         (find_charset_in_str): Likewise.
7854         * xselect.c (lisp_data_to_selection_data): Likewise.
7856         * coding.h (struct iso2022_spec): Change the declaration of
7857         requested_designation from `char' to `int'.
7859 1997-05-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7861         * callint.c (Fcall_interactively): Use num_input_events.
7863         * keyboard.h (num_input_events, num_nonmacro_input_events):
7864         Renamed from ..._input_chars.
7866         * eval.c (num_nonmacro_input_events):
7867         Renamed from num_nonmacro_input_chars.
7869         * keyboard.c (num_nonmacro_input_events):
7870         Renamed from num_nonmacro_input_chars.
7871         (syms_of_keyboard): Rename Lisp variable.
7873 1997-05-18  Erik Naggum  <erik@naggum.no>
7875         * lisp.h (Vtty_erase_char): Declared.
7876         * keyboard.c (Vtty_erase_char): Variable defined
7877         (syms_of_keyboard): Set up Lisp variable.
7878         Also set up `num-nonmacro-input-chars' to report actual keystrokes.
7879         * sysdep.c (init_sys_modes): Initialize Vtty_erase_char if
7880         possible from the stty settings, otherwise to nil.
7882         * lread.c (Fintern): Give keywords a value when interned.
7884         * dired.c (Ffile_attributes): Return inode number as a cons
7885         only if necessary.
7887 1997-05-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7889         * keymap.c (copy_keymap_1): Do nothing if ELT isn't a keymap.
7891 1997-05-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7893         * frame.c (make_terminal_frame): Don't add `Emacs' to frame name.
7895 1997-05-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7897         * sysselect.h (SELECT_TYPE): Don't define if already defined.
7899         * cmds.c (nonascii_insert_offset): New variable.
7900         (Fself_insert_command, internal_self_insert):
7901         Add nonascii_insert_offset to what we insert, when appropriate.
7902         (syms_of_cmds): Set up Lisp variable.
7904         * xdisp.c (display_text_line): Move the code to fill out the line
7905         with the newline's face to the end of the newline code.
7906         Add changes (commented out) to record ellipsis positions in charstarts.
7908         * charset.c (strwidth): Fix previous change.
7910         * ralloc.c (mallopt): Declare, if appropriate.
7911         (r_alloc_init) [DOUG_LEA_MALLOC]: Call mallopt,
7912         instead of setting __malloc_extra_blocks.
7914 Thu May 15 22:21:18 1997  Ken'ichi Handa  <handa@diazepam.gnu.ai.mit.edu>
7916         * Makefile.in (charset.o): Add disptab.h in dependency list.
7918         * charset.c: Include disptab.h.
7920 1997-05-16  Kenichi Handa  <handa@etl.go.jp>
7922         * xterm.c (dumpglyphs): Draw glyphs one by one if the font for
7923         them is narrower than required.
7925         * fns.c (copy_sub_char_table): Declare the argument ARG as
7926         Lisp_Object.
7928         * fontset.c (fontset_pattern_regexp): Cast to (char *) before
7929         assigning to P0.
7931         * ccl.c (struct ccl_prog_stack): Declear the member ccl_prog as
7932         Lisp_Object *.
7934         * editfns.c: Declare Fuser_full_name as Lisp_Object in advance to
7935         avoid compiler error.
7937         * data.c: Declare set_internal as Lisp_Object in advance to avoid
7938         compiler error.
7940         * alloc.c (BYTES_USED): Put # at the beginning of line.
7941         (emacs_blocked_malloc): Likewise.
7943         * xterm.c (x_connection_closed): Likewise.
7944         (x_load_font): Cast to (char *) before assigning to FONTNAME.
7946         * keymap.c: Declare Fcopy_keymap as Lisp_Object in advance to
7947         avoid compiler error.
7949 1997-05-16  Kenichi Handa  <handa@etl.go.jp>
7951         * charset.h (VALID_CHAR_P): New macro.
7953         * fns.c (Fset_char_table_default): New function.
7955 1997-05-15  Kenichi Handa  <handa@etl.go.jp>
7957         * charset.c (non_ascii_char_to_string): Signal error if the
7958         argument C is an invalid character code.
7959         (Fconcat_chars): Use alloca instead of malloc.
7961         * charset.h (CHAR_STRING):  Comment reflect the above change.
7963         * coding.h: Name change through the code:
7964         coding-category-internal => coding-category-emacs-mule,
7965         XXX_coding_internal => XXX_coding_emacs_mule,
7966         coding_type_internal => coding_type_emacs_mule,
7967         coding_type_automatic => coding_type_undecided,
7968         CODING_CATEGORY_MASK_INTERNAL => CODING_CATEGORY_MASK_EMACS_MULE,
7969         CODING_CATEGORY_IDX_INTERNAL => CODING_CATEGORY_IDX_EMACS_MULE,
7970         CODING_EOL_AUTOMATIC => CODING_EOL_UNDECIDED.
7971         * coding.c: Likewise.
7972         * fileio.c: Likewise.
7973         
7974         * xfns.c (Fx_create_frame): Delete unnecessary code.
7976 1997-05-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7978         * fileio.c (Finsert_file_contents): Use xmalloc. not malloc.
7979         Check correctly for whether no code translation is needed.
7980         (Finsert_file_contents): Use xrealloc too.
7982         * charset.c (strwidth, Fchar_width): Handle display table.
7984 1997-05-15  Karl Heuer  <kwzh@gnu.ai.mit.edu>
7986         * casefiddle.c: Include charset.h.
7987         (Qidentity): Define this variable.
7988         (syms_of_casefiddle): Initialize and staticpro it.
7989         (casify_object, casify_region): Handle multibyte.
7991 1997-05-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
7993         * casetab.c (compute_trt_identity): Use make_sub_char_table.
7994         (compute_trt_identity, compute_trt_shuffle):
7995         Set up bytes[0] with the charset code.
7996         Check for a sub-char-table when deciding to recurse.
7997         Terminate the loop properly for a sub-char-table.
7999         * callint.c (Fcall_interactively): Pass extra arg to Fread_string.
8001         * minibuf.c (Fread_from_minibuffer): Add gcpro.
8003         * fns.c (Fcopy_sequence): Correctly copy the char-table contents.
8005         * keymap.c (describe_vector): Identify charset row numbers clearly.
8007         * casetab.c: Include charset.h.
8008         (compute_trt_inverse): Totally rewritten.
8009         Args are now Lisp_Object.  Callers changed.
8010         (compute_trt_identity, compute_trt_shuffle): New subroutines.
8011         (init_casetab_once): Use XSETFASTINT to store into case table;
8012         use CHAR_TABLE_SINGLE_BYTE_SLOTS to end the loop.
8013         
8014 1997-05-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8016         * syntax.c (describe_syntax_1): Pass new args to describe_vector.
8018         * category.c (describe_category_1): Pass new args to describe_vector.
8020 1997-05-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8022         * keymap.c (get_keyelt): Handle an indirect entry with meta char.
8023         (describe_vector): Rewrite char-table handling.
8025         * data.c (wrong_type_argument): Pass new arg to Fstring_to_number.
8027 1997-05-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8029         * xfns.c (Fx_create_frame): Get X resources from the display
8030         we are making the frame on.
8031         (x_get_arg): New arg DPYINFO.  Callers changed.
8032         (display_x_get_resource): New function.
8034 1997-05-11  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
8036         * data.c (Fstring_to_number): Handle bases 2...16.
8037         (digit_to_number): New subroutine.
8039 1997-05-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8041         * fns.c (map_char_table): New arg SUBTABLE.  Callers changed.
8042         Pass the whole chartable to C_FUNCTION.
8043         Pass index character as a Lisp_Object.
8045         * keymap.c (Fmake_keymap): Make a char-table.
8046         (access_keymap, store_in_keymap): Likewise,
8047         (describe_map, Fset_keymap_parent, Faccessible_keymaps): Likewise.
8048         (Fwhere_is_internal, Fcopy_keymap): Handle a char-table.
8049         (copy_keymap_1, accessible_keymaps_char_table): New subroutines.
8050         (where_is_internal_1, where_is_internal_2): New functions.
8051         (syms_of_keymap): Set up Qchar_table_extra_slots prop on Qkeymap.
8052         
8053 1997-05-10  Ken'ichi Handa  <handa@etl.go.jp>
8055         * callproc.c (Fcall_process_region): Supply 7th new arg
8056         CODING_SYSTEM as Qnil to Fwrite_region.
8058         * ccl.c (Fccl_execute_on_string): Add 4th optional arg
8059         CONTINUE.
8061         * charset.c (unify_char): New function.
8062         (Fdefine_charset): Doc-string modified.
8063         (find_charset_in_str): Add 4th arg TABLE which is a character
8064         unification table.
8065         (Ffind_charset_region): Add optional arg TABLE which is a
8066         character unification table.
8067         (Ffind_charset_string): Likewise.
8069         * charset.h (unify_char): Extern it.
8071         * coding.c (Valternate_charset_table): The valiable deleted.
8072         (Venable_character_unification,
8073         Vstandard_character_unification_table_for_read,
8074         Vstandard_character_unification_table_for_write,
8075         Qcharacter_unification_table): New variables.
8076         (syms_of_coding): Initialize and declare them.
8077         (DECODE_ISO_CHARACTER): Modified to handle a character unification
8078         table instead of Valternate_charset_table.
8079         (DECODE_DESIGNATION): Delete handling of Valternate_charset_table.
8080         (decode_coding_iso2022): Handle a character unification table.
8081         (ENCODE_ISO_CHARACTER): New macro.
8082         (encode_designation_at_bol): Handle a character unification table.
8083         Do not return -1 even if end-of-line is not in the current run.
8084         (encode_coding_iso2022): Handle a character unification table.
8085         Call macro ENCODE_ISO_CHARACTER instead of calling
8086         ENCODE_ISO_CHARACTER_DIMENSION1 and
8087         ENCODE_ISO_CHARACTER_DIMENSION2 directly.  Check the size of
8088         carryover before copying it to destination.
8089         (setup_coding_system): Initialize the member
8090         character_unification_table of the struct coding system to Qnil.
8091         (Fset_keyboard_coding_system): Doc string augmented.
8093         * coding.h (CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
8094         character set is invoked to PLANE.
8095         (struct coding_system): New member character_unification_table.
8097         * fileio.c (Fwrite_region): Add 7th optional arg
8098         CODING_SYSTEM.  Move gap after a newline code if we are encoding
8099         in a coding system which requires designation sequences to be put
8100         at beginning of line.  Set coding.last_block to 1 before calling
8101         a_write for an empty file.
8102         (build_annotations): Code tuned up for handling
8103         pre_write_conversion of a coding system.
8104         (e_write): Delete code for handling carryover of code conversion.
8105         It is now handled in encode_coding.
8106         (auto_save_1): Supply 7th new arg CODING_SYSTEM as Qnil to
8107         Fwrite_region.
8109         * fontset.c (Vfontset_alias_alist): New variable.
8110         (fontset_pattern_regexp): Delete code for handling nickname of a
8111         fonset.  It is now handled in Fquery_fontset by consulting
8112         Vfontset_alias_alist.
8113         (Fquery_fontset): Handle Vfontset_alias_alist.
8114         (syms_of_fontset): Terminate each line by `\n\' in doc-string of
8115         alternate-fontname-alist.  Declare Lisp valiable
8116         fontset-alias-alist.  Doc-string of highlight-wrong-size-font
8117         and clip-large-size-font modified.
8119         * xfns.c (Fx_create_frame): Delete code for handling the X
8120         resouce "Fontset".
8122         * xselect.c (selection_data_to_lisp_data): If TYPE is `STRING'
8123         and DATA contains 8-bit codes, decode them as Latin-1 characters.
8124         (lisp_data_to_selection_data): Supply 4th arg TABLE as Qnil to
8125         find_charset_in_str.
8127         * xterm.c (dumpglyphs): Even if font (not fontset) is used,
8128         display Latin1 characters correctly if the font contains glyphs
8129         for them.  Fix bug of displaying cursor on a composite character.
8131 1997-05-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8133         * keyboard.c (Fexecute_extended_command):
8134         Pass new arg to Fcompleting_read.
8135         (command_loop_1): Use an int for last_command_char.
8137         * lisp.h (read_minibuf): Declaration deleted.
8139         * callint.c (Fcall_interactively): Pass new arg to
8140         Fread_from_minibuffer and Fread_variable.
8142         * fns.c (Fyes_or_no_p): Pass new arg to Fread_from_minibuffer.
8144         * minibuf.c (Fread_command): New optional arg DEFAULT-VALUE.
8145         Callers changed.
8146         (Fread_variable, Fread_string, Fread_from_minibuffer): Likewise.
8147         (read_minibuf): Now static.  New arg DEFALT.  Callers changed.
8148         Bind minibuffer-default here.
8149         (read_minibuf_unwind): Now static.
8150         (Fcompleting_read): Past DEF to Fread_from_minibuffer;
8151         no need to use it directly here.
8153         * fileio.c (Fread_file_name): Finish previous change.
8155         * coding.c (Fread_coding_system, Fread_non_nil_coding_system): 
8156         Pass new arg to Fcompleting_read.
8158         * callint.c (Fcall_interactively): Pass new arg to Fcompleting_read.
8160         * xmenu.c (Fx_popup_menu): Doc fix.
8162 1997-05-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8164         * Makefile.in (TAGS): Fix typo.
8166         * xdisp.c (mark_window_display_accurate, redisplay_internal):
8167         Test highlight_nonselected_windows.
8168         (display_text_line): Likewise (in more places).
8169         (syms_of_xdisp): Initialize highlight_nonselected_windows to 0.
8171         * keyboard.c (Qtimer_event): Variable deleted.
8172         (Qtimer_event_handler): New variable.
8173         (syms_of_keyboard): Don't initialize Qtimer_event.
8174         Do initialize Qtimer_event_handler.
8175         (read_char): Don't check for timer event.
8176         (swallow_events): Don't handle timer events.
8177         (timer_check): Likewise.
8178         (make_lispy_event): Likewise.
8180 1997-05-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8182         * s/bsd386.h: Delete the code that was trying to define BSD "right"
8183         now that Emacs doesn't use the symbol BSD this way.
8185 1997-05-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8187         * Makefile.in (MOUSE_SUPPORT): Delete menu-bar.elc.
8188         (lisp): Move menu-bar.elc here.
8189         Add custom.elc and cus-start.elc.
8191         * m/intel386.h (LIBS_MACHINE): Add -lelf.
8193 1997-05-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8195         * xdisp.c (display_text_line): Clear region_showing to Qnil if the
8196         window should not show a region.
8197         (redisplay_internal): Do update region_showing when ! all_windows.
8199         * window.c (Fset_window_configuration): Set last_selected_window
8200         in the new selected window's new buffer.
8202         * xdisp.c (display_text_line): Set w->region_showing to the mark
8203         position if there's a mark; to nil, otherwise.
8205         * w32fns.c (x_set_mouse_color): Fix previous change.
8207         * xselect.c (x_reply_selection_request): Delete the inner
8208         unbind_to call, since x_uncatch_errors does the job.
8210 1997-05-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8212         * minibuf.c (Fcompleting_read): New arg DEF.
8213         Callers changed.
8214         (Qminibuffer_default): New variable.
8215         (syms_of_minibuf): Initialize it.
8217         * fileio.c (Fread_file_name): Pass default to Fcompleting_read.
8219 1997-05-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8221         * w32fns.c (x_set_mouse_color): Update calls to x_catch_errors
8222         and x_uncatch_errors.
8224         * xfns.c (x_set_scroll_bar_width): If arg is too small, round it up.
8226         * window.c (Fdisplay_buffer): If we give up and try other frames,
8227         look again for a window in those frames already showing BUFFER.
8229 1997-05-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8231         * xselect.c (x_reply_selection_request): Fix previous change.
8233 1997-04-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8235         * xterm.c (XTmouse_position, x_term_init): 
8236         Save value from x_catch_errors and pass to x_uncatch_errors.
8238         * xselect.c (x_own_selection, x_reply_selection_request)
8239         (x_get_foreign_selection):
8240         Save value from x_catch_errors and pass to x_uncatch_errors.
8242         * xfns.c (x_real_positions, x_set_mouse_color, Fx_list_fonts):
8243         Save value from x_catch_errors and pass to x_uncatch_errors.
8245         * xterm.c (x_catch_errors): Use specpdl so can be nested.
8246         Use a Lisp string to as the buffer for the X message.
8247         (x_uncatch_errors, x_had_errors_p, x_check_errors): Related changes.
8248         (x_catch_errors_unwind): New function.
8249         (x_error_quitter): Call x_error_catcher if appropriate.
8250         (x_error_message_string): New variable.
8251         (syms_of_xterm): Defvar it.
8252         (x_caught_error_message): Variable deleted.
8253         (X_ERROR_MESSAGE_SIZE): Renamed from X_CAUGHT_ERROR_MESSAGE_SIZE.
8254         (x_error_handler): New function, calls x_error_quitter or ..._checker.
8255         (x_initialize): Use x_error_handler as error handler for X.
8257 1997-04-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8259         * fileio.c (Fexpand_file_name): Check length > 0 when necessary.
8261 1997-04-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8263         * syntax.c (skip_chars): Fix previous change in syntax/backward case.
8265         * lread.c (init_lread): Don't add ../lisp to the dump-time load path.
8267         * buffer.c (Fbury_buffer): If buffer is in selected window, remove it.
8268         Otherwise, remove it from other windows.
8270         * fileio.c (Fsubstitute_in_file_name): Use xnm uniformly, never nm,
8271         when handling /~ and // at the end.
8273         * process.c (read_process_output): Update opoint, old_begv and old_zv
8274         based on actual buffer change rather than size of string.
8275         old_begv and old_zv are now ints.
8276         (status_notify): Likewise for opoint.
8278 1997-04-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8280         * xterm.c (x_destroy_window): Free saved_menu_event, if any.
8282         * frame.c (Fdelete_frame): Free FRAME_MESSAGE_BUF.
8284         * xrdb.c (get_user_app): Free the gethomedir value.
8286         * buffer.c (reset_buffer): Initialize clip_changed field.
8288 1997-04-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8290         * emacs.c (sort_args): Free the malloc'd memory.
8292         * fileio.c (Fwrite_region): GCPRO `start' near the beginning.
8294         * xfns.c (x_set_menu_bar_lines): Increment windows_or_buffers_changed.
8296 1997-04-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8298         * syntax.c (skip_chars): Merge mule changes back in.
8300 1997-04-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8302         * window.c (frame_override_unsplittable): New variable.
8303         (Fsplit_window): Ignore `unsplittable' if frame_override_unsplittable.
8304         (syms_of_window): Set up Lisp var.
8306         * xmenu.c (set_frame_menubar): When widget is new,
8307         forget records of old contents.
8309 1997-04-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8311         * xterm.c (x_set_offset): Turn off the code that added the border_width
8312         to modified_left and modified_top; it seems incorrect to do that.
8314 1997-04-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8316         * keymap.c (Faccessible_keymaps): Convert PREFIX to a vector
8317         at the beginning, if it has any definition.
8319 1997-04-19  Erik Naggum  <erik@naggum.no>
8321         * keymap.c (describe_vector): Test for suppressed commands in
8322         all cases.  Call get_keyelt with two arguments.
8324 1997-04-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8326         * print.c (print): Symbols like e2 and 2e are not confusing.
8328 1997-04-17  Andrew Innes  <andrewi@harlequin.co.uk>
8330         * fileio.c (Fexpand_file_name): Fix expansion of "/foo/../".
8332 1997-04-15  Ken'ichi Handa  <handa@etl.go.jp>
8334         * coding.c (setup_coding_system): Setup coding->eol_type as LF
8335         for a invalid coding system.
8337 1997-04-14  Ilya Zakharevich  <ilya@math.ohio-state.edu>
8339         * dired.c (Fdirectory_files): Set re_match_object.
8341         * intervals.c (update_interval): New function.
8343         * intervals.h (update_interval): New function declaration.
8345         * regex.c (PTR_TO_OFFSET): New macro.
8346         (POS_AS_IN_BUFFER): New macro.
8347         (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table' text
8348         property into account when doing SYNTAX (c).
8349         (re_compile_fastmap): disable fastmap if any of wordbound
8350         notwordbound wordbeg wordend notsyntaxspec syntaxspec are seen.
8351         (re_search_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start.
8352         (re_match_object): New variable.
8353         (re_match_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start.
8354         (re_match_2_internal): For any of wordbound notwordbound wordbeg
8355         wordend notsyntaxspec syntaxspec call UPDATE_SYNTAX_TABLE before
8356         doing SYNTAX (c).
8358         * regex.h (re_match_object): New variable.
8360         * search.c (looking_at_1): Set re_match_object.
8361         (string_match_1): Set re_match_object.
8362         (fast_string_match): Set re_match_object.
8363         (Fskip_chars_forward): Move to syntax.c.
8364         (Fskip_chars_backward): Move to syntax.c.
8365         (Fskip_syntax_forward): Move to syntax.c.
8366         (Fskip_syntax_backward): Move to syntax.c.
8367         (skip_chars): Move to syntax.c.
8368         (search_buffer): Set re_match_object.
8369         (syms_of_search): Move initialization of skip* to syntax.c.
8371         * syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table'
8372         text property into account when doing SYNTAX (c).
8373         (ST_COMMENT_STYLE, ST_STRING_STYLE): New codes to denote
8374         delimiters for new types of strings and comments.
8375         (Vparse_sexp_lookup_properties): New variable.
8376         (struct lisp_parse_state): Comment updated.
8377         (gl_state): New global variable.
8378         (update_syntax_table): New function.
8379         (char_quoted): Move earlier, update gl_state when needed.
8380         (find_defun_start): Update gl_state when needed.
8381         (back_comment): New function.
8382         (Scomment_fence, Sstring_fence): New delimeter char classes
8383         denoted by `!' and `|'.
8384         (Fchar_syntax, Fmatching_paren): Update gl_state to whole-buffer state.
8385         (scan_words): Update gl_state when needed.
8386         (Fskip_chars_forward): Move from search.c.
8387         (Fskip_chars_backward): Move from search.c.
8388         (Fskip_syntax_forward): Move from search.c.
8389         (Fskip_syntax_backward): Move from search.c.
8390         (skip_chars): Move from search.c.
8391         (Fforward_comment, scan_lists): Update gl_state when needed.
8392         Handle Scomment_fence, Sstring_fence.
8393         (Fbackward_prefix_chars) update gl_state when needed.
8394         (scan_sexps_forward): update gl_state when needed.
8395         Handle Scomment_fence, Sstring_fence.
8396         If comment_stop==-1, stop at start or end of comment or string.
8397         (Fparse-partial-sexp): Doc fix.
8398         (syms_of_syntax): Move initialization of skip* from search.c.
8400         * syntax.h (enum syntaxcode):
8401         New members Scomment_fence, Sstring_fence.
8402         (SYNTAX_ENTRY): Depending on the value of SYNTAX_ENTRY_VIA_PROPERTY
8403         may do a lookup for syntax table in gl_state.
8404         (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD,
8405         UPDATE_SYNTAX_TABLE, SETUP_SYNTAX_TABLE,
8406         SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros.
8407         (struct gl_state_s): New struct.
8409         * textprop.c: Style of comments corrected. 
8410         (interval_of): New function.
8412 1997-04-14  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
8414         * w16select.c: New file, MS-Windows clipboard support from
8415         Emacs running as MSDOS application.
8416         
8417         * s/msdos.h (SYMS_SYSTEM): Add `syms_of_win16select'.
8419         * Makefile.in (MSDOS_OBJ): Add w16select.o.
8420         (dependencies): Add dependencies for w16select.o.
8422 1997-04-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8424         * undo.c (Fprimitive_undo): When inserting, always insert
8425         after markers (the ordinary kind of insertion).
8427         * insdel.c (adjust_markers): Don't be confused by the gap
8428         when computing the arg to record_marker_adjustment.
8430 1997-04-11  Karl Heuer  <kwzh@gnu.ai.mit.edu>
8432         * category.c (Fmodify_category_entry): Delete second arg in call
8433         to make_sub_char_table.
8435         * lisp.h (DOWNCASE): Return int, not Lisp_Object.
8436         (UPPERCASEP): Use DOWNCASE.
8437         (UPCASE_TABLE): New macro.
8438         (NOCASEP, UPCASE1): Use UPCASE_TABLE.
8439         [!NO_UNION_TYPE] (make_number): Declare.
8441 1997-04-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8443         * minibuf.c (read_minibuf): Get the string from the minibuffer
8444         even if the user has selected a different buffer.
8446         * fileio.c (Finsert_file_contents): Do call signal_after_change
8447         when REPLACE is handled by reading directly from the file.
8448         Use insert_1 to insert replacement text, to avoid
8449         query about whether to modify the buffer.
8450         
8451 1997-04-10  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
8453         * Makefile.in (mallocobj): Make non-REL_ALLOC configuration work
8454         with glibc's malloc--do use vm-limit.o.
8456 1997-04-10  Karl Heuer  <kwzh@gnu.ai.mit.edu>
8458         * cmds.c (internal_self_insert): Fix return value.
8459         * category.c (Fmake_category_set): Use XSETFASTINT.
8460         * minibuf.c (scmp): Fix Lisp_Object/integer confusion.
8461         (Fdisplay_completion_list): Likewise.
8462         * insdel.c (Fcombine_after_change_execute): Likewise.
8463         * xselect.c (expect_property_change): Likewise.
8464         * xterm.c (construct_menu_click, note_mouse_highlight): Likewise.
8465         (fast_find_position): Likewise.
8466         * ccl.c (ccl_driver): Likewise.
8467         * coding.c (Ffind_coding_system): Likewise.
8468         * charset.c (Fconcat_chars, ONE_BYTE_CHAR_WIDTH): Likewise.
8469         * xmenu.c (Fx_popup_menu, set_frame_menubar): Likewise.
8470         * disptab.h (DISP_TABLE_P): Likewise.
8471         * xdisp.c (display_text_line): Likewise.
8472         * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
8473         * window.c (Fset_window_buffer, Fdisplay_buffer): Likewise.
8474         (delete_window): Don't return value from void function.
8476 1997-04-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8478         * s/freebsd.h (BSD_SYSTEM): Alternate definition for FreeBSD v3.
8480         * systty.h (GETPGRP_NO_ARG): If Glibc 2.1 or later,
8481         don't define this if _BSD_SOURCE is defined.
8483 1997-04-08  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
8485         * emacs.c (malloc_get_state, malloc_set_state): New declarations.
8486         (main): Restore internal malloc state when loading from dumped image.
8487         (Fdump_emacs): Copy internal malloc state for dumping, then free it.
8489         * alloc.c: For glibc's malloc, include <malloc.h> for mallinfo,
8490         mallopt, struct mallinfo, and mallopt constants.
8491         (BYTES_USED): New macro.
8492         (memory_full, emacs_blocked_free): Replace _bytes_used with BYTES_USED.
8493         (emacs_blocked_malloc): Set sbrk padding value for glibc, as is
8494         done with gmalloc.
8495         (allocate_vectorlike, make_uninit_string):
8496         Prevent using mmap for possible large chunks.
8497         (init_alloc_once): Set trim and mmap malloc parms, when using glibc.
8499         * config.in (DOUG_LEA_MALLOC): Add #undef.
8500         
8501         * Makefile.in (mallocobj): Don't add gmalloc if using glibc.
8502         Drop check for `old malloc'; it isn't distributed with Emacs.
8504 1997-04-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8506         * casetab.c (init_casetab_once): Initialize the purpose slot.
8508 1997-04-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8510         * keyboard.c (read_key_sequence): New argument FIX_CURRENT_BUFFER.
8511         Restore the current buffer from selected window on occasion.
8512         All callers changed.
8514 1997-04-07  Kenichi HANDA  <handa@etl.go.jp>
8516         * Makefile.in (lisp, shortlisp): Include english.elc and
8517         tibetan.elc.
8519         * alloc.c (Fmake_char_table): Adjusted for the new structure of
8520         Lisp_Char_Table.
8521         (make_sub_char_table): New function.
8523         * category.c (category-table-p): Check only type and purpose.
8524         (copy_category_table, Fmodify_category_entry): Adjusted for the
8525         new structure of Lisp_Char_Table.
8527         * ccl.c: (ccl_driver): Fix bug of the case CCL_WriteArrayReadJump.
8529         * charset.h (CHARSET_TABLE_ENTRY): Handle ASCII charset correctly.
8530         (SPLIT_NON_ASCII_CHAR, SPLIT_CHAR): Return -1 in C2 for DIMENSION1
8531         characters.
8533         * charset.c (non_ascii_char_to_string, update_charset_table,
8534         Fsplit_char): Adjusted for the above change.
8536         * coding.c (detect_coding_iso2022, detect_coding_mask): Ignore
8537         invalid ESC sequence for ISO 2022.
8538         (Fencode_sjis_char, Fencode_big5_char): Adjusted for the change of
8539         SPLIT_CHAR.
8541         * data.c (Faref, Faset): Adjusted for the new structure of
8542         Lisp_Char_Table.
8544         * disptab.c (disp_char_vector): Extern it.
8545         (DISP_CHAR_VECTOR): Handle multibyte characters.
8547         * fns.c (copy_sub_char_table): New function.
8548         (Fcopy_sequence): Call copy_sub_char_table for copying a sub char
8549         table.
8550         (Fchar_table_range, Fset_char_table_range, map_char_table,
8551         Fmap_char_table): Handle multibyte characters correctly.
8553         * fontset.c (Vhighlight_wrong_size_font, Vclip_large_size_font):
8554         New variables.
8555         (syms_of_fontset): Declare them as Lisp variables.
8557         * fontset.h (Vhighlight_wrong_size_font, Vclip_large_size_font):
8558         Extern them.
8560         * keymap.c (describe_vector): Adjusted for the new structure of
8561         Lisp_Char_Table.
8563         * lisp.h (CHAR_TABLE_STANDARD_SLOTS): Now 4 more slots than
8564         CHAR_TABLE_ORDINARY_SLOTS for top, defalt, parent, and purpose.
8565         (SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
8566         New macros.
8567         (CHAR_TABLE_REF, CHAR_TABLE_SET): Enclose args by parenthesis.
8568         (struct Lisp_Char_Table): New member `top'.  The member `defalt'
8569         is moved before `contents' so that XCHAT_TABLE (val)->defalt can
8570         also be used for a sub char table.
8571         (SUB_CHAR_TABLE_P): New macro.
8572         (make_sub_char_table): Extern it.
8574         * lread.c (read1): Adjusted for the new structure of
8575         Lisp_Char_Table.
8577         * print.c (print): Likewise.
8579         * xdisp.c (disp_char_vector): New function to be used from the
8580         macro DISP_CHAR_VECTOR for multibyte characters.
8582         * xterm.c (dumpglyphs): Clip and highlight glyphs displayed with
8583         fonts of wrong size.
8585 Sun Apr  6 10:26:53 1997  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
8587         * emacs.c (init_cmdargs) [MSDOS]: Make the change that sets
8588         `installation-directory' if `info' is found as its subdirectory or
8589         sibling, be conditioned on MSDOS (it makes trouble on Unix).
8592 1997-04-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8594         * coding.c (Ffind_coding_system): Doc fix.
8596 1997-04-03  Karl Heuer  <kwzh@gnu.ai.mit.edu>
8598         * fns.c (Fcopy_sequence): Delete unused variable.
8599         (Fchar_table_extra_slot, Fset_char_table_extra_slot): Doc fix.
8600         (map_char_table): When expanding indices, don't increase depth;
8601         that's amount used, not amount allocated.
8603         * category.h [!__GNUC__] (CATEGORY_SET): Fix syntax error.
8605         * lisp.h (CHAR_TABLE_REF): Fix syntax error.
8606         (LOWERCASEP): Use NOCASEP instead of its expansion.
8607         (UPCASE): Use UPPERCASEP instead of its expansion.
8609 1997-04-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8611         * fileio.c (Finsert_file_contents): When handling REPLACE,
8612         first try comparing block by block; if we discover a need for
8613         nontrivial code conversion, give up and try convert-whole-file method.
8615         * fileio.c (Fcopy_file): Fix error message.
8617         * fileio.c (Finsert_file_contents): Handle non-regular files.
8619 1997-04-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8621         * search.c (skip_chars): Make `c' an unsigned int.
8623 1997-04-01  Erik Naggum  <erik@naggum.no>
8625         * eval.c (Fuser_variable_p): If not a symbol, return nil.
8627 1997-03-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8629         * fileio.c (Fcopy_file): Use Qfile_date_error if can't set file date.
8630         (Qfile_date_error): New variable.
8631         (syms_of_fileio): Set it up.
8632         (Fcopy_file): Fix previous change.
8633         (Finsert_file_contents): Determine the character coding
8634         before we see if REPLACE can be handled.
8635         Do handle REPLACE even if code conversion is needed. 
8637 1997-03-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8639         * keymap.c (Faccessible_keymaps): When metizing, convert a
8640         string to a vector.  But don't metize a character that is
8641         part of PREFIX.
8643         * window.c (Qwindow_configuration_change_hook): New variable.
8644         (Vwindow_configuration_change_hook): New variable.
8645         (syms_of_window): Initialize; set up Lisp var.
8646         (delete_window): New subroutine, from Fdelete_window.
8647         Most callers changed.
8648         (Fdelete_window): Call Vwindow_configuration_change_functions.
8649         (Fset_window_buffer, Fenlarge_window, Fshrink_window):
8650         Call the Vwindow_configuration_change_functions.
8651         (Fset_window_configuration): Likewise.
8653         * dispnew.c (change_frame_size_1): Call Fset_window_buffer,
8654         so that Vwindow_configuration_change_hook gets run.
8656 1997-03-25  Erik Naggum  <erik@naggum.no>
8658         * process.c (Fopen_network_stream): Use same socket for in and out.
8660 1997-03-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
8662         * frame.c (frames_bury_buffer): New function.
8663         * buffer.c (Fbury_buffer): Call frames_bury_buffer.
8665 1997-03-22  Mark W. Eichin  <eichin@kitten.gen.ma.us>
8667         * keyboard.c (make_lispy_event): Use iso_lispy_function_keys for
8668         XK_ISO_* keys found in XFree86. 
8669         (ISO_FUNCTION_KEY_OFFSET): New macro.
8670         (iso_lispy_function_keys): New table.
8671         
8672         * xterm.c (XTread_socket): Accept XK_ISO_* keys.
8674 1997-03-19  Kenichi Handa  <handa@etl.go.jp>
8676         * xterm.c (dumpglyphs): Set a clipping region when we draw glyphs
8677         with a font of inappropriate size.
8678         (x_list_fonts): Try alternative fonts if we can't find a font of an
8679         appropriate size.
8681         * fontset.c (Valternative_fontname_alist): New variable.
8682         (syms_of_fontset): Declare Lisp variable alternative-fontname-alist.
8684         * fontset.h (Valternative_fontname_alist): Extern it.
8686         * term.c (insert_glyphs): Fix a bug which turns up when
8687         TS_ins_multi_chars is 0.
8689 1997-03-18  Kenichi Handa  <handa@etl.go.jp>
8691         * xterm.c (x_list_fonts): Comment about cached font list added.
8693         * fns.c (map_char_table): Handle multibyte characters.
8695         * lisp.h (CHAR_TABLE_ORDINARY_SLOTS): Change to 384 (== 256 + 128).
8696         (CHAR_TABLE_STANDARD_SLOTS): Adjusted for the above change.
8697         (CHAR_TABLE_SINGLE_BYTE_SLOTS): New macro.
8698         (CHAR_TABLE_REF, CHAR_TABLE_SET): New macros.
8700         * data.c (Faref, Faset): Adjusted for the above change.
8702         * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Likewise.
8704         * category.h (CATEGORY_SET): Likewise.
8706         * category.c (Fmodify_category_entry): Likewise.
8708         * keymap.c (describe_vector): Likewise.
8709         (push_key_description): A key code less than 512 is printed with 3
8710         octal numbers.  Print only entries of valid charsets.
8712         * disptab.h (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
8713         contains valid character code.
8715         * xdisp.c (copy_part_of_rope): Declare glyph as type GLYPH.  For a
8716         invalid character code, use ' ' (space).
8717         (display_string, display_text_line): Check validity of character
8718         code before calling fix_glyph.
8720         * term.c (encode_terminal_code): Check validity of character code.
8722         * charset.h (MAX_CHARSET): Definition changed to the actual
8723         maximum valid charset.
8724         (MAX_CHAR): New macro.
8726         * charset.c, coding.h, coding.c, fontset.h, fontset.c, xselect.c:
8727         Adjusted for the above change.
8729         * charset.c (str_cmpchar_id): Return -1 if we have no more room
8730         for a new composite character.
8731         (Fmake_char_internal): Docstring is moved to lisp/mule.el.
8733         * fontset.h (struct font_info): Typo in comment of
8734         `relative_compose' fixed.
8736 1997-03-14  Karl Heuer  <kwzh@gnu.ai.mit.edu>
8738         * window.c (change_window_height): Handle shrink as well as enlarge.
8740 1997-03-13  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
8742         * buffer.c (reset_buffer): Initialize display_count slot.
8744         * search.c (Freplace_match): Give error if
8745         NEWTEXT uses backslash in an invalid way.
8747 1997-03-10  Karl Heuer  <kwzh@gnu.ai.mit.edu>
8749         * lisp.h (FAST_MAKE_GLYPH): Don't cast CHAR arg; character codes
8750         are now wider than C chars.
8752 1997-03-09  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
8754         * buffer.c (Fkill_buffer): Call frames_discard_buffer.
8755         (record_buffer): Move buffer to front of frame_buffer_list.
8756         (Fother_buffer): Use frame_buffer_list.
8758         * frame.h (struct frame): New field buffer_list.
8760         * frame.c (frame_buffer_list, set_frame_buffer_list): New functions.
8761         (store_frame_param): Handle buffer-list parameter.
8762         (Qbuffer_list): New variable.
8763         (syms_of_frame_1): Initialize it.
8764         (make_frame): Initialize buffer_list field.
8765         (Fframe_parameters): Handle buffer-list parameter.
8766         (frames_discard_buffer): New function.
8767         (make_frame): Initialize buffer_list.
8769         * alloc.c (mark_object): Mark the buffer_list field.
8771 1997-03-05  Ken'ichi Handa  <handa@etl.go.jp>
8773         * coding.c (decode_eol): Fix bug of converting CRLF to LF.
8775 1997-03-05  NIIBE Yutaka  <gniibe@mri.co.jp>
8777         * indent.c: (compute_motion): When POS >= TO, don't call
8778         find_before_next_newline as it assumes POS < TO.
8780 1997-03-02  Ken'ichi Handa  <handa@etl.go.jp>
8782         * category.h (CATEGORY_SET): Cast arg C to
8783         `unsigned char' before indexing category table directly.
8785 1997-03-01  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
8787         * process.c (wait_reading_process_input): If wait_for_cell,
8788         ignore subprocess input and respond only to keyboard.
8789         (non_process_wait_mask): New variable.
8790         (add_keyboard_wait_descriptor): Update it.
8791         (delete_keyboard_wait_descriptor): Update it.
8792         (init_process): Initialize it.
8794 1997-03-01  NIIBE Yutaka  <gniibe@mri.co.jp>
8796         * gmalloc.c [__GLIBC__ >= 2]: Don't declare __getpagesize.
8798 1997-02-28  Tomohiko MORIOKA  <morioka@jaist.ac.jp>
8800         * coding.c (create_process, Fopen_network_stream): Typo in indexes
8801         of array proc_encode_coding_system fixed.
8803 1997-02-28  Kenichi HANDA  <handa@etl.go.jp>
8805         * Makefile.in (lisp, shortlisp): Add lao.elc.
8807         * buffer.c (init_buffer_once): Make member
8808         enable_multibyte_characters of struct buffer not always local.
8809         (reset_buffer): Do not reset b->enable_multibyte_characters.
8810         (syms_of_buffer): Declare default-enable-multibyte-characters.
8812         * category.h (CATEGORY_SET): For a composite character, return
8813         category set of the first component.
8815         * ccl.c (Fregister_ccl_program): Escape newlines in docstring.
8817         * coding.h (struct iso2022_spec): Member requested_designation is
8818         changed to array of `char' just for saving memory.
8819         (CODING_FLAG_ISO_INIT_AT_BOL, CODING_FLAG_ISO_DESIGNATE_AT_BOL):
8820         New macros.
8822         * coding.c (setup_coding_system): Now, flags of ISO2022 coding
8823         systems contains charsets instead of charset IDs.  Correct setting
8824         coding->symbol and coding->eol_type.  The performance improved.
8825         (encode_coding) : Fix typo ("=" -> "==").
8826         (detect_coding_iso2022, decode_coding_iso2022): Make the code
8827         robust against invalid SI and SO.
8828         (ENCODE_RESET_PLANE_AND_REGISTER): Argument `eol' is deleted.
8829         Don't call ENCODE_DESIGNATION if nothing designated initially.
8830         (encode_designation_at_bol) New function.
8831         (encode_coding_iso2022): Handle CODING_FLAG_ISO_INIT_AT_BOL and
8832         CODING_FLAG_ISO_DESIGNATE_AT_BOL.
8833         (detect_coding_iso2022): Detect coding-category-iso-8-2 more
8834         precisely.
8835         (Ffind_coding_system, syms_of_coding): Escape newlines in
8836         docstring.
8837         
8838         * charset.h (INC_POS, DEC_POS): Don't increase or decrease too
8839         much if there's binary code (invalid character code).
8841         * data.c (Faref, Faset): Handle a composite char correctly in
8842         char-table.
8844         * disptab.h (DISP_CHAR_VECTOR): Allow bare 8-bit in display-table.
8846         * charset.c (Fcmpchar_cmp_rule): Escape newlines in docstring.
8848         * editfns.c (Fuser_full_name): Likewise.
8850         * fileio.c (Finsert_file_contents, Fwrite_region): Do not perform
8851         character code conversion if enable-multibyte-characters is nil.
8853         * fontset.h (Vuse_default_ascent): Extern.
8855         * fontset.c (syms_of_fontset): Intern Qfontset.  Declare new lisp
8856         variable use-default-ascent.
8857         (Vuse_default_ascent): New variable.
8858         (Ffont_info): Return also the value of default-ascent of a font.
8859         (fs_load_font): Disable updating fontsetp->height by non-ASCII
8860         character sets.  This should be enabled when Emacs supports
8861         variable height lines.
8862         (fs_load_font, Fset_fontset_font): Bug fix to cope
8863         with the change of charsets to symbols.
8865         * keymap.c (describe_vector): Do not describe deeper char-table if
8866         enable-multibyte-characters is nil.
8868         * process.c (proc_decode_coding_system,
8869         proc_encode_coding_system): Changed to array of pointers to struct
8870         coding_system to reduce the size of dumped Emacs.
8871         (create_process, Fopen_network_stream): Allocate them dynamically.
8872         (init_process): Initialize these pointers to NULL.
8873         (Fstart_process, Fopen_network_stream): Do not perform character
8874         code conversion if enable-multibyte-characters is nil.
8876         * search.c (skip_chars): If enable-multibyte-characters is nil,
8877         don't handle multibyte characters.
8879         * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to
8880         `unsigned char' before indexing syntax table directly.
8882         * syntax.c (init_syntax_once): Add trick to avoid compiler warning
8883         of "comparison is always 1 ...".
8884         (describe_syntax): Handle the case that the argument VALUE is
8885         char-table.
8887         * xdisp.c (display_mode_line): Avoid error while compiling with
8888         --with-x=no.
8890         * xfns.c (syms_of_xfns): Documentation of
8891         x-pixel-size-width-font-regexp modified.
8893         * xselect.c (lisp_data_to_selection_data, selection_data_to_lisp_data):
8894         Remove prefix "coding-system-" from coding system symbol names.
8896         * xterm.h (struct x_display_info): New member
8897         Xatom_MULE_DEFAULT_ASCENT.
8899         * xterm.c (dumpglyphs): Pay attention to characters registered in
8900         use-default-ascent.  Fill background in advance if font has
8901         non-zero _MULE_BASELINE_OFFSET property.
8902         (x_load_font, x_term_init): Handle font property
8903         _MULE_DEFAULT_ASCENT.
8905 1997-02-28  NIIBE Yutaka  <gniibe@mri.co.jp>
8907         * sysdep.c: `ospeed' should be short if not HAVE_TERMIO_H.
8909         * xdisp.c (display_text_line): Correct displaying multi-column
8910         binary data.
8911         (try_window_id): Display blank lines from the next line, when
8912         xp.bufpos == ZV.  (This bug is introduced by changes of Mule).
8913         Compare height against xp.vpos instead of xp.bufpos.
8915 1997-02-27  Erik Naggum  <erik@naggum.no>
8917         * lread.c (Fload): Call Vload_source_file_function with 4 args.
8919 1997-02-22 Tsugutomo ENAMI  <enami@ba2.so-net.or.jp>
8921         * regex.c: Include charset.h and category.h
8923         [!emacs] (BASE_LEADING_CODE_P, WORD_BOUNDARY_P, CHAR_HEAD_P,
8924         SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MULTIBYTE_FORM_LENGTH,
8925         STRING_CHAR_AND_LENGTH, GET_CHAR_AFTER_2, GET_CHAR_BEFORE_2):
8926         New dummy macros.
8928         (enum re_opcode_t): New member categoryspec and
8929         notcategoryspec.
8931         (STORE_CHARACTER_AND_INCR, EXTRACT_CHARACTER,
8932         CHARSET_LOOKUP_RANGE_TABLE_WITH_COUNT,
8933         CHARSET_LOOKUP_RANGE_TABLE, CHARSET_BITMAP_SIZE,
8934         CHARSET_RANGE_TABLE_EXISTS_P, CHARSET_RANGE_TABLE
8935         CHARSET_PAST_RANGE_TABLE): New macros.
8937         (TRANSLATE): Cast return value to unsigned char, not char.
8939         (struct range_table_work_area): New structure.
8941         (EXTEND_RANGE_TABLE_WORK_AREA, SET_RANGE_TABLE_WORK_AREA,
8942         FREE_RANGE_TABLE_WORK_AREA, CLEAR_RANGE_TABLE_WORK_USED,
8943         RANGE_TABLE_WORK_USED, RANGE_TABLE_WORK_ELT): New macros.
8944         (FREE_STACK_RETURN): Call FREE_RANGE_TABLE_WORK_AREA.
8946         (regex_compile): Declare `c' and `c1' as int to store
8947         multibyte characters.
8948         Declare range_table_work and initialize it.
8949         Initialize bufp->multibyte to 0 if not emacs.
8950         For case '[' and `default', code re-written to handle
8951         multibyte characters.
8952         Add code for case 'c' and 'C' to handle category spec.
8954         (re_compile_fastmap): New local variables k, simple_char_max,
8955         and match_any_multibyte_characters.
8956         Use macro CHARSET_BITMAP_SIZE.
8957         Handle multibyte characters in cases charset, charset_not,
8958         wordchar, notwordchar, anychar, syntaxspec, notsyntaxspec,
8959         categoryspec, notcategoryspec.
8961         (STOP_ADDR_VSTRING, POS_ADDR_VSTRING): New macros.
8963         (re_search_2): Code re-written to handle multibyte characters.
8965         (AT_WORD_BOUNDARY): Macro disabled.
8967         (re_match_2_internal): New local variable multibyte.  `d' is
8968         incremented while paying attention to multibyte characters if
8969         necessary.
8970         For case charset, charsetnot, wordbound, notwordbound,
8971         wordbeg, wordend, matchsyntax, and matchnotsyntax, code
8972         re-written to handle multibyte characters.
8973         Add code for case categoryspec and notcategoryspec.
8974          
8975         * regex.h (struct re_pattern_buffer): New member multibyte.
8977 1997-02-21  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
8979         * window.c (Fset_window_buffer): Increment display_count
8980         if it is an integer.
8982         * buffer.c (init_buffer_once): Set up display_count.
8983         (syms_of_buffer): Set up Lisp variable.
8985         * buffer.h (struct buffer): New field display_count.
8987 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
8989         * dispnew.c (direct_output_forward_char): #if-0-out redundant
8990         check against truncated text at end of line.
8991         Add giving-up for buffers with reverse direction.
8992         (remake_frame_glyphs): Use FRAME_MESSAGE_BUF_SIZE
8993         instead of FRAME_WIDTH, as the message may include multi-byte
8994         character and the length may be longer than width.
8995         (width_run_cache_on_off): Disable width-run-cache when
8996         multi-byte characters are enabled.
8997         (skip_invisible): Don't put the boundary in the middle of
8998         multibyte characters.
9000         * indent.c (current_column_bol_cache): New variable.  This makes
9001         move_to_column faster.
9002         (current_column): Set current_column_bol_cache.
9003         (current_column_1): Likewise.
9004         (Fmove_to_column): Use current_column_bol_cache.
9006         * xdisp.c (display_text_line): Introduce new local variable
9007         rev_dir_bit to display right to left characters (not yet used).
9008         * xdisp.c (message): Use FRAME_MESSAGE_BUF_SIZE.
9009         (redisplay_internal): Add canceling code for continuation at
9010         wide-column.
9011         (display_text_line): Don't just decrement left_edge->bufpos,
9012         it may be multi-byte character, use DEC_POS instead.
9014 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
9016         Handle multi-byte and wide-column character in computing columns.
9017         Note that we will find the continuation (linebreak) _AFTER_ it
9018         occurs.
9020         * indent.c (current_column): When the buffer may have multi-byte
9021         characters, call current_column_1.
9022         (compute_motion): Handle multi-byte characters.
9023         (current_column_1): Likewise.
9024         (Fmove_to_column): Likewise.
9026 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
9028         Tab offset calculation changes.  We need this change because the
9029         line may be less than WIDTH columns because of wide-character
9030         continuation.
9032         * indent.h (struct position): New member tab_offset to accumulate
9033         tab offset.
9035         * xdisp.c (try_window): Change the way of calculation of tab
9036         offset.  We now use val.tab_offset to maintain tab offset.
9037         Removed local variable tab_offset.
9038         (try_window_id): Likewise.
9040         * indent.c: Include "charset.h".
9041         (compute_motion): Remove the variable PREV_VPOS.
9042         Introduce new local variables (multibyte, wide_column, prev_pos,
9043         contin_hpos, prev_tab_offset) to handle multi-byte characters and
9044         wide-column characters.
9046         (pos_tab_offset): Return COL (Modulo is no longer valid).
9047         Add the line to set tab_offset member.
9048         Use pos.tab_offset.
9050 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
9052         * window.c (Fpos_visible_in_window_p): Bug fix.  Specify big
9053         negative number for the argument TOHPOS of compute_motion.
9054         We don't need to calculate to (HPOS==0), but can stop immediately
9055         when VPOS pasts HEIGHT.
9056         * xdisp.c (redisplay_window): Likewise.
9057         (try_window_id): Likewise.
9059         * indent.c (pos_tab_offset): Specify "- (1 << (BITS_PER_SHORT - 1))"
9060         to express big negative number (for consistency with xdisp.c).
9062 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
9064         * indent.c (vmotion): Specify "1 << (BITS_PER_SHORT - 1)" to
9065         express "Don't care".
9066         * xdisp.c (tri_window_id): Likewise.
9068         * dispnew.c (direct_output_forward_char): Bug fix.  Add
9069         XFASTINT (w->left) for losing cursor check.
9071 1997-02-20  Kenichi HANDA  <handa@etl.go.jp>
9073         * Makefile.in: The following changes are for new source codes
9074         related to Mule.
9075         (XOBJ): Include fontset.o.
9076         (obj): Include charset.o, coding.o, category.o, and ccl.o.
9077         (lisp, shortlisp): Include Mule related elc files.
9078         (buffer.o, cmds.o, dispnew.o, doprnt.o): Depend on charset.h.
9079         (editfns.o, indent.o, insdel.o, keymap.o): Depend on charset.h.
9080         (minibuf.o, xdisp.o, xfaces.o, xselect.o): Depend on charset.h.
9081         (data.o, print.o, lread.o): Depend on charset.h.
9082         (callproc.o, fileio.o, process.o, term.o): Depend on charset.h and
9083         coding.h.
9084         (regex.o, search.o, syntax.o): Depend on charset.h and category.h.
9085         (fontset.o): Depend on charset.h and fontset.h.
9086         (xterm.o): Depend on charset.h, ccl.h, and fontset.h.
9087         (category.o, ccl.o, charset.o, coding.o, fontset.o): New targets.
9089         * alloc.c (Fmake_char_table): Typo in doc-string fixed.  Handle
9090         the case that PURPOSE is nil (in a deeper char-table).
9091         (Fmake_bool_vector): Make correct size of Lisp_Object for
9092         bool-vector.
9094         * buffer.c: Include charset.h.
9095         (Fget_buffer_create): Allocate an extra byte for a buffer, and
9096         make it always 0 for anchoring.
9097         (reset_buffer): Handle a new member `enable_multibyte_characters'
9098         in the struct buffer.
9099         (fix_overlay_before): New function.
9100         (init_buffer_once): Handle new members in the struct buffer.
9101         (syms_of_buffer): Declare new buffer local variables
9102         `enable-multibyte-characters' and `direction-reserved'.
9104         * buffer.h (BEGV_ADDR, PT_ADDR, ZV_ADDR): Use macro POS_ADDR.
9105         (Z_ADDR, BUF_GPT_ADDR, BUF_Z_ADDR): New macros.
9106         (struct buffer): New members `category_table',
9107         `direction_reserved', and `enable-multibyte-characters'.
9108         (POS_ADDR): New macro used at all places instead of &FETCH_CHAR.
9109         (FETCH_BYTE): New macro used at any places to check the argument
9110         against an ASCII character.
9111         (FETCH_MULTIBYTE_CHAR): New macro used at any places to get a
9112         character code of the argument when it is known to be a multibyte
9113         character.
9114         (_fetch_multibyte_char_p, _fetch_multibyte_char_len): New
9115         variables.
9116         (FETCH_CHAR): Use macros FETCH_MULTIBYTE_CHAR and FETCH_BYTE.
9118         * callint.c (doc-string of `interactive'): Describe new code
9119         letters `i', `z', and `Z'.
9120         (Fcall_interactively): Handle them.
9122         * callproc.c: Include charset.h and coding.h.
9123         (Fcall_process): Perform character code conversion of a process
9124         arguments and the process output.
9125         (Fcall_process_region): Encode coding of a text given to a
9126         process.
9128         * cmds.c: Include charset.h.
9129         (forward_point, Fforward_point): New functions.
9130         (Fforward_char, Fdelete_char): Handle multibyte characters by
9131         calling forward_point.
9132         (Fdelete_backward_char): Pay attention to multibyte characters
9133         in overwrite-mode.
9134         (internal_self_insert): Handle self inserting a multibyte
9135         character.
9136         (syms_of_cmds): Handle the new function Fforward_point.
9138         * data.c: Include charset.h.
9139         (Qprocess): Now extern, not static.
9140         (Faref, Faset): Enable indexing a char table by a multibyte
9141         character.
9143         * dispextern.h (struct face): New members `non_ascii_gc' and
9144         `fontset'.
9145         [HAVE_FACES]: New macros FACE_NON_ASCII_GC and FACE_FONTSET.
9147         * dispnew.c: Include charset.h.
9148         (update_line): Handle wide-column characters.
9150         * disptab.h (DISP_CHAR_VECTOR): Always return nil for multibyte
9151         characters.
9153         * doprnt.c: Include charset.h.
9154         (doprn1): Handle multibyte characters.
9156         * editfns.c: Include charset.h.
9157         (Fchar_to_string, Fstring_to_char): Handle multibyte characters.
9158         (Fsref): New function.
9159         (Fgoto_char): Force point to be at a character boundary.
9160         (Ffollowing_char, Fpreceding_char): Handle multibyte characters.
9161         (Fchar_after): Handle multibyte characters.
9162         (Fchar_before): New function.
9163         (general_insert_function): New function.
9164         (Finsert, Finsert_and_inherit, Finsert_before_markers): Use it.
9165         (Finsert_char): Doc-string refer to markers of
9166         before-insertion-type. Handle multibyte characters.
9167         (Fsubst_char_in_region): Handle multibyte characters.
9168         (Fchar_equal): Don't consider `case' of multibyte characters.
9169         (syms_of_editfns): Handle the new function `char-before'.
9171         * emacs.c (main): Call several initialization function introduced
9172         by Mule.
9174         * eval.c (init_eval_once): Increase max_lisp_eval_depth to 300.
9176         * fileio.c: Include charset.h and coding.h.
9177         (READ_BUF_SIZE): New macro.
9178         (Finsert_file_contents): Refer to a coding system in the docstring.
9179         Perform character code conversion of a text read in.
9180         (Fwrite_region): Refer to a coding system in the docstring.
9181         Setup a coding system for character code conversion.
9182         Pass a new arg `pre_write_conversion' (Lisp function) to
9183         build_annotations.
9184         Pass a new arg `coding' to a_write.
9185         (build_annotations): Handle the new arg.
9186         (a_write): Handle the new arg `coding' by passing it to e_write.
9187         (WRITE_BUF_SIZE): New macro.
9188         (e_write): Perform character code conversion of a text to write
9189         out according to the new arg `coding'.
9191         * fns.c (Fcopy_sequence, concat, internal_equal, Ffillarray):
9192         Fix a bug of miscalculation of `size_in_chars' of a bool vector.
9193         (Fset_char_table_range): When range is vector, make the original
9194         char table deeper if necessary.
9196         * frame.c: Include "charset.h"
9197         [HAVE_WINDOW_SYSTEM]: Include fontset.h.
9198         (make_frame): Allocate member `fontset_data' of the struct frame.
9199         (Fdelete_frame): Free the area for the member.
9201         * frame.h (struct frame): New member `fontset_data'.
9202         (FRAME_MESSAGE_BUF_SIZE): New macro.
9204         * insdel.c: Include charset.h.
9205         (gap_left, gap_right): Put an anchor `\0' at the end of GAP.
9206         (adjust_markers_for_insert): If any markers are adjusted, check
9207         and fix the order of overlays in overlays_before.
9208         (make_gap): Allocate an extra byte and set to `\0' for anchoring.
9209         (insert1, insert_from_buffer_1): Put an anchor `\0' at the head of
9210         GAP.
9212         * keyboard.c (command_loop_1): Pay attention to a multibyte
9213         character while handling forward-char and backward-char.
9214         [!HAVE_NTGUI && XK_kana_A] (lispy_kana_keys): New variable.
9215         [!HAVE_NTGUI] (lispy_function_keys): New variable.
9216         (make_lispy_event) [XK_kana_A]: Handle kana keys.
9218         * keymap.c: Include charset.h.
9219         (push_key_description): If enable-multibyte-characters is t, use
9220         octal representation for a code of range 128..255 as binary.
9221         (Ftext_char_description): Handle multibyte characters.
9222         (describe_vector): Provide prettier description of a char table
9223         which contains multibyte characters.
9225         * lisp.h (CHARACTERBITS, GLYPH_MASK_REV_DIR): New macros.
9226         (GLYPH_MASK_PADDING, GLYPH_MASK_FACE, GLYPH_MASK_CHAR): New macros.
9227         [HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE):
9228         Use CHARACTERBITS.
9229         [!HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE):
9230         New macros.
9231         [!HAVE_FACES] (GLYPH_CHAR, GLYPH_FACE): Mask appropriate bits.
9232         (Fcoding_system_p, Fcheck_coding_system): Declare external.
9233         (Fread_coding_system, Fread_non_nil_coding_system): Likewise.
9235         * lread.c: Include charset.h.
9236         (Vload_source_file_function): New variable.
9237         (Fload): Call Vload_source_file_function if defined while loading
9238         an Emacs Lisp source file.  */
9239         (read_multibyte): New function.
9240         (read_escape): Handle multibyte characters.
9241         (read1): Correct the value of size_in_chars of a bool vector.
9242         Handle the case `?' is followed by a multibyte character.
9243         (Vload_source_file_function): New variable.
9245         * minibuf.c: Include charset.h.
9246         (read_minibuf): Pay attention to multibyte characters in the arg
9247         INITIAL while handling the arg BACKUP_N.
9248         (scmp, Fminibuffer_complete_word): Handle multibyte characters.
9250         * print.c: Include charset.h.
9251         (printchar, strout): Handle multibyte characters.
9252         (print): Correct the value of size_in_chars of a bool vector.
9254         * process.c: Include charset.h and coding.h.
9255         (proc_decode_coding_system, proc_encode_coding_system): New
9256         variables.
9257         (Fstart_process, create_process, Fopen_network_stream): Setup
9258         coding systems for character code conversion.
9259         (READ_CHILD_OUTPUT): New macro.
9260         (read_process_output): Perform character code conversion of a
9261         process output.
9262         (send_process): Perform character code conversion of a text sent
9263         to a process.
9264         (Fset_process_coding_system, Fprocess_coding_system): New
9265         functions.
9266         (syms_of_process): Handle them.
9268         * process.h (struct Lisp_Process): New members
9269         decode_coding_system, decoding_buf, encode_coding_system, and
9270         encoding_buf.
9272         * puresize.h (BASE_PURESIZE): Increase.
9274         * search.c: Include category.h and charset.h.
9275         (compile_pattern_1): Handle new argument `multibyte'.
9276         (compile_pattern): Handle the flag `enable-multibyte-characters'.
9277         (Vascii_downcase_table): Declare external.
9278         (fast_string_match_ignore_case): New function.
9279         (skip_chars): Handle multibyte characters.
9280         (trivial_regexp_p): Handle regular expression "\\Cc" and "\\CC"
9281         for category.
9283         * syntax.c: Include charset.h and category.h.
9284         (Vsyntax_code_object): New variable.
9285         (Fmodify_syntax_entry): Handle multibyte characters.  A multibyte
9286         character in matching parenthesis is also handled correctly.  Use
9287         shared object in the vector Vsyntax_code_object for an ASCII
9288         character.
9289         (describe_syntax): Handle a multibyte character in matching
9290         parenthesis.
9291         (describe_syntax_1): Describe also parent syntax tables.
9292         (scan_words, Fforward_comment): Handle multibyte characters.
9293         (scan_lists, char_quoted, Fbackward_prefix_chars): Likewise.
9294         (scan_sexps_forward): Likewise.
9295         (init_syntax_once): Initialize Vsyntax_code_object.
9296         Initialize Vstandard_syntax_table by share objects in
9297         Vsyntax_code_object.
9298         (syms_of_syntax): Staticpro Vsyntax_code_object.
9300         * syntax.h (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
9301         characters.
9302         (SYNTAX_ENTRY_FOLLOW_PARENT): New macro.
9303         (SYNTAX_ENTRY): Handle syntax of multibyte characters.
9304         (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Don't signal error even
9305         if a syntax entry is not cons.
9307         * term.c: Include charset.h and coding.h.
9308         (TS_end_italic_mode, TS_italic_mode, TS_bold_mode): New variables.
9309         (TS_end_bold_mode, TS_end_underscore_mode): New variables.
9310         (TS_underscore_mode): New variable.
9311         (encode_terminal_code): New function.
9312         (write_glyphs, insert_glyphs): Perform character code conversion
9313         on output to a terminal.
9314         (term_init): Initialize TS_bold_mode, TS_end_bold_mode,
9315         TS_end_underscore_mode, and TS_underscore_mode.
9317         * xdisp.c: Include charset.h, coding.h, and process.h.
9318         (display_text_line): Handle multibyte characters.
9319         (display_mode_line): Pay attention to wide-column characters.
9320         (decode_mode_spec_coding): New function.
9321         (decode_mode_spec): Handle %-constructs `%z' and `%Z' to print
9322         coding system mnemonics.
9323         (display_string): Handle multibyte characters.
9325         * xfaces.c: Include charset.h.
9326         (allocate_face, copy_face, face_eq1): Handle member `fontset' of
9327         struct face, i.e. initialize, copy, and check it.
9328         (intern_face, clear_face_cache): Handle member `non_ascii_gc' of
9329         struct face, i.e. initialize and free it.
9330         (free_frame_faces): Unload font only when fontset is not used.
9331         Free non_ascii_gc.
9332         (frame_update_line_height, merge_faces, compute_base_face): Handle
9333         fontset.
9334         (recompute_base_faces): Free non_ascii_gc.
9335         (Fset_face_attribute_internal): Handle fontset.
9337         * xfns.c: Include charset.h and fontset.h.
9338         (Vx_pixel_size_width_font_regexp): New variable.
9339         (x_set_font): Handle fontset.
9340         (Fx_create_frame): Create fontsets in Vglobal_fontset_alist.
9341         (Fx_list_fonts): Handle fontset.
9342         (syms_of_xfns): Initialize Vx_pixel_size_width_font_regexp.
9343         Setting callback functions for fontset handler.
9345         * xselect.c: Include charset.h and coding.h.
9346         (QCOMPOUND_TEXT): New variable.
9347         (symbol_to_x_atom): Handle it.
9348         (selection_data_to_lisp_data): Decode a selection data if
9349         selection type is TEXT or COMPOUND_TEXT.
9350         (lisp_data_to_selection_data): Encode a text to COMPOUND_TEXT if
9351         it contains multibyte characters.
9352         (syms_of_xselect): Initialize and staticpro QCOMPOUND_TEXT.
9354         * xterm.c: Include charset.h, ccl.h, and fontset.h.
9355         (PER_CHAR_METRIC): New macro.
9356         (dumpglyphs): New argument CMPCHARP.  Handle multibyte characters.
9357         (XTwrite_glyphs, redraw_previous_char, redraw_following_char):
9358         Supply argument CMPCHARP to dumpglyphs.
9359         (dumprectangle): Display whole glyph of wide-column characters.
9360         Supply argument CMPCHARP to dumpglyphs.
9361         (show_mouse_face): Supply argument CMPCHARP to dumpglyphs.
9362         (x_draw_box): Pay attention to wide-column characters.
9363         (x_draw_single_glyph): Supply argument CMPCHARP to dumpglyphs.
9364         (x_new_font): Call fs_load_font for actual font loading work.
9365         (x_new_fontset): New function.
9366         (x_get_font_info, x_list_fonts, x_load_font, x_query_font): New
9367         functions providing API to fontset handler.
9368         (x_term_init): Initialize several new members of struct x_display_info.
9370         * xterm.h (struct font_info): This definition is moved to
9371         fontset.h.
9372         (struct x_display_info): New members Xatom_PIXEL_SIZE,
9373         Xatom_MULE_BASELINE_OFFSET, Xatom_RELATIVE_COMPOSE, and null_pixel.
9374         (x_list_fonts, x_get_font_info, x_load_font, x_query_font):
9375         Declare external.
9376         (struct x_output): New members font_baseline and fontset.
9377         (FRAME_FONTSET, FRAME_X_FONT_TABLE): New macros.
9379         * category.h, category.c, ccl.h, ccl.c, charset.h: New files.
9380         * charset.c, coding.h, coding.c, fontset.h, fontset.c: New files.
9382 1997-02-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9384         * print.c (print): Generate a backslash in \2e10.
9385         
9386 1997-02-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9388         * window.c (change_window_height): Take size from multiple siblings,
9389         nearest ones first, when that can be done without deleting any of them.
9391 1997-02-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9393         * minibuf.c (Fminibuffer_message): New function.
9394         (syms_of_minibuf): Set up Lisp function.
9396         * syntax.c (scan_lists): Signal errors using scan-error.
9397         (syms_of_syntax): Set up Qscan_error.
9399 1997-02-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9401         * lread.c (Feval_buffer): Doc fix.
9403 1997-02-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9405         * window.c (scroll_preserve_screen_position): New variable.
9406         (keys_of_window): Set up Lisp var.
9407         (window_scroll): If scroll_preserve_screen_position is 0,
9408         behave the old way (advancing point the minimum distance).
9410 1997-02-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9412         * emacs.c (main): Don't extend stack limit too far.
9414 Sun Feb  2 10:36:26 1997  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
9416         * msdos.c (dos_rawgetc): When international keyboard doesn't have
9417         to be supported, recognize Alt-key combinations even if the Alt
9418         key is no longer pressed.
9420 1997-01-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9422         * xfns.c (Vx_resource_class): New variable.
9423         (syms_of_xfns): Set up Lisp variable.
9424         (Fx_get_resource, x_window): Use Vx_resource_class.
9425         (validate_x_resource_name): Ensure Vx_resource_class is a string.
9427 1997-01-27  Paul Eggert  <eggert@twinsun.com>
9429         * data.c (isnan): Define even if LISP_FLOAT_TYPE is not defined,
9430         since fmod might need it.
9431         (fmod): Ensure that the magnitude of the result does not exceed that
9432         of the divisor, and that the sign of the result does not disagree with
9433         that of the dividend.  This does not yield a
9434         particularly accurate result, but at least it will be in the
9435         range promised by fmod.
9436         
9437         * doprnt.c: Include <float.h> if STDC_HEADERS.
9438         (DBL_MAX_10_EXP): Define if not defined; default is IEEE double.
9439         (doprnt1): Allocate enough buffer space to handle very large floating
9440         point numbers, or very large field widths or precisions.
9441         Detect overflow in field widths or precisions.
9443 1997-01-26  Karl Heuer  <kwzh@gnu.ai.mit.edu>
9445         * config.in (HAVE_RINT, HAVE_CBRT): Add undefs.
9447 1997-01-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9449         * lread.c (openp): Handle remote file names in path.
9450         Don't use the path for an absolute name.
9451         (Fload): Handle openp finding a remote file name.
9453 1997-01-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
9455         * floatfns.c [!HAVE_RINT] (rint): Convert macro to an actual
9456         function, so we can take its address.
9458 1997-01-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
9460         * indent.c (pos_tab_offset): Take the width of the minibuffer
9461         prompt into account.
9462         (vmotion): In calls to compute_motion use a value for tab_offset
9463         that is corrected by the minibuffer prompt width.
9465         * xdisp.c (try_window): Remove frobnication of tab_offset in a
9466         minibuffer window.
9467         (display_text_line): Likewise, for the taboffset parameter.
9469 1997-01-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9471         * lread.c (Qinhibit_file_name_operation): New variable.
9472         (syms_of_lread): Initialize and staticpro.
9473         (Fload): Bind inhibit-file-name-operation to nil.
9475 1997-01-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9477         * eval.c (unbind_to, specbind): Use set_internal.
9479         * data.c (set_internal): New subroutine.  New arg BINDFLAG.
9480         Don't make a new buffer-local binding if BINDFLAG is 0.
9481         (Fset): Use set_internal.
9483 1997-01-21  Paul Eggert  <eggert@twinsun.com>
9485         * editfns.c (set_time_zone_rule_tz1, set_time_zone_rule_tz2):
9486         Put "+" in value; needed if we are a Solaris 1 executable
9487         running under Solaris 2.
9488         Define these variables only if LOCALTIME_CACHE is defined.
9490 1997-01-21  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
9491                 
9492         * msdos.c (run_msdos_command): Remove unused variables.
9493         (crlf_to_lf): Remove unused variables.
9494         (Fmsdos_downcase_filename): Remove unused variable.
9495         (IT_set_frame_parameters): Declare prototypes for external functions.
9496         (IT_set_frame_parameters): Correct format specifier.
9497         (IT_set_terminal_modes): Remove unused variable.
9498         (top level): Add header files which declare used functions.
9500 1997-01-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9502         * Makefile.in (stamp-oldxmenu): New target.
9503         (temacs): Depend on stamp-oldxmenu, not on ${OLDXMENU}.
9505 1997-01-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9507         * lisp.h (FAST_MAKE_GLYPH): Rename args to CHAR and FACE.
9508         Cast CHAR to unsigned char before using it.
9510         * xterm.c (dumpglyphs): Declare g as GLYPH.
9512 1997-01-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9514         * term.c (fatal): Print a newline at the end.
9515         (term_init): Calls to fatal changed.
9517         * eval.c (Fsignal): Call fatal if no error handlers and no catch.
9519         * dispnew.c (init_display): Check for overflow in screen size.
9520         Use `fatal'.
9521         
9522 1997-01-19  Geoff Voelker  <voelker@cs.washington.edu>
9524         * w32.c (init_environment): Rebuild Vsystem_configuration at startup.
9526         * w32gui.h: Update include conditionals to use new name.
9528         * w32gui.h: Renamed from win32.h.
9529         * dispextern.h, w32term.h, makefile.nt: Use new name w32gui.h.
9530         * makefile.nt: Update header comment.
9531         
9532         * w32console.c (initialize_w32_display): Renamed from 
9533         initialize_win_nt_display.
9534         * term.c (term_init): Use new name initialize_w32_display.
9535         
9536         * w32.c, w32console.c, w32faces.c, w32fns.c, w32heap.c,
9537         w32inevt.c, w32menu.c, w32proc.c, w32select.c, w32term.c,
9538         w32xfns.c, win32.h, w32inevt.h, w32term.h: Change all uses of win95,
9539         winnt, and win32 into Windows 95, Windows NT, and W32, respectively.
9540         Expand "win" substring in variables referring to Microsoft Windows 
9541         constructs into "windows".
9542         Canonicalize header comments to use same terminology.
9544 1997-01-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9546         * search.c (skip_chars): Optimize by not calling SET_PT in the loop.
9548 1997-01-16  Erik Naggum  <erik@naggum.no>
9550         * keymap.c (push_key_description): Print C-j, not LFD.
9552 1997-01-16  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
9554         * msdos.c (XMenuActivate): Don't allow non-positive menu
9555         coordinates.
9557 1997-01-15  Eli Zaretskii  <eliz@is.elta.co.il>
9559         * keyboard.c (interrupt_signal): Make emergency exit work on MSDOS
9560         frames.  Block further SIGINTs while `interrupt_signal' runs.
9562         * msdos.c (sigprocmask, sig_suspender): New functions, implement
9563         signal blocking on MSDOS.
9565 1997-01-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9567         * s/hpux9.h (HAVE_PSTAT_GETDYNAMIC): New definition.
9569 1997-01-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9571         * w32.c (get_emacs_configuration): Return windows95 instead of win95.
9573 1997-01-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9575         * dispnew.c (change_frame_size_1): Reject new sizes if they cause
9576         overflow.
9578 1997-01-13  Eli Zaretskii  <eliz@is.elta.co.il>
9580         * emacs.c (init_cmdargs) [MSDOS]: Allow `installation-directory'
9581         to be set if either `lib-src' or `info' are found as its
9582         subdirectories or siblings.
9584 1997-01-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9586         * fns.c (concat): Take modulus of thisindex before shifting.
9587         Declare thisindex as unsigned.
9589 1997-01-12  Geoff Voelker  <voelker@cs.washington.edu>
9591         * w32menu.c (x-popup-menu): Pass in insist flag to mouse_position_hook.
9593 1997-01-11  Paul Eggert  <eggert@twinsun.com>
9595         * floatfns.c (rounding_driver): New function for systematic support of
9596         2-argument rounding functions, so that `floor' isn't the only one
9597         that supports 2 arguments.
9598         (Fceiling, Ffloor, Fround, Ftruncate): Use it.
9599         (ceiling2, floor2, round2, truncate2, double_identity): New functions.
9600         (syms_of_floatfns): Define ceiling, round, and truncate even if
9601         LISP_FLOAT_TYPE is not defined.
9603 1997-01-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9605         * lread.c (read1): Round size of bool-vector properly.
9607         * print.c (print): Round size of bool-vector properly.
9609         * lread.c (read1): Fix error messages.
9611 1997-01-09  Steve Nygard  <nygard@telusplanet.net>
9613         * unexnext.c: Include <mach-o/reloc.h>.
9614         (fgrowth): Initialize to zero.
9615         (vmaddr_growth, dataseg_vmaddr, dataseg_vmend): New variables.
9616         [NS_TARGET] (extreloff, nextrel, dysymtab, reloc_info): New variables.
9617         (unexec_doit): Adjust file offsets of segments that follow the
9618         enlarged data segment.  Adjust vmaddr of the SEG_LINKEDIT segment that
9619         follows the data segment.
9620         [NS_TARGET] (unexec_doit): Adjust file offsets in the LC_DYSYMTAB load
9621         command that follows the data segment.  Zero out relocation entries
9622         that fall within the data segment.
9624 1997-01-07  Karl Berry  <karl@cs.umb.edu>
9626         * filelock.c (LOCK_PID_MAX): Use sizeof (unsigned long) instead
9627         of hardwiring 21.
9628         (lock_file_1): Use LOCK_PID_MAX when allocating lock_info_str
9629         instead of hardwiring 21.
9631 1997-01-06  Eli Zaretskii  <eliz@is.elta.co.il>
9633         * msdos.c (bright_bg): Save the original state of video blink bit.
9634         (maybe_enable_blinking): New function, restores the original state
9635         of the blink bit.
9636         (IT_reset_terminal_modes): Restore the original state of the blink
9637         bit when suspending/exiting.
9638         (run_msdos_command): Make sure bright background colors are again
9639         enabled after subsidiary program returns.
9641 1997-01-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9643         * data.c (Fset_default): For a BUFFER_OBJFWD, store into
9644         buffer_defaults even if mask < 0.
9646 1997-01-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9648         * keyboard.c (command_loop_1, read_char):
9649         Run Qecho_area_clear_hook when clearing echo area.
9650         (Qecho_area_clear_hook): New variable.
9651         (syms_of_keyboard): Initialize it.
9653         * buffer.c (Fpop_to_buffer): New arg NORECORD.
9655 1997-01-04  Geoff Voelker  <voelker@cs.washington.edu>
9657         * w32proc.c (compare_env, merge_and_sort_env): New functions.
9658         (sys_spawnve): Sort environment variables for subprocess.
9659         (ppid_env_var_buffer): Variable deleted.
9661 1997-01-02  Karl Berry  <karl@cs.umb.edu>
9663         * filelock.c (lock_info_type): Declare pid as unsigned long
9664         instead of int.
9665         (lock_file_1): Use %lu instead of %d in printf.
9667 1997-01-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9669         * cmds.c (internal_self_insert): Check the property
9670         on the hook, not on the abbrev symbol.
9672         * dispnew.c (update_frame): Call detect_input_pending
9673         for X as well as for termcap frames.
9675 1996-12-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9677         * bytecode.c (HANDLE_RELOCATION): New macro.
9678         (MAYBE_GC): Call HANDLE_RELOCATION.  Swallow following semicolon.
9679         (Fbyte_code): Use HANDLE_RELOCATION.
9681 1996-12-31  Paul Eggert  <eggert@twinsun.com>
9683         * s/nextstep.h, s/sco4.h (BROKEN_MKTIME): New macro.
9684         * Makefile.in (MKTIME_OBJ), config.in (mktime):
9685         Use BROKEN_MKTIME to determine whether mktime is broken.
9687 1996-12-30  Paul Eggert  <eggert@twinsun.com>
9688         
9689         * data.c, floatfns.c: <float.h>: Include if STDC_HEADERS.
9690         (IEEE_FLOATING_POINT): New symbol.
9691         * data.c (float_arith_driver, Fmod), floatfns.c (Ffloor):
9692         Test for division by 0 only if ! IEEE_FLOATING_POINT.
9693         * floatfns.c (fmod_float): New function.
9695         * Makefile.in (MKTIME_OBJ): Use our mktime instead of SCO
9696         3.2v4.2's, since SCO's botches time arithmetic as used by display-time.
9698 1996-12-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9700         * bytecode.c (Fbyte_code): Add error check for jumping out of range.
9702         * s/hiuxmpp.h, m/sr2k.h: New files.
9704 1996-12-29  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9706         * Makefile.in (process.o): Depend on blockinput.h.
9708         * process.c: Include blockinput.h.
9709         (create_process): Block input around the fork.
9711 1996-12-27  Karl Berry  <karl@owl.HQ.Ileaf.COM>
9713         * filelock.c: Total rewrite.
9715 1996-12-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9717         * data.c (Ffset): Change argument name and doc string.
9718         (Fdefalias): Likewise.
9720 1996-12-26  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
9722         * xterm.c (x_iconify_frame): Clear visible when we set iconified.
9724 1996-12-25  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
9726         * window.c (window_scroll): Preserve vpos of point
9727         if we cannot preserve the actual position of it.
9728         Make it static.  New arg WHOLE; callers changed.
9729         
9730         * keyboard.c (read_char_x_menu_prompt): Unread and record all the
9731         input events from here.
9732         (record_menu_key): New subroutine.
9734         * xmenu.c (single_keymap_panes): New arg DEPTH.
9735         Cut off recursion at that depth.  Callers changed.
9737 1996-12-23 +02  Eli Zaretskii  <eliz@is.elta.co.il>
9739         * msdos.c (dos_set_keyboard): Test whether KEYB.COM is installed
9740         for international keyboard support.
9741         (dos_get_modifiers): If international keyboard support is NOT
9742         required, make both Right and Left Alt key behave like Meta key.
9744 1996-12-22  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
9746         * emacs.c (standard_args): Add -find-file and -visit.
9748         * cmds.c (internal_self_insert): If the abbrev has no expansion,
9749         just a hook, inhibit the insertion of the character.
9751         * abbrev.c (Fexpand_abbrev): Return the abbrev symbol,
9752         or nil if no expansion.
9754 1996-12-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9756         * xdisp.c (try_window): Add error check for POS.
9758 1996-12-19  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9760         * s/nextstep.h (LD_SWITCH_SYSTEM): Use just -X.
9761         (LIB_STANDARD): Alternate definition if NS_TARGET.
9763         * xfns.c (x_set_title): Check data type of NAME.
9765         * search.c (Fmatch_data): Doc fix.
9767 1996-12-19  Werner Benger  <werner@ast1.uibk.ac.at>
9769         * keyboard.c (modify_event_symbol):
9770         Don't index thru name_table if it is null.
9772 1996-12-19  Erik Naggum  <erik@naggum.no>
9774         * process.c (read_process_output, exec_sentinel):
9775         * w32menu.c (set_frame_menubar):
9776         * xdisp.c (prepare_menu_bars, update_menu_bar):
9777         * xmenu.c (set_frame_menubar):
9778         Call Fmatch_data with new explicit arguments.
9780 1996-12-18  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9782         * search.c (Fmatch_data): New args INTEGERS and REUSE.
9784         * process.c (send_process) [EMACS_HAS_USECS]:
9785         When we wait for the buffer to clear, wait just .02 second.
9787         * intervals.c (adjust_intervals_for_insertion):
9788         Be smarter about when to split an interval
9789         for properties that are not sticky on either side.
9791         * intervals.h (FRONT_NONSTICKY_P): New macro.
9793         * intervals.c (set_point): Use virtual bounds, not real bounds,
9794         in the abort test for POSITION.
9795         Skip the intangibility test if POSITION is at either end of buffer.
9797 1996-12-18  Jonathan I. Kamens  <jik@annex-1-slip-jik.cam.ov.com>
9799         * config.in (HAVE_LIBMAIL, HAVE_MAILLOCK_H, HAVE_TOUCHLOCK):
9800         Add #undefs.
9802 1996-12-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9804         * fileio.c (Finsert_file_contents): Handle BEG and END non-nil
9805         when REPLACE is non-nil.
9807 1996-12-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9809         * intervals.c (merge_properties_sticky): Don't discard explicit nil
9810         properties.  Don't put on a front-sticky property if we inherit
9811         one from the category that does the job.
9813         * config.in (HAVE_LIMITS_H): Add #undef.
9815 1996-12-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9817         * intervals.c (set_point): Check for intangible properties
9818         on overlays.
9820         * textprop.c (Fnext_char_property_change): New function.
9821         (Fprevious_char_property_change): New function.
9822         (syms_of_textprop): defsubr them.
9824 1996-12-14  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
9826         * editfns.c (Fuser_full_name): Return nil if the specified user
9827         doesn't exist.
9828         (init_editfns): Set Vuser_full_name to "unknown" if the user name
9829         can't be resolved.
9831 1996-12-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9833         * strftime.c: Replace this with the version from libc.
9835 1996-12-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9837         * xfns.c (x_set_scroll_bar_width): Reject a width that's too small.
9839 1006-12-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9841         * buffer.c (syms_of_buffer): Doc fix (transient-mark-mode).
9843 1996-12-10  Andrew Innes  <andrewi@harlequin.co.uk>
9845         * fileio.c (Fwrite_region): Be careful not to destroy contents of
9846         existing file when appending.
9848 1996-12-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9850         * fileio.c (Fread_file_name_internal): Verify STRING is a string.
9851         (Fread_file_name): Don't insert DIR or INITIAL if it isn't a string.
9853 1996-12-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9855         * s/aix4-2.h: New file.
9857 1995-12-08  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
9859         * editfns.c (Fuser_full_name): Use build_string instead of make_string.
9861 1996-12-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
9863         * callproc.c (Fcall_process_region): Define missing local `count'.
9865         * xdisp.c (message2_nolog): Handle minibuffer_auto_raise.
9867         * minibuf.c (syms_of_minibuf): Doc fix.
9869 1996-12-07  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
9871         * editfns.c (Fuser_full_name): Accept a string (the login name) as
9872         a parameter.  Do ampersand expansion, if required.
9873         (init_editfns): Use it.
9875 1996-12-06  Eli Zaretskii  <eliz@is.elta.co.il>
9877         * msdos.c (IT_cmgoto): Don't update FRAME_CURSOR_X when the cursor
9878         is in echo area.
9880 1996-12-05  Erik Naggum <erik@naggum.no>
9882         * keyboard.c (syms_of_keyboard): Doc fix.
9884 1996-11-28  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
9886         * callproc.c (Vtemp_file_name_pattern): New variable.
9887         (syms_of_callproc): Set up Lisp variable.
9888         (init_callproc): Initialize it.
9889         (Fcall_process_region): Use it.
9891         * bytecode.c (MAYBE_GC): New macro.
9892         (Fbyte_code): Use MAYBE_GC in every goto opcode.
9894 1996-11-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
9896         * editfns.c (Fline_beginning_position, Fline_end_position): New fns.
9897         * cmds.c (Fend_of_line, Fbeginning_of_line):
9898         Use Fline_beginning_position, Fline_end_position.
9899         * lisp.h  (Fend_of_line, Fbeginning_of_line): Declared.
9901 1996-11-23  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
9903         * window.c (window_scroll): Don't set w->start or w->force_start
9904         if signaling an error.
9906         * xmenu.c (Vmenu_updating_frame): New variable.
9907         (syms_of_xmenu): Set up Lisp var.
9908         (Fx_popup_menu, set_frame_menubar): Initialize it.
9910 1996-11-23  Erik Naggum  <erik@naggum.no>
9912         * keyboard.c (syms_of_keyboard): Doc fix for num-input-keys.
9914 1996-11-22  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
9916         * editfns.c (Fuser_full_name): Accept an optional UID and return
9917         the full name of that user instead.
9919 1996-11-20  Andrew Innes  <andrewi@harlequin.co.uk>
9921         * w32fns.c (w32_wnd_proc): Use dummy message to wake up thread on
9922         quit_char.
9924 1996-11-19  Eli Zaretskii  <eliz@is.elta.co.il>
9926         * msdos.c [__DJGPP__ >= 2] (dos_direct_output): Faster method of
9927         writing characters to the screen.
9928         (SCREEN_SET_CURSOR): Remove.
9929         (IT_display_cursor): New function, to turn the cursor on and off.
9930         (IT_cmgoto): New function, sets the cursor to its final position
9931         whenever frame update is complete.
9932         (internal_terminal_init): Set IT_cmgoto as the hook to be called
9933         when frame is up to date.
9934         (dos_rawgetc): Call IT_cmgoto instead of the SCREEN_SET_CURSOR
9935         macro (which is gone now).
9936         (XMenuActivate): Turn off the cursor while the menu is displayed,
9937         to prevent it from showing through the menu panes.
9939 1996-11-19  Geoff Voelker  <voelker@cs.washington.edu>
9941         * w32.c, w32.h: Renamed from nt.c, nt.h.
9942         * w32heap.c, w32heap.h: Renamed from ntheap.c, ntheap.h.
9943         * w32inevt.c, w32inevt.h: Renamed from ntinevt.c, ntinevt.h.
9944         * w32proc.c: Renamed from ntproc.c.
9945         * w32console.c: Renamed from w32term.c.
9946         * unexw32.c: Renamed from unexnt.c.
9947         * s/ms-w32.h: Renamed from s/windowsnt.h.
9948         
9949         * dispnew.c (init_display) [HAVE_NTGUI]: Use w32 for window-system.
9951         * Makefile.in, callproc.c, makefile.nt: Use new names for w32 files.
9953 1996-11-18  Geoff Voelker  <voelker@cs.washington.edu>
9955         * emacs.c, frame.c, frame.h, keyboard.c, nt.c, nt.h,
9956         ntheap.c, ntheap.h, ntinevt.c, ntinevt.h, ntproc.c, ntterm.c,
9957         termhooks.h, unexnt.c, w32faces.c, w32fns.c, w32menu.c, w32reg.c,
9958         w32select.c, w32term.c, w32term.h, w32xfns.c, s/windowsnt.h:
9959         Change identifiers of the form win32* to w32*.
9961         * window.c (special-display-p, same-window-p): Add missing
9962         newlines and backslashes in help strings.
9964 1996-11-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9966         * xdisp.c (redisplay_window): When handling scroll_conservatively,
9967         scroll a little farther for the sake of scroll_margin.
9969 1996-11-11  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9971         * abbrev.c (Fexpand_abbrev): If the abbrev's expansion is nil,
9972         don't expand it, but do still call the hook.
9973         (Fdefine_abbrev): Allow anything for EXPANSION.
9975         * frame.c (Fmodify_frame_parameters): Use alist in reverse order.
9977 1996-11-10  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9979         * process.c (status_notify): Test p->infd > 0
9980         before each call to read_process_output.
9981         (read_process_output): Handle match data properly in recursive calls.
9982         (exec_sentinel): Likewise.
9984         * window.c (window_scroll): Handle scroll_margin
9985         by putting point at a place that won't force recentering.
9987         * xdisp.c (scroll_margin): New variable.
9988         (init_xdisp): Set up Lisp variable.
9989         (redisplay_window): Implement scroll_margin; don't use old start pos
9990         if point is inside the margin.
9992 1996-11-09  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
9994         * window.h (struct window): New field optional_new_start.
9995         * xdisp.c (redisplay_window): Handle optional_new_start.
9996         * window.c (Fdelete_other_windows): Set optional_new_start
9997         instead of force_start.
9999         * insdel.c (signal_after_change): If Vcombine_after_change_calls,
10000         save up changes in combine_after_change_list.
10001         (Fcombine_after_change_execute)
10002         (Fcombine_after_change_execute_1): New subroutines.
10003         (syms_of_insdel): New function.
10005         * emacs.c (main): Call syms_of_insdel.
10007         * fns.c: Include frame.h and window.h.
10008         (Fy_or_n_p): Handle minibuffer_auto_raise here.
10010         * Makefile.in (fns.o): Depend on frame.h and window.h.
10012 1996-11-08  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10014         * macros.c (Fcall_last_kbd_macro): Set this_command from last_command
10015         on entry and again on exit.
10017 1996-11-07  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10019         * frame.c (Fmodify_frame_parameters): Doc fix.
10021         * fileio.c (USG5 or BSD_SYSTEM or LINUX): Include fcntl.h.
10022         (Ffile_readable_p): Return immediately if stat fails.
10023         Call S_ISFIFO correctly.
10025 1996-11-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10027         * editfns.c (Fencode_time): Doc fix.
10029 1996-11-06  John F. Carr  <carrj@polaroid.com>
10031         * dired.c (Ffile_attributes): Represent inode number as a pair of
10032         integers in case inode numbers do not fit in a Lisp integer.
10034 1996-11-06  Eli Zaretskii  <eliz@is.elta.co.il>
10036         * msdos.c [__DJGPP_MINOR__ == 0] (_rename): New function, a
10037         substitute for library low-level file-renaming function which
10038         works around Windows 95 bug.
10040 1996-11-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10042         * window.c (window_loop, case GET_BUFFER_WINDOW):
10043         Don't find any minibuffer window
10044         except the one that is currently in use.
10046 1996-11-05  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10048         * fileio.c (S_ISFIFO): Default definition (if S_IFIFO is defined).
10050         * editfns.c (Fencode_time): Use xfree, not free.
10052         * print.c (PRINTFINISH): Use xfree, not free.
10054 1996-11-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10056         * xfns.c (Fx_create_frame): Look for X-resource for minibuffer.
10058         * alloc.c (Fgarbage_collect): Use Vhistory_length
10059         for truncating Vcommand_history.
10061         * print.c (PRINTPREPARE): Really do set free_print_buffer.
10063         * xdisp.c (scroll_conservatively): New variable.
10064         (redisplay_window): Obey it.
10065         (syms_of_xdisp): Set up Lisp var.
10067 1996-11-02  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10069         * minibuf.c (choose_minibuf_frame): Don't change selected_frame's
10070         selected window even if it is a minibuffer window,
10071         if it is active.
10073 1996-11-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10075         * print.c (PRINTDECLARE): Declare specpdl_count and free_print_buffer.
10076         (PRINTPREPARE): If print_buffer is nonzero,
10077         save its contents in a string using record_unwind_protect.
10078         (PRINTFINISH): Restore old print_buffer contents.
10079         Free it only if this PRINTPREPARE malloc'd it.
10080         (print): Don't call PRINTFULLP after all.
10081         (print_unwind): New function.
10083         * print.c (printchar, strout): Do QUIT for echo area output.
10084         (PRINTFULLP): New macro.
10085         (print): Exit if PRINTFULLP.
10086         When printing a symbol, don't save a pointer to the name.
10087         (PRINTFINISH): Null out print_buffer after freeing it.
10089 1996-10-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10091         * xterm.c (cancel_mouse_face): New function.  Code copied from
10092         x_set_window_size, fixing a bug.
10093         (x_set_window_size): Use cancel_mouse_face.
10094         (XTread_socket): When frame size has changed, call cancel_mouse_face.
10096         * widget.c (EmacsFrameResize): Use cancel_mouse_face.
10098 1996-10-31  Erik Naggum  <erik@naggum.no>
10100         Reorganize function definitions so etags finds them.
10101         * abbrev.c (Finsert_abbrev_table_description).
10102         * editfns.c (Finsert_and_inherit_before_markers).
10103         * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success,
10104         Frun_hook_with_args_until_failure).
10105         * window.c (Fcurrent_window_configuration).
10106         * xselect.c (Fx_own_selection_internal, Fx_get_selection_internal,
10107         Fx_disown_selection_internal).
10109 1996-10-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10111         * emacs.c (main): Clear out *Messages* before init_callproc.
10113         * keyboard.c (command_loop_1): Update selected buffer again
10114         after read_key_sequence.
10116 1996-10-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10118         * callproc.c (init_callproc): Use dir_warning.
10120         * lread.c (dir_warning): New function.
10121         (init_lread): Use dir_warning.
10123 1996-10-28  Erik Naggum  <erik@naggum.no>
10125         * alloc.c (Fmake_char_table): Doc fix.
10127 1996-10-25  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
10129         * keymap.c (describe_buffer_bindings): Pass 1 for PARTIAL
10130         in some calls to describe_map_tree.
10132 1996-10-24  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
10134         * process.c (status_notify): Update p->tick again
10135         just before running the sentinel, in case it dies.
10137 1996-10-23  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
10139         * xdisp.c (decode_mode_spec): In the `L' case,
10140         remove a buffer from base_line_pos if window has switched buffers.
10142 1996-10-15  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10144         * minibuf.c (read_minibuf_unwind): Don't restore minibuf_window;
10145         instead call choose_minibuf_frame.
10146         (choose_minibuf_frame): Don't let any other frame keep its minibuf
10147         window selected.
10149         * xterm.c (XTread_socket, KeyPress case): Clear compose_status
10150         if the key has the meta modifier.
10152 1996-10-14  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10154         * eval.c (Vdebug_on_signal): Renamed from Vdebug_force.
10156 1996-10-13  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10158         * m/pmax.h (BROKEN_O_NONBLOCK): Define only if Ultrix.
10159         (LIBS_MACHINE, KERNEL_FILE): Don't define if __NetBSD__.
10160         (C_SWITCH_X_MACHINE): Define only if Ultrix.
10161         [__NetBSD__] (START_FILES, CANNOT_DUMP): New definitions.
10162         [__NetBSD__] (RUN_TIME_REMAP, UNEXEC): Undef them.
10164         * m/mips.h (UNEXEC): Undef before defining.
10166         * fileio.c (Fexpand_file_name):
10167         No longer discard .../ before another / or ~.
10168         That is now only in Fsubstitute_in_file_name.
10170 1996-10-12  Simon Marshall  <simon@duality.gnu.ai.mit.edu>
10172         * data.c (Fdefine_function): Function definition deleted.
10173         (syms_of_data): Don't call defsubr for it.
10175 1996-10-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10177         * xterm.c (XTwrite_glyphs, XTclear_end_of_line, XTclear_frame)
10178         (clear_cursor, x_display_bar_cursor, x_display_box_cursor)
10179         (x_set_window_size): Use phys_cursor_on field in frame.
10180         (x_update_cursor): Negative phys_cursor_x no longer means anything.
10182         * frame.h (struct frame): New field phys_cursor_on.
10184 1996-10-08  David KÃ¥gedal  <davidk@lysator.liu.se>
10186         * xmenu.c (Fx_popup_menu): Give the menu a title when the menu is
10187         a single keymap.
10189 1996-10-07  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10191         * s/ptx.h (POSIX_SIGNALS): New definition.
10193         * dispnew.c (init_display): If not yet initialized,
10194         we can't really use X, so we must do the real work.
10196 1996-10-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10198         * xdisp.c (display_text_line): New arg ovstr_done.  (Callers changed).
10199         Ignore that many chars from start of overlay strings.
10200         Return updated value in ovstring_chars_done field.
10202         * indent.c (vmotion, compute_motion): Fill in ovstring_chars_done
10203         in the return value.
10205         * indent.h (struct position): New field ovstring_chars_done.
10207 1996-10-06  Erik Naggum  <erik@naggum.no>
10209         * window.c (Fspecial_display_p, Fsame_window_p): New functions.
10210         (Fdisplay_buffer): Use them, instead of doing the work here.
10211         (syms_of_window): Defsubr them.
10213 1996-10-05  Marcus G. Daniels  <marcus@coulee.tdb.com>
10215         * xfns.c (x_set_internal_border_width):  Only change
10216         an edit_widget's internal_border_width for the toolkit case.
10218 1996-10-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10220         * lread.c (openp): Omit /: from start of file name.
10222 1996-10-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10224         * buffer.c (init_buffer): Add /: to dir names that could be magic.
10225         * emacs.c (decode_env_path): Add /: to dir names that could be magic.
10226         (init_cmdargs): Add /: to argv[0] if it could be magic.
10228 1996-10-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10230         * xfns.c (syms_of_xfns): For x-sensitive-text-pointer-shape, use
10231         DEFVAR_LISP.
10233 1996-10-01  Karl Heuer  <kwzh@gnu.ai.mit.edu>
10235         * frame.c (store_frame_param): Allow setting a frame's minibuffer
10236         to the value that it already has.
10238 1996-10-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10240         * buffer.c (syms_of_buffer): Doc fix.
10242 1996-09-28  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10244         * xterm.c (show_mouse_face): Undo 1996-08-30 change.
10246         * s/irix5-0.h (ospeed): New definition.
10247         * s/irix6-0.h (ospeed): New #undef to counteract that definition.
10249 1996-09-27  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10251         * xterm.c (XTflash): Don't flash in the internal borders.
10252         or between a scroll bar and the edge.
10254         * eval.c (Vdebug_force): New variable.
10255         (syms_of_eval): Set up Lisp var.
10256         (find_handler_clause): If Vdebug_force, call debugger
10257         even if there are handlers.
10259 1996-09-26  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
10261         * xfns.c (x_set_scroll_bar_width): Move cursor to the 
10262         left margin, past a scroll bar, if any.
10264 1996-09-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10266         * lread.c (isfloat_string): Accept E like e.
10268         * callint.c (Fcall_interactively): Bind cursor-in-echo-area to t
10269         for `k' and `K'.
10271         * s/hpux10.h (KERNEL_FILE): Redefine it here.
10273 1996-09-25  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10275         * textprop.c (Fset_text_properties, Fadd_text_properties)
10276         (Fremove_text_properties): Call modify_region and signal_after_change
10277         only for buffers, not for strings.
10279         * xterm.c (XTflash): Flash just top and bottom screen line.
10281         * window.c (syms_of_window): Doc fixes.
10283 1996-09-25  Marcus Daniels  <marcus@sysc.pdx.edu>
10285         * s/irix5-0.h (sigsetmask, _longjmp, _setjmp): #undef them.
10286         (_BSD_SIGNALS): Definition deleted.
10288 1996-09-25  Eli Zaretskii  <eliz@is.elta.co.il>
10290         * dosfns.c (init_dosfns): When setting `__opendir_flags' value,
10291         override the bits recorded when dumping.
10293 1996-09-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10295         * w32term.c (w32_read_socket): Delete WAITP arg.
10297         * keyboard.c (read_avail_input): Don't pass WAITP to read_socket_hook.
10299         * xterm.c (XTread_socket): Delete WAITP arg.
10301         * config.in (HAVE_GETCWD): Add #undef.
10303         * fileio.c (Vuser_login_name): Declared extern.
10304         (minibuf_level): extern decl moved to top level.
10305         (Fwrite_region): Query before writing to a file that is locked,
10306         even if it is locked by the same user.
10308         * textprop.c (set_properties, add_properties, remove_properties):
10309         Don't call modify_region or signal_after_change here.
10310         (Fset_text_properties, Fadd_text_properties, Fremove_text_properties):
10311         Call them here when appropriate.
10313         * Makefile.in (LIBES): Add LOADLIBES and LDLIBS.
10315 1996-09-24  Eli Zaretskii  <eliz@is.elta.co.il>
10317         * msdos.c (run_msdos_command): When testing whether a shell
10318         belongs to the MSDOS family, convert its name to lower-case.
10320 1996-09-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10322         * eval.c (Vsignal_hook_function): New variable.
10323         (syms_of_eval): Set up Lisp variable.
10324         (Fsignal): Call that function.
10326         * xfns.c (x_set_internal_border_width, Fx_create_frame):
10327         Call widget_store_internal_border.
10328         (Fx_create_frame): Don't use a superclass when
10329         checking for an internalBorder resource.
10331         * widget.c (widget_store_internal_border): New function.
10332         (EmacsFrameSetValues): Undo previous change.
10334 1996-09-23  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10336         * xfns.c (x_window): With Motif, double extra_borders.
10337         Use a preprocessor conditional to test for Motif.
10339         * frame.h (struct frame): New field window_width.
10340         (FRAME_WINDOW_WIDTH): Refer to window_width field.
10341         (SET_FRAME_WIDTH): Set window_width field as well as width field.
10343 1996-09-22  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10345         * eval.c (syms_of_eval): Initialize Vrun_hooks here.
10346         Don't make it a Lisp variable.
10348         * frame.c (Fdelete_frame): Set update_mode_lines.
10350         * emacs.c (main): Add copyright etc. to --version output.
10352 1996-09-21  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10354         * bytecode.c (Bsave_current_buffer): New macro.
10355         (Fbyte_code): Handle Bsave_current_buffer.
10357         * editfns.c (Fsave_current_buffer): New function.
10358         (syms_of_editfns): defsubr it.
10360         * search.c (REGEXP_CACHE_SIZE): Increase to 20.
10361         (compile_pattern): Check for size match before calling Fstring_equal.
10363 1996-09-21  Paul Eggert  <eggert@twinsun.com>
10365         * editfns.c: For time zone difference calculations, use the same
10366         code as the GNU C Library; this fixes a bug with large negative years.
10367         (tm_diff): Renamed from difftm.  Yield int, not long.
10368         (TM_YEAR_BASE): Renamed from TM_YEAR_ORIGIN.
10370 1996-09-21  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10372         * xdisp.c (echo_area_display): Clear the left-side scroll bar columns.
10374 1996-09-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10376         * xterm.c (x_scroll_bar_create, x_scroll_bar_move): 
10377         (x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
10379         * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Renamed from
10380         LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM.
10381         (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
10383         * widget.c (EmacsFrameSetValues): Copy internal_border_width
10384         from the Emacs frame if caller isn't changing it.
10386         * xfns.c (Fx_create_frame): Default Qinternal_border_width to 1.
10388         * xterm.c (XTchange_line_highlight, dumpglyphs, XTclear_end_of_line)
10389         (do_line_dance, pixel_to_glyph_coords): Use FRAME_WINDOW_WIDTH.
10391         * xfns.c (x_set_scroll_bar_width): Default the width to 3 cols.
10392         Call change_frame_size.
10394         * xterm.c (x_scroll_bar_move, x_scroll_bar_create):
10395         Add a border around the actual window.
10397         * dispnew.c (make_frame_glyphs, update_line, update_frame)
10398         (scroll_frame_lines, char_ins_del_cost): Use FRAME_WINDOW_WIDTH.
10400         * minibuf.c (read_minibuf): Use FRAME_LEFT_SCROLL_BAR_WIDTH
10401         to set the cursor position at the end.
10403         * xterm.c (x_scroll_bar_expose): Don't trim the width here.
10405         * xdisp.c (display_mode_line): Use faces for inverse video mode line
10406         whenever that possible.
10408         * xfns.c (Fx_create_frame): Default Qvertical_scroll_bars to `left'.
10410 Fri Sep 20 02:37:37 1996  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
10412         * xterm.c (XTclear_end_of_line): Shift end-of-line when there is a
10413         left-side scroll bar by FRAME_LEFT_SCROLL_BAR_WIDTH.
10414         (do_line_dance): Take into account the width of a left-side scroll bar.
10415         (dumprectangle): Trim at FRAME_WINDOW_WIDTH instead of FRAME_WIDTH.
10416         (fast_find_position): Use new macro WINDOW_LEFT_MARGIN.
10417         (show_mouse_face): Likewise.
10418         (x_scroll_bar_set_handle): VERTICAL_SCROLL_BAR_INSIDE_WIDTH now
10419         requires the frame as an argument.
10420         (x_scroll_bar_expose): Narrow the box slightly for a left-side
10421         scroll bar.
10423         * xfns.c:  Add the symbol `right'; this symbol is used to indicate
10424         that a right-side scroll bar is wanted.
10425         (x_set_vertical_scroll_bars): Check for left<->right<->none 
10426         scroll bar changes, and modify the vertical scroll bar type
10427         as appropriate.
10428         (x_figure_window_size): Use new SET_FRAME_WIDTH macro.
10429         (Fx_create_frame): Likewise.
10430         (Fx_horizontal_line): Use new macro WINDOW_LEFT_MARGIN.
10432         * xdisp.c (echo_area_display): Shift display_string past a
10433         left-side scroll bar.
10434         (redisplay_window): Likewise.
10435         (redisplay_internal): Shift cursor past a left-side scroll bar.
10436         (redisplay_window): Likewise.
10437         (try_window_id): Likewise.
10438         (display_text_line): Likewise.
10439         (redisplay_internal): Shift charstarts past a left-side scroll bar.
10440         (display_text_line): Likewise.
10441         (redisplay_internal): Use new macro WINDOW_FULL_WIDTH_P.
10442         (redisplay_window): Likewise.
10443         (display_text_line): Likewise.
10444         (display_text_line): Shift output past left-side scroll bar.
10445         (display_text_line): Use new WINDOW_RIGHTMOST_P macro.
10446         (display_text_line): Don't pad right columns unless using
10447         a right-side scroll bar.  Don't draw vertical bars unless there
10448         isn't any kind of scroll bar.
10449         (display_string): Likewise.
10450         (display_mode_line): Use new macros WINDOW_LEFT_MARGIN,
10451         WINDOW_RIGHT_MARGIN, and WINDOW_FULL_WIDTH_P.
10452         (display_string): Use new macro WINDOW_RIGHTMOST_P.
10454         * window.c (Fwindow_edges): Use new WINDOW_RIGHT_EDGE macro.
10455         (coordinates_in_window): Use WINDOW_LEFT_MARGIN, WINDOW_RIGHT_MARGIN,
10456         and WINDOW_RIGHT_EDGE.  Adjust for left-side scroll bar margin.
10457         (window_loop, Fdisplay_buffer): Use new WINDOW_FULL_WIDTH_P macro.
10458         (window_internal_width): Window width now always includes the
10459         scroll bar, if any.  Use WINDOW_RIGHTMOST_P and WINDOW_FULL_WIDTH_P.
10461         * w32term.c (fast_find_position, show_macro_face): Use new
10462         WINDOW_LEFT_MARGIN macro.
10464         * w32fns.c (Qright): New variable.
10465         (syms_of_win32fns): Initialize and staticpro Qright.
10466         (x_set_vertical_scroll_bars): Check for left<->right<->none 
10467         scroll bar changes, and modify the vertical scroll bar type
10468         as appropriate.
10469         (x_figure_window_size): Use new SET_FRAME_WIDTH macro.
10470         (Fx_create_frame): Likewise.
10472         * term.c (term_init): Use new vertical scroll bar enumerated type.
10473         (term_init): Use new macro SET_FRAME_WIDTH.
10475         * sunfns.c (Fsun_menu_internal): Use new WINDOW_LEFT_MARGIN macro.
10477         * ntterm.c (initialize_win_nt_display): Use SET_FRAME_WIDTH.
10479         * keyboard.c (make_lispy_event): When converting from pixel to
10480         glyph coordinates, offset by WINDOW_LEFT_MARGIN instead of XINT
10481         (XWINDOW (window)->left; this is necessary when there are
10482         left-side scrollbars.
10484         * frame.c (make_frame): Switch from boolean
10485         `has_vertical_scrollbars' integer to an enumerated type.
10486         Use new macro SET_FRAME_WIDTH.
10488         * dispnew.c (preserve_other_columns, preserve_my_columns): Use new
10489         macros WINDOW_LEFT_MARGIN and WINDOW_RIGHT_EDGE.
10490         (adjust_window_charstarts, verify_charstarts, cancel_my_columns):
10491         Use new macro WINDOW_LEFT_MARGIN instead of w->left.
10492         (direct_output_for_insert, direct_output_forward_char): Likewise.
10493         (buffer_posn_from_coords): Likewise.
10494         (verify_charstarts): Use new macro WINDOW_FULL_WIDTH_P.
10495         (update_frame): For determining when to wrap the cursor, use the
10496         new macro FRAME_WINDOW_WIDTH instead of FRAME_WIDTH; they aren't
10497         necessarily the same any more.
10498         (change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes.
10499         Give `set_window_width' the window width value.
10500         Use new macro SET_FRAME_WIDTH.
10501         
10502         * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Add frame as an
10503         argument, and use it to decrease the width in the case of a
10504         left-side scroll bar; this prevents the bar and adjacent text
10505         from scrunching together.
10506         (LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM): Add constant.
10508         * frame.h (vertical_scroll_bar_type): Add enumerated
10509         none/left/right type for identifying vertical scroll bars.
10510         (struct frame): Use vertical_scroll_bar_type.
10511         (FRAME_HAS_VERTICAL_SCROLL_BARS): Use vertical scroll bar type.
10512         (FRAME_VERTICAL_SCROLL_BAR_TYPE): New macro.
10513         (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT): New macros.
10514         (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT): New macros.
10515         (FRAME_SCROLL_BAR_WIDTH, FRAME_LEFT_SCROLL_BAR_WIDTH): New macros.
10516         (FRAME_WINDOW_WIDTH, FRAME_WINDOW_WIDTH_ARG): New macros.
10517         (SET_FRAME_WIDTH): New macro for assigning to both
10518         `external_width' and `width'.
10519         (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side
10520         scroll bars too.
10521         
10522         * window.h (WINDOW_LEFT_MARGIN): New macro.
10523         (WINDOW_RIGHT_EDGE, WINDOW_RIGHT_MARGIN): New macros.
10524         (WINDOW_FULL_WIDTH_P, WINDOW_RIGHTMOST_P): New macros.
10526 1996-09-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10528         * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_HEIGHT): New arg F (not used).
10529         (VERTICAL_SCROLL_BAR_TOP_RANGE): New arg F (not used).
10530         * xterm.c: Pass frame arg in calls to VERTICAL_SCROLL_BAR_INSIDE_HEIGHT
10531         and VERTICAL_SCROLL_BAR_TOP_RANGE.
10532         
10533         * sysdep.c (init_system_name): Retry gethostbyname only 5 times
10534         and don't sleep after the last time.
10536 1996-09-19  Eli Zaretskii  <eliz@is.elta.co.il>
10538         * dired.c (file_name_completion): Remove code which sets and
10539         restores the `stat' control flags (they might not be restored if
10540         C-g is pressed during completion).
10541         (file_name_completion_stat): Set and restore flags that make
10542         `stat' faster here instead of in `file_name_completion'.
10544 1996-09-18  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10546         * buffer.c (overlay_strings): Declare pstr using unsigned char.
10548         * xdisp.c (display_text_line): Declare ovstr as unsigned char *.
10550         * minibuf.c (Fcompleting_read): Doc fix.
10552 1996-09-17  Erik Naggum  <erik@naggum.no>
10554         * lisp.h: Declare make_symbol.
10556         * lread.c (init_obarray): staticpro Qvariable_documentation.
10558         * keymap.c (syms_of_keymap): staticpro global_map.
10560         * keyboard.c (syms_of_keyboard): Initialize and staticpro
10561         internal_last_event_frame and read_key_sequence_cmd.
10563         * fileio.c (syms_of_fileio): staticpro Qset_visited_file_modtime.
10565         * dired.c (syms_of_dired): staticpro Qdirectory_files,
10566         Qfile_name_completion, Qfile_name_all_completions, and Qfile_attributes.
10568         * casetab.c (syms_of_casetab): staticpro Vascii_canontable,
10569         Vascii_eqv_table, and Vascii_upcase_table.
10571         * alloc.c (Fmake_symbol): Initialize `obarray' field.
10573 1996-09-16  Karl Heuer  <kwzh@gnu.ai.mit.edu>
10575         * Makefile.in: Replaced symbol BSD with BSD_SYSTEM.
10576         * emacs.c, floatfns.c, keyboard.c, mem-limits.h, process.c: Likewise.
10577         * sysdep.c, syssignal.h, syswait.h, xterm.c: Likewise.
10578         * s/bsd386.h, s/bsd4-1.h, s/bsd4-2.h, s/bsd4-3.h, s/dgux.h: Likewise.
10579         * s/freebsd.h, s/msdos.h, s/rtu.h, s/umax.h, s/umips.h: Likewise.
10580         * m/intel386.h, m/mips.h, m/mips4.h, m/vax.h: Likewise.
10582 1996-09-16  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10584         * buffer.c (Fget_buffer_create): Initialize BUF_OVERLAY_MODIFF.
10586         * minibuf.c (read_minibuf_unwind): Clear last_overlay_modified field.
10588         * msdos.c (IT_set_menu_bar_lines): Clear last_overlay_modified field.
10590         * w32term.c (note_mouse_highlight): Test last_overlay_modified field.
10592         * xterm.c (note_mouse_highlight): Test last_overlay_modified field.
10594         * window.c (Fset_window_start): Clear last_overlay_modified field.
10595         (set_window_height, set_window_width, Fset_window_buffer)
10596         (change_window_height, window_scroll, Fset_window_configuration): 
10597         Clear last_overlay_modified field.
10598         (Fpos_visible_in_window_p): Test last_overlay_modified field.
10600         * Makefile.in (frame.o, textprop.o, abbrev.o): Depend on window.h.
10602         * process.c (stream_process): Variable deleted.
10603         (syms_of_process): staticpro deleted.
10605 1996-09-15  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10607         * sysdep.c: Don't explicitly Include termios.h.
10608         (ospeed): Use HAVE_TERMIOS to decide whether to use speed_t.
10610         * s/hpux9.h (C_SWITCH_X_SYSTEM): Add -I/usr/contrib/X11R5/include.
10611         (LD_SWITCH_X_DEFAULT): Add -L/usr/contrib/X11R5/lib.
10613 1996-09-14  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10615         * buffer.h (struct buffer): New field overlay_modiff.
10616         (MODIFF, BUF_OVERLAY_MODIFF): New macros.
10617         * window.h (struct window): New field last_overlay_modified.
10619         * xdisp.c (redisplay_internal, mark_window_display_accurate)
10620         (redisplay_window): Test and update last_overlay_modified field
10621         along with last_modified.
10623         * dispnew.c (direct_output_for_insert): Set last_overlay_modified
10624         field in window.
10626         * keyboard.c (command_loop_1): Test last_overlay_modified
10627         along with last_modified.
10629         * xdisp.c (overlay_unchanged_modified): New variable.
10630         (redisplay_internal): Set overlay_unchanged_modified.
10631         * insdel.c (gap_left, gap_right, modify_region): 
10632         Compare overlay_unchanged_modified with OVERLAY_MODIFF.
10634         * buffer.c (modify_overlay): Renamed from redisplay_region
10635         moved here from xdisp.c, and made static.  Callers changed.
10636         Update OVERLAY_MODIFF instead of MODIFF.
10637         * xdisp.c (redisplay_region): Renamed and moved to buffer.c.
10638         
10639         * s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): 
10640         Don't define them if using GCC.
10642 1996-09-13  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10644         * keyboard.c (recursive_edit_1): Handle a string as the
10645         throw value.
10647         * minibuf.c (read_minibuf): If not in minibuffer window,
10648         cancel the active minibuffer.
10650 1996-09-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10652         * frame.c (Fmake_terminal_frame): Use Vdefault_frame_alist.
10654         * s/hpux9.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT):
10655         Don't specify dirs for X, only for Motif.
10657 1996-09-11  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10659         * lread.c (Fload): Move ... to ends of messages.
10661         * puresize.h (BASE_PURESIZE): Increased.
10663         * s/sco5.h (LIBX11_SYSTEM): Don't use ..._s libraries.
10665 1996-09-10  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10667         * insdel.c (signal_before_change): Fix previous change.
10669         * lisp.h (struct Lisp_Symbol): New field `obarray'.
10671         * xterm.c (x_connection_closed): Call XtCloseDisplay.
10673 1996-09-09  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10675         * keyboard.c (Fexecute_extended_command): Delete junk lines.
10676         Print the key bindings after the command, temporarily;
10677         then bring back the previous message.
10678         
10679         * buffer.c (syms_of_buffer): Doc fixes.
10681         * filelock.c (lock_superlock): Delete superlock file if it stayed
10682         locked for 20 seconds.
10684 1996-09-08  Erik Naggum  <erik@naggum.no>
10686         * lread.c: Add #n=object, #n#, and #:symbol constructs to reader.
10687         (readevalloop, read, Fread_from_string): Empty list of read objects
10688         before read0 call.
10689         (read1): New variable `uninterned_symbol', which controls how to
10690         make symbols.  Support #:, #n=object and #n#.
10691         (make_symbol): New function, used in read1 to make uninterned symbols
10692         (Fintern): Set `obarray' field of interned symbols.
10693         (init_obarray): Explicit set `obarray' field of symbol `nil'.
10694         (syms_of_lread): staticpro read_objects, the list of read objects.
10696         * print.c: Add #n=object, #n#, and #:symbol constructs to printer.
10697         (PRINTDECLARE): New macro to declare required variables.
10698         (PRINTPREPARE, PRINTFINISH): Set printed_genyms to nil.
10699         (Fwrite_char, write_string, write_string_1, Fterpri, Fprin1,
10700         Fprin1_to_string, Fprinc, Fprint): Use new macro PRINTDECLARE.
10701         (print): Print uninterned symbols readable.
10702         (syms_of_print): Defvar `print-gensym', staticpro printed_gensyms.
10704 1996-09-05  Karl Heuer  <kwzh@gnu.ai.mit.edu>
10706         * editfns.c (Finsert_buffer_substring): Check for deleted buffer.
10707         (Fcompare_buffer_substrings): Likewise.
10709 1996-09-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10711         * lisp.h: Add many declarations.
10712         
10713         * lisp.h (BITS_PER_EMACS_INT): New macro.
10714         (XMARKBIT): Test BITS_PER_EMACS_INT to conditionalize fast definition.
10715         * m/alpha.h (BITS_PER_EMACS_INT): New definition.
10717         * s/sol2.h (LIBS_SYSTEM): Use -lkstat instead of -lelf -lkvm
10719         * process.c (create_process): Test HAVE_SETPGID for using setpgid.
10721         * config.in (HAVE_SETPGID): Add #undef.
10723         * keymap.c (syms_of_keymap): staticpro current_global_map;
10725         * intervals.c (get_local_map): Call indirect-function.
10727         * m/alpha.h (UNEXEC): Use unexelf.c.
10729         * unexelf.c: unexelf1.c merged into this file.
10731         * terminfo.c: Include config.h.
10732         [HAVE_TERMIOS_H]: Include termios.h.
10733         (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t.
10735         * process.c (create_process_1, sigchld_handler) [POSIX_SIGNALS]:
10736         Don't reestablish handler.
10738         * keyboard.c (input_available_signal) [POSIX_SIGNALS]:
10739         Don't reestablish handler.
10740         (interrupt_signal) [POSIX_SIGNALS]: Likewise.
10742         * data.c (arith_error) [POSIX_SIGNALS]: Don't reestablish handler.
10744         * config.in (HAVE_TERMIOS_H): Add #undef.
10746         * cm.h, sysdep.c [HAVE_TERMIOS_H]: Include termios.h.
10747         (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t.
10749         * eval.c (Fmacroexpand): Don't declare `form' as register.
10751         * frame.c (Fredirect_frame_focus): Don't call Ffocus_frame.
10753         * keyboard.c (Fexecute_extended_command): Fix previous change.
10755         * intervals.c (copy_intervals_to_string): Take arg as buffer.
10757         * keyboard.c (Fcommand_execute): gcpro cmd and prefixarg
10758         while calling do_autoload.
10760         * eval.c (Fmacroexpand): gcpro form while calling do_autoload.
10761         (do_autoload): gcpro fun, funname, fundef.
10763 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10765         * keyboard.c (Fexecute_extended_command): gcpro prefixarg.
10767         * xfns.c, w32fns.c (x_set_frame_parameters):
10768         Make height and width ints.
10770         * fns.c (map_char_table): Declare depth as int.
10772         * xterm.c (note_mouse_highlight):
10773         Pass POS argument to fast_find_position as int.
10775         * textprop.c (set_properties, add_properties, remove_properties): 
10776         Call modify_region with ints.
10778         * insdel.c (prepare_to_modify_buffer): Take integer arguments.
10779         (signal_before_change): Take integer arguments.
10781         * alloc.c (Fmake_byte_code): Call make_pure_vector using nargs.
10783         * alloc.c (Fpurecopy): Cast arg to make_pure_vector.
10784         (Fmake_byte_code): Use XFASTINT when calling make_pure_vector.
10786         * doprnt.c (doprnt1): If lispstrings, accept a string
10787         as a `struct Lisp_String *'.
10789         * editfns.c (Fformat): Pass a string using XSTRING.
10791         * xdisp.c (message): Cast size arg to doprnt.
10793         * term.c (term_init): Avoid type-mismatch calling get_frame_size.
10794         (OUTPUT_IF, OUTPUT): Cast frame height to int.
10796         * search.c (search_buffer): Use EMACS_UINT.
10798 1996-09-03  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
10800         * emacs.c (sort_args): Don't rearrange any args that follow "--".
10802 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10804         * xfns.c, w32fns.c (Ffocus_frame, Funfocus_frame): Functions deleted.
10806         * xfns.c (x_get_and_record_arg): New function.
10807         (x_icon): Use that, for Qicon_top and Qicon_left.
10808         (x_report_frame_params): Report the Qparent_id parameter.
10809         
10810 1996-09-03  Paul Eggert  <eggert@twinsun.com>
10812         * config.in (mktime): Define to emacs_mktime if we are using our own
10813         mktime, since Nextstep doesn't let Emacs redefine the builtin mktime.
10814         * Makefile.in (MKTIME_OBJ):  Use our mktime instead of NEXTSTEP's,
10815         since NEXTSTEP's wrongly ignores TZ.
10816         (mktime): #undef, to avoid messing up the file name mktime.c.
10817         * editfns.c (Fencode_time):  Remove NEXTSTEP workaround;
10818         we now use our mktime instead.
10820 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10822         * process.c (create_process): Undo previous change.
10824 1996-09-02  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10826         * editfns.c (Fencode_time) [_NEXT_SOURCE]: Use ZONE, not ABSZONE.
10828         * Make region highlighting show in just one window.
10829         * xdisp.c (redisplay_internal): Test last_selected_window slot.
10830         (mark_window_display_accurate, display_text_line): Likewise.
10831         * window.c (unshow_buffer): Clear last_selected_window slot, maybe.
10832         (Fset_window_buffer): Set last_selected_window slot.
10833         (Fselect_window): Set last_selected_window slot.
10834         (delete_all_subwindows): Maybe call unshow_buffer.
10835         * buffer.c (reset_buffer): Initialize last_selected_window slot.
10836         * buffer.h (strict buffer): New slot last_selected_window.
10838 1996-09-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10840         * process.c (Fprocess_contact): New function.
10841         (NETCONN_P): Use GC_CONSP.
10842         (list_processes_1): Use new childp format.
10843         (Fopen_network_stream): Store a cons cell in childp.
10845         * keyboard.c (record_asynch_buffer_change, gobble_input):
10846         Use sigblock instead of sigblockx.
10848         * syssignal.h (sigunblockx): Definitions deleted.
10849         (sigpausex, sigblockx, sigholdx): Definitions deleted.
10851         * process.c (create_process): Test defined (TIOCSCTTY)
10852         and defined (HAVE_SETSID) instead of DONT_REOPEN_PTY.
10854         * fileio.c (Faccess_file): New function.
10855         (Qaccess_file): New variable.
10856         (syms_of_fileio): defsubr function; init and staticpro Qaccess_file.
10858 1996-09-01  Karl Heuer  <kwzh@gnu.ai.mit.edu>
10860         * config.in (MULTI_FRAME): Obsolete macro deleted.
10861         * Makefile.in: Removed support for !MULTI_FRAME.
10862         * dispextern.h, frame.h, keyboard.h, lisp.h, puresize.h: Likewise.
10863         * alloc.c, buffer.c, data.c, dispnew.c, frame.c: Likewise.
10864         * keyboard.c, minibuf.c, print.c, sysdep.c, w32faces.c: Likewise.
10865         * window.c, xdisp.c, xfaces.c: Likewise.
10867         * abbrev.c, bytecode.c: Change all references from point to PT.
10868         * callint.c, casefiddle.c, cmds.c, dispnew.c, editfns.c: Likewise.
10869         * fileio.c, indent.c, lread.c, print.c, process.c: Likewise.
10870         * search.c, syntax.c, undo.c, window.c: Likewise.
10872 1996-09-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10874         * Makefile.in (TAGS): Use $(srcdir) in deps.
10876 1996-08-31  Boris Goldowsky  <boris@gnu.ai.mit.edu>
10878         * fileio.c (build_annotations): Remember original buffer that the
10879         region came from; pass this to `format-annotate-function'.
10881 1996-08-31  Geoff Voelker  <voelker@cs.washington.edu>
10883         * Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): 
10884         Include dos-nt.elc.
10886 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10888         * keyboard.c (requeued_events_pending_p): New function.
10890         * config.in (HAVE_SETRLIMIT): Add #undef.
10892         * emacs.c [HAVE_SETRLIMIT]: Include time.h and resource.h.
10893         (main) [HAVE_SETRLIMIT]: Call setrlimit to extend the stack limit.
10894         New local `rlim'.
10896         * lread.c (Fload): Add "source is newer" info to the "loading" and
10897         "done" messages.
10899 1996-08-31  Paul Eggert  <eggert@twinsun.com>
10901         * config.in (HAVE_SYS_SYSTEMINFO_H, HAVE_GETDOMAINNAME, HAVE_SYSINFO):
10902         New macros.
10903         * sysdep.c (<sys/systeminfo.h>):
10904         Include if HAVE_SYS_SYSTEMINFO_H is defined.
10905         (init_system_name): Use sysinfo or getdomainname to append domain name
10906         if host name is not already fully qualified.
10908 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10910         * xfns.c (Fx_list_fonts): New optional arg MAXIMUM.
10912 1996-08-31  Erik Naggum  <erik@naggum.no>
10914         * alloc.c (Fgarbage_collect): Report used and free intervals.
10916 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10918         * xterm.h (struct x_display_info): Add element Xatom_FONT.
10919         * xterm.c (x_term_init): Initialize Xatom_FONT member.
10920         (x_new_font): Use Xatom_FONT member.
10922 1996-08-31  Kevin Layer  <layer@Franz.COM>
10924         * ntproc.c (Vwin32_start_process_show_window): New variable.
10925         (create_child): Conditionally force subprocess to hide window.
10926         (syms_of_ntproc): DEFVAR it.
10928 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10930         * s/nextstep.h (LD_SWITCH_SYSTEM): Add alternate definition if
10931         not __NeXT.
10933 1996-08-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10935         * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer flag.
10936         * xterm.c (XTupdate_end): Always clear mouse_face_defer flag.
10938         * xterm.c (do_line_dance, dumprectangle): Use x_update_cursor.
10939         (show_mouse_face, clear_cursor): Likewise.
10940         (x_display_cursor): New args X and Y.
10941         (XTupdate_end, XTcursor_to, XTwrite_glyphs): Pass new args.
10942         (XTupdate_begin): Initialize curs_x, curs_y here.
10944         * xfns.c (x_set_cursor_color): Use x_update_cursor.
10946 1996-08-29  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10948         * xterm.c (XTread_socket): Fix previous change.
10950         * keyboard.c (cmd_error): Clear executing_macro.
10952 1996-08-29  David Byers  <byers@lysator.liu.se>
10954         * minibuf.c (Fminibuffer_complete_word): Check for
10955         unexpected data type returned by Ftry_completion.
10957 1996-08-29  Erik Naggum  <erik@psilocin.gnu.ai.mit.edu>
10959         * macros.c (init_macros): Initialize executing_macro, too.
10961 1996-08-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10963         * xterm.c (XTread_socket): Call XFilterEvent on all events,
10964         if HAVE_X_I18N and FRAME_XIC nonzero.
10966         * keyboard.c (cmd_error): Add number of kbd macro iterations
10967         to the error message.
10969         * macros.h (executing_macro_iterations, executing_macro): Declared.
10970         
10971         * macros.c (executing_macro_iterations, executing_macro): New vars.
10972         (Fexecute_kbd_macro): Set them.
10974 1996-08-28  Morten Welinder  <terra@diku.dk>
10976         * minibuf.c (Vhistory_length, Qhistory_length): New variables.
10977         (syms_of_minibuf): Register and initialise these.
10978         (read_minibuf): Truncate history list if needed.
10980 1996-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10982         * fns.c (Fsubstring): Handle vectors as well as strings.
10984         * callint.c (Fcall_interactively): For `N' and `n',
10985         if we don't get a number, try again.
10987 1996-08-28  Lars Magne Ingebrigtsen  <larsi@dain.ifi.uio.no>
10989         * alloc.c (syms_of_alloc): Set up Lisp variables ...-consed,
10990         such as Vcons-cells-consed.
10992 1996-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
10994         * emacs.c (main): Add bug report info in --help message.
10996 1996-08-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
10998         * term.c (Vring_bell_function): New variable.
10999         (syms_of_term): Set up Lisp variable.
11000         (ring_bell): Use Vring_bell_function.
11002 1996-08-25  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
11004         * xterm.c (fast_find_position): Fix previous change.
11006         * keyboard.c (command_loop_1): Cancel echoing etc.
11007         before running post-command-hook and such.
11009         * xterm.c (fast_find_position): Minor fix in handling maybe_next_line.
11011         * config.in (HAVE_LIBKRB, HAVE_LIBDES): Add #undefs.
11013 1996-08-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
11015         * Renamings to avoid conflicting names on MSDOS.
11016         * s/riscix12.h: Renamed from s/riscix12.h.
11017         * s/sunos413.h: Renamed from s/sunos4-1-3.h.
11018         * s/dgux5-4-3.h: Renamed from s/dgux5-4r3.h.
11019         * s/sunos4-1-2.h: File deleted.
11020         
11021         * xmenu.c (set_frame_menubar): Don't add ibw to menubar_size.
11023         * xfns.c (x_window): Don't add ibw to menubar_size.
11025 1996-08-24  Paul Eggert  <eggert@twinsun.com>
11027         * editfns.c (Fencode_time, Fset_time_zone_rule):
11028         Use UTC if the zone is t.
11030 1996-08-24  Erik Naggum  <erik@naggum.no>
11032         * print.c (print-quoted): New variable.
11033         (print): Print certain expressions more compactly when set.
11034         Also use XCAR and XCDR directly -- we know we have conses.
11036 1996-08-23  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
11038         * xterm.c (x_term_init): If the default Xt font does not exist on
11039         the X server, add a resource so that dialog boxes use a common font.
11041 1996-08-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11043         * window.c (Fsplit_window): Treat width just like height;
11044         no special handling for scroll bars.
11046 1996-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11048         * Makefile.in (paths.h, config.h): Targets deleted.
11049         (../config.status): Add two new rules to check need for reconfigure.
11051         * keyboard.c (command_loop_1): Check column_number_displayed
11052         in the selected window, not Vcolumn_number_mode.
11053         (Vcolumn_number_mode): Variable deleted.
11054         (syms_of_keyboard): Delete Lisp variable column-number-mode.
11056 1996-08-22  Erik Naggum  <erik@psilocin.gnu.ai.mit.edu>
11058         * dispnew.c (change_frame_size_1): Clean up conditional.
11060 1996-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11062         * xmenu.c (xdialog_show): Don't allow 9 buttons.
11064 1996-08-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11066         * process.c (send_process): GCPRO object.
11068         * unexalpha.c: Conditionalize previous changes on not __linux__.
11070         * xfns.c (x_set_scroll_bar_width): Call x_set_window_size
11071         when arg is nil.
11073 1996-08-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11075         * unexalpha.c: Include reloc.h and elf_abi.h.
11076         (rel_dyn_section, dynstr_section, dynsym_section): New variables.
11077         (old_data_scnhdr): New variable.
11078         (CHECK_SCNHDR): Compare just 8 chars of section name.
11079         (unexec): Check for rel_dyn_section, dynsym_section, dynstr_section.
11080         Do call update_dynamic_symbols.
11081         (update_dynamic_symbols): Finish it up and take away #if 0.
11083 1996-08-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11085         * unexalpha.c (unexec): Copy the .got section.
11087 1996-08-16  Karl Heuer  <kwzh@gnu.ai.mit.edu>
11089         * cmds.c (Fdelete_backward_char): Fix off-by-one error.
11090         Treat deleted newline specially.
11092 1996-08-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11094         * bytecode.c (Fbyte_code): For relative gotos, force signed arithmetic.
11096 1996-08-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
11098         * xfns.c (Fx_open_connection): Don't set Vx_resource_name.
11100 See ChangeLog.6 for earlier changes.