# HG changeset patch # User Dave Love # Date 939055211 0 # Node ID a3d096ced6df859ed3e21466ade3bbbb2a696f03 # Parent c7fe686cca44211d5feee346d347abbd0a5a2df5 # diff -r c7fe686cca44 -r a3d096ced6df lisp/ChangeLog --- a/lisp/ChangeLog Mon Oct 04 15:47:14 1999 +0000 +++ b/lisp/ChangeLog Mon Oct 04 16:40:11 1999 +0000 @@ -1,3 +1,20 @@ +1999-10-03 Dave Love + + * image.el (defimage): Remove redundant code. Substitute file in + image plist. + +1999-10-02 Andre Spiegel + + * vc.el (vc-backend-checkout): Use coding system 'no-conversion + when doing with-temp-file. + +1999-10-01 Dave Love + + * cus-edit.el (custom-comment-create): Fill :from and :to slots. + + * help.el: Require view when compiling. + (view-emacs-FAQ): Use Info version. + 1999-09-29 Ken'ichi Handa * ps-mule.el (ps-mule-font-info-database-ps): Typo fixed diff -r c7fe686cca44 -r a3d096ced6df src/ChangeLog.7 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ChangeLog.7 Mon Oct 04 16:40:11 1999 +0000 @@ -0,0 +1,11100 @@ +1998-08-19 Richard Stallman + + * Version 20.3 released. + + * callproc.c (Fcall_process): Use malloc for decoding_buf. + + * s/freebsd.h (LD_SWITCH_SYSTEM): Delete -dp. + + * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Increased. + +1998-08-18 Richard Stallman + + * xselect.c (selection_data_to_lisp_data): Code-convert selections + regardless of enable-multibyte-characters. + (lisp_data_to_selection_data): Likewise for decoding. + +1998-08-18 Ken'ichi Handa + + * ccl.c (ccl_driver): In case + ccl_read_multibyte_character_suspend:, if ccl->last_block is + nonzero, jump to ccl_repeat. + +1998-08-18 Kenichi Handa + + * ccl.c (CCL_READ_CHAR): If eof is encounterd while processing the + last block, don't just finish but processes eol block of the + current CCL program. + (ccl_driver): Add a new jump label ccl_repeat for the above + change. + + * coding.c (ccl_coding_driver): Setup ccl->last_block properly. + (setup_coding_system): Correctly setup `valid_codes' member. + + * term.c (write_glyphs): When terminal_coding require flushing, + call encode_coding with "" as the SOURCE arg so that ccl_driver + correctly processes eof block of a CCL program. + +1998-08-18 Richard Stallman + + * keyboard.c (read_char): If not reading a key sequence (MAPS is nil), + bind input-method-exit-on-first-char and input-method-use-echo-area + to t. + (read_char): If PREV_EVENT is non-nil, don't run the input method. + (read_key_sequence): Do not bind input-method-function. + + * callint.c (Fcall_interactively): Pass new args to Fread_event + and Fread_char. Let Fread_char do the prompting. + + * lread.c (read_filtered_event): New arg INPUT_METHOD. Calls changed. + (Fread_event): New args PROMPT and SUPPRESS-INPUT-METHOD. + (Fread_char, Fread_char_exclusive): Likewise. + * lisp.h (Fread_event, Fread_char, Fread_char_exclusive): + Update declarations. + + * fns.c (Fy_or_n_p): Don't bind input-method-function. + Instead, pass 0 as INPUT_METHOD to read_filtered_event. + + * insdel.c (replace_range): Rename NOMARKERS arg to MARKERS. + + * editfns.c (Ftranspose_regions): Pass 0 as NOMARKERS to replace_range. + + * cmds.c (internal_self_insert): Pass 1 as NOMARKERS to replace_range. + + * fns.c (Fy_or_n_p): Bind input-method-function to nil. + +1998-08-17 Richard Stallman + + * keyboard.c (Freset_this_command_lengths): Return nil. + (read_char): [Changes in the input method code.] + Process and clear before_command_restore_flag before the input method. + Save and restore ok_to_echo_at_next_pause and + current_kboard->echo_after_prompt. + Save, copy and empty this_command_keys, if it is not empty. + Clear the echo area before the input method. + Then in all cases restore this_command_keys, and reenable echoing + if it was enabled before. + +1998-08-16 Richard Stallman + + * charset.c (Fmultibyte_char_to_unibyte): New function. + (syms_of_charset): defsubr it. + +1998-08-15 Richard Stallman + + * xterm.c, xterm.h: x_display_unibyte_char_with_fontset renamed to + unibyte_display_via_language_environment. + + * xfns.c (unibyte_display_through_language_environment): + Renamed from x_display_unibyte_char_with_fontset. + + * xterm.h (widget_store_internal_border): Conditionalize declaration. + +1998-08-15 Kenichi Handa + + * coding.c (coding_category_name): Fix the order of initial + contents. + (detect_coding_mask): Fix previous change. + + * insdel.c (copy_text): Fix previous change, call + multibyte_char_to_unibyte. + + * puresize.h (BASE_PURESIZE): Increased. + + * xfns.c (x_display_unibyte_char_with_fontset): New variable. + (syms_of_xfns): Declare x-display-unibyte-char-with-fontset as a + Lisp variable. + + * xterm.h (x_display_unibyte_char_with_fontset): Extern it. + + * xterm.c (dumpglyphs): If x_display_unibyte_char_with_fontset is + nonzero, convert a unibyte 8-bit char to a multibyte char and + display it by a font listed in the current fontset. + + * xselect.c (Vnext_selection_coding_system): New variable. + (selection_data_to_lisp_data): If Vnext_selection_coding_system is + non-nil, use it. + (lisp_data_to_selection_data): Likewise. + (syms_of_xselect): Declare next-selection-coding-system as a Lisp + variable. + +1998-08-13 Eli Zaretskii + + * msdos.c (dos_set_keyboard): Set up stack and flags before + calling _go32_dpmi_simulate_int. + +1998-08-13 Andrew Innes + + * w32.c (stat): Fall-back to default behaviour when we cannot get + accurate information on file attributes. + +1998-08-12 Richard Stallman + + * indent.c (vmotion): Don't use WINDOW for Fget_char_property + when it is not showing the right buffer. + +1998-08-11 Richard Stallman + + * process.c (wait_reading_process_input): If a pty gives EIO, + raise SIGCHLD just in case. + +1998-08-10 Richard Stallman + + * syntax.c (scan_sexps_forward): Set up the syntax table scanning + stuff before jumping into the loop. + +1998-08-10 Eli Zaretskii + + * msdos.c (IT_cmgoto): In the echo area, only put the cursor at + the end of text if it is beyond the displayed text end. + +1998-08-10 Richard Stallman + + * keyboard.c (read_char): Don't decrement this_command_key_count + when saving it. + +1998-08-09 Kenichi HANDA + + * fileio.c (Fwrite_region): Reflect the eol conversion + specification of default value of buffer-file-coding-system if + any. + + * coding.c (default_buffer_file_coding): New variable. + (init_coding_once): Initialize default_buffer_file_coding. + + * coding.h (default_buffer_file_coding): Extern it. + +1998-08-09 Richard Stallman + + * s/freebsd.h (__FreeBSD_version): Define it, or else + include osreldate.h to define it. + (LIB_GCC): Unconditional definition deleted. + [ELF] (LD_SWITCH_SYSTEM, START_FILES, UNEXEC, LIB_STANDARD, LIB_GCC): + New alternative definitions. + [! ELF] (START_FILES, LIB_GCC): New alternative definitions. + + * unexelf.c (unexec): Check for section names end and edata + with no underscore. + + * coding.c (CHARSET_OK): Check that coding_system_table[IDX] != 0. + +1998-08-08 Richard Stallman + + * coding.c: Avoid using initializers for Lisp_Object. + +1998-08-07 Paul Eggert + + * xterm.c (x_term_init): Don't reset LC_TIME to "C", since we + want strftime to be localized. + +1998-08-07 Richard Stallman + + * s/ptx4-2.h: New file. + + * xterm.c (x_list_fonts): Fix previous change. + + * callproc.c (Fcall_process): Check type of process cmd args + earlier on. + + * process.c (Fprocess_send_eof): Transfer proc_encode_coding_system + data to the new outfd. + + * commands.h (Vthis_command): Renamed from this_command. + + * minibuf.c (Fminibuffer_complete): + this_command renamed to Vthis_command. + + * macros.c (Fcall_last_kbd_macro): + this_command renamed to Vthis_command. + + * keyboard.c (Vthis_command): Renamed from this_command. + (real_this_command): New variable, but not a Lisp variable; + updated like Vthis_command, but never altered by Lisp programs. + (command_loop_1): Use real_this_command to set Vreal_last_command. + +1998-08-07 Kenichi Handa + + * cmds.c (internal_self_insert): If enable-multibyte-characters is + nil, convert a multibyte character to unibyte appropriately. + + * editfns.c (general_insert_function): Likewise. + + * charset.c (multibyte_char_to_unibyte): New function. + (charset_id_internal): Avoid initializer for Lisp_Object. + (init_charset_once): Likewise. + + * lisp.h (multibyte_char_to_unibyte): Extern it. + +1998-08-06 Richard Stallman + + * window.c (Fsplit_window): Doc fix. + + * macros.c (Fexecute_kbd_macro): Fix error message. + (Fend_kbd_macro): Fix error message. + + * coding.c (setup_coding_system): Avoid initializer for Lisp_Object. + (setup_raw_text_coding_system, detect_coding): Likewise. + (code_convert_region, code_convert_string): Likewise. + (Fset_coding_priority_internal): Likewise. + +1998-08-06 Kenichi Handa + + * dired.c (Fdirectory_files): If MATCH is non-nil, decode filenames + before checking them against MATCH. + +1998-08-05 Richard Stallman + + * keyboard.c (read_char): When input method returns no chars, + call cancel_echoing. Restore the previous echo area message + and this_command_keys, too. + + * abbrev.c (Funexpand_abbrev): Add ADJUST instead of subtracting. + + * w32select.c (Vselection_coding_system): + Renamed from Vclipboard_coding_system. + (syms_of_w32select): No need to staticpro Vselection_coding_system. + +1998-08-04 Eli Zaretskii + + * w16select.c (Vselection_coding_system): + Renamed from Vclipboard_coding_system. + (Fw16_set_clipboard_data): Don't count trailing zero in the string + for the purposes of conversion. + +1998-08-04 Richard Stallman + + * xterm.c (x_list_fonts): Call XFreeFont after the new call + to XLoadQueryFont. + (fast_find_position): Handle case where position is before + an invisible character, thus not actually listed in charstarts. + + * keyboard.c (Vinput_method_previous_message): New variable. + (syms_of_keyboard): Set up lisp variable. + (Qinput_method_exit_on_first_char, Qinput_method_use_echo_area): + New variables. + (syms_of_keyboard): Initialize them. + (Fread_key_sequence): New arg COMMAND_LOOP. + Bind those variables. + + * lisp.h (Fread_key_sequence): Update declaration. + + * callint.c (Fcall_interactively): Pass new arg to Fread_key_sequence. + +1998-08-03 Richard Stallman + + * window.c (Fmove_to_window_line): Doc fix. + + * xterm.h (FRAME_OUTER_WINDOW): New macro. + + * xterm.c (x_make_frame_visible): Use XGetGeometry to see if + position has been changed by the window manager. Use + FRAME_OUTER_WINDOW. + + * insdel.c (replace_range): Don't assume PT is at the place + where the change is being done. + + * editfns.c (Fsubst_char_in_region): Use replace_range in case + where we may need to combine bytes. + (Ftranslate_region): Likewise. + +1998-08-01 Richard Stallman + + * lread.c (read1): In reading a string, treat Qlambda + like Qget_file_char. + + * doc.c (Fdocumentation): Specify UNIBYTE = 0 + when calling get_doc_string for a compiled function. + +1998-08-01 Kenichi HANDA + + * ccl.h (ccl_spec): New member valid_codes. + + * coding.c (Qvalid_codes): New variable. + (coding_category_name): Include "coding-category-ccl". + (detect_coding_ccl): New function. + (setup_coding_system): Setup coding->spec.ccl.valid_codes from the + coding system priority `valid-codes' for CCL based coding systesm. + (detect_coding_mask): Check also a CCL based coding system. + (Fupdate_coding_systems_internal): Renamed from + Fupdate_iso_coding_systems. + (syms_of_coding): Change property char-table-extra-slot of + translation-table to 1. Initialize and static pro Qvalid_codes. + + * coding.h (CODING_CATEGORY_IDX_CCL): New macro. + (CODING_CATEGORY_IDX_BIG5, CODING_CATEGORY_IDX_RAW_TEXT, + CODING_CATEGORY_IDX_BINARY, CODING_CATEGORY_IDX_MAX): Increased by + one. + (CODING_CATEGORY_MASK_CCL): New macro. + (CODING_CATEGORY_MASK_ANY): Include CODING_CATEGORY_MASK_CCL. + + * insdel.c (copy_text): In multibyte to unibyte conversion, take + nonascii-translation-table and nonascii-insert-offset into + account. + +1998-07-30 Paul Eggert + + * src/Makefile.in (widget.o, xfns.o, xmenu.o): + Prepend $(srcdir)/ to rule dependencies outside this dir. + +1998-07-29 Kenichi Handa + + * fns.c (concat): Fix previous change. + +1998-07-29 Richard Stallman + + * process.c (create_process): For outchannel, set up + proc_encode_coding_system, not proc_decode_coding_system. + +1998-07-28 Richard Stallman + + * keymap.c (push_key_description): Output multibyte char as itself. + +1998-07-27 Richard Stallman + + * keyboard.c (Fexecute_extended_command): + Don't delay before displaying the suggestion message + if the command did not display anything in the echo area. + +1998-07-26 Richard Stallman + + * s/ultrix4-3.h (rint): Add declaration. + +1998-07-25 Richard Stallman + + * s/aix3-2.h (HAVE_STRING_H): Move #undef here. + * s/aix4.h (HAVE_STRING_H): Delete #undef here. + + * sysdep.c [AIXHFT] (hft_init, hft_reset): Add declarations. + +1998-07-25 Kenichi Handa + + * coding.c (syms_of_coding): Mention auto-coding-alist in the + docstring of file-coding-system-alist. + + * fileio.c (Finsert_file_contents): Call Vset_auto_coding_function + with two arguments. + (Fwrite_region): If buffer-file-coding-system is set locally, use + the coding system whithout checking file-coding-system-alist. + (syms_of_fileio): Docstring of set-auto-coding-function adjusted + for the change of argument number. + +1998-07-20 Kenichi HANDA + + * callproc.c (Fcall_process): Use alloca instead of + get_conversion_buffer. + + * coding.c (init_coding): New function. + (init_coding_once): Don't initialize conversion_buffer here. It + is done in init_coding. + + * emacs.c (main): Call init_coding. + + * lisp.h (init_coding): Extern it. + +1998-07-19 Kenichi Handa + + * charset.c (Fdefine_charset): Fix doc-string. + + * xterm.c (dumpglyphs): After calling ccl_driver, set cp->byte1 to + zero for 1-byte font. + +1998-07-15 kenichi HANDA + + * process.c (read_process_output): Even if we read data without + code conversion, calculate character counts. If we insert the + data into a unibyte buffer, treat the data as unibyte. + +1998-07-14 Richard Stallman + + * keyboard.c (Qinput_method_function): New variable. + (syms_of_keyboard): Init and staticpro it. + (read_key_sequence): Bind input-method-function, + and set it to nil after reading the first event. + (raw_keybuf, raw_keybuf_count): New variables, to record + raw input events as they are read with read_char. + (GROW_RAW_KEYBUF): New macro. + (Fthis_single_command_raw_keys): New function. + (syms_of_keyboard): defsubr it. + +1998-07-13 Andrew Innes + + * w32menu.c (add_menu_item): Draw menu items like titles if + call_data is 0. + +1998-07-13 Eli Zaretskii + + * w16select.c (set_clipboard_data, get_clipboard_data, + Fw16_set_clipboard_data, Fw16_get_clipboard_data, + Fx_selection_exists_p): Use CF_OEMTEXT instead of CF_TEXT. + +1998-07-12 Andrew Innes + + * w32select.c: (Fw32_set_clipboard_data): Set Vlast_coding_system_used. + (Fw32_get_clipboard_data): Likewise. + +1998-07-12 Richard Stallman + + * marker.c (Fcopy_marker): Make return from wrong_type_argument + fall thru into normal case. + + * fileio.c (Finsert_file_contents): When replacing, in multibyte bfr, + always extend the range to a character boundary. + +1998-07-11 Richard Stallman + + * keyboard.c (read_char): Call the input method if appropriate. + Change logic for distinguishing rereads from new events; + use local var `reread'. Take events from + Vunread_input_method_events and Vunread_post_input_method_events. + (Vunread_input_method_events, Vunread_post_input_method_events) + (Vinput_method_function): New variable. + (syms_of_keyboard): Set up Lisp vars. + (command_loop_1): Check Vunread_input_method_events and + Vunread_post_input_method_events along with Vunread_command_events. + +1998-07-11 Andrew Innes + + * w32menu.c (w32_menu_show): Set widget call_data to 0 if + definition is nil. + (add_menu_item): Gray menu entry if widget call_data is 0. + +1998-07-11 Richard Stallman + + * xselect.c (Vselection_coding_system): + Renamed from Vclipboard_coding_system. All uses changed. + (syms_of_xselect): Rename Lisp variable. + +1998-07-09 Eli Zaretskii + + * w16select.c (Vclipboard_coding_system): New variable. + (set_clipboard_data, set_clipboard_data): New parameter Raw + determines whether CRLF <-> NL translation needs to be done. All + callers changed. + (Fw16_set_clipboard_data): Encode the text using + Vclipboard_coding_system, if necessary. + (Fw16_get_clipboard_data): Decode the text using + Vclipboard_coding_system, if necessary. + (syms_of_win16select): DEFVAR Vclipboard_coding_system and + staticpro it. + +1998-07-09 Kenichi Handa + + * coding.c (code_convert_string): Count characters again if we + encounter some invalid code while decoding. + +1998-07-09 Kenichi Handa + + * ccl.c: Typo in comments fixed. + + * coding.c (DECODE_ISO_CHARACTER): While decoding two-byte code, + if the sencond byte is invalid, produce the first byte as is. + + * fontset.c (fs_load_font): Typo in comments fixed. + + * xselect.c (selection_data_to_lisp_data): Set + Vlast_coding_system_used. + (lisp_data_to_selection_data): Likewize. + +1998-07-07 Richard Stallman + + * charset.c (Fchars_in_region): Coerce markers. + +1998-07-08 Kenichi Handa + + * editfns.c (Fformat): Replace explicit numeric constants with + proper macros. + + * fns.c (concat): Likewize. + +1998-07-06 Kenichi Handa + + * charset.h (MAX_CHAR_COMPOSITION): Defined as (GLYPH_MASK_CHAR - 1), + one less than the previous value. + (GENERIC_COMPOSITION_CHAR): New macro. + + * charset.c (Vgeneric_character_list): New variable. + (init_charset_once): Init and staticpro it. + (Fgeneric_character_list): New function. + (syms_of_charset): defsubr it. + + * fns.c (Fset_char_table_default): Check only if the charset of + the arg CH is in the valid range or not. Handle the case that CH + is a generic character for composite characters. + +1998-07-06 Kenichi Handa + + * editfns.c (Fformat): Pay attention to the byte combining problem. + + * fileio.c (Finsert_file_contents): Cancel previous change. Setup + the variable coding even if the inserted bytes is zero. + + * fns.c (concat): Deal with combining bytes between two args. + +1998-07-03 Richard Stallman + + * print.c (print_escape_multibyte, Qprint_escape_multibyte) + (Qprint_escape_nonascii): New variables. + (syms_of_print): Initialize them and set up Lisp variable. + (PRINTPREPARE): Bind print-escape-multibyte to t if appropriate. + Also bind print-escape-nonascii if appropriate. + (print): Test print_escape_multibyte and print_escape_nonascii, + rather than enable-multibyte-characters. + +1998-06-29 Andrew Innes + + * fileio.c (Ffile_regular_p) [WINDOWSNT]: Bind + `w32-get-true-file-attributes' to t while calling stat. + (Finsert_file_contents) [WINDOWSNT]: Likewise. + (Fwrite_region): Don't try seeking to end of FILENAME for + appending if not a regular file. + +1998-07-03 Kenichi Handa + + * editfns.c (Finsert): Typo in doc-string fixed. + (Finsert_and_inherit, Finsert_before_markers, + Finsert_and_inherit_before_markers): Likewize. + +1998-07-02 Ken'ichi Handa + + * fileio.c (Finsert_file_contents): Do not set Vlast_coding_system + if inserted bytes is zero. + +1998-06-28 Eli Zaretskii + + * unexec.c [COFF]: New variable coff_offset. + (make_hdr) [MSDOS]: If a_name is a coff-go32-exe executable with a + prepended stub, compute coff_offset. + (make_hdr, copy_sym) [COFF]: Use coff_offset when seeking into temacs. + +1998-06-29 Richard Stallman + + * editfns.c (Fbyte_to_position): New function. + (syms_of_editfns): defsubr it. + +1998-06-29 Eli Zaretskii + + * callproc.c (Fcall_process) [! subprocesses]: Balance parentheses + in an if clause. + +1998-06-28 Richard Stallman + + * fileio.c (Fread_file_name): Bind minibuffer-completing-file-name to t. + + * minibuf.c (Vminibuffer_completing_file_name): New var. + (syms_of_minibuf): Set up Lisp variable. + (Fminibuffer_complete_word): Test it, instead of checking + specifically for Qread_file_name_internal. + (Fcompleting_read): Likewise. + +1998-06-27 Richard Stallman + + * xterm.c (x_list_fonts): Fix prev change: cast result of alloca. + +1998-06-26 Ken'ichi Handa + + * coding.h (Qemacs_mule): Extern it. + + * process.c (init_process): Initilize Vdefault_process_coding_system. + +1998-06-26 Kenichi Handa + + * coding.c (setup_raw_text_coding_system): New function. + (decode_coding_sjis_big5): Bug for handling invalid code fixed. + + * coding.h (setup_raw_text_coding_system): Extern it. + + * fileio.c (Finsert_file_contents): Call + setup_raw_text_coding_system. + + * process.c (Fstart_process): Check process-coding-system-alist + and default-process-coding-system even in unibyte mode. + (create_process): In unibyte mode, suppress character code + conversion. + +1998-06-25 Andrew Innes + + * w32fns.c (Fx_list_fonts): Bring arglist into sync with xfns.c. + (x_set_font): Call face-set-after-frame-default. + (Qface_set_after_frame_default): New variable. + (syms_of_w32fns): Initialize it. + +1998-06-25 Richard Stallman + + * search.c (wordify): Fix i_byte even in unibyte case for copy loop. + If input is unibyte, make the output unibyte. + +1998-06-24 Richard Stallman + + * print.c (PRINTFINISH): Convert text to unibyte before + inserting in a unibyte buffer. + + * doc.c (get_doc_string): Take both UNIBYTE and DEFINITION as args. + All callers changed. + * lisp.h (get_doc_string): Adjust declaration. + + * lread.c (read_list): Pass new arg to get_doc_string. + + * doc.c (get_doc_string): 2nd arg is now DEFINITION; + if non-nil, read a dynamic function definition. + (read_doc_string): Don't call read here. + +1998-06-23 Richard Stallman + + * indent.c (indented_beyond_p): Return the right kind of value. + +1998-06-22 Richard Stallman + + * emacs.c (sort_args): Discard duplicate options with no args. + (main): With duplicate -d options, use the last one. Likewise for -t. + Check -d last, by checking for -nl earlier on. + +1998-06-22 Andreas Schwab + + * keyboard.c (command_loop): Reset executing_macro after + command_loop_2 has returned, in case a throw to exit or top-level + was executed as part of a keyboard macro. + + * callproc.c (Fcall_process): Handle third argument BUFFER + consistently when it is an integer or a list. + +1998-06-22 Kenichi Handa + + * syntax.c (Fmodify_syntax_entry): Use macro STRING_BYTES to get + byte size of a string. + +1998-06-22 Andrew Innes + + * w32select.c: Include buffer.h, charset.h, and coding.h. + (Vclipboard_coding_system): New variable. + (syms_of_w32select): DEF_VAR it. + (Fw32_set_clipboard_data): Encode string using + Vclipboard_coding_system if necessary. + (Fw32_get_clipboard_data): Decode clipboard contents using + Vclipboard_coding_system if necessary. + + * w32console.c (initialize_w32_display): Call init_crit to + initialize interrupt_handle (referenced by sys_select). + +1998-06-22 Richard Stallman + + * print.c (print_string): Properly compute number of chars + in multibyte case, before calling strout. + + * lisp.h (Qinhibit_redisplay): Declared. + + * keyboard.c (menu_item_eval_property): Bind Qinhibit_redisplay. + + * xdisp.c (Vinhibit_redisplay, Qinhibit_redisplay): New variables. + (syms_of_xdisp): Set up Lisp var. + (redisplay_internal): Test Vinhibit_redisplay. + +1998-06-21 Ken'ichi Handa + + * process.c (read_process_output): While processing carryover, + check the size of p->decoding_buf. + +1998-06-21 Eli Zaretskii + + * process.c (wait_reading_process_input) [! subprocesses]: + Recompute timeout each time through the loop. Check + requeued_events_pending_p and exit the loop if there is unread + keyboard input. + +1998-06-20 Richard Stallman + + * search.c (Freplace_match): Work by chars, not by bytes, + for scanning the old text, and for inserting new string in buffer. + +1998-06-20 Karl Heuer + + * xterm.c (x_list_fonts): Keep alloca usage simple. + +1998-06-20 Per Starback + + * xdisp.c, charset.h, coding.c, emacs.c: Doc fixes. + +1998-06-20 Kenichi Handa + + * print.c (strout): Show multibyte message correctly. + + * ccl.c: Comment for CCL_MapMultiple modified. + + * charset.c (find_charset_in_str): Do not set the value of + charsets[LEADING_CODE_COMPOSITION]. + + * process.c (read_process_output): Handle carryover correctly. + + * xterm.c (dumpglyphs): Check the case that FACE_FONT (face) is + NULL. While displaing cursor with non-default face, if the + variable `font' is NULL, don't set GCFont. + +1998-06-19 Richard Stallman + + * minibuf.c (syms_of_minibuf): Initialize buffer-name-history. + +1998-06-18 Richard Stallman + + * casefiddle.c (casify_object): Cope with modifier bits in character. + +1998-06-17 Geoff Voelker + + * w32.c (is_unc_volume, open_unc_volume, read_unc_volume, + close_unc_volume, unc_volume_file_attributes): New functions. + (wnet_enum_handle): New variable. + (opendir, readdir, closedir, sys_access, stat): Handle UNC volumes. + +1998-06-16 Kenichi Handa + + * xterm.c (x_list_fonts): If SIZE is zero and MAXNAMES is 1, use + XLoadQueryFont instead of XListFonts. + (x_load_fonts): Call x_list_fonts with MAXNAMES 1. + +1998-06-16 Andrew Innes + + * xdisp.c (message_dolog): GCPRO the oldpoint, oldbegv and oldzv + markers, and old_deactivate_mark. + +1998-06-15 Andrew Innes + + * w32.c (sys_rename): On some network drives, rename fails with + EACCES instead of EEXIST if target already exists. + + * coding.c (encode_eol): Fix typo that prevented converting to Mac + line endings. Always update dst_bytes to number of bytes actually + copied. + (decode_eol): Fix value of coding->produced when decoding Unix + line endings (in case this function is ever used for that). + +1998-06-14 Ken'ichi Handa + + * fileio.c (Finsert_file_contents): Redo the change for handling + set-auto-coding while adding a kludgy code to avoid a compiler + bug. + (syms_of_fileio): Doc-string of the variable + set-auto-coding-function modified for the change above. + +1998-06-14 Eli Zaretskii + + * msdos.c (dos_set_keyboard): Call Int 2Fh via the DPMI server, + not directly. + (dos_yield_time_slice): New function. + (sys_select): Use it instead of __dpmi_yield. + +1998-06-14 Erik Naggum + + * minibuf.c (Fcompleting_read): Escape bare newline in doc string. + +1998-06-14 Richard Stallman + + * fileio.c (Finsert_file_contents): Fix change to set INSERTED. + +1998-06-13 Richard Stallman + + * keyboard.c (parse_menu_item): Put a quote around DEF + to pass it as an argument to the filter function. + + * syntax.c (skip_chars): + Don't examine STRING before verifying that it is a string. + +1998-06-13 Kenichi Handa + + * coding.c (detect_coding_system): Always return a list of HIGHEST + is zero. + (Fdetect_coding_region): Doc-string adjusted for the above change. + (Fdetect_coding_string): Likewise. + +1998-06-12 Richard Stallman + + * emacs.c (standard_args): Fix arg order to match code in `main'. + +1998-06-12 Ken'ichi Handa + + * fileio.c (Finsert_file_contents): Undo the previous change for + handling set-ault-coding. + +1998-06-11 Richard Stallman + + * fileio.c (Finsert_file_contents): After calling handler, + get INSERTED from the handler's value. + + * callint.c (Fcall_interactively) : If sequence ends in a down + event, discard following up event. + +1998-06-12 Kenichi Handa + + * fileio.c (set_auto_coding_unwind): New function. + (Finsert_file_contents): If the current buffer is empty, decide + the coding system after the file is inserted in the buffer. If + not, insert the head and tail of a file in a temporary buffer and + call set-auto-coding-function. + (e_write): If there are carryover bytes in encoding because of + incomplete multibyte form, write them out as is. + +1998-06-11 Richard Stallman + + * syntax.c (scan_lists): Use prev_char_comend_first, not ...comstart... + +1998-06-11 Geoff Voelker + + * makefile.nt (LINK_FLAGS): Place debug info in executable in + unoptimized compile. Link to run off of cd or network. + +1998-06-10 Richard Stallman + + * syntax.c (Fforward_comment): + Properly compute BYTEPOS arg to char_quoted. + +1998-06-09 Andrew Innes + + * w32.c (sys_rename): Don't examine errno if rename didn't fail. + + * s/ms-w32.h (getcwd): Remove define. + (getdefdir) [emacs]: Redefine to always return root directory. + +1998-06-09 Richard Stallman + + * lisp.h (Feval_region): Accept 4 args. + + * lread.c (readevalloop): New arg READFUN. Callers changed. + (Feval_region): New arg READ_FUNCTION. + +1998-06-08 Richard Stallman + + * syntax.h (SETUP_SYNTAX_TABLE): Don't call update_syntax_table + for FROM-1 if that's before BEGV. + +1998-06-07 Richard Stallman + + * syntax.c (struct lisp_parse_state): New field, levelstarts. + (scan_sexps_forward): Use 10th elt of STATE to set levelstarts. + (parse-partial-sexp): Add 10th elt to return value. + + * keyboard.c (lispy_function_keys): Add kanji...eisu-toggle. + + * keyboard.c (cmd_error): Init Vlast_prefix_arg. + (init_kboard, command_loop_1): Init Vlast_prefix_arg. + (Fcommand_execute): Set Vlast_prefix_arg to prefix arg used. + + * callint.c (syms_of_callint): Set up Lisp variable. + + * alloc.c (mark_kboards): Mark all the Lisp_Object fields. + + * keyboard.c (command_loop_1): + Set Vreal_last_command with Vlast_command. + (init_kboard): Init Vreal_last_command field. + (syms_of_keyboard): Set up Lisp var real-last-command. + + * keyboard.h (struct kboard): New elts Vreal_last_command + and Vlast_prefix_arg. + +1998-06-06 Richard Stallman + + * xterm.c (XTread_socket): Accept Japanese XK keysyms. + + * xdisp.c (redisplay_internal): If cursor's in the frame's echo area, + make last_point invalid instead of setting it normally. + (display_text_line): If cursor's in the frame's echo area, + don't set this_line_endpos. + (redisplay_window): Use Fwindow_end to find lower scroll margin. + + * syntax.c (scan_lists): Properly skip the comment-fence character + that ends a comment, when moving forward. + (Fbackward_prefix_chars): Return immediately if point is at BEGV. + + * callproc.c (init_callproc): Check Vinstallation_directory + even if !initialized. + +1998-06-06 Richard Stallman + + * syntax.c (prev_char_comend_first): New function. + (back_comment): Use that. Carefully update syntax table position + for each character that is fetched. + (Fforward_comment): Likewise. + (scan_lists): Likewise. + (prev_char_comstart_first): New function. + + * syntax.c +1998-06-05 Andrew Innes + + * w32.c: #include sys/file.h + (sys_access): Provide our own implementation which recognizes D_OK. + (is_exec): New function. + (stat): Use it. + (init_environment): Set TMPDIR to an existing directory. + Abort if none of the usual places is available. + (sys_rename): On Windows 95, choose a temp name that + includes the original file's base name and use an explicit loop + rather than calling mktemp. Only attempt to unlink the newname if + the rename fails, rather than second-guessing whether the old and + new names refer to the same file. + + * fileio.c (Finsert_file_contents): Always update + Vlast_coding_system_used when we actually perform IO. + (Fwrite_region): Update documentation. + +1998-06-03 Richard Stallman + + * emacs.c (main): Don't implement --version if not initialized. + + * intervals.c (create_root_interval): Initialize position to 0 + for a string. + (interval_start_pos): New function. + (find_interval): Handle string positions starting at 0. + (adjust_intervals_for_insertion): Likewise. + (adjust_intervals_for_deletion): Likewise. + (compare_string_intervals): Likewise. + (graft_intervals_into_buffer): Set `position' in reproduce_tree value. + (copy_intervals): Init `position' to 0. + + * textprop.c: Handle the new convention that `position' values + in a string's intervals start from zero. + (validate_interval_range, interval_of, Fnext_property_change) + (property_change_between_p, Fnext_single_property_change) + (Fprevious_property_change, Fprevious_single_property_change): + (Ftext_property_any, Ftext_property_not_all): Implement that. + + * textprop.c: Undo previous change. + + * coding.c (code_convert_string_norecord): New function. + Does encoding or decoding but doesn't set Vlast_coding_system_used. + + * coding.h (DECODE_FILE, ENCODE_FILE): + Use code_convert_string_norecord. + +1998-06-02 Richard Stallman + + * sysdep.c (sys_subshell): Cast arg to chdir. + (init_sys_modes): Cast arg to setbuf or setvbuf. + + * keyboard.c (syms_of_keyboard): Doc fix for suggest-key-bindings. + +1998-06-02 Ken'ichi Handa + + * charset.c (string_to_non_ascii_char): Don't check the arg + EXCLUDE_TAIL_GARBAGE for an invalid composite characters. + +1998-06-01 Ken'ichi Handa + + * coding.c (detect_coding_mask): Initilize local variable C. + +1998-06-01 Richard Stallman + + * emacs.c (main): Test `initialized' before clearing *Messages*. + +1998-06-01 Karl Heuer + + * s/aix4.h (SOCKLEN_TYPE): Define as int. + + * callproc.c (Fcall_process): Avoid initializer on auto struct. + +1998-06-01 Andrew Innes + + * s/ms-w32.h: Use 1 as explicit value of empty #defines. + + * makefile.nt (LOCAL_FLAGS): Define HAVE_NTGUI if appropriate. + +1998-05-31 Karl Heuer + + * doprnt.c (doprnt1): Fix char signedness mismatches. + * fileio.c (Finsert_file_contents): Likewise. + +1998-05-31 Richard Stallman + + * dispnew.c (Fredraw_frame): Don't erase frame or its glyph records + if it hasn't got any. + +1998-05-30 Geoff Voelker + + * w32proc.c (sys_spawnve): Place Emacs pid in EM_PARENT_PROCESS_ID. + + * w32.c (sys_rename): Handle filenames with accented characters. + (stat): Handle "c:/.." and "/.." specially. + + * unexw32.c (w32_fatal_reload_error): Update error message. + +1998-05-30 Karl Heuer + + * Makefile.in (distclean): Delete config.stamp, stamp-oldxmenu. + + * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fix. + * charset.c (syms_of_charset): Put \n\ at eol of docstring. + +1998-05-29 Richard Stallman + + * textprop.c (Fnext_property_change): Properly offset interval + position for string when comparing with LIMIT. + (property_change_between_p): Likewise. + (Fnext_single_property_change, Fprevious_property_change): Likewise. + (Fprevious_single_property_change): Likewise. + +1998-05-28 Richard Stallman + + * keyboard.c (command_loop_1): In shortcuts for forward-char etc., + use FETCH_CHAR not FETCH_BYTE. + +1998-05-28 Andrew Innes + + * lread.c (read1): Swap saved_doc_string_length and + prev_saved_doc_string_length. + (read_list): Negate docstring position if negative before checking + against saved_doc_string_length et al. + +1998-05-28 Richard Stallman + + * lread.c: Remember the last TWO strings skipped with #@. + (prev_saved_doc_string*): New variables. + (Fload): Initalize prev_saved_doc_string. + (read1): Copy saved_doc_string to prev_saved_doc_string + before storing a new string in saved_doc_string. + (read_list): Look in prev_saved_doc_string as well as + in saved_doc_string. + +1998-05-25 Andrew Innes + + * doc.c (get_doc_string): Make non-static. + + * lisp.h: Add prototype for get_doc_string. + + * lread.c (read_vector): Add bytecodeflag parameter, which is + nonzero when reading a bytecode object. If + `load-force-doc-strings' is t when reading a lazily-loaded + bytecode vector, the loaded docstring must be treated as unibyte + and passed to Fread to obtain the actual bytecode string and + constants vector. + (read1): Add extra parameter to read_vector calls. + + (read1): Enable saving of doc strings on WINDOWSNT. + (read_list): Call get_doc_string instead of read_doc_string, when + forced to load doc strings. + +1998-05-25 Andreas Schwab + + * s/gnu-linux.h (setpgrp): Remove extra parens around parameters. + + * xterm.c (XTread_socket): Fix second argument of + x_any_window_to_frame. + + * print.c (print) : Detect circular list. + +1998-05-25 Kenichi Handa + + * coding.c (detect_coding_system): Treat CODING_EOL_INCONSISTENT + like CODING_EOL_UNDECIDED. + + * coding.c (ascii_skip_code): New variable. + (detect_coding_mask): Skip ASCII codes at the head according to + ascii_skip_code. + (coding_priorities): New variable. + (Fset_coding_priority_internal): New function. + (detect_coding): Call set_coding_mask with coding_priorities as + arg CODING. + (init_coding_once): Initialize ascii_skip_code. + (syms_of_coding): Declare set-coding-priority-internal as a Lisp + function. + +1998-05-25 Richard Stallman + + * config.in (RE_TRANSLATE): Use CHAR_TABLE_TRANSLATE. + + * lisp.h (CHAR_TABLE_TRANSLATE): New macro. + +1998-05-24 Richard Stallman + + * window.c (Fdelete_windows_on): For FRAME, change t to nil + and nil to t, but don't change other values. + + * xdisp.c (message_dolog): Do set windows_or_buffers_changed, + if *Messages* is displayed in a window. + +1998-05-22 Richard Stallman + + * indent.c (compute_motion): Check for past vpos/hpos target + before skipping invisible chars. + + * buffer.c (Fother_buffer): Doc fix. + + * window.c (window_loop): Pass new arg to Fother_buffer. + + * frame.c (frame_buffer_predicate): New arg FRAME. + (frame_buffer_list, set_frame_buffer_list): Likewise. + (make_frame): Pass new arg to Fother_buffer. + + * buffer.c (Fother_buffer): New arg FRAME. + Pass it to frame_buffer_list, frame_buffer_predicate. + Calls changed. + (record_buffer): Pass selected frame to them + and set_frame_buffer_list. + + * lisp.h (frame_buffer_predicate, frame_buffer_list) + (set_frame_buffer_list, Fother_buffer): Decls changed. + + * window.c (select_window_1): New subroutine, from Fselect_window. + (Fselect_window): Use select_window_1. + (temp_output_buffer_show): Use select_window_1. + +1998-05-22 Kenichi Handa + + * ccl.c: Change term "character translation table" to "translation + table". + + * charset.c: Change term "character translation table" to + "translation table". + (string_to_non_ascii_char): New arg EXCLUDE_TAIL_GARBAGE. Caller + changed. + (Funibyte_char_to_multibyte): Doc-string fixed. + (syms_of_charset): Doc-string fixed. + + * charset.h (STRING_CHAR_AND_CHAR_LENGTH): New macro. + (string_to_non_ascii_char): Adjusted for the new arg. + + * coding.c: Change term "character translation table" to + "translation table". + + * coding.h: Change term "character translation table" to + "translation table". + + * print.c (print_string): Don't ignore garbage bytes following a + multibyte characters. + (print): Likewise. + +1998-05-22 Richard Stallman + + * search.c (shrink_regexp_cache): New function. + + * alloc.c (Fgarbage_collect): Call shrink_regexp_cache. + +1998-05-20 Richard Stallman + + * editfns.c (Fchar_after): Make nil fully equivalent to (point) as arg. + (Fchar_before): Likewise. + +1998-05-20 Eli Zaretskii + + * fileio.c (Ffile_name_directory, Ffile_name_nondirectory) + [DOS_NT]: Handle the special construct "/:" when followed by d:foo. + + * buffer.c (init_buffer): Support DOS_NT absolute file names. + +1998-05-20 Kenichi Handa + + * charset.c (find_charset_in_str): New arg CMPCHARP. + (Ffind_charset_region): Call find_charset_in_str with CMPCHARP 0. + (Ffind_charset_string): Likewise. + + * charset.h (find_charset_in_str): Number of arguments fixed. + + * coding.c (shrink_decoding_region): No short cut by + coding->heading_ascii if eol conversion is necessary. + + * fns.c (Fstring_make_multibyte): Call CHECK_STRING. + (Fstring_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte): + Likewise. + + * xselect.c (lisp_data_to_selection_data): Call + find_charset_in_str with CMPCHARP 1 to encode Lisp string if it + contains a composite character. + +1998-05-19 Richard Stallman + + * minibuf.c (syms_of_minibuf): Doc fix. + + * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fixes. + + * frame.c (make_frame_visible_1): New function. + (Fmake_frame_visible): Use that. + + * xdisp.c (redisplay_window): Don't use window->start + if it is out of range of BEGV/ZV. + +1998-05-18 Richard Stallman + + * minibuf.c (read_minibuf): If history list var is void, make it nil. + +1998-05-18 Ken'ichi Handa + + * syntax.c (skip_chars): Fix previous change. + +1998-05-17 Kenichi HANDA + + * ccl.c: Change term translation to code conversion, then change + terms unify/unification to translate/translation respectively + throughtout the file. + + * charset.c: Change terms unify/unification to + translate/translation respectively throughtout the file. + (ONE_BYTE_CHAR_WIDTH): Delete unnecessary continuation line at the + tail. + + * charset.h: Change terms unify/unification to + translate/translation respectively throughtout the file. + (GET_TRANSLATION_TABLE): Name changed from UNIFICATION_ID_TABLE. + + * coding.c: Change terms unify/unification to + translate/translation respectively throughtout the file. + (encode_coding_iso2022): Fix bug in encoding a text ending by a + composite character. + (check_composing_code): If we are decoding the last block of data, + return 0 even if the source doesn't end by an escape sequence + which terminates the current composing sequence. + (decode_coding_iso2022): Decode correctly even if the source + doesn't end by an escape sequence which terminates the current + composing sequence. + + * coding.h: Change terms unify/unification to + translate/translation respectively throughout the file. + + * fns.c (concat): Fix bug in concatinating a list of multibyte and + unibyte characters. + + * lisp.h (Vnonascii_translation_table): Name changed from + Vnonascii_translate_table. + + * syntax.c (skip_chars): Fix bug in handling a range which + contains multibyte characters. + +1998-05-17 Richard Stallman + + * filelock.c (get_boot_time): Scan the whole wtmp file + to find the most recent reboot. + + * window.c (Fselect_window): Doc fix. + (temp_output_buffer_show): Make the temp buffer current + before running Qtemp_buffer_show_hook. + + * fileio.c (Fexpand_file_name): Change conditional + in previous change from WINDOWSNT to DOS_NT. + +1998-05-16 Richard Stallman + + * buffer.h (struct buffer): New slot display_time. + + * buffer.c (syms_of_buffer): Set up Lisp variable buffer-display-time. + Doc fixes. + (reset_buffer): Initialize display_time slot. + (init_buffer_once): Initialize display_time slot. + + * window.c (Fset_window_buffer): Update buffer's display_time. + + * insdel.c (insert_1_both, insert_from_string_1, replace_range) + (insert_from_buffer_1, adjust_before_replace, adjust_after_replace): + Don't copy text being deleted, if undo is disabled. + + * lread.c (readchar): Use readchar_backlog again + to read a character byte by byte, if its byte sequence + does not really match the character code. + (unreadchar): Handle readchar_backlog. + (readevalloop, Fread): Initialize readchar_backlog to -1. + +1998-05-15 Geoff Voelker + + * fileio.c (Fexpand_file_name) [WINDOWSNT]: Be careful not to + concatenate the directory prefix and file name to accidentally + create a network share name. + +1998-05-14 Andrew Innes + + * w32xfns.c (interrupt_handle): New variable. + (init_crit): Initialize it. + (delete_crit): Cleanup on exit. + (signal_quit): New function. Signal any threads that are blocked + on a "system" call (provided they have been specially written to + check for this), so the call can fail with EINTR as on Unix. + + * w32term.h (signal_quit): Add prototype. + + * w32fns.c (w32_wnd_proc): Call signal_quit when C-g is received. + + * w32proc.c (sys_select): Always wait on interrupt_handle, so that + user can break out of `accept-process-input' (for instance) by + typing C-g. + +1998-05-14 Richard Stallman + + * keyboard.c (read_char): If redisplay is preempted, + try swallow_events; if that clears input_pending, + finish the redisplay. + +1998-05-14 Geoff Voelker + + * w32term.c (w32_ring_bell): Flash window correctly. + +1998-05-13 Richard Stallman + + * fileio.c (Finsert_file_contents): Don't check non-regular + files for a coding: specification. + +1998-05-13 Inge Frick + + * keyboard.c (parse_menu_item): Removed unnecessary gcproing. + Fix a test of inmenubar. + +1998-05-13 Eli Zaretskii + + * msdos.c (init_environment): Set TMPDIR to an existing + directory. Abort if none of the usual places is available. + +1998-05-13 Richard Stallman + + * syntax.c (skip_chars): When fetching char after \, + don't fail to set c_leading_code. + +1998-05-12 Richard Stallman + + * fileio.c (Finsert_file_contents): Check that a -*- coding: -*- spec + or a local variables list exists, before Vset_auto_coding_function. + + * minibuf.c (Fminibuffer_complete_word): + Fix the string-comparison loop. + + * search.c (search_buffer): Set search regs for all success + with an empty string. + (set_search_regs): Clear out all regs except 0. + + * minibuf.c (Fall_completions, Ftry_completion): + Compare char sizes, not STRING_BYTES. + +1998-05-12 Inge Frick + + * keyboard.c (parse_menu_item): Argument inmenubar < 0 now means + parsing a keyboard menu item. + (read_char_minibuf_menu_prompt): Use `parse_menu_item' to understand + new menu item format. + +1998-05-12 Andrew Innes + + * w32.c (stat, get_long_basename): Fail if filename contains any + characters that are illegal in file names. + +1998-05-11 Richard Stallman + + * minibuf.c (assoc_for_completion): Use Fcompare_strings. + (test_completion): In obarray, try both unibyte and multibyte strings. + (read_minibuf): Convert unibyte prompt to multi if minibuffer is multi. + (Fdisplay_completion_list): Convert unibyte to strings to multibyte + to conform to the buffer. + + * fileio.c (Finsert_file_contents): Don't use the fast replace code + if coding needs eol conversion. + (Finsert_file_contents) [DOS_NT]: When setting buffer_file_type, + if code conversion is needed, file is not binary. + + * xdisp.c (redisplay_window): Handle scroll_step along with + scroll_conservatively. Fix 1-off error checking the limit for them. + + * filelock.c (unlock_file): Encode the file name. + +1998-05-10 Richard Stallman + + * buffer.c (Fset_buffer_multibyte): Error if marker is put + on buffer's marker-chain while we have temporarily put nil there. + + * marker.c (unchain_marker): Abort if the marker is not + in its buffer's chain. + (buf_bytepos_to_charpos): Fix assignment of `record' + when scanning from below. + Don't create a marker if buffer's marker chain is empty. + + * coding.c (code_convert_region1): Set Vlast_coding_system_used. + (code_convert_string1): Likewise. + (Fdecode_coding_region, Fencode_coding_region): Doc fixes. + (Fdecode_coding_string, Fencode_coding_string): Doc fixes. + + * Makefile.in (TAGS): Specify directory when running etags. + +1998-05-09 Richard Stallman + + * bytecode.c (Fbyte_code): Don't use Bmark. + + * .gdbinit (xstring): Handle unibyte strings. + (xchartable, xboolvector): New commands. + + * xdisp.c (redisplay_window): Don't use last_point_x and last_point_y + if cursor_in_echo_area. + + * minibuf.c (Qbuffer_name_history): New variable. + (syms_of_minibuf): Initialize it. + (Fread_buffer): Use that history list. + +1998-05-09 Richard Stallman + + * syntax.c (scan_lists, scan_sexps_forward): Move complex expressions + outside of the switch statement. + +1998-05-09 Ken'ichi Handa + + * indent.c (compute_motion): Fix previous change. + +1998-05-08 Kenichi Handa + + * coding.c (detect_coding_mask): Check also coding-category-binary. + +1998-05-08 Richard Stallman + + * doc.c (get_doc_string): New arg UNIBYTE + Maybe use make_unibyte_string. All callers changed. + (read_doc_string): Specify 1 for UNIBYTE. + + * process.c (Fstart_process): Remove the special case for + unibyte, for initializing the process coding systems. + Instead, use the normal multibyte code, but check + BUFFER's value and the default value of enable-multibyte-characters. + (Fopen_network_stream): Likewise. + +1998-05-08 Ken'ichi Handa + + * indent.c (compute_motion): Fix, in a different way, the bug of + handling wide-column character around right margin. + +1998-05-07 Richard Stallman + + * indent.c (compute_motion): Undo both May 7 changes. + + * doprnt.c (doprnt1): Cast arg to CHAR_STRING. + +1998-05-07 Andrew Innes + + * callproc.c (Fcall_process): Fix test for when to call + Ffind_operation_coding_system. + +1998-05-07 Ken'ichi Handa + + * indent.c (compute_motion): Fix previous change. + +1998-05-07 Richard Stallman + + * search.c (Freplace_match): Fix the loop for copying text + from a string, in handling lastpos and pos. + +1998-05-07 Andreas Schwab + + * data.c (set_internal): Properly compare lisp objects. + (Fmakunbound): Likewise. + * lread.c (Fintern): Properly compare lisp objects. + +1998-05-07 Andrew Innes + + * fileio.c (Fexpand_file_name) [DOS_NT]: Note when special escape + prefix /: is present, and reinsert after name has been expanded. + Only recognize drive specifier at beginning of name. + + * fileio.c (Fexpand_file_name): + Don't strip trailing slash if newdir is just /. + +1998-05-07 Eli Zaretskii + + * process.c (init_process, syms_of_process) [not subprocesses]: + Make definition consistent with prototypes on lisp.h + +1998-05-07 Kenichi Handa + + * indent.c (compute_motion): Fix bug of handling wide-column + character around right margin. + +1998-05-07 Richard Stallman + + * buffer.c (syms_of_buffer) : Doc fix. + +1998-05-07 Kenichi Handa + + * callproc.c (Fcall_process): If we must display received data on + the fly, don't wait until a buffer is filled. + +1998-05-05 Richard Stallman + + * fileio.c (barf_or_query_if_file_exists): Encode file name. + +1998-05-04 Kenichi HANDA + + * coding.c (encode_coding_iso2022): Don't skip a code following + some invalid code. + +1998-05-04 Richard Stallman + + * fileio.c (Finsert_file_contents): Don't use gap pos to set point + if del_range_byte deleted 0 characters. + + * search.c (boyer_moore): Check more reliably for ptr[1] being + out of range. Use pat_end to point at the pattern's end. + + * emacs.c (main): Call the syms_of_... and keys_of_... functions + earlier, before init_vms_input and init_display. + +1998-05-04 E. Jay Berkenbilt + + * window.h (WINDOW_RIGHT_MARGIN): Don't subtract 1 from width when + there are no vertical scrollbars and this is the rightmost window + in the frame. + +1998-05-04 Eli Zaretskii + + * lread.c (Fload): Rename dosmode to fmode and use it on all + platforms. Avoid calling fdopen only for WINDOWSNT, use fdopen + for the the MSDOS version. + (read1): Avoid recording doc strings positions only for WINDOWSNT, + not for MSDOS. + +1998-05-04 Andreas Schwab + + * xterm.c: Include syssignal.h after lisp.h. + + * syssignal.h: Declare init_signals and add prototypes. + + * lisp.h: Declare init functions. + +1998-05-03 Richard Stallman + + * s/sunos4shr.h (LIBXMU): Don't bother testing CANNOT_DUMP. + + * Makefile.in (TAGS-LISP): New target. + (${lispsource}TAGS): Target deleted. + (tags): Depend on TAGS-LISP. + (TAGS): Generate the TAGS file in the build dir. + (lisptagsfiles): Variable deleted. + + * Makefile.in (shortnamesdir, cppdir): Vars deleted. + (shortnames): Target deleted. + (temacs): Don't use $(SHORT). + (SHORT): Var deleted. + +1998-05-02 Richard Stallman + + * alloc.c (Fmake_bool_vector): Clear out extraneous bits at end. + + * lread.c (read1): Clear out extraneous bits at end of bool-vector. + + * search.c (compile_pattern_1): Declare raw_pattern as unsigned char *. + Fix casts when assigning raw_pattern. + Cast raw_pattern when calling re_compile_pattern. + +1998-05-02 Hallvard B Furuseth + + * process.c (create_process): Add cast when calling encode_coding + and another when storing buf into new_argv. + + * search.c (search_buffer): Fix casts when assigning raw_pattern. + + * editfns.c (Fformat): Fix casts when assigning buf. + + * lread.c (isfloat_string): Don't look at bytes before the string. + +1998-05-02 Richard Stallman + + * s/nextstep.h (HAVE_STRING_H): Add #undef. + (NO_ABORT): Defined. + + * editfns.c (Finsert_char): Doc fix. + +1998-05-02 Hrvoje Niksic + + * fileio.c (Fmake_temp_name): Improve randomness of generated file + names. + +1998-05-01 Richard Stallman + + * search.c (wordify): Do the second loop by chars, not by bytes. + +1998-05-01 Kenichi Handa + + * coding.c (encode_coding_iso2022): If encoding a last block, + reset graphic planes and registers. + +1998-04-30 Geoff Voelker + + * keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) + New variables. + (make_lispy_event): Handle drag_n_drop events. + (syms_of_keyboard): Initialize new symbols. + + * w32fns.c (enum_font_cb2): Only ignore raster fonts when + determining height and width. + + * termhooks.h (event_kind): New event type `drag_n_drop'. + + * makefile.nt (LIBS): Link in shell32.lib. + + * w32fns.c: Include shellapi.h. + (w32_createwindow): Enable drag-n-drop on new windows. + (w32_wnd_proc): Handle WM_DROPFILES messages. + Disable drag-n-drop on closing windows. + + * w32term.c: Include shellapi.h. + (construct_drag_n_drop): New function. + (w32_read_socket): Handle WM_DROPFILES messages. + +1998-04-30 Skip Collins + + * w32fns.c (msh_mousewheel): New variable. + (w32_msg_pump): Register that Emacs accepts mousewheel events. + (w32_wnd_proc): Check for mousewheel events. + + * w32term.c (msh_mousewheel): Declare. + (w32_read_socket): Check for mousewheel events. + + * w32term.h (WM_MOUSEWHEEL): Define relative to WM_MOUSELAST. + (MSH_MOUSEWHEEL): New macro. + +1998-04-29 Richard Stallman + + * indent.c (compute_motion): When invisible text cross TO, + return TO, not the start of the invisible text. + + * process.c (Fset_process_inherit_coding_system_flag, Fstart_process): + Store inherit_coding_system_flag as a Lisp_Object. + (Fopen_network_stream): Likewise. + (Fprocess_inherit_coding_system_flag): Access it as Lisp_Object. + (read_process_output): Likewise. + + * process.h (struct Lisp_Process): + Make inherit_coding_system_flag a Lisp_Object. + +1998-04-29 David Mosberger-Tang + + * unexelf.c [__alpha__ && !__NetBSD__ && !__OpenBSD__]: + Include definition of HDRR structure that used to be in sym.h, + instead of sym.h + +1998-04-29 Andreas Schwab + + * xfns.c: Fix -Wimplicit warnings. + + * xdisp.c (redisplay_window): Update STARTP_BYTE alongside with + STARTP. New variable scroll_margin_bytepos, to parallel + scroll_margin_pos. Fix arguments of pos_tab_offset to agree with + the first argument of compute_motion. + + * window.c (make_window): Initialize last_point field. + + * sysdep.c (emacs_get_tty): Zero out termios structure before + getting attributes to get consistent values for holes. + (emacs_set_tty): Likewise. + + * lisp.h: Declare Fcompare_strings. + + * fns.c: Include for time. + + * emacs.c (main): Use Vbuffer_alist instead of Fbuffer_list. + (syms_of_emacs): Fix doc of Vsignal_USR1_hook and + Vsignal_USR2_hook. + + * coding.c (setup_coding_system): Properly check for nil. + +1998-04-29 Richard Stallman + + * editfns.c (Fcompare_buffer_substrings): Rewrite to loop by chars. + + * coding.h (Vfile_name_coding_system) + (Vdefault_file_name_coding_system): Declarations added. + + * emacs.c (abort): Omit this definition, if NO_ABORT. + End by calling exit, to avoid warning. + +1998-04-28 Richard Stallman + + * filelock.c: Include coding.h. + (lock_file): Encode the file name, to make lock file name. + + * editfns.c (Fgap_position, Fgap_size): New functions. + (syms_of_editfns): defsubr them. + + * filelock.c (lock_file): gcpro `fn'. + + * insdel.c (insert_1_both): Call prepare_to_modify_buffer before + moving or making gap. + (insert_from_string_1): Don't check max buffer size here. + + * data.c (Flsh, Fash): Handle out-of-range shift counts reasonably. + +1998-04-28 Dave Love + + * s/aix4.h (HAVE_STRING_H): Add #undef. + (HAVE_WAIT_HEADER): Defined. + +1998-04-28 Richard Stallman + + * emacs.c (main): Fix bug report address in --help message. + (main): Doc --multibyte and --unibyte in --help message. + + * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_X_WINDOWS. + +1998-04-28 Eli Zaretskii + + * Makefile.in (callproc.o, print.o, cmds.o, dispnew.o, fileio.o, + frame.o, keyboard.o, minibuf.o, process.o, scroll.o, sysdep.o, + term.o, w16select.o, window.o, xdisp.o, xfaces.o, lread.o): Depend + on msdos.h. + (print.o): Depend on dispextern.h. + +1998-04-28 Andreas Schwab + + * process.c (Fset_process_inherit_coding_system_flag): + Fix test for non-nil FLAG. + + * lread.c: Fix -Wimplicit warnings. + (readevalloop): Fix type of UNIBYTE parameter. + +1998-04-27 Richard Stallman + + * xterm.c (XTwrite_glyphs): Don't advance cursor X beyond limit. + (XTcursor_to): Likewise. + + * blockinput.h (reinvoke_input_signal): Don't use prototype decl. + +1998-04-27 Hrvoje Niksic + + * fns.c (Fload_average): New arg USE_FLOATS. + +1998-04-27 Eli Zaretskii + + * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_WINDOW_SYSTEM + is defined. + + * callproc.c, fileio.c: Include msdos.h after lisp.h. + + * msdos.c (IT_ring_bell, IT_write_glyphs, IT_clear_end_of_line, + IT_clear_screen, IT_clear_to_end, IT_clear_to_end, IT_cursor_to, + IT_cmgoto, IT_reassert_line_highlight, IT_change_line_highlight, + IT_update_begin, IT_update_end, IT_set_terminal_modes, + IT_reset_terminal_modes, IT_set_terminal_window, + pixel_to_glyph_coords, IT_menu_display): Bring definitions in + accordance with prototype declarations. + + * msdos.h [!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle + and prototypes for external functions. + +1998-04-26 Richard Stallman + + * fns.c (Fcompare_strings): Doc fix. + + * minibuf.c (minibuf_conform_representation): New function. + (Ftry_completion): Use it to return multibyte string + if and only if the completion table has a multibyte string. + (Fdisplay_completion_list): + Convert string to unibyte before displaying it, if default is unibyte. + + * eval.c (find_handler_clause): Cast Fbacktrace to proper type. + + * data.c (Fmakunbound): Test keywordness only in initial obarray. + +1998-04-26 Erik Naggum + + * emacs.c (standard_args): Apply --unibyte/multibyte after --nw. + + * lisp.h: Include initial_obarray from lread.c + + * data.c (set_internal): Test keywordness only in initial obarray. + + * lread.c (Fintern): Initialize keywords only in initial obarray. + +1998-04-25 Richard Stallman + + * sysdep.c (croak): Add forward declaration. + + * xfns.c (x_set_foreground_color, x_set_background_color) + (x_set_mouse_color, x_set_cursor_color): Don't call unload_color + if same pixel is used in another slot in the frame. + + * xterm.c (x_display_cursor): Use FRAME_CURSOR_X_LIMIT. + + * dispnew.c (change_frame_size_1): Use FRAME_CURSOR_X_LIMIT. + (update_frame): Likewise. + + * frame.h (FRAME_CURSOR_X_LIMIT): New macro. + +1998-04-25 Erik Naggum + + * lread.c (Fread_from_string): Initialize startval and endval. + +1998-04-24 Richard Stallman + + * lread.c (read1): Allow multibyte and unibyte together + in one string. + + * xdisp.c (Qinhibit_point_motion_hooks): New variable. + (syms_of_xdisp): Init and staticpro it. + (redisplay_window): Bind the symbol to t. + +1998-04-24 Geoff Voelker + + * w32.c (sys_socket): Make sockets non-inheritable. + +1998-04-23 Andrew Innes + + * coding.c (shrink_decoding_region): Do not consider LF as ascii + if preceded by CR, since that confuses eol decoding. + (code_convert_region): When conversion fails with + CODING_FINISH_INSUFFICIENT_SRC, was overwriting src with garbage + from dst instead of copying from src to dst. + + * fileio.c (Fcopy_file): Skip dev/inode check on Windows. + + * lread.c (dir_warning): Don't log a warning if Emacs hasn't + finished initializing. + + * s/ms-w32.h (utimbuf): New macro. + + * w32.c (fstat, utime): New functions; these are provided in + conjunction with stat to make handling of file timestamps + consistent. + (convert_from_time_t): Fix calculation of low-order bits. + (sys_unlink): Allow read-only files to be unlinked as on Unix. + + * w32fns.c (x_set_vertical_scroll_bars): Put scroll bars on the + right, as is conventional on MS-Windows. + (w32_wnd_proc): Add code to draw popup menu titles. + Ensure mouse capture is released before running popup menu. + + * w32term.c (w32_read_socket): Don't misinterpret WM_PAINT message + as an expose event if the repaint region is actually empty. Also + use the standard menubar_selection_callback routine. + + * w32menu.c: Replace code with a new version written from scratch + based on xmenu.c; menu construction is now completely lazy. + + * w32proc.c (sys_kill): Fix indenting. + +1998-04-23 Inge Frick + + * keyboard.c: (parse_menu_item): Support keywords :keys and + :key-sequence. Some changes to provide GC-protection. Some + cosmetic changes. + (syms_of_keyboard): Define new symbols `:keys' and `:key-sequence'. + +1998-04-23 Richard Stallman + + * Makefile.in (emacs.o): Depend on buffer.h. + + * charset.c (syms_of_charset): Doc fix for nonascii-insert-offset. + + * editfns.c (Fbuffer_substring): Doc fix. + (Finsert_and_inherit_before_markers): Doc fix. + (Finsert_and_inherit, Finsert_before_markers, Finsert): Doc fixes. + + * fns.c (Fstring_make_multibyte): Doc fix. + (Fstring_make_unibyte): Doc fix. + +1998-04-22 Richard Stallman + + * charset.c (Funibyte_char_to_multibyte): Doc fix. + + * xfns.c (x_set_foreground_color): Call unload_color on the old color. + (x_set_background_color, x_set_mouse_color): Likewise. + (x_set_cursor_color, x_set_border_pixel): Likewise. + + * xfaces.c (unload_color): No longer static. + + * insdel.c (insert_from_string, insert_from_string_before_markers): + Don't special case LENGTH = 0. + (insert_from_buffer): Likewise. + +1998-04-22 Erik Naggum + + * filelock.c (get_boot_time): Remove extraneous semicolon. + + * lisp.h: Remove extraneous semicolon. + +1998-04-22 Eli Zaretskii + + * w16select.c (Fwin16_set_clipboard_data): Call UNBLOCK_INPUT + before calling sit_for. + (Fwin16_get_clipboard_data, Fwin16_set_clipboard_data): Balance + the calls to BLOCK_INPUT and UNBLOCK_INPUT. + (alloc_xfer_buf): If want_size is more than 1MB, return + immediately with failure. + (Fw16_set_clipboard_data, Fw16_get_clipboard_data): Replace win16 + with w16. + +1998-04-21 Richard Stallman + + * eval.c (Fsignal): Unconditionally do TOTALLY_UNBLOCK_INPUT. + + * dispnew.c (update_frame): Move echo area cursor into range. + +1998-04-21 Eli Zaretskii + + * callproc.c (Fcall_process) [MSDOS]: Call child_setup instead of + run_msdos_command. + (child_setup) [MSDOS]: Call run_msdos_command here. + (child_setup) [DOS_NT]: Get past drive letter in pwd. Don't call + close_load_descs, since we are not in a vfork. + + * msdos.c (run_msdos_command): Don't construct process + environment, it's already done in child_setup. + (run_msdos_command): Add ENVV to argument list. + +1998-04-20 Richard Stallman + + * emacs.c (main): Move the --unibyte code below + the most basic initializations. + Clear out *Messages* at that point. + + * lread.c (read_from_string_index_byte): New variable. + (read_from_string_index): Now counts characters. + (readchar, unreadchar, Fread_from_string): Changed accordingly. + + * lread.c (readchar): Read a multibyte char all at once + from a buffer, marker or string. + (unreadchar): Unread a multibyte char all at once. + (read1): Properly handle non-escaped multibyte chars. + They force a string to be multibyte. + When reading direct from a file, any multibyte sequence means + a multibyte string. + Insist on MAX_LENGTH_OF_MULTI_BYTE_FORM bytes when checking + for read_buffer full; this way need not check specially for multibyte. + + * emacs.c: Include buffer.h + (main): When handling --unibyte, mark all existing + buffers as unibyte; but don't handle it when dumping. + + * alloc.c (Fgarbage_collect): Don't truncate command-history here. + + * callint.c (Fcall_interactively): Truncate command-history here. + + * keyboard.c (Fcommand_execute): Truncate command-history here. + + * lread.c (readevalloop): New arg UNIBYTE. Callers changed. + Use it to bind load_convert_to_unibyte. + (Feval_buffer): New arg UNIBYTE. Pass it to readevalloop. + (readevalloop_1): New unwind-protect subroutine. + (load_convert_to_unibyte): New variable. + (syms_of_lread): Set up Lisp var. + (read1): If load_convert_to_unibyte, convert strings to unibyte. + + * insdel.c (copy_text): Count down bytes_left properly + in multibyte to unibyte case. + + * fns.c (Fcompare_strings): Require first 6 args. + +1998-04-20 Kenichi HANDA + + * Makefile.in (lisp): Add czech.elc, slovak.elc, and romanian.elc. + (shortlisp): Likewise. + + * coding.c (setup_coding_system): For a type 4 coding system, + FLAGS member of coding spec is a cons of CCL program symbols. + + * ccl.c (Fregister_ccl_program): Put ccl-program-idx property to + NAME. + +1998-04-19 Eli Zaretskii + + * process.h (struct Lisp_Process): Add inherit_coding_system_flag + member. + + * process.c (Fset_process_inherit_coding_system_flag, + Fprocess_inherit_coding_system_flag): New functions. + (syms_of_process): Defsubr them. + (Fstart_process, Fopen_network_stream): Initialize + inherit_coding_system_flag. + (read_process_output): If the process buffer isn't dead, call + after-insert-file-set-buffer-file-coding-system. + +1998-04-18 Hrvoje Niksic + + * fileio.c (Fmake_temp_name): Complete rewrite. + +1998-04-18 Richard Stallman + + * minibuf.c (Ftry_completion): Use Fcompare_strings. + (Fall_completions, Fminibuffer_complete_word): Likewise. + + * fns.c (Fcompare_strings): New function. + (syms_of_fns): defsubr it. + + * xselect.c (Fx_get_cut_buffer_internal): + If FORMAT is 0, cut buffer is empty. + + * emacs.c (main): --unibyte affects minibuffer too. + +1998-04-17 Richard Stallman + + * emacs.c (syms_of_emacs): Fix patching error in previous change. + + * lread.c (read1): Compute NaN and infinities using 0.0 in a + variable, to cope with compilers that think they are smarter than us. + + * lread.c (readchar): Find the previous byte's address properly + for the buffer case, as for the marker case. + +1998-04-17 Geoff Voelker + + * emacs.c (Vpath_separator): New variable. + (syms_of_emacs): Define Vpath_separator using SEPCHAR. + + * lastfile.c (_my_endbss, my_endbss_static): New variables. + + * term.c (reset_terminal_modes): Only invoke hook if defined. + + * makefile.nt (LINK_TYPE): Do not include debug info in optimized + binary. + (LIBS): Include mpr.lib. + (clean): Delete patch generated files, optimized build directory. + + * s/ms-w32.h (HAVE_STRING_H, HAVE_STRFTIME): Define macros. + (SYSTEM_PURESIZE_EXTRA): Increase to handle more dumped lisp files. + + * unexw32.c (my_begbss_static, my_endbss_static): Declare. + (get_bss_info_from_map_file): Only define if SEPARATE_BSS_SECTION. + (get_section_info): Use my_begbss_static, my_endbss_static to + determine bounds of bss. + (w32_fatal_reload_error): New function. + (read_in_bss, map_in_heap): Invoke w32_fatal_reload_error upon error. + + * w32.c (sys_read): Clear carriage return flag. + Report normal EOF when read fails if nothing in buffer. + Only read more if more remaining. + (check_windows_init_file): New function. + (term_ntproc): Invoke check_windows_init_file. + + * w32.h (FILE_SEND_SIGCHLD): New macro. + + * w32faces.c (Qforeground_color, Qbackground_color): Declare. + (compute_char_face, merge_face_list): Update from xterm.c. + + * w32fns.c (w32_msg_pump): Handle WM_EMACS_SETLOCALE. + (w32_wnd_proc): Handle WM_EMACS_SETFOREGROUND. + + * w32heap.c (recreate_heap): Invoke w32_fatal_reload_error upon error. + * w32heap.h (w32_fatal_reload_error): Declare. + + * w32inevt.c (Vw32_recognize_altgr): Declare. + (w32_kbd_mods_to_emacs): Obey Vw32_recognize_altgr. + Add more keys for Vw32_capslock_is_shiftlock. + (w32_kbd_patch_key): Obey Vw32_recognize_altgr. + (map_virt_key): Brazilian keyboards use 0xc1 for /(?) key. + + * w32menu.c (Vmenu_updating_frame): New variable. + (Fx_popup_menu, set_frame_menubar): Record frame whose menu is + being updated. + (syms_of_w32menu): Define Vmenu_updating_frame. + + * w32proc.c (w32_executable_type): Properly cast dos_header when + making size comparison. + (sys_spawnve): Update comments. + (sys_select): Ignore children dead children with pending input. + Delay sending SIGCHLD until all output has been read. + (sys_kill): Sleep to allow focus change events to propagate. + Use TerminateProcess on Win95. + (int_from_hex, enum_locale_fn, Fw32_get_valid_locale_ids): + New functions. + (Vw32_valid_locale_ids): New variable. + (Fw32_set_current_locale): Send message to input thread. + (syms_of_ntproc): defsubr Sw32_get_valid_locale_ids. + + * w32term.c (Vw32_recognize_altgr): New variable. + (dumpglyphs): Update from xterm.c. + (w32_ring_bell): Flash window, don't just reset its state. + (dumprectangle, show_mouse_face, x_draw_single_glyph): Use new + args to dumpglyphs. + (my_set_foreground_window): New function. + (w32_condemn_scroll_bars): Mark all as condemned scroll bars. + (w32_redeem_scroll_bar): Look through all scroll bars. + (w32_judge_scroll_bars): Don't clear out condemned list. + (w32_read_socket): Clip window after frame has been restored. + (x_focus_on_frame, x_raise_frame): Use my_set_foreground_window. + (syms_of_w32term): Define Vw32_recognize_altgr. + + * w32term.h (WM_EMACS_SETFOREGROUND, WM_EMACS_SETLOCALE): + New message macros. + +1998-04-16 Richard Stallman + + * callproc.c (Fcall_process_region): Unbind coding-system-for-write + after calling Fwrite_region. + + * eval.c (Fcatch): Doc fix. + + * mocklisp.c (Fml_if): Initialize val. + +1998-04-16 Erik Naggum + + * emacs.c (main): Fix typo, add --multibyte and --no-multibyte. + (standard_args): Add --multibyte and --no-multibyte. + +1998-04-16 Richard Stallman + + * fns.c (time): Declare it only if not HAVE_UNISTD_H. + + * emacs.c (standard_args): Add --no-unibyte. + (main): Recognize --no-unibyte to inhibit EMACS_UNIBYTE. + + * fns.c (Frequire): Doc fix. + + * fileio.c (file_name_as_directory): For empty arg, return `./'. + +1998-04-16 Eli Zaretskii + + * msdos.c (it_keyboard): New variable, supports Italian keyboard. + (keyboard_layout_list): Add Italian keyboard. + +1998-04-15 Ken'ichi Handa + + * coding.c (code_convert_region): If point in the conversion + region, move it to FROM in advance. + +1998-04-15 Eli Zaretskii + + * callproc.c (Fcall_process): Call + after-insert-file-set-buffer-file-coding-system if + inherit-process-coding-system is non-nil. + + * coding.c (syms_of_coding): Declare and define + inherit-process-coding-system. + + * coding.h: Declare inherit-process-coding-system. + + * w32.c (sys_pipe): Use binary pipe I/O unconditionally. + + * callproc.c: Remove binary-process-{in,out}put. + (syms_of_callproc): Likewise. + (Fcall_process, Fcall_process_region): Don't use + binary-process-{in,out}put. + +1998-04-15 Andreas Schwab + + * config.in (RE_TRANSLATE_P): Define. + +1998-04-15 Ken'ichi Handa + + * ccl.c (Fccl_execute_on_string): Put \n\ at eol of docstring. + + * xfns.c (x_set_font): Give 2nd arg nil to Fquery_fontset. + (Fx_create_frame): Likewise. + +1998-04-15 Kenichi Handa + + * ccl.c: Typo in comments fixed. + (Qccl_program_idx, Qunification_table, Qunification_table_id): New + variables. + (syms_of_ccl): Initialize and staticpro them. + (CCL_ReadMultibyteChar2): Macro name changed from + CCL_ReadMultibyteCharacter. + (CCL_WriteMultibyteChar2): Macro name changed from + CCL_WriteMultibyteChar2. + (CCL_ + (MAX_TABLE_SET_LEVEL): New macro. + (tr_stack): New type. + (translate_stack, translate_stack_pointer): New variables. + (PUSH_TRANSLATE_STACK, POP_TRANSLATE_STACK): New macros. + (ccl_driver): Adjusted for the above changes. + (resolve_symbol_ccl_program): New function. + (Fccl_execute): The arg CCL-PROGRAM can be a symbol of CCL + program. If CCL-PRGRAM is a vector, convert symbols in it to ID + numbers by resolve_symbol_ccl_program. + (Fccl_execute_on_string): Likewise. + (Fregister_ccl_program): If the arg CCL-PRGRAM is a vector, + convert symbols in it to ID numbers by resolve_symbol_ccl_program. + + * ccl.h (Vccl_program_table, Qccl_program_idx): Extern them. + + * fontset.c (find_ccl_program_func): New variable. + (fs_load_font): Call a function pointed by find_ccl_program_func + instead of finding CCL program to encode a character by itself. + (Fquery_fontset): New optional 2nd arg REGEXPP. Callers changed. + + * fontset.h (FONT_ENCODING_NOT_DECIDED): The value is changed to 255. + (find_ccl_program_func): Extern it. + (Fquery_fontset): Args number changed to 2. + + * xfns.c (syms_of_xfns): Initialize find_ccl_program_func. + + * xterm.c (x_find_ccl_program): New function. + + * xterm.h (x_find_ccl_program): Extern it. + +1998-04-14 Dave Love + + * keymap.c: Revert erroneous 1998-04-07 change. + +1998-04-14 Karl Heuer + + * xfns.c (x_destroy_bitmap): Declare as void, not int. + (x_report_frame_params, x_set_border_pixel): Likewise. + (x_set_internal_border_width): widget_store_internal_border takes + just one arg, not two. + +1998-04-14 Andreas Schwab + + * xdisp.c (try_window): Fix mixing of Lisp_Object and int. + + * window.c (Fset_window_configuration): Fix mixing of Lisp_Object + and int. + + * sysdep.c (init_sys_modes): Fix mixing of Lisp_Object and int + + * search.c (compile_pattern, compile_pattern_1): Fix mixing of + Lisp_Object and int. + + * process.c (read_process_output): Fix mixing of Lisp_Object and + int. + + * minibuf.c (Fself_insert_and_exit): Fix mixing of Lisp_Object and + int. + + * marker.c (set_marker_both): Remove bogus checks on charpos. + + * keyboard.c (parse_menu_item): Don't GCPRO non-lisp variables. + + * insdel.c (signal_after_change): Fix mixing of Lisp_Object and + int. + + * indent.c (indented_beyond_p): Fix mixing of Lisp_Object and int. + + * frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Fix + mixing of Lisp_Object and int. + + * fns.c (Fsubstring, substring_both, Fchar_table_range, + Fset_char_table_range): Fix mixing of Lisp_Object and int. + + * fileio.c (Fwrite_region): Fix mixing of Lisp_Object and int. + + * editfns.c (Fchar_after, Fchar_before): Fix mixing of Lisp_Object + and int + + * coding.c (code_convert_region): Fix mixing of Lisp_Object and + int. + + * charset.c (Fchars_in_region): Fix mixing of Lisp_Object and int. + + * ccl.c (ccl_driver, syms_of_ccl): Fix mixing of Lisp_Object and + int. + + * cm.h: Update return types of declarations. + + * xterm.h, puresize.h, termhooks.h, lisp.h, keyboard.h, + intervals.h, dispextern.h, blockinput.h, coding.h: Add more + prototypes. + + * xterm.c, xselect.c, xrdb.c, xmenu.c, xdisp.c, window.c, + widget.c, undo.c, terminfo.c, term.c, sysdep.c, syntax.c, + search.c, scroll.c, process.c, print.c, mocklisp.c, prefix-args.c, + marker.c, keymap.c, keyboard.c, intervals.c, insdel.c, indent.c, + frame.c, fontset.c, fns.c, floatfns.c, filelock.c, fileio.c, + eval.c, emacs.c, editfns.c, doprnt.c, doc.c, dispnew.c, dired.c, + data.c, coding.c, cmds.c, cm.c, charset.c, ccl.c, category.c, + casetab.c, casefiddle.c, callproc.c, callint.c, bytecode.c, + buffer.c, alloc.c, abbrev.c: Fix -Wimplicit warnings. + + * buffer.c (Fset_buffer_multibyte): Do nothing if nothing actually + changes. + + * coding.c (code_convert_region): Call adjust_after_insert also + in unibyte mode. + + * fileio.c (Finsert_file_contents): Call adjust_after_insert also + in unibyte mode. + +1998-04-13 Ken'ichi Handa + + * coding.c (code_convert_string): Give decode_coding correct byte + length of source text. + +1998-04-13 Richard Stallman + + * print.c (strout): Convert old echo area to multibyte, like printchar. + (printchar, strout): If echo area text converted to multibyte + does not all fit, truncate it at char boundary. + + * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): + When calling set_marker_both, pass the right buffer. + + * indent.c (Fcompute_motion): Check that TO and FROM are in range. + +1998-04-13 Eli Zaretskii + + * msdos.c (dosv_refresh_virtual_screen): Do not use negative + arguments. + (dos_direct_output): Fix the offset passed to + dosv_refresh_virtual_screen. + (IT_display_cursor): Don't call dosv_refresh_virtual_screen. + (IT_reset_terminal_modes): Don't call dosv_refresh_virtual_screen + when setting cursor. + +1998-04-12 Richard Stallman + + * print.c (temp_output_buffer_setup): Clear out overlays, + visited file, undo list, etc. + + * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars. + (SYNTAX_TABLE_BYTE_TO_CHAR): Handle the offset properly + both before and after conversion. + + * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Arg renamed to charpos. + (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise. + + * xdisp.c (display_text_line): When handling selective > 0, + update pos and pos_byte with results of calling scan_newline. + + * data.c (set_internal, Fmakunbound): Fix previous change. + +1998-04-12 Hallvard B Furuseth + + * print.c (print) : Fix "\ " handling. + +1998-04-11 Richard Stallman + + * s/netbsd.h (LINKER): Add definition. + (LD_SWITCH_SYSTEM): Undo previous change. + + * data.c (set_internal, Fmakunbound): No error if setting + a keyword to itself. + +1998-04-09 Karl Heuer + + * marker.c (Fbuffer_has_markers_at): Fix termination condition. + + * search.c (min, max): Make these macros, not functions. + (scan_buffer, boyer_moore): Simplify args to those macros. + * unexw32.c (min, max): Define as macros. + * w32.c (min, max): Define as macros. + * w32term.c (min, max): Define as macros. + * callproc.c (relocate_fd): Avoid `min'/`max' as variable names. + * print.c (print): Likewise. + * dispnew.c (minmax): New macro. + (update_frame): Use it. + + * w32proc.c: Delete incorrect prototype of report_file_error. + * w32.c (unrequest_sigio, request_sigio): Fix prototype. + + * w32menu.c (set_frame_menubar): Call Fset_match_data, not + Fstore_match_data. + + * emacs.c (abort): Don't redefine on DOS_NT. + +1998-04-09 Kenichi Handa + + * charset.c (string_to_non_ascii_char): Include garbage bytes (if + any) following a multibyte character in *ACTUAL_LEN. + (Fcharset_after): New function. + (syms_of_charset): Defsubr it. + (multibyte_form_length): Modified to be consistent with + string_to_non_ascii_char. + + * charset.h (MULTIBYTE_FORM_LENGTH): Don't check LEN here. + + * xdisp.c (display_text_line): Code for displaying a character by + octal form is modified. + +1998-04-08 Richard Stallman + + * data.c (keyword_symbols_constant_flag): New variable. + (syms_of_data): Set up Lisp variable. + (set_internal): Obey it and give error for :-symbols. + (Fmakunbound): Likewise. + +1998-04-08 Eli Zaretskii + + * dosfns.c (init_dosfns): Fix bug in passing segment address of + the transfer buffer. + +1998-04-08 Karl Heuer + + * keymap.c (fix_submap_inheritance): Fix parens. + +1998-04-07 Richard Stallman + + * fileio.c (Fmake_temp_name): Detect error return from mktemp. + +1998-04-07 Eli Zaretskii + + * charset.c (string_to_non_ascii_char, multibyte_form_length) + (split_non_ascii_string, str_cmpchar_id): Make the STR argument + const unsigned char *. + * charset.h: Update prototypes for the above. + + * filelock.c: Include only if CLASH_DETECTION is + defined. + + * process.c (kill_buffer_processes): Make consistent with + prototype in lisp.h. + + * msdos.c (request_sigio, unrequest_sigio): Make consistent with + prototypes in lisp.h. + + * charset.h (CHAR_STRING): Cast to unsigned char ** explicitly. + + * w16select.c (Fwin16_set_clipboard_data): Call message2 with 3 + arguments. + + * emacs.c (abort): Don't redefine on MSDOS. + +1998-04-07 Dave Love + + * keymap.c (describe_command): Use quotes around symbol name. + + * emacs.c (main): Obey environment variable EMACS_UNIBYTE as + alternative to --unibyte. + +1998-04-06 Jonathan I. Kamens + + * config.in (GSSAPI, HAVE_LIBGSSAPI_KRB5, HAVE_LIBGSSAPI) + (HAVE_GSSAPI_H): Add undefs for GSS-API support in movemail. + +1998-04-06 Richard Stallman + + * dired.c (Fdirectory_files): Use make_uninit_multibyte_string. + Use STRING_BYTES on encoded_directory. + +1998-04-06 Andreas Schwab + + * fns.c (Flength): Doc fix. + + * unexelf.c (unexec): Account for possible padding before the old + .bss section. + + * editfns.c (Ftranspose_regions): Fix order of parameters for + replace_range. + + * dired.c (Fdirectory_files): GCPRO encoded_directory and list. + Compute needsep only once. Pass correct arg to chars_in_text. + + * alloc.c (gc_sweep): Avoid using two loop variables counting the + same thing. + +1998-04-06 Ken'ichi Handa + + * fns.c (Fstring_as_unibyte): Set size_byte field to -1. + +1998-04-05 Eli Zaretskii + + * config.in: Don't include when configuring. + +1998-04-04 Richard Stallman + + * s/netbsd.h (LD_SWITCH_SYSTEM): Add -L/usr/lib. + +1998-04-03 enami tsugutomo + + * editfns.c (Fmessage_box): Pass the missing third argument + STRING_MULTIBYTE (val) to message2. + + * frame.c (make_frame_without_minibuffer): Conditionalize on + HAVE_WINDOW_SYSTEM. + (make_minibuffer_frame): Likewise. + * frame.h: Ditto. + +1998-04-03 Richard Stallman + + * intervals.c (set_intervals_multibyte): + Function moved after set_intervals_multibyte_1. + + * xdisp.c (redisplay_window): If updating mode line, + temporarily change selected_frame + +1998-04-02 Dave Love + + * emacs.c (main): Add [--unibyte] to usage. + +1998-04-02 Richard Stallman + + * print.c (print) : Follow a hex escape with `\ ' if nec. + + * data.c (Fmake_variable_frame_local): Doc fix. + + * fns.c (Fstring_as_multibyte): Never return unibyte string unchanged. + +1998-04-02 NIIBE Yutaka + + * fns.c (Fstring_as_multibyte): Set size_byte field. + +1998-04-02 Richard Stallman + + * fns.c (char_table_translate): New function. + * config.in (RE_TRANSLATE): Use char_table_translate. + +1998-04-02 Kenichi Handa + + * coding.c (CHARSET_OK): Don't reject safe charsets. + (DECODE_DESIGNATION): Likewise. + (check_composing_code): Likewise. + + * marker.c (buf_charpos_to_bytepos): Delete local variable + gapend_byte. + + * xselect.c (selection_data_to_lisp_data): Give + make_string_from_bytes a correct char size. + +1998-04-01 Richard Stallman + + * xdisp.c (redisplay_window): Fix computing pos from last_point. + +1998-03-30 Kenichi Handa + + * coding.c (code_convert_region): Handle skipped ASCII characters + at the head and tail of conversion region correctly when adjusting + position keepers. Call adjust_after_insert to record undo info + and adjust markers when we don't have to change byte sequence of + a buffer. + + * coding.h (struct coding_system): Comment for the member + heading_ascii modified. + + * fileio.c (Finsert_file_contents): Call adjust_after_insert when + a text is inserted in a multibyte buffer without any code + conversion. + + * insdel.c (adjust_markers_for_replace): New function. + (adjust_after_replace): Arguments changed. Call + adjust_markers_for_replace if this function is called after + replacement. + (adjust_after_insert): New function. + + * lisp.h (adjust_after_replace, adjust_after_insert): Extern them. + +1998-03-28 Richard Stallman + + * xdisp.c (display_text_line): Handle overlay-arrow correctly. + +1998-03-28 Richard Stallman + + * fileio.c (barf_or_query_if_file_exists): New arg QUICK. + All calls changed. + +1998-03-27 Richard Stallman + + * insdel.c (check_markers_debug_flag): New variable. + (syms_of_insdel): Set up Lisp var. + (CHECK_MARKERS): New macro. Use it everywhere + instead of calling check_markers directly. + It tests check_markers_debug_flag. + +1998-03-26 Richard Stallman + + * alloc.c (mark_buffer): Mark the undo_list slot specially; + don't mark a marker just cause it is in this list. + (Fgarbage_collect): Discard from all undo-lists + all elements that adjust markers that were not marked. + + * buffer.h (struct buffer): Field `undo_list' moved before `name' + so it won't get marked in the usual way. + + * coding.c (code_convert_region): Call adjust_before_replace + in the no-conversion case. Adjust GPT, ZV and Z in chars. + +1998-03-25 Richard Stallman + + * lread.c (init_lread): Init Vstandard_input. + +1998-03-25 Ken'ichi Handa + + * xdisp.c (redisplay_window): Fix previous change. + +1998-03-25 Kenichi Handa + + * indent.c (compute_motion): Call strwidth only when necessary. + Set wide_column_end_hpos only when MULTIBYTE_BYTES_WIDTH set + nonzero to wide_column. + + * xdisp.c (redisplay_window): Give byte position to FETCH_BYTE. + Call pos_tab_offset appropriately. + (try_window_id): Give byte position to FETCH_BYTE. Set + val.bytepos to pos_byte. + + * lisp.h (make_buffer_string, make_buffer_string_both): Extern + them. + + * process.c (read_process_output): Count multibyte characters. If + received data is stored in p->decoding_buf, copy it to a temporary + buffer and call insert_before_makers instead of + insert_from_string_before_markers. + +1998-03-24 Ken'ichi Handa + + * lisp.h (record_delete): The second arg is Lisp_Object. + +1998-03-24 Kenichi Handa + + * indent.c (MULTIBYTE_BYTES_WIDTH): Set wide_column only when we + encounter a wide-column character. + + * undo.c (record_delete): Record last_point_position when there's + no record other than marker adjustment before undo boundary. + + * insdel.c (del_range_2): Move gap again to a proper place just + after calling make_buffer_string_both. + + * coding.c (shrink_decoding_region): If EOL_CONVERSION is nonzero, + don't skip `\r' (instead of `\n'). + +1998-03-23 Andreas Schwab + + * xmenu.c (popup_get_selection): On receiving a KeyPress event + only deactivate the menu when the key is not a modifier key. + + * xfns.c (Fx_create_frame): Use "borderWidth", not "borderwidth", + as resource name, to be consistent with other X applications. + +1998-03-21 Richard Stallman + + * dired.c (Fdirectory_files): + In FULL case, compute number of characters + + * fns.c (substring_both, Fsubstring): Use make_specified_string. + (concat): Make string result unibyte or multibyte as appropriate. + + * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string. + + * alloc.c (make_specified_string): New function. + (make_string_from_bytes): New function. + (compact_strings): Get byte size from size, if size_byte < 0. + (Fmake_string): Use make_uninit_string for single-byte char. + (make_unibyte_string): Mark string as unibyte. + (make_uninit_string): Likewise. + (make_string): Likewise, if size == size in bytes. + (make_pure_string): New arg MULTIBYTE. + (Fpurecopy): Pass new arg to make_pure_string. + + * editfns.c (Fchar_to_string): Use make_string_from_bytes. + (Fformat): Use make_specified_string. + (make_buffer_string_both): Use make_uninit_string if buffer is unibyte. + + * casefiddle.c (casify_object): Use make_specified_string. + + * charset.c (Fstring): Use make_string_from_bytes. + (Fcompose_string): Likewise. + + * cmds.c (internal_self_insert): Use make_string_from_bytes. + + * coding.c (code_convert_string): Use make_string_from_bytes. + + * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes. + + * lread.c (read1): Pass new arg to make_pure_string. + (make_symbol): Likewise. + (init_obarray): Likewise. + (read1): Use make_specified_string. + + * print.c (PRINTPREPARE): Use make_string_from_bytes. + + * process.c (read_process_output): Use make_string_from_bytes. + + * search.c (Fregexp_quote): Use make_specified_string. + + * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes. + + * insdel.c: (insert_from_string_1, replace_range): + Use STRING_MULTIBYTE to determine whether string is multibyte. + + * editfns.c: Use STRING_BYTES and SET_STRING_BYTES. + + (Ftranspose_regions): Try to handle combining bytes. + + * alloc.c, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, search.c, + process.c, print.c, lread.c, keymap.c, insdel.c, keyboard.c, + frame.c, fns.c, filelock.c, doc.c, dispnew.c, data.c, coding.c, + charset.c, ccl.c, category.c, casefiddle.c, callproc.c, callint.c, + bytecode.c, abbrev.c, minibuf.c, buffer.c, fileio.c: Use + STRING_BYTES and SET_STRING_BYTES. + + * xmenu.c: Don't include puresize.h any more as code that needs it + has moved to keyboard.c. + (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p): + Functions deleted; code moved to parse_menu_item in keyboard.c. + (single_keymap_panes): Large part of code moved to single_menu_item. + (single_menu_item): New function that uses parse_menu_item. + (Qmenu_alias): Variable deleted. + (QCtoggle, QCradio): New variables. + (syms_of_xmenu): Change initializations of variables. + + * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap) + (copy-keymap, where_is_internal_1): + Support new format for menu items. + (syms_of_keymap): New symbol `menu-item'. + + * keyboard.c: Include puresize.h for CHECK_IMPURE. + (parse_menu_item): New function. + (menu_item_eval_property_1, menu_item_eval_property) New suroutines. + (menu_bar_one_keymap): Moved some code to menu_bar_item. + (menu_bar_item): Rewritten to use parse_menu_item. + (menu_bar_item_1): Function deleted. + (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio): + (Qmenu_alias): New variables. + (syms_of_keyboard): Initialize them, and item_properties. + + * insdel.c (replace_range): New arg NOMARKERS. + +1998-03-21 Richard Stallman + + * dired.c (Fdirectory_files): In FULL case, + compute number of characters + + * insdel.c (insert_from_string_1, replace_range): + Use STRING_MULTIBYTE to determine whether string is multibyte. + + * lisp.h: Declarations changed. + (STRING_MULTIBYTE, STRING_BYTES, SET_STRING_BYTES): + New definitions treating negative size_byte as a flag for unibyte. + + * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes. + + * search.c (Fregexp_quote): Use make_specified_string. + + * process.c (read_process_output): Use make_string_from_bytes. + + * print.c (PRINTPREPARE): Use make_string_from_bytes. + + * fns.c (substring_both, Fsubstring): Use make_specified_string. + (concat): Make string result unibyte or multibyte as appropriate. + + * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes. + + * coding.c (code_convert_string): Use make_string_from_bytes. + + * cmds.c (internal_self_insert): Use make_string_from_bytes. + + * charset.c (Fstring): Use make_string_from_bytes. + (Fcompose_string): Likewise. + + * casefiddle.c (casify_object): Use make_specified_string. + + * editfns.c (Fchar_to_string): Use make_string_from_bytes. + (Fformat): Use make_specified_string. + (make_buffer_string_both): Use make_uninit_string if buffer is unibyte. + + * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string. + + * lread.c (read1): Pass new arg to make_pure_string. + (make_symbol): Likewise. + (init_obarray): Likewise. + (read1): Use make_specified_string. + + * alloc.c (make_specified_string): New function. + (make_string_from_bytes): New function. + (compact_strings): Get byte size from size, if size_byte < 0. + (Fmake_string): Use make_uninit_string for single-byte char. + (make_unibyte_string): Mark string as unibyte. + (make_uninit_string): Likewise. + (make_string): Likewise, if size == size in bytes. + (make_pure_string): New arg MULTIBYTE. + (Fpurecopy): Pass new arg. + + * lisp.h (STRING_BYTES, SET_STRING_BYTES): New macros. + + * All files: Use STRING_BYTES and SET_STRING_BYTES. + + * editfns.c (Ftranspose_regions): Try to handle combining bytes. + * insdel.c (replace_range): New arg NOMARKERS. + +1998-03-20 Richard Stallman + + * cmds.c (internal_self_insert): Pass new arg to replace_range. + + * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1): + (adjust_before_replace, adjust_after_replace, replace_range): + (del_range_2): Call record_delete the new way. + Use make_buffer_string_both to make the string to pass. + + * editfns.c (make_buffer_string_both): New function. + (make_buffer_string): Use make_buffer_string_both. + + * undo.c (record_delete): Replace LENGTH arg with STRING. + (record_change): Call record_delete the new way. + + * Makefile.in (keymap.o): Depend on puresize.h. + (xmenu.o): Don't depend on puresize.h. + +1998-03-20 Inge Frick + + * keyboard.h (item_properties): New variable. + (ITEM_PROPERTY_...): New macros. + + * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap, + copy-keymap, where_is_internal_1): Support new format for menu items. + (syms_of_keymap): New symbol `menu-item'. + + * keyboard.c: Include puresize.h for CHECK_IMPURE. + (parse_menu_item): New function. + (menu_item_eval_property_1, menu_item_eval_property) New suroutines. + (menu_bar_one_keymap): Moved some code to menu_bar_item. + (menu_bar_item): Rewritten to use parse_menu_item. + (menu_bar_item_1): Function deleted. + (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio): + (Qmenu_alias): New variables. + (syms_of_keyboard): Initialize them, and item_properties. + + * xmenu.c: Don't include puresize.h any more as code that needs it + has moved to keyboard.c. + (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p): + Functions deleted; code moved to parse_menu_item in keyboard.c. + (single_keymap_panes): Large part of code moved to single_menu_item. + (single_menu_item): New function that uses parse_menu_item. + (Qmenu_alias): Variable deleted. + (QCtoggle, QCradio): New variables. + (syms_of_xmenu): Change initializations of variables. + +1998-03-20 Richard Stallman + + * window.c (window_display_table): Don't look inside buffer if its nil. + + * insdel.c (del_range_2): Use adjust_markers_for_record_delete. + +1998-03-19 Kenichi Handa + + * editfns.c (Fgoto_char): If POSITION is a marker pointing a + different buffer, don't rely on the byte position of the marker. + +1998-03-19 Richard Stallman + + * editfns.c (Fformat): Handle padding before or after, for %s etc. + Treat 0 like a multibyte char in %c. + +1998-03-19 Erik Naggum + + * filelock.c (get_boot_time): Conditionalize on BOOT_TIME. + (lock_file_1): Add boot-time to lock only if available. + +1998-03-19 Kenichi Handa + + * fns.c (Fstring_as_multibyte): Call multibyte_chars_in_text + instead of chars_in_text because we must ignore + enable-multibyte-characters here. + * lread.c (read1): Likewise. + * marker.c (byte_char_debug_check): Likewise. + +1998-03-19 Richard Stallman + + * filelock.c (current_lock_owner): If lock file data doesn't include + the uptime, assume the lock is from this system boot. + +1998-03-18 Richard Stallman + + * lread.c (read0): Swap args to Fmake_string. + +1998-03-17 Richard Stallman + + * callproc.c (syms_of_callproc): Doc fixes. + + * insdel.c (adjust_markers_for_delete): + Delete unused local coming_gap_size. + (adjust_markers_for_record_delete): New function. + (insert_1_both, insert_from_string_1, insert_from_buffer_1) + (adjust_after_replace, replace_range): + Use adjust_markers_for_record_delete. + + * editfns.c (Fsave_excursion): Doc fix. + + * window.c (Frecenter): Operate on window's buffer even + if some other was current. + + * filelock.c (get_boot_time): New function. + (lock_file_1): Include boot time in the lock text. + (current_lock_owner): Parse and compare the boot time. + +1998-03-16 Erik Naggum + + * editfns.c (Fformat): Properly print floats. + +1998-03-16 Kenichi Handa + + * insdel.c (ADJUST_CHAR_POS): New macro. + (combine_bytes): Use the macro ADJUST_CHAR_POS. + (adjust_after_replace): New arg REPLACE. If it is zero, give LEN + as the arg LENGTH to offset_intervals. + (del_range_2): Give correct args to count_combining_before and + combine_bytes. Adjust the gap position after record_delete if + necessary. Give character position to adjust_overlays_for_delete. + + * fileio.c (Finsert_file_contents): + Give adjust_after_replace the new arg REPLACE as 0. + + * coding.c (code_convert_region): The 6th arg name is changed to + REPLACE. Even if there's no need of code conversion, call + adjust_after_replace to handle bytes combining. + +1998-03-15 Richard Stallman + + * syntax.h (SYNTAX_FLAGS_COMSTART_FIRST): New macro. + (SYNTAX_FLAGS_COMSTART_SECOND): Likewise. + (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND): Likewise. + (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLE): Likewise. + + * syntax.c (Fbackward_prefix_chars): Set point properly while scanning. + (scan_sexps_forward): Make INC_FROM do UPDATE_SYNTAX_TABLE_FORWARD. + Delete the explicit calls to UPDATE_SYNTAX_TABLE_FORWARD. + Also set prev_from_syntax (new local var). Test that in the loop, + instead of fetching syntax of the previous char. + + * editfns.c (Fchar_after, Fchar_before): Properly check arg type + and whether in range, for all cases. + +1998-03-14 Richard Stallman + + * process.c (exec_sentinel, read_process_output): + Fstore_match_data => Fset_match_data. + + * xmenu.c (set_frame_menubar): Fstore_match_data => Fset_match_data. + + * xdisp.c (message_dolog): Save and restore Vdeactivate_mark. + (prepare_menu_bars): Fstore_match_data => Fset_match_data. + (update_menu_bar): Likewise. + +1998-03-13 Richard Stallman + + * search.c (Fset_match_data): Renamed from Fstore_match_data. + (syms_of_search): Corresponding change. + + * lisp.h: Fstore_match_data => Fset_match_data. + + * window.c (Fwindow_end): New arg UPDATE. + + * window.c (Fset_window_configuration): Don't call do_switch_frame + or run Qwindow_configuration_change_hook if frame is dead. + + * cmds.c (internal_self_insert): Call Fforward_buffer to advance + over the replacement characters. + +1998-03-12 Richard Stallman + + * process.c (Fstart_process): Doc fix. + + * s/ptx4.h (SETUP_SLAVE_PTY): New definition. + + * buffer.c (init_buffer): Call Fset_buffer_multibyte for *scratch*. + +1998-03-11 Richard Stallman + + * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1) + (adjust_after_replace, replace_range): + Account for combining bytes in args to record_insert. + (del_range_2): Make undo records for combining bytes. + Put second call to move_gap_both before setting beg_unchanged. + +1998-03-12 Kenichi HANDA + + * coding.c (code_convert_region): Adjusted for the change of + adjust_after_replace. + + * fileio.c (Finsert_file_contents): Don't do position adjustments + and handling post-read-conversion here, they are done in + code_convert_region. Even if a file is read by no-conversion, + call adjust_after_replace to adjust positions. + + * insdel.c (adjust_before_replace): Call + adjust_overlays_for_delete. + (adjust_after_replace): Delete args COMBINED_BEFORE_BYTES and + COMBINED_AFTER_BYTES. This makes the newly generated text + following GPT_ADDR a buffer contents. + +1998-03-10 Richard Stallman + + * insdel.c (adjust_markers_for_insert): Don't leave a marker within + the combined_after_bytes. Use DEC than INC when leaving + a marker before the insertion. + (count_combining_before): Return number of bytes from start + of insertion that will combine. + (insert_1_both): Compensate for change in count_combining_before. + Delete intervals for the combined_after_bytes. + Compensate for that when updating other intervals. + (insert_from_buffer_1, replace_range): Likewise. + (adjust_after_replace): Likewise. + (insert_from_string_1): Likewise. Also handle intervals + for inserting just part of string. + + * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1): + Count all of combined_after_bytes, not just 1, when correcting + nchars, and in related places. + (adjust_after_replace, replace_range): Likewise. + +1998-03-09 Gerd Moellmann + + * fontset.c (fontset_pattern_regexp): `==' was used instead of `='. + +1998-03-09 Richard Stallman + + * insdel.c (combine_bytes): New function. + (insert_1_both, insert_from_string_1, insert_from_buffer_1): + Simplify greatly by using combine_bytes near the end + to handle all aspects of combining except for undo-recording. + This means most of the code deals with the text as if there were + no combining. + (replace_range): Likewise. Also handle unibyte-multibyte conversion + as in insert_from_string_1. + (del_range_2): Handle combining of character before the deletion + with strays after the deletion. + (adjust_markers_for_delete): Delete debugging code for Z == Z_BYTE. + (adjust_markers_for_insert): Move Z == Z_BYTE debugging code + to before we relocate the marker. + +1998-03-09 Richard Stallman + + * lisp.h (struct Lisp_Buffer_Local_Value): + Field car renamed to realvalue. New fields check_frame, + found_for_buffer, found_for_frame, buffer, frame. + + * data.c (store_symval_forwarding, swap_in_symval_forwarding) + (set_internal, default_value, Fset_default, Fmake_local_variable) + (Fmake_variable_buffer_local, Fkill_local_variable): + Handle new data structure for struct Lisp_Buffer_Local_Value. + (Fmake_variable_frame_local): New function. + + * buffer.c (set_buffer_internal_1) + (swap_out_buffer_local_variables): Handle new data structure + for struct Lisp_Buffer_Local_Value. + + * print.c (print): Handle new data structure + for struct Lisp_Buffer_Local_Value. + + * alloc.c (gc_sweep, mark_object): Handle new data structure + for struct Lisp_Buffer_Local_Value. + +1998-03-08 Richard Stallman + + * insdel.c (adjust_markers_for_insert): New arg COMBINED_BEFORE_BYTES. + Calls changed. + + * search.c (simple_search): Don't count a character until it matches! + Call set_search_regs differently in a forward search. + (boyer_moore): Fix up the code that translates the pattern + and loops thru equivalent characters. + +1998-03-07 Richard Stallman + + * insdel.c (adjust_markers_for_insert): New arg COMBINED_AFTER_BYTES. + Calls changed. + (insert_1): Call insert_1_both. + (count_combining_before): New function. + (count_combining_after): New function. + (insert_1_both, insert_from_string_1): Handle bytes that combine + with chars adjacent to the inserted text. + (insert_from_buffer_1, replace_range): Likewise. + (adjust_after_replace): + New args COMBINED_BEFORE_BYTES, COMBINED_AFTER_BYTES. + +1998-03-06 Kenichi Handa + + * Makefile.in (alloc.o): Depend on charset.h. + + * alloc.c (Fmake_string): Handle the case INIT is a multibyte + character correctly. + + * buffer.c (advance_to_char_boundary): Handle the case the code + 0240..0377 is not a constituent of a multibyte sequence. + + * coding.c (code_convert_region): Fix previous change. Adjusted + for the change of adjust_after_replace (see insdel.c change above). + +1998-03-04 Ken'ichi Handa + + * coding.c (code_convert_region): Fix previous change. + +1998-03-04 Kenichi HANDA + + * buffer.c (Fset_buffer_multibyte): Fix arg for chars_in_text. + Be sure not to have a multibyte sequence striding over the GAP + + * charset.c (strwidth): Make it work for invalid bytes sequence. + (Fstring_width): Give byte length of STR to strwidth. + + * coding.c (code_convert_region): Handle the case that codes + 0240..0377 are generated just after a multibyte character. + + * editfns.c (Fformat): Format multibyte characters by "%c" + correctly. Handle padding for multibyte characters correctly. + +1998-03-03 Richard Stallman + + * puresize.h (BASE_PURESIZE): Increased. + +1998-03-03 Kenichi Handa + + * Makefile.in (dired.o): Depend on charset.h and coding.h. + + * callproc.c (Vdefault_file_name_coding_system): Extern it. + (Fcall_process): Use ENCODE_FILE. + + * coding.h (ENCODE_FILE): Moved from fileio.c. Use + default-file-name-coding-system if file-name-coding-system is nil. + (DECODE_FILE): New macro. + + * dired.c: Include charset.h and coding.h. + (ENCODE_FILE): This macro is moved to coding.h. + (Vdefault_file_name_coding_system): Extern it. + (Fdirectory_files): Use DECODE_FILE. + (file_name_completion): Likewise. + + * editfns.c (Fformat): Fix previous change. + + * fileio.c (ENCODE_FILE): This macro is moved to coding.h. + (Vdefault_file_name_coding_system): New variable. + (syms_of_fileio): Defsubr it. + (Ffile_symlink_p): Use DECODE_FILE. + (Ffile_name_directory): Use size_byte member of XSTRING (filename). + (Ffile_name_as_directory): Likewise. + (Fdirectory_file_name): Likewise. + (Fsubstitute_in_file_name): Likewise. + (expand_and_dir_to_file): Likewise. + (Fdo_auto_save): Likewise. + (Fread_file_name): Likewise. + + * insdel.c (insert_1_both): If enable-multibyte-characters is nil, + insert each byte as one character. + + * process.c (Vdefault_file_name_coding_system): Extern it. + (create_process): Use ENCODE_FILE. + +1998-03-02 Kenichi Handa + + * callproc.c (Fcall_process): Calculate CARRYOVER correctly. + + * charset.h (NONASCII_INSERT_OFFSET): New macro. + (VALID_MULTIBYTE_CHAR_P): New macro. + + * charset.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is + moved to charset.h. + (unibyte_char_to_multibyte): Always return a valid character. + (Funibyte_char_to_multibyte): New function. + (syms_of_charset): Defsubr it. Doc-string of + nonascii-insert-offset is modified. + + * coding.h: Typo in comment fixed. + + * cmds.c (internal_self_insert): Avoid checking + enable-multibyte-characters twice. + + * editfns.c (string1): Cast ARGS to `char **' to avoid + compiler warning. + + * fileio.c (Ffile_name_nondirectory): Use size_byte member of + XSTRING (filename). + + * fns.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is + moved to charset.h. + (concat): Use unibyte_char_to_multibyte. + + * insdel.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is + moved to charset.h. + (copy_text): Don't convert codes in the range 0200..0237 to + multibyte characters. For codes in the range 0240..0377, use + unibyte_char_to_multibyte. + (count_size_as_multibyte): Likewise. + (adjust_before_replace): Comment fixed. + + * xdisp.c (try_window_id): Use DEC_BOTH unconditionally. + (display_text_line): Likewise. + +1998-03-02 Richard Stallman + + * lisp.h (Vnonascii_translate_table, Qcharset): New variable decls. + (Fstring_make_multibyte, Fstring_make_unibyte): New function decl. + (Fstring_as_multibyte, Fstring_as_unibyte): New function decl. + (list2, list3, list4, list5): New function decl. + (Fwrite_region): Add an argument. + (compare_window_configurations): New function decl. + + * keyboard.c: Include syntax.h. + (interrupt_signal): Save and restore gl_state + around an immediate quit, in case debugger returns. + + * Makefile.in (keyboard.o): Depend on syntax.h. + + * syntax.h (UPDATE_SYNTAX_TABLE): + Do nothing unless parse_sexp_lookup_properties. + (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise. + (SYNTAX_TABLE_BYTE_TO_CHAR): If parse_sexp_lookup_properties is 0, + return 0 right away. + (SETUP_SYNTAX_TABLE): Add if (1) ... else. + +1998-03-01 Richard Stallman + + * fileio.c (auto_save_1): Pass new arg to Fwrite_region. + (Fwrite_region): New arg CONFIRM. If non-nil, confirm overwriting. + + * callproc.c (Fcall_process_region): Pass new arg to Fwrite_region. + +1998-03-01 Ilya Zakharevich + + * syntax.c (update_syntax_table): Properly update `position' + field of used intervals. + + * interval.c (update_interval): Properly update `position' + field of used intervals. + +1998-02-28 Richard Stallman + + * fns.c (internal_equal): compare_window_configurations takes new arg. + + * window.c (compare_window_configurations): New arg ignore_positions. + (Fcompare_window_configurations): New function. + (syms_of_window): defsubr it. + + * keyboard.c (Fthis_command_keys_vector): New function. + (Fread_key_sequence_vector): New function. + (syms_of_keyboard): defsubr them. + (Fthis_single_command_keys): Always return a vector. + +1998-02-27 Richard Stallman + + * xterm.c (XTframe_up_to_date): Check that mouse_face_mouse_frame + is non-null before calling note_mouse_highlight. + (x_destroy_window): If f equals mouse_face_mouse_frame, + clear that, and clear mouse_face_deferred_gc too. + + * xdisp.c (syms_of_xdisp): Doc fix. + + * data.c (store_symval_forwarding) : + If buffer_local_types has -1, this variable is read-only. + + * buffer.c (syms_of_buffer): enable-multibyte-characters is read-only. + + * data.c (Fset_default) : + Unconditionally set the slot in buffer_defaults. + + * buffer.c (reset_buffer): Initialize enable_multibyte_characters. + + * buffer.c (init_buffer_once): Force enable-multibyte-characters + to be local in every buffer whether it is set or not. + + * fns.c (mapcar1): Handle bool-vectors. + (Fmapconcat, Fmapcar): Doc fixes. + (Flength): For char-table, length is based on max valid char code. + + * syssignal.h: Delete #endif left over from previous change. + +1998-02-27 Andreas Schwab + + * indent.c (compute_motion): If we just moved over a continuation + return contin_hpos as prevhpos. + +1998-02-27 Karl Heuer + + * insdel.c (del_range_2): Reorder args. All callers changed. + +1998-02-25 Karl Heuer + + * insdel.c (del_range_both): Reorder args. All callers changed. + +1998-02-24 Kenichi Handa + + * xdisp.c (message_dolog): Give correct args to + message_log_check_duplicate and del_range_both. + + * search.c (scan_newline): Delete duplicated code. + +1998-02-21 Richard Stallman + + * cmds.c (Fdelete_backward_char): Count both bytes and chars. + +1998-02-21 Ilya Zakharevich + + * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Fix condition. + (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise. + (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix bounds. + * syntax.c (update_syntax_table): Fix calculations using offset. + (skip_chars): Fix loop termination condition. + * textprop.c (interval_of): Handle Qt. + +1998-02-20 Andreas Schwab + + * s/gnu-linux.h (LINUX_MAP_SHARED_DOES_WORK): Define for kernel + version after 2.0. + (UNEXEC_USE_MAP_PRIVATE): Don't define if + LINUX_MAP_SHARED_DOES_WORK. + + * syssignal.h (sigmask) [POSIX_SIGNALS]: Always define our own + version that returns a sigset_t. + (sigpause) [POSIX_SIGNALS]: Unconditionally define in terms of + sigsuspend. Don't redefine SIGEMPTYMASK. + (sys_sigpause): Don't declare. + (temp_mask): Don't declare. + * sysdep.c (sys_sigpause): Removed. + (new_action, old_action): Move as local variables into sys_signal. + (old_mask, temp_mask): Removed. + +1998-02-20 Kenichi Handa + + * editfns.c (Fmessage): Check byte size (instead of char size) of + VAL against MESSAGE_LENGTH. + + * fileio.c (Fwrite_region): When writing a string, give byte size + to a_write. + (a_write): Handle annotations correctly when writing a string. + + * ccl.c (Fccl_execute_on_string): Put \n\ at end-of-line of + doc-string. + +1998-02-19 Kenichi Handa + + * buffer.c (advance_to_char_boundary): Make the behaviour + consistent with INC_POS. + + * ccl.c (Fccl_execute_on_string): Add new arg UNIBYTE-P. + + * charset.h (INC_POS): Use macro BASE_LEADING_CODE_P. + (DEC_POS): Make the behaviour consistent with INC_POS. + (BUF_INC_POS, BUF_DEC_POS): Likewise. + + * charset.c (invalid_character): New function. + (chars_in_text): Make the behaviour consistent with INC_POS. + (multibyte_chars_in_text): Likewise. + (str_cmpchar_id): Likewise. + (non_ascii_char_to_string): Call invalid_character. + (Fchar_direction): Likewise. + + * coding.c (decode_coding_iso2022): Update coding->fake_multibyte. + (ENCODE_SINGLE_SHIFT_2, ENCODE_SINGLE_SHIFT_3, + encode_coding_iso2022, decode_coding_sjis_big5, + encode_coding_sjis_big5, decode_eol, encode_eol, decode_coding, + encode_coding): Likewise. + (shrink_decoding_region, shrink_encoding_region): Do not skip + non-ASCII code in any cases. Bug fix for getting starting address + from BEG. + (code_convert_region): Sync character positions correctly by + paying attention to coding->fake_multibyte. + (code_convert_string): Set number of character and bytes just + processed in members of CODING. + (code_convert_string): Adjusted for the change of + code_convert_region. + (code_convert_region1): Likewise. + + * coding.h (struct coding_system): New member fake_multibyte. + + * fileio.c (Finsert_file_contents): Read a file contents into the + correct buffer (byte) position. Adjusted for the change of + code_convert_region. + + * fns.c (Fset_char_table_default): For an invalid character, call + invalid_character. + + * indent.c (MULTIBYTE_BYTES_WIDTH): New macro. + (current_column_1): Don't follow a display table for a heading + byte of a multibyte character. Use the macro + MULTIBYTE_BYTES_WIDTH. + (Fmove_to_column): Likewise. + (compute_motion): Likewise. Handling of wide-column character + fixed. + + * insdel.c (adjust_before_replace): Comment added. + (adjust_after_replace): Comment added. Give correct args to + adjust_point. Don't call signal_after_change here. + + * intervals.c (temp_set_point_both): Declare arg BYTEPOS as int. + (set_point_both): Likewise. + + * search.c (search_buffer): Update POS_BYTE for regexp search. + + * xdisp.c (display_text_line): Handling of a wide-column character + fixed. Make the behaviour consistent with INC_POS. + +1998-02-18 Richard Stallman + + * editfns.c (Fchar_before): Check POS in valid range + before calling CHAR_TO_BYTE. + + * search.c (search_command): Check LIM in valid range + before calling CHAR_TO_BYTE. + +1998-02-15 Richard Stallman + + * minibuf.c (read_minibuf): Do use DEFALT in place of empty input + when when expflag is nonzero. + (Fread_no_blanks_input): Arg INIT renamed to INITIAL. + +1998-02-14 Richard Stallman + + * fileio.c (Fread_file_name): Alter the history + to contain just the actual file name, and not any + other preinserted text that is not really used. + + * search.c (simple_search): Call set_search_regs. + (boyer_moore): New arg CHARSET_BASE says which chars + to use the translate tables for. + (search_buffer): Properly test which chars participate in translation. + +1998-02-12 Gerd Moellmann + + * intervals.c (split_interval_right): Make sure to call + balance_possible_root_interval in case an interval doesn't have a + right child, because otherwise the interval tree might degenerate + into a list. + (split_interval_left): Ditto if an interval hasn't a left child. + +1998-02-12 Richard Stallman + + * search.c (TRANSLATE): New arg OUT. Handle non-integer in TRT. + All calls changed. + + * editfns.c (Fsubst_char_in_region): Don't increment pos twice. + + * charset.h (INC_BOTH, DEC_BOTH): In unibyte mode, + simply increment bytepos. + + * syntax.c (skip_chars): Use INC_POS instead of INC_BOTH. + (Fforward_comment): Always use both FROM and FROM_BYTE to set point. + Use dec_bytepos not DEC_POS. + (scan_lists): Handle unibyte buffers when decrementing temp_pos. + (INC_FROM): Use INC_BOTH. + (inc_bytepos, dec_bytepos): In unibyte mode, just increment bytepos. + + * xdisp.c (display_text_line): Use INC_BOTH for unibyte buffers too. + +1998-02-10 Richard Stallman + + * keymap.c (describe_map_tree): Add the maps we have already + handled into SUB_SHADOWS. + +1998-02-06 Kenichi Handa + + * fns.c (Fstring_bytes): Declare arg STRING as Lisp_Object. + + * editfns.c (Fposition_bytes): Declare arg POSITION as + Lisp_Object. Allow marker as arg POSITION. Use XINT for type + consistency. + +1998-02-09 Andreas Schwab + + * indent.c (compute_motion): If right margin is reached and we are + truncating don't clobber PREV_HPOS if we are already past TO. + +1998-02-09 Richard Stallman + + * fns.c (concat): Use Vnonascii_translate_table. + + * charset.c (Vnonascii_translate_table): New variable. + (unibyte_char_to_multibyte): Use Vnonascii_translate_table. + (syms_of_charset): Defvar it. + + * insdel.c (copy_text, count_size_as_multibyte): + Use Vnonascii_translate_table. + +1998-02-08 Richard Stallman + + * print.c (printchar): When outputting to echo area, + update message_enable_multibyte, and convert previous text + from unibyte to multibyte if necessary. + + * search.c (search_command): Fix call to search_buffer. + +1998-02-07 Richard Stallman + + * dired.c (Fdirectory_files): Call compile_pattern the new way. + + * search.c (boyer_moore, simple_search): New subroutines. + (search_buffer): For non-regexp, use one of those subroutines. + Args TRT and INVERSE_TRT are now Lisp_Object. Callers changed. + (compile_pattern_1): Arg TRANSLATE is now Lisp_Object. Calls changed. + (compile_pattern): Arg TRANSLATE is now Lisp_Object. Calls changed. + + * config.in (RE_TRANSLATE_TYPE): Define as Lisp_Object. + (RE_TRANSLATE): Use Faref to examine translate table. + +1998-02-06 Richard Stallman + + * marker.c (byte_char_debug_check): New function. + (CONSIDER, both definitions): Call it. + (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise. + (byte_debug_flag): New variable. + (syms_of_marker): Set up Lisp variable. + + * buffer.c (advance_to_char_boundary): New function. + (Fset_buffer_multibyte): Advance all byte-positions to char boundaries. + Clear undo list. + + * fontset.h (GENERIC_FONT_PTR): Commented-out definition deleted. + +1998-02-06 Kenichi Handa + + * window.h: Change argument number of Fdisplay_buffer to 3. + +1998-02-06 Richard Stallman + + * buffer.c (Fpop_to_buffer): Pass new arg to Fdisplay_buffer. + + * window.c (Fdisplay_buffer): New arg FRAME. + (temp_output_buffer_show): Pass new arg to Fdisplay_buffer. + (Fother_window_for_scrolling): Likewise. + + * editfns.c (Fposition_bytes): New function. + (syms_of_editfns): defsubr it. + + * fns.c (Fstring_bytes): New function. + (syms_of_fns): defsubr it. + +1998-02-05 Richard Stallman + + * minibuf.c (read_minibuf): If input is empty, return empty string. + (Fread_string): Return DEFAULT_VALUE here, if input is empty. + (Fcompleting_read): Likewise. + +1998-02-04 Richard Stallman + + * keymap.c (Fdescribe_bindings_internal): + Renamed from Fdescribe_bindings. New arg NOMENU. + (syms_of_keymap): Corresponding changes. + (describe_buffer_bindings): Get NOMENU out of the arg list. + Pass it along to describe_map_tree. + Improve text of `alternate_heading'. + + * alloc.c (list2, list3, list4, list5): New functions. + +1998-02-04 Kenichi Handa + + * charset.c (Fiso_charset): Doc-string modified. + + * editfns.c (Fsubst_char_in_region): Handle character-base + position and byte-base position correctly. + (Fstring_to_char): Give byte size to STRING_CHAR. + + * insdel.c (copy_text): When copying from multibyte to unibyte, do + not alter ASCII characters. + +1998-02-03 Richard Stallman + + * editfns.c (Fformat): If MULTIBYTE is changed to 1 + after we start computing TOTAL, jump back to `retry' (a new label). + +1998-02-01 Richard Stallman + + * lread.c (read1): Handle infinities, NaN and -0.0 specially. + (isfloat_string): Accept e+INF and e+NAN as exponents. + + * print.c (float_to_string): Handle infinities and NaN specially. + + * fns.c (concat): Handle bool-vectors correctly. + + * fns.c (concat): If making a string, a nonempty bool-vector is error. + +1998-01-30 Richard Stallman + + * data.c (Faref, Faset): Allow indexing a char-table + directly by numbers up to CHAR_TABLE_ORDINARY_SLOTS. + + * fns.c (Fset_char_table_range, Fchar_table_range): + Allow a charset name symbol to designate a range. + + * callproc.c (Fcall_process): Allow creating a new buffer + for the output. + +1998-01-30 Kenichi Handa Kenichi Handa + + * coding.c (ENCODE_ISO_CHARACTER): Pay attention to + CODING_FLAG_ISO_USE_ROMAN and CODING_FLAG_ISO_USE_OLDJIS. + (code_convert_region1): New function. + (Fdecode_coding_region): Call code_convert_region1. + (Fencode_coding_region): Likewise. + (code_convert_string1): New function. + (Fdecode_coding_string): Call code_convert_string1. + (Fencode_coding_string): Likewise. + + * doc.c (Fsubstitute_command_keys): Declare length_byte out of + internal block. + + * editfns.c (CONVERTED_BYTE_SIZE): Fix the logic. + (Fformat): Update the variable MULTIBYTE according to the result + of Fprin1_to_string. Free BUF after making Lisp string from it. + +1998-01-28 Richard Stallman + + * search.c (search_buffer): New args pos_byte and lim_byte. + (search_command): Pass new args. + +1998-01-28 Kenichi Handa + + * coding.c (DECODE_SJIS_BIG5_CHARACTER): Don't have to increase + coding->produced_char here. + (code_convert_region): Initialize LEN_BYTE correctly. + + * search.c (fast_string_match): Give re_search byte size of + STRING. + (trivial_regexp_p): Initialize LEN to byte size of REGEXP. + (search_buffer): Give re_search_2 STARTPOS, RANGE and STOP by + counting them by bytes. + + * data.c (syms_of_data): Register multibyte-string-p as a Lisp + function. + +1998-01-28 Richard Stallman + + * category.c (Fmodify_category_entry): Doc fix. + (Fdescribe_categories): Renamed from Fdescribe_category. + (syms_of_category): Corresponding changes. + (Fcategory_set_mnemonics): Doc fix. + (Fchar_category_set): Doc fix. + (Fmake_category_set): Doc fix. + +1998-01-26 Richard Stallman + + * xdisp.c (message_dolog): Cast M to unsigned char * to access bytes. + + * keyboard.c (command_loop_1): Run post-command-hook before, + not after, clearing this-command-keys and updating last-command. + + * fns.c (string_make_multibyte): In all-ASCII case, return orig STRING. + + * fns.c (Fstring_as_unibyte): New function. + (Fstring_as_multibyte): New function. + (syms_of_fns): defsubr them. + +1998-01-25 Richard Stallman + + * window.c (compare_window_configurations): New function. + + * fns.c (internal_equal): Use compare_window_configurations. + + * fileio.c (file_name_as_directory): For an empty name, return "/". + +1998-01-24 Richard Stallman + + * callproc.c (Fcall_process): Test only args past args[4] + for multibyteness. + +1998-01-23 Ken'ichi Handa + + * charset.h: Delete garbage line "int use_dialog_box". + +1998-01-23 Richard Stallman + + * lread.c (Funintern): Clear the symbol's obarray field. + +1998-01-21 Richard Stallman + + * s/sol2-5.h (SYSTEM_MALLOC): Defined. + +1998-01-21 Ken'ichi Handa + + * fileio.c (Finsert_file_contents): Fix previous change. + +1998-01-21 Richard Stallman + + * syntax.c (back_comment): Move the find_defun_start call + out of the scan_sexps_forward call. + No need to call find_defun_start + if we found the defun start in the initial scan. + +1998-01-21 Kenichi Handa + + * callproc.c (Fcall_process): Use raw-text instead of emacs-mule + when enable-multibyte-characters is nil. Adjusted for the change + of encode_coding and decode_coding. + + * ccl.h: Definition of macros CCL_STAT_XXX are moved from ccl.c to + here. + + * charset.c (min_composite_char): New variable. + (syms_of_charset): Declare a Lisp variable min-composite-char. + + * charset.h (BCOPY_SHORT): New macro. + + * coding.h (CODING_FINISH_XXX): New macros. + (CODING_MODE_XXX): New macros. + (struct coding_system): New member mode, category_idx, + heading_ascii. Deleted members last_block, direction, selective, + carryover, carryover_size. + (CODING_MAY_REQUIRE_DECODING): New macro. + (CODING_CATEGORY_MASK_ISO_7BIT, CODING_CATEGORY_MASK_ISO_8BIT, + CODING_CATEGORY_MASK_ISO_SHIFT, CODING_CATEGORY_MASK_ISO): New + macros. + (Qraw_text): Extern it. + + * coding.c (DECODE_CHARACTER_ASCII): Update coding->produced_char; + (DECODE_CHARACTER_DIMENSION1): Likewise. + (Qraw_text, Qcoding_category): New variables. + (syms_of_coding): Intern and staticpro them. + (coding_system_table): New variable. + (CHARSET_OK, SHIFT_OUT_OK): New macros. + (detect_coding_iso2022): Detection algorithm improved. + (decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of + return value changed. Update members produced, produced_char, + consumed, consumed_char of the struct *coding. Pay attention to + CODING_MODE_INHIBIT_INCONSISTENT_EOL. + (encode_coding_iso2022): Likewise. + (decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise. + (decode_eol, encode_eol): Likewise. + (ENCODE_ISO_CHARACTER): Update coding->consumed_char. + (DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char. + (ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char. + (detect_coding_mask): New args PRIORITIES and SKIP. + (detect_coding): Adjusted for the change of detect_coding_mask. + Update coding->heading_ascii. + (detect_eol_type): New arg SKIP. + (detect_eol): Adjusted for the change of detect_eol_type. + (ccl_codign_driver): New function. + (decode_coding): Arg CONSUMED deleted, and the meaning of return + value changed. Update members produced, produced_char, consumed, + consumed_char of the struct *coding. + (encode_coding): Likewise. + (shrink_decoding_region, shrink_encoding_region): New function. + (code_convert_region, code_convert_string): Completely rewritten. + (detect_coding_system): New arg HIGHEST. + (Fdetect_coding_region): New arg HIGHEST. + (Fdetect_coding_string): New function. + (Fdecode_coding_region, Fencode_coding_region): Adjusted for the + change of code_convert_region. + (Fdecode_coding_string, Fencode_coding_string): Adjusted for the + change of code_convert_string. + (Fupdate_iso_coding_systems): New function. + (init_coding_once): Initialize coding_system_table. + + * data.c (Faset): Allow setting a multibyte character in a + multibyte string as far as it doesn't change the size_byte of the + string. + + * fileio.c (Finsert_file_contents): Adjusted for the change of + struct coding_system and function decode_coding. For normail file + reading, use code_convert_region. + (Fwrite_region): Adjusted for the change of struct coding_system. + (e_write): Adjusted for the change of encode_coding. + + * fns.c (mapcar1): Keep `i' in `i_before' before `i' is + incremented by FETCH_STRING_CHAR_ADVANCE. + + * insdel.c (adjust_before_replace, adjust_after_replace): New + functions. + + * lisp.h (detect_coding_system): Extern it. + + * process.c (Fstart_process): Use raw-text instead of emacs-mule + if enable-multibyte-characters is nil. Initialize members + decoding_carryover and encoding_carryover of PROC. + (create_process): Adjusted for the change of encode_coding. + (Fopen_network_stream): Initialize members decoding_carryover and + encoding_carryover of PROC. + (read_process_output): Adjusted for the change of decode_coding. + (send_process): Adjusted for the change of encode_coding. + + * process.h (struct Lisp_Process): New members decoding_carryover + and encoding_carryover. + + * term.c (encode_terminal_code): Adjusted for the change of + encode_coding. + (write_glyphs): Likewise. Adjusted for the change of struct + coding_system. + (insert_glyphs): Likewise. + + * xselect.c (selection_data_to_lisp_data): Adjusted for the change + of decode_coding. + (lisp_data_to_selection_data): Adjusted for the change of + encode_coding. + (syms_of_xselect): Initialize clipboard-coding-system to + compound-text. + +1998-01-21 Kenichi Handa + + * fileio.c (Finsert_file_contents): Even if + enable-multibyte-characters is nil, we must check `coding:' tag + and `file-coding-system-alist' to handle eol-conversion. + + * coding.c (Vselect_safe_coding_system_function): New variable. + (coding_category_table): This variable deleted. + (Vcoding_category_table): New variable. + (coding_category_name): Add "coding-category-iso-7-tight". + (detect_coding_iso2022): Check the mask + CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Check a new coding + category coding-category-iso-7-tight. + (DECODE_DESIGNATION): Decode only such designations that CODING + can handle. + (check_composing_code): New function. + (decode_coding_iso2022): Decode only such characters that CODING + can handle. + (encode_coding_iso2022): Before and after encoding composite + characters, reset designation and invocation status. + (detect_coding_sjis): Delete unnecessary check. + (detect_coding_big5): Likewise. + (encode_designation_at_bol): Check the validity of requested + designation register. + (setup_coding_system): Set requested designation registers for + non-supported charsets to + CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. Set mask + CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS. Code tuned for + no-conversion and undecided. + (detect_coding): Adjusted for the new variable + Vcoding_category_table. + (syms_of_coding): Initialize Vcoding_category_table and staticpro + it. Register select-safe-coding-system as a Lisp variable. + + * coding.h (CODING_FLAG_ISO_DESIGNATION): New macro. + (struct iso2022_spec): New member. + last_invalid_designation_register. + (struct coding_system): New member inhibit_inconsistent_eol_type. + (CODING_CATEGORY_IDX_ISO_7_TIGHT, + CODING_CATEGORY_MASK_ISO_7_TIGHT): New macros. + (CODING_CATEGORY_MASK_ANY): Include + CODING_CATEGORY_MASK_ISO_7_TIGHT. + (coding_category_table, coding_category_name): Extern deleted. + (Vselect_safe_coding_system_function): Extern it. + + * charset.h (MAX_CHAR_COMPOSITION): New macro. + (CHAR_CHARSET): Check more strictly. + (CODING_FLAG_ISO_DESIGNATION): New macro. + +1998-01-21 Kenichi Handa + + * ccl.h: (struct ccl_program): New member private_state. + + * ccl.c (Vccl_translation_table_vector, Qccl_program, + Qccl_translation_table, Qccl_translation_table_id): New variables. + append new symbols. Qccl_translation_table and + Qccl_translation_table_id. + (CCL_Call): Fix the comment. + (CCL_ReadMultibyteCharacter, CCL_WriteMultibyteCharacter, + CCL_UnifyCharacter, CCL_UnifyCharacterConstTbl, + CCL_IterateMultipleMap, CCL_TranslateMultipleMap): New macros for + CCL Commands. + (EXCMD): New macro. + (ccl_driver): New case lable `CCL_Extention'. + (setup_ccl_program): Initialize the member `private_state' of CCL. + (Fregister_ccl_program): Delete unused variable IDX. + (Fregister_ccl_translation_table): New function. + (syms_of_ccl): Intern and staticpro Qccl_program, + Qccl_translation_table, and Qccl_translation_table_id. Declare + `ccl-translation-table-vector' as a Lisp variable. Declare + register-ccl-translation-table as a Lisp function. + + * charset.h (Vcharacter_unification_table_vector): Extern it. + (UNIFICATION_ID_TABLE): New macro. + + * charset.c (Vcharacter_unification_table_vector): New variable. + (syms_of_charset): Declare it as a Lisp symbol. + (unify_char): Delete unnecessary codes. + +1998-01-21 Richard Stallman + + * indent.c (current_column_1): + Eliminate argument POS; use PT and PT_BYTE. + When doing FETCH_BYTE, use scan_byte. + (current_column): Check whether buffer really has multibyte chars, + not whether they are enabled. + + * editfns.c (Fsave_current_buffer): Use set_buffer_if_live. + + * bytecode.c (Fbyte_code) : + Use set_buffer_if_live. + + * buffer.c (set_buffer_if_live): New function. + +1998-01-20 Richard Stallman + + * charset.c (nonascii_insert_offset): Variable moved from cmds.c. + (syms_of_charset): Initialize variable. + + * cmds.c (internal_self_insert, Fself_insert_command): + Use unibyte_char_to_multibyte. + (nonascii_insert_offset): Variable moved to charset.c. + (syms_of_cmds): Don't initialize nonascii_insert_offset. + + * fileio.c (Fsubstitute_in_file_name): Use unibyte_char_to_multibyte. + + * keyboard.c (command_loop_1): Use unibyte_char_to_multibyte. + + * xdisp.c (message_dolog): Use unibyte_char_to_multibyte. + Pass different args to scan_newline. + Properly compare oldpoint with Z. + + * syntax.c (skip_chars): Use unibyte_char_to_multibyte, + + * fns.c (concat): Use unibyte_char_to_multibyte. + + * charset.c (unibyte_char_to_multibyte): New function. + (DEFAULT_NONASCII_INSERT_OFFSET): New macro definition. + + * lread.c (unreadchar): For unreading an ASCII char + thru a buffer or marker, really decrement point or the marker position. + + * xdisp.c (display_menu_bar): Don't set maxendcol too large. + + * editfns.c (Fchar_equal): Fix case-conversion code. + +1998-01-19 Richard Stallman + + * window.h (WINDOW_RIGHT_MARGIN): Deduct width of vertical line + if frame has no scroll bars. + + * fns.c (concat): Fix lossage in installing previous patch. + + * window.c (window_scroll): Set opoint_byte properly. + +1998-01-16 Richard Stallman + + * intervals.c (set_intervals_multibyte): New function. + (set_intervals_multibyte_1): New function. + + * marker.c (clear_charpos_cache): New function. + +1998-01-16 Richard Stallman + + * buffer.c (Fset_buffer_multibyte): New function. + (syms_of_buffer): defsubr it. + + * syntax.c (skip_chars): Fix test for end of string, looking for `-'. + (back_comment): Don't allow quoting a comment-end. + (scan_lists): Likewise. + + * .gdbinit: Make GDB not handle SIGINT. + + * search.c (compile_pattern_1): If representation of STRING + does not fit MULTIBYTE, convert its contents. + (fast_c_string_match_ignore_case): Pass 0 to compile_pattern + as MULTIBYTE. + (search_buffer): If representation of STRING + does not fit MULTIBYTE, convert its contents. + + * print.c (print) : When multibyte is enabled, print + single-byte non-ASCII chars using octal escapes. + + * lread.c (read1): Escape codes can force multibyte or single-byte. + Otherwise buffer_defaults->enable_multibyte_characters decides. + Only set force_singlebyte when a \-sequence is in the relevant range. + (read_escape): New arg STRINGP. `\ ' is ignored only when STRINGP + (normally, when reading a string). Calls changed. + + * fns.c (concat): Move the test for all nil in `append' + back to the right place. + Always compute result_len_byte as for a multibyte string. Then, + if the result will be single-byte, don't use that computation. + When converting single-byte to multibyte, don't use copy_text. + Do use copy_text between single-byte string and multibyte string. + + (Fstring_make_multibyte, Fstring_make_unibyte): New functions. + (syms_of_fns): defsubr them. + + (string_char_to_byte): Count from the beginning or the end, + whichever is closer. Keep a cache of recent values. + (string_byte_to_char): Likewise. + + (Fstring_lessp): Compare the strings char by char. + + * xdisp.c (display_text_line): Set pos_byte with pos + when skipping invisible. + + * alloc.c (STRING_BASE_SIZE): New macro. + (STRING_FULLSIZE): Use STRING_BASE_SIZE instead of the whole + size of struct Lisp_String. + (make_pure_string): Use STRING_FULLSIZE. + +1998-01-16 Richard Stallman + + * window.c (Fspecial_display_p): Return the right value + when special-display-regexps specifies frame parameters. + + * syntax.h (SYNTAX_TABLE_BYTE_TO_CHAR): New macro. + +1998-01-12 Richard Stallman + + * keymap.c (Fkey_description): Remember to set i_before. + and use it in all cases. + +1998-01-12 Kenichi Handa + + * minibuf.c (Fminibuffer_complete_word): Fix a bug of refering + `i'. We must refer `i_byte' instead. + + * insdel.c (insert_from_string_1): Decrement GAP_SIZE by + outgoing_nbytes. + + * keymap.c (push_key_description): If C >= 128, always use octal + representation. + + * fns.c (concat): Check STRINGP before increasing result_len_byte. + +1998-01-12 Richard Stallman + + * fileio.c (Finsert_file_contents): When not decoding, + properly calculate number of chars in the text. + Fix error message. + + * coding.c (code_convert_region): Always count chars inserted + in accord with value of enable-multibyte-characters. + (Fcoding_system_p): Doc fix. + (Fcheck_coding_system): Doc fix. + (Fterminal_coding_system): Doc fix. + (Fkeyboard_coding_system): Doc fix. + +1998-01-11 Dave Love + + * charset.c (Fchar_valid_p): Fix bare newlines in doc string. + +1998-01-11 Richard Stallman + + * fileio.c (file_name_as_directory): Error if arg is empty. + (Fwrite_region): Don't flush the encoding buffer if failure is set. + +1998-01-10 Richard Stallman + + * syntax.h (struct gl_state_s): New field `object'. + (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set it. + Handle non-current buffer properly. Args renamed to all caps. + (SETUP_SYNTAX_TABLE): Set `object'. Args renamed to all caps. + (UPDATE_SYNTAX_TABLE): Use gl_state.object. + (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise. + + * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Add gl_state.offset + when using the arg FROM. Use BYTE_TO_CHAR. + +1998-01-09 Richard Stallman + + * callint.c (Fcall_interactively): Allocate string by bytes. + Use message_with_string. + + * dired.c (Fdirectory_files): Fix arg to compile_pattern. + +1998-01-06 Richard Stallman + + * emacs.c (standard_args): Add "-unibyte" aka "--unibyte". + (main): Handle --unibyte. + +1998-01-05 Richard Stallman + + * search.c (search_buffer): Handle bytes vs chars in non-RE case. + Have two locals len and len_byte. + + * minibuf.c (read_minibuf): Handle bytes vs chars + when checking for junk at end of expression. + +1998-01-04 Richard Stallman + + * editfns.c (Fformat): Do all the work directly--don't use doprnt. + Calculate the right size the first time, so no need to retry. + Count chars and bytes in the result. + Convert single-byte strings to multibyte as needed. + + * buffer.c (record_overlay_string): Totalize sizes assuming + strings are converted to match buffer in multibyteness. + (overlay_strings): Convert strings to match buffer in multibyteness. + + * search.c (fast_c_string_match_ignore_case): Use string_make_unibyte. + + * fns.c (string_make_unibyte): New function. + + * insdel.c (count_size_as_multibyte): New function. + (insert_from_string_1, insert_from_buffer_1): Use it. + + * lread.c (read_escape): `\ ' stands for nothing at all. + + * .gdbinit (xstring): Use size_byte. + + * lread.c (oblookup): Take args SIZE and SIZE_BYTE. Callers changed. + * abbrev.c (Fexpand_abbrev): Pass both kinds of size to oblookup. + * minibuf.c (test_completion): Pass both kinds of size to oblookup. + + * print.c (print_string): Now static. + (print): When multibyte is disabled, + print multibyte string chars using hex escapes. + + * puresize.h (BASE_PURESIZE): Increased. + + * bytecode.c (Fbyte_code): Use size_byte. + + * filelock.c (MAKE_LOCK_NAME): Use size_byte. + + * lread.c (init_obarray, read1, make_symbol): + Pass new arg to make_pure_string. + (Fintern, oblookup, Fintern_soft, intern): Handle size_byte. + + * alloc.c (make_pure_string): New arg length_byte. + Take account of size used by size_byte; store both sizes. + (Fpurecopy): Call make_pure_string the new way. + (compact_strings): Use size_byte field to compute string's size. + +1998-01-03 Richard Stallman + + * coding.c (code_convert_region): Delete duplicate local `zv_before'. + + * fileio.c (Fdo_auto_save): Save and restore multibyteness of minibuffer. + + * process.c (read_process_output): use insert_1_both. + + * abbrev.c (Fexpand_abbrev): Pass new args to insert_from_string. + (Funexpand_abbrev): Likewise. Use size_byte. + + * editfns.c (Ftranslate_region): Scan by chars and bytes + using STRING_CHAR_AND_LENGTH. Replace only single-byte chars. + + * insdel.c (copy_text): New function. + (insert_from_buffer_1): Call copy_text to convert between + single-byte and multibyte text. + (insert_from_string_1): Likewise. + + * process.c (read_process_output): New var `multibyte'. + Set it according to which coding system was used. + + * charset.c (multibyte_chars_in_text): New function. + + * fileio.c (Fwrite_region): Use message_with_string. + (auto_save_error, Fdo_auto_save): Likewise. + + * print.c (printchar): Pass new arg to message_dolog. + (strout): New arg MULTIBYTE. Callers changed. + + * lread.c (dir_warning): Pass new arg to message_dolog. + + * emacs.c (main): Pass new arg to message_dolog. + + * keyboard.c (echo_now): Use message2_nolog, not message1_nolog. + (Fexecute_extended_command): Likewise. + (read_char_minibuf_menu_prompt): Use message2_nolog, not message1. + + * xdisp.c (message_dolog, message2): New arg MULTIBYTE. + Callers changed. + (message1, message1_nolog): String must be ASCII-only. + (message2, message2_nolog): Now static. + + * search.c (compile_pattern): New arg MULTIBYTE. Callers changed. + + * syntax.c (skip_chars): Handle multibyte and unibyte strings + for either kind of buffer. Scan string by bytes and chars. + + * keymap.c (describe_vector): Unconditionally handle multibyte chars. + + * fns.c (map_char_table): Unconditionally consider non-ASCII charsets. + + * cmds.c (internal_self_insert): Simplify handling of c2; + avoid testing enable-multibyte-characters. + + * callproc.c (Fcall_process): When deciding whether to encode args, + check them for multibyteness, don't check enable-multibyte-characters. + + * doc.c: Include charset.h. + + * keymap.c (describe_vector): Pass new args to insert_from_string. + + * search.c (wordify): Use make_uninit_multibyte_string. + Scan by chars and bytes. + + * lread.c (read1): PCH is now int *. + Declare ch as int. + (read0): Declare c as int. + (read_list): Declare ch as int. + (read0): Use Fmake_string not make_string. + (read1): When reading a string, maybe use make_unibyte_string. + + * keymap.c (Ftext_char_description): Use make_multibyte_string. + + * keyboard.c (parse_modifiers): Use size_byte. + (echo_char): Use size_byte. + (parse_modifiers_uncached): Likewise. + (record_char): Likewise. + (parse_solitary_modifier): Likewise. + + * fns.c (Fsubstring): Use make_multibyte_string. + + * minibuf.c (Fminibuffer_complete_word): Pass new args to + insert_from_string. Scan string by bytes and chars. + (Ftry_completion): Use size_byte while comparing. + (Fall_completions): Use size_byte while comparing. + (test_completion): + + * editfns.c (syms_of_editfns): Delete defsubr for sref. + + * fns.c (string_make_multibyte): New function. + + * fileio.c (Ffile_name_directory): Maybe use make_unibyte_string. + (Ffile_name_nondirectory): Likewise. + (Fsubstitute_in_file_name): Convert substituted envvars to multibyte + if necessary. Otherwise use make_unibyte_string. + (Finsert_file_contents): Use make_unibyte_string. + (double_dollars): Use make_uninit_multibyte_string. + + * doc.c (Fsubstitute_command_keys): Scan by bytes. + + * coding.c (code_convert_string): Maybe use make_unibyte_string. + + * cmds.c (internal_self_insert): Use make_multibyte_string. + + * charset.c (Fstring): Use make_multibyte_string. + (Fcompose_string): Likewise. + + * casefiddle.c (casify_object): Scan string by bytes and chars. + Use make_multibyte_string. + + * xselect.c (lisp_data_to_selection_data): Use size_byte. + (Fx_store_cut_buffer_internal): Use size_byte. + (selection_data_to_lisp_data): Use make_multibyte_string. + + * category.c (Fmake_category_set): Don't allow multibyte string. + (describe_category): Pass new args to insert_from_string. + (describe_category_1): Likewise. + + * dispnew.c (Fsend_string_to_terminal): Use size_byte. + + * xdisp.c (x_consider_frame_title): Use size_byte. + (display_text_line): Likewise. + And scan Voverlay_arrow_string by bytes and chars. + (display_menu_bar): Call display_string with a byte size. + (display_mode_line): Call display_string with a byte size. + + * frame.c (set_term_frame_name): Use size_byte. + + * ccl.c (Fccl_execute_on_string): Use size_byte. + + * xterm.c (x_load_font): Use string_byte. + + * keyboard.c (read_char): Use Faref on Vkeyboard_translate_table + if it is a string. + (apply_modifiers_uncached): New arg base_len_byte. Calls changed. + (read_char_minibuf_menu_prompt): + (read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE. + (Fexecute_extended_command): Use Faref to access FUNCTION. + Use size_byte of BINDING. + (stuff_buffered_input): Use size_byte of STUFFSTRING. + + * xdisp.c (redisplay_window): Set pos.bytepos along with pos.bufpos. + + * keymap.c (Fkey_binding): Scan PREFIX a char at a time. + (Fkey_description): Scan KEYS by chars. + + * xfns.c (x_create_bitmap_from_file): Use size_byte on strings. + (x_set_name, x_set_title, validate_x_resource_name): Likewise. + (Fx_get_resource, display_x_get_resource): Likewise. + (x_get_resource_string): Likewise. + + * xmenu.c (xmenu_show): Use size_byte of strings. + + * callproc.c (Fcall_process): Use size_byte for the args. + (Fcall_process_region): Likewise for temp file. + (child_setup, getenv_internal, Fgetenv): Likewise. + +1998-01-02 Richard Stallman + + * process.c (read_process_output): Handle bytes vs chars. + (send_process): Use size_byte of OBJECT. + (Fprocess_send_string): Pass size_byte to send_process. + + * lisp.h (STRING_MULTIBYTE): New macro. + + * print.c (strout): Take args SIZE and SIZE_BYTE; + operate on both chars and bytes. + (print_string): Pass new arg to strout. + If not using strout, fetch a whole multibyte char at once. + (write_string): Pass new arg to strout. + (write_string_1): Likewise. + (print) : Scan by chars and bytes. + (print) : Scan name by chars and bytes. + + * insdel.c (insert_1_both): New function. + + * print.c (PRINTPREPARE): Use make_multibyte_string. + Initialize print_buffer_pos_byte. Use insert_1_both. + (printchar): Update print_buffer_pos_byte and print_buffer_pos. + (print_buffer_pos_byte): New variable. + + * editfns.c (general_insert_function): + Pass the additional args to INSERT_FROM_STRING_FUNC. + (Fchar_to_string): Use make_multibyte_string. + (Fsref): Function deleted. + (Fformat_time_string): Use size_byte of FORMAT_STRING. + (make_buffer_string): Use make_uninit_multibyte_string. + (Ftranslate_region): Use TABLE's size_byte. + (Fmessage, Fmessage_box): Update message_text based on size_byte. + + * insdel.c (insert_from_string): New args POS_BYTE, LENGTH. + (insert_from_string_before_markers): + (insert_from_string_1): New arg POS_BYTE. Swap args NCHARS, NBYTES. + Don't fail to use POS_BYTE! + (insert_from_buffer_1): Get both inschars and insbytes from NEW. + + * alloc.c (make_uninit_multibyte_string): New function. + (make_uninit_string): Use make_uninit_multibyte_string. + (make_multibyte_string): New function. + (make_unibyte_string): New function. + (make_string): Compute number of chars from the data. + + * search.c (string_match_1): Convert string indices to/from bytes. + (Freplace_match): Convert string indices to/from bytes. + (Fregexp_quote): Convert string indices to/from bytes. + + * lread.c (Fread_from_string): Convert string indices to/from bytes. + + * data.c (Fmultibyte_string_p): New function. + (Faref): Index string by chars. + (Faset): Index multibyte string by chars. + + * charset.c (Ffind_charset_string): Handle bytes vs chars in string. + Special case for single-byte strings. + (Fchars_in_string): Function deleted. + (Fstring): Renamed from Fconcat_chars. + Handle bytes vs chars in string. + (syms_of_charset): Corresponding changes. + + * fns.c (concat, Fsubstring, internal_equal, mapcar1): + Distinguish bytes and chars when indexing strings. + (Fstring_equal, Fstring_lessp): Likewise. + (substring_both): New function. + (string_char_to_byte, string_byte_to_char): New functions. + + * charset.h (FETCH_STRING_CHAR_ADVANCE): New macro. + + * lisp.h (struct lisp_String): New field size_byte. + + * charset.c (Fchar_boundary_p): Function deleted. + (syms_of_charset): defsubr deleted. + + * insdel.c (make_gap): Set GPT_BYTE along with GPT. + + * window.c (Fselect_window): Don't set OW->pointm if OW->buffer is nil. + (Fset_window_configuration): Set old selected window's pointm. + + * minibuf.c (Fcompleting_read): Doc fix. + + * keymap.c (current_minor_maps): + If a variable has an entry in Vminor_mode_overriding_map_alist, + and also an entry in Vminor_mode_map_alist, ignore the latter. + +1998-01-01 Richard Stallman + + * Markers now have an ordinary bytepos, not including the gap: + + * marker.c (buf_bytepos_to_charpos): Use marker bytepos, not bufpos. + (buf_charpos_to_bytepos, marker_byte_position): Likewise. + (Fset_marker, set_marker_restricted, set_marker_both): Likewise. + (set_marker_restricted_both): Likewise. + + * editfns.c (transpose_markers): Update marker's bytepos. + + * alloc.c (Fmake_marker): Initialize marker's bytepos and charpos. + + * lread.c (readchar): Use marker's bytepos instead of bufpos. + + * fns.c (internal_equal): For markers, use bytepos instead of bufpos. + + * insdel.c (adjust_markers_gap_motion): Now a no-op. + (adjust_markers_for_delete): Update ->bytepos instead of ->bufpos, + but don't adjust for the gap. + (adjust_markers_for_insert): Likewise. + + * lisp.h (struct Lisp_Marker): Rename `bufpos' to `bytepos'. + Its value no longer includes the gap space. + + * editfns.c (Fchar_after): Fix previous change. + + * fileio.c (a_write): Fix prototype. + + * lisp.h (struct Lisp_Marker): New field `charpos'. + (pos_tab_offset): Decl deleted. + (insert_1, indented_beyond_p): Decls changed. + (move_gap_both, del_range_byte, del_range_both, del_range_2) + (scan_newline, Ffile_locked_p): New decls. + (struct Lisp_Marker): + + * search.c (scan_newline): Always restore prev value of immediate_quit. + +1997-12-31 Richard Stallman + + * syntax.c (scan_sexps_forward): Additional arg FROM_BYTE. + Calls changed. + (find_defun_start): Scan bytes and chars. Additional arg POS_BYTE. + Save final byte pos in find_start_value_byte. + (find_start_value_byte): New variable. + + * charset.c (Fchars_in_string): Update call to CHAR_HEAD_P. + (chars_in_text, str_cmpchar_id, Fcompose_string): Likewise. + + * indent.c (current_column_1, Fmove_to_column): + Update call to CHAR_HEAD_P. + + * fileio.c (Finsert_file_contents): Update call to CHAR_HEAD_P. + + * editfns.c (Fsref): Update call to CHAR_HEAD_P. + (Fcompare_buffer_substrings. Ftranslate_region): Likewise. + + * doprnt.c (doprnt1): Call to CHAR_HEAD_P fixed. + + * charset.h (CHAR_HEAD_P): Take char, not pointer, as arg. + + * window.c (unshow_buffer): Set PT with TEMP_SET_PT_BOTH. + + * indent.c (indented_beyond_p): Take POS in bytes and chars. + Callers changed. + (pos_tab_indent): Function moved to xdisp.c. + +1997-12-30 Richard Stallman + + * xdisp.c (redisplay_internal): Use scan_newline. + (display_text_line, try_window_id): Use scan_newline. + + * xdisp.c (pos_tab_indent): Moved from indent,c. Now static. + Take POS in bytes and chars. Callers changed. + + * indent.c (Fcurrent_indentation): Use scan_newline and SET_PT_BOTH. + (indented_beyond_p, current_column_1): Likewise. + + * fileio.c (Fwrite_region): Use scan_newline. + + * buffer.c (Fmake_indirect_buffer): Use set_marker_both. + (set_buffer_internal_1): Likewise. + (set_buffer_temp): Likewise. + + * xdisp.c (redisplay_window): Handle byte and char positions. + (try_window): Don't move W->start if it's already at right place. + + * window.c (Fset_window_buffer): Use set_marker_both. + (Fselect_window, Fscroll_other_window, save_window_save): Likewise. + (Fset_window_configuration): Pass p->mark itself to Fset_marker + and set_marker_restricted_both. + (temp_output_buffer_show): Use set_marker_restricted_both. + (window_scroll): Save and restore both kinds of pointers. + + * process.c (status_notify): Use byte and char pointers. + + * callint.c (Fcall_interactively) <'d', 'r'>: Use set_marker_both. + + * emacs.c (abort): New function. + +1997-12-29 Richard Stallman + + * window.c (Fdelete_other_windows): Rely on vmotion to give bytepos. + Use set_marker_both. Use byte positions. + (Frecenter): Likewise. + (Fmove_to_window_line): Use set_marker_both and Fgoto_char. + + * s/sco4.h (LIB_MOTIF): Define, if HAVE_LIBINTL. + (LIBX11_SYSTEM): Undo previous change. + + * cmds.c (forward_point): Function deleted. + (Fforward_point): Just add. + (Fforward_char): Don't call forward_point, just add. + (Fforward_line): Use scan_newline. + (Fdelete_char): No need for forward_point, just add. + (Fdelete_backward_char): Handle bytes and chars. + (internal_self_insert): Handle bytes and chars. + + * xdisp.c (display_count_lines): Several changes in args. + Do the work directly. + (display_scan_buffer): Function deleted. + (decode_mode_spec): Pass new arg. + (message_log_check_duplicate): Take charpos and bytepos args. + (message_dolog): Use markers to update old PT, BEGV, ZV. + Use scan_newline. Handle positions in bytes and chars. + +1997-12-28 Richard Stallman + + * xselect.c (Fx_rotate_cut_buffers_internal): Doc fix. + + * coding.c (code_convert_region): Handle bytepos and charpos. + (Fdetect_coding_region): Likewise. + + * Makefile.in (marker.o): Depend on charset.h. + +1997-12-27 Richard Stallman + + * casefiddle.c (casify_region): Scan in bytes and chars. + (casify_object, casify_region): Declare str, workbuf as unsigned char. + + * insdel.c (move_gap): Use move_gap_both. + (move_gap_both): New function. + (gap_left, gap_right): Take both charpos and bytepos args. + (adjust_markers_gap_motion): Renamed from adjust_markers + and simplified. + (adjust_markers_for_delete): New function. + (adjust_markers_for_insert): Take args in chars and bytes. + Also new arg BEFORE_MARKERS. One call does all marker updating + needed for any insert. + (adjust_point): Take 2 args and update PT and PT_BYTE. + (make_gap): Handle bytes vs chars. + (insert, insert_and_inherit): Handle bytes vs chars. + Pass new BEFORE_MARKERS arg to insert_1. + (insert_before_markers, insert_before_markers_and_inherit): Likewise. + (insert_from_string, insert_from_string_before_markers): Likewise. + (insert_from_buffer): Likewise. + (insert_1): Handle bytes vs chars. New arg BEFORE_MARKERS. + (insert_from_string_1, insert_from_buffer_1): Likewise. + (replace_range): Likewise. + (del_range_2): New subroutine, taken from del_range_1. + (del_range_1): Use del_range_2. + (del_range_byte, del_range_both): New functions. + + * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos. + Wrap in if (1) ... else. + + * minibuf.c (Fminibuffer_complete_word): Handle bytes vs characters + when comparing buffer against string. + (temp_echo_area_glyphs): Save, update, delete text using + byte and char positions. + (read_minibuf): BACKUP_N counts bytes. + + * syntax.c (Fforward_comment): Scan by bytes and chars. + (Fbackward_prefix_chars): Scan by bytes and chars. + (scan_words, scan_sexps_forward): Scan bytes as well as chars. + (skip_chars, scan_lists): Scan by bytes and chars. Now static. + + * buffer.h (DECODE_POSITION): New macro. + (CHAR_TO_BYTE, BYTE_TO_CHAR): New macros. + + * buffer.h (BEG_BYTE, BEGV_BYTE, PT_BYTE, GPT_BYTE) + (ZV_BYTE, Z_BYTE): New macros. + (BUF_BEG_BYTE, BUF_BEGV_BYTE, BUF_PT_BYTE, BUF_GPT_BYTE) + (BUF_ZV_BYTE, BUF_Z_BYTE): New macros. + (BUF_GAP_END_ADDR): New macro. + (BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): + Use the new ..._byte buffer data. + (BUFFER_CEILING_OF, BUFFER_FLOOR_OF): Likewise. + (BUF_GPT_ADDR, BUF_Z_ADDR): Likewise. + (SET_PT_BOTH, TEMP_SET_PT_BOTH): New macros. + (SET_PT, TEMP_SET_PT, BUF_SET_PT, BUF_TEMP_SET_PT): + Call functions with new arg order. + (SET_BUF_BEGV, SET_BUF_BEGV_BOTH): New macros. + (SET_BUF_PT): Macro deleted. + (SET_BUF_ZV): Set charpos and bytepos. + (SET_BUF_ZV_BOTH, SET_BUF_PT_BOTH): New macros. + (BYTE_POS_ADDR): Renamed from POS_ADDR. + (CHAR_POS_ADDR): New macro. + (FETCH_BYTE): Use BYTE_POS_ADDR. + (FETCH_MULTIBYTE_CHAR): Use ..._BYTE macros. + (BUF_CHAR_ADDRESS): Convert charpos to bytepos. + (BUF_BYTE_ADDRESS): New macro, like the old BUF_CHAR_ADDRESS. + (PTR_BYTE_POS): Renamed from PTR_CHAR_POS. + (BUF_PTR_BYTE_POS): New macro. + (BUF_FETCH_CHAR, BUF_FETCH_BYTE, BUF_FETCH_MULTIBYTE_CHAR): New macros. + (struct buffer_text): New fields gpt_byte, z_byte. + (struct buffer): New fields pt_byte, begv_byte, zv_byte. + + * syntax.c (char_quoted): Take charpos and bytepos as args. + (back_comment): Likewise. + (update_syntax_table): Arg renamed. + (inc_bytepos, dec_bytepos): New functions. + + * abbrev.c (describe_abbrev): Return void. + (write_abbrev): Return void. + (Fexpand_abbrev): Scan in bytepos along with charpos. + (Funexpand_abbrev): Use bytepos to delete the expansion. + + * charset.h (INC_POS, DEC_POS): Fix because arg is a bufpos. + (BUF_INC_POS, BUF_DEC_POS): New macros. + (INC_BOTH, DEC_BOTH): New macros. + + * minibuf.c (Fread_command, Fread_variable): Fix previous change. + + * intervals.h (set_point, temp_set_point): Swap args in decl. + (set_point_both, temp_set_point_both): New decls. + + * print.c (PRINTDECLARE): Declare old_point_byte and start_point_byte. + (PRINTPREPARE): For a marker, set old_point_byte and start_point_byte. + Set both kinds of PT from the marker. + (PRINTFINISH): For a marker, use set_marker_both. + Restore both kinds of PT. + (print): For strings and symbols, handle multibyte chars. + +1997-12-26 Richard Stallman + + * lread.c (readchar_backlog): New variable. + (readchar): When fetching from buffer or marker, + use readchar_backlog to fetch bytes from a character. + (unreadchar): Increment readchar_backlog. + (readevalloop, Fread): Init readchar_backlog. + + * charset.c (Fchar_boundary_p): Always return 0. + (Fchars_in_region): Just subtract the arguments. + (chars_in_text): New function. + (Ffind_charset_region): Scan in bytepos as well as charpos. + + * process.c (Fprocess_send_region): Make bytepos for send_process. + (read_process_output): Save, restore, and update both kinds of ptrs. + (send_process): OFFSET is now in bytes. + + * marker.c (marker_byte_position): Renamed from marker_position. + (marker_position): New function returns the charpos. + (Fbuffer_has_markers_at): Test the marker's charpos. + (set_marker_restricted, Fset_marker): Set both kinds of position. + Optimize case where POSITION is a marker. + (set_marker_both, set_marker_restricted_both): New functions. + (Fmarker_position): Use the charpos. + + * marker.c (charpos_to_bytepos, bytepos_to_charpos): New functions. + (buf_charpos_to_bytepos, buf_bytepos_to_charpos): New functions. + + * textprop.c (Ftext_properties_at): Doc fix. + + * intervals.c (set_point_both): Renamed from set_point; + New arg BYTE; BUFFER is now first arg; use temp_set_point_both. + (set_point): New function; uses set_point_both. + (temp_set_point_both): New function. + (temp_set_point): Update BUF_PT_BYTE. + (get_local_map): Save and restore both forms of the buffer bounds. + + * buffer.c (set_buffer_temp): + Update BUF_PT_BYTE, BUF_BEGV_BYTE and BUF_ZV_BYTE. + (Fmake_indirect_buffer, set_buffer_internal_1): + Set up the pt, begv and zv markers with both kinds of position. + Set BUF_PT_BYTE, BUF_BEGV_BYTE, BUF_ZV_BYTE. + (Fget_buffer_create): Set BUF_..._BYTE. + + * indent.c (vmotion, compute_motion): Set up bytepos value + to return it. ??? This is a quick hack and must be redone. + (current_column): Handle bytepos and charpos. + (position_indentation): Take bytepos as arg, and scan with it. + Calls changed. + (Fmove_to_column): Scan with bytepos and charpos. + (pos_tab_offset): Use bytepos to do FETCH_BYTE. + (skip_invisible): Don't worry about position in middle of character. + + * xdisp.c (try_window): Pass bytepos to and from display_text_line. + (try_window_id): Likewise. Use byte pos as well as charpos. + (redisplay_internal): Handle bytepos for tlbufpos. + + * xdisp.c (message): Cast last arg to doprnt. + + * indent.h (struct position): New field bytepos. + + * keyboard.c (command_loop_1): Use PT_BYTE when calling FETCH_BYTE. + Instead of Fforward_point, just add. + + * search.c (looking_at_1): Use bytepos to call re_search_2. + Convert search regs to charpos, if search succeeded. + (search_buffer): Likewise. Also convert charpos <-> bytepos + in non-regexp case. + (scan_buffer): Convert charpos <-> bytepos. + (scan_newline): New function. + (find_next_newline): Function deleted. + (set_search_regs): Args now in bytes; convert to charpos. + (Freplace_match): Convert charpos <-> bytepos when scanning case. + + * fileio.c (restore_point_unwind): Now static. Use Fgoto_char. + (Funhandled_file_name_directory): Doc fix. + (Finsert_file_contents): Handle bytes vs chars. + (Fwrite_region): Handle bytes vs chars. + (a_write): Take args in bytes; handle annotations labeled in chars. + (e_write): Rename args. + (Funhandled_file_name_directory): Doc fix. + (a_write, e_write): Now static. + + * editfns.c (Fgoto_char): When arg is a marker, copy char and byte + positions from it. When arg is an integer, no need to worry that it + is in middle of a character. + (buildmark): Take 2 args (charpos and bytepos). Callers changed. + (Fline_beginning_position): Save and restore both kinds of PT. + (Fprevious_char): Use PT_BYTE. + (Fbolp, Feolp): Use PT_BYTE. + (transpose_markers): Take args in chars and bytes. + (Ftranspose_regions): Work with byte and char positions. + (Fchar_after, Fchar_before): Use bytepos. + (make_buffer_string): Convert charpos to bytepos. + (Fcompare_buffer_substrings): Work with charpos and bytepos. + (Fsubst_char_in_region): Handle charpos and bytepos. + (Fwiden, Fnarrow_to_region): Likewise. + (save_restriction_restore): Update PT and PT_BYTES. + Cast arg to doprnt_lisp. + +1997-12-26 Richard Stallman + + * keymap.c (Vminor_mode_overriding_map_alist): New variable. + (syms_of_keymap): Set up Lisp var. + (current_minor_maps): Use Vminor_mode_overriding_map_alist first, + then Vminor_mode_map_alist. + + * config.in (HAVE_STRING_H): Add #undef. + [HAVE_STRING_H]: Include string.h. + +1997-12-24 Richard Stallman + + * fileio.c (Finsert_file_contents): Don't use coding.symbol + in unusual paths which don't set it up. + + * xdisp.c: Declare nonascii_insert_offset. + +1997-12-21 Richard Stallman + + * xterm.c (x_display_cursor): Abort if X or Y is out of range. + +1997-12-20 Richard Stallman + + * sysdep.c (sys_signal): Undo previous change. + + * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables. + (syms_of_emacs): Set up Lisp variables. + (handle_USR1_signal, handle_USR2_signal): New signal handlers. + (main): Set up signal handlers. + + * s/sco4.h (LIBX11_SYSTEM) [HAVE_LIBINTL and MOTIF]: Add -lintl. + + * config.in (HAVE_LIBINTL): Add #undef. + +1997-12-20 Toshiaki Nomura + + * s/uxpds.h: New file. + +1997-12-19 Richard Stallman + + * minibuf.c (Vread_buffer_function): New var. + (syms_of_minibuf): Set up Lisp var. + (Fread_buffer): Use Vread_buffer_function. + + * lisp.h (message2_nolog): Fix arg types. + + * xdisp.c (message2_nolog): New arg MULTIBYTE. + (message2): Pass new arg to message2_nolog. + (message1_nolog): Likewise. + + * keyboard.c (Fexecute_extended_command): + Save message_enable_multibyte and pass it to message2_nolog. + + * alloc.c (Fgarbage_collect): + Save message_enable_multibyte and pass it to message2_nolog. + +1997-12-17 Richard Stallman + + * syntax.c (Fparse_partial_sexp): Return nil for 9th element + whenever not inside a string or a comment. + +1997-12-16 Richard Stallman + + * minibuf.c (Fread_variable): If DEFAULT_VALUE is symbol, use its name. + (Fread_command): Likewise. + +1997-12-15 Richard Stallman + + * xdisp.c (message_dolog): Update PT and ZV properly when at end of + buffer, when we convert between multibyte and single-byte. + Properly initialize i. + + * xdisp.c (message_dolog): Convert between single-byte and multibyte + when inserting text into *Messages*. + +1997-12-11 Richard Stallman + + * sysdep.c (sys_signal): Add two casts. + +1997-12-09 Richard Stallman + + * callproc.c (Fcall_process): Don't clobber new_argv[0] + in the case of no args. + +1997-12-09 Kenichi Handa + + * charset.c (Fget_unused_iso_final_char): New function. + (syms_of_charset): Declare it as a Lisp function. + + * callproc.c (Fcall_process): Set Vlast_coding_system_used after + reading from the process. + + * process.c (read_process_output): Fix previous change, i.e, if + proc_encode_coding_system[p->outfd] is NULL, instead of allocating + `struct coding_system' for encoding, just skip setting up coding + system for encoding. Set Vlast_coding_system_used after some text + is read. + (send_process): Set Vlast_coding_system_used after deciding a + coding system to be used for encoding. + + * fileio.c (Finsert_file_contents): Set Vlast_coding_system_used + before calling Vafter_insert_file_functions. + (Fwrite_region): Set Vlast_coding_system_used after deciding a + coding system to be used for encoding. + + * coding.c (setup_coding_system): Do not set + Vlast_coding_system_used here. + (decode_coding_sjis_big5): Decode Big5 text of CR only end-of-line + correctly. + +1997-12-08 Ken'ichi Handa + + * keyboard.c (Fexecute_extended_command): Fix previous change. + +1997-12-07 Karl Heuer + + * process.c (read_process_output): Allocate for coding system, if + not already done. + +1997-12-03 Richard Stallman + + * emacs.c (main): Fix the stack-limit code to calculate + the ratio for re_max_failures accurately and leave some extra slack. + + * lread.c (Feval_region): Doc correction (point does not move). + +1997-11-26 Richard Stallman + + * alloc.c (malloc_warning, display_malloc_warning): Return void. + (memory_full, free_cons, free_marker): Likewise. + + * xdisp.c (message): Declare a as char *[3]. + + * lisp.h, print.c (internal_with_output_to_temp_buffer): + Don't declare arg type taken by 2nd arg. + + * eval.c (do_autoload): Return void. + + * sysdep.c (reset_sigio): Return void. + + * keyboard.c (Fsuspend_emacs): Cast init_sys_modes when calling + record_unwind_protect. + + * keymap.c (describe_map): Fix decl of arg ELT_DESCRIBER. + + * process.c (create_process, deactivate_process, close_process_descs): + (kill_buffer_processes, status_notify): Return void. + (Fstart_process): Cast arg to create_process. + + * undo.c (record_insert, record_delete, record_marker_adjustment): + (record_change, record_first_change, record_property_change): + Return void. + +1997-11-27 Ken'ichi Handa + + * undo.c (record_change, record_first_change, + record_property_change): Declare them as void. + (record_delete, record_marker_adjustment): Declare them as void. + + * indent.c (invalidate_current_column): Declare it as void. + + * fileio.c (report_file_error): Declare it as void. + + * filelock.c (unlock_buffer): Declare it as void. + + * buffer.c (nsberror, record_buffer, validate_region, + fix_overlay_before): Declare them as void. + + * sysdep.c (discard_tty_input, init_baud_rate, + wait_for_termination, flush_pending_output, child_setup_tty, + sys_suspend, sys_subshell, init_sigio, request_sigio, + unrequest_sigio, init_sys_modes, get_frame_size, reset_sys_modes, + setup_pty): Declare them as void. + + * keymap.c (describe_vector): Declaration fixed (delete `.' at the + tail of type `void'. + (fix_submap_inheritance): Declare it as void. + + * keyboard.c (echo_now, record_auto_save, cmd_error_internal, + start_polling, stop_polling, bind_polling_period, + timer_start_idle, timer_stop_idle, gobble_input, + record_asynch_buffer_change, clear_input_pending, + stuff_buffered_input, clear_waiting_for_input, + quit_throw_to_read_char): Declare these as void. + (Fsuspend_emacs): Delete unnecessary extern declaration for + init_sys_mode. + (Fexecute_extended_command): Give Voverriding_local_map as the + first arg to Faref. + +1997-11-27 Ken'ichi Handa + + * xterm.c (x_make_frame_visible): Give dummy arg to + input_poll_signal. + + * xdisp.c (redisplay_preserve_echo_area): Declare it as void. + + * charset.c (strwidth): Remove extra argument to buffer_display_table. + +1997-11-25 Andreas Schwab + + * charset.h (SPLIT_STRING): Remove extra argument to + split_non_ascii_string. + + * window.c: Add prototypes. + (delete_window): Fix return type. + (set_window_height): Likewise. + (set_window_width): Likewise. + (change_window_height): Likewise. + + * xselect.c (Fx_disown_selection_internal): Fix type of EVENT. + + * window.h: Add prototypes. + + * systty.h: Add prototypes. + + * sysdep.c: Add prototypes. + (save_signal_handlers): Make static. + (restore_signal_handlers): Likewise. + + * syntax.h: Add prototypes. + + * search.c: Include "intervals.h" for prototypes. + + * region-cache.h: Add prototypes. + +1997-11-24 Paul Eggert + + * fontset.c (free_fontset_data): Don't free null pointer. + + The new GNU C library strftime needs the underlying host's + strftime for locale dependent formats. + + * configure.in (AC_CHECK_FUNCS): Add strftime. + * src/config.in (HAVE_STRFTIME): New undef. + * src/editfns.c (emacs_strftime): New decl. + (Fformat_time_string): Doc fix: %b, %h, %B, %a, %A, and %p depend on + locale; don't use actual chars to describe %n and %t. + + * src/Makefile.in (strftime.o), src/makefile.nt ($(BLD)\strftime.obj): + No need to compile with -Dstrftime=emacs_strftime any more. + +1997-11-22 Richard Stallman + + * syntax.c (back_comment): Handle 2-char comment starts + when reaching the first of the pair. + +1997-11-21 Andreas Schwab + + * keymap.c (copy_keymap_1): Fix return type. + (accessible_keymaps_char_table): Likewise. + (where_is_internal_2): Likewise. + (describe_vector_princ): Likewise. + (describe_vector): Likewise. Protoize parameter. + (Ftext_char_description): Fix type of `str'. + + * keyboard.h: Add prototypes and more function declarations. + + * intervals.h: Add prototypes and more function declarations. + + * intervals.c (traverse_intervals): Protoize parameter. + + * frame.h: Protoize function declarations. + + * fontset.h: Add prototypes and more function declarations. + + * fontset.c: Protoize functions declarations. + + * fns.c (map_char_table): Protoize parameter. + + * fileio.c (close_file_unwind): Fix return type and return nil. + (restore_point_unwind): Likewise. + + * eval.c (record_unwind_protect): Protoize parameter. + + * editfns.c (Fchar_to_string): Declare `workbuf' as unsigned char. + (general_insert_function): Likewise. Protoize parameters. Define + as returning nothing. + + * doprnt.c (doprnt1): Declare `charbuf' as unsigned char. + + * disptab.h: Add prototypes. Remove declaration of obsolete + functions. + + * coding.h: Add more prototypes and function declarations. + + * charset.h: Add more prototypes and function declarations. + + * ccl.c (setup_ccl_program): Define as returning nothing. + + * ccl.h: Add declaration of setup_ccl_program and ccl_driver. + + * category.h: Add declaration of word_boundary_p. + + * buffer.h: Add more prototypes and function declarations. + + * print.c (printchar): Declare `work' as unsigned char. + (internal_with_output_to_temp_buffer): Protoype parameter + FUNCTION. + (Ferror_message_string): Remove extra argument of + print_error_message. + (write_string): Define as returning nothing. + (write_string_1): Likewise. + (print_error_message): Likewise. + + * minibuf.c (read_minibuf_unwind): Fix return type and return nil. + (temp_echo_area_glyphs): Define as returning nothing. + (init_minibuf_once): Likewise. + (syms_of_minibuf): Likewise. + (keys_of_minibuf): Likewise. + + * marker.c (unchain_marker): Define as returning nothing. + (syms_of_marker): Likewise. + + * macros.h: Declare finalize_kbd_macro_chars and + store_kbd_macro_char. + + * macros.c (store_kbd_macro_char): Define as returning nothing. + (finalize_kbd_macro_chars): Likewise. + (init_macros): Likewise. + (syms_of_macros): Likewise. + (keys_of_macros): Likewise. + + * lread.c (read1): Declare workbuf as unsigned char. + (dir_warning): Define as returning nothing. + (init_lread): Likewise. + (mapatoms_1): Likewise. + (map_obarray): Fix type of parameter FN. + + * lisp.h: Add more prototypes and declarations. Forward declare + struct window and struct frame so that it can be used in + prototypes. + +1997-11-20 Richard Stallman + + * sysdep.c (init_system_name): Don't use sysinfo. + +1997-11-20 Dave Love + + * syntax.c (skip_chars): Check type of `string' before using it. + +1997-11-20 Abraham Nahum + + * sysdep.c: Treat DGUX the same as USG. + * s/dgux4.h (LIBS_SYSTEM): Define this. + +1997-11-20 Eli Zaretskii + + * frame.c (frame_name_fnn_p, set_term_frame_name): New functions. + (store_frame_param): When the property name is "name", set the + name of the frame to its value. + +1997-11-16 Richard Stallman + + * keyboard.c (Fexecute_extended_command): Fix message wording. + Don't print a message for a binding for mouse-movement. + +1997-11-15 Richard Stallman + + * xdisp.c (minibuffer_scroll_overlap): New variable. + (syms_of_xdisp): Set up Lisp var. + (redisplay_window): Scroll minibuffer in a special way. + + * xdisp.c (display_text_line): Make decision about which windows + highlight the region in just once place. + When minibuffer is selected, show the region in the previous window, + + * charset.h (ASCII_BYTE_P): New macro. + + * indent.c (position_indentation): Detect non-breaking space, + in either single-byte form or multibyte form (using category ' '). + +1997-11-15 Karl Heuer + + * xselect.c (x_handle_selection_request): Use xfree, not free. + (unexpect_property_change, x_get_window_property_as_lisp_data): Ditto. + (x_handle_property_notify, receive_incremental_selection): Ditto. + (selection_data_to_lisp_data, Fx_get_cut_buffer_internal): Ditto. + +1997-11-10 Eli Zaretskii + + * msdos.c: Support for Japanese display on DOS/V systems. + (screen_old_address, screen_virtual_segment, + screen_virtual_offset): New variables. + (dosv_refresh_virtual_screen): New function. + (dos_direct_output, dos_set_window_size, IT_write_glyphs, + IT_clear_end_of_line, IT_clear_screen, IT_display_cursor, + IT_reset_terminal_modes, XMenuActivate, abort): Call + dosv_refresh_virtual_screen if under DOS/V. + (IT_set_terminal_modes): If under DOS/V, update the address of + primary screen buffer. + (internal_terminal_init): Zero out screen_old_address, in case + Emacs was dumped under DOS/V. + (dos_get_saved_screen): Return failure indication if no screen was + saved. + +1997-11-07 Kenichi Handa + + * callproc.c (Fcall_process): GCPRO infile, buffer, and + current_dir before encoding arguments. + + * charset.c (find_charset_in_str): Handle the case that STR + contains invalid multibyte-form. + + * coding.c (setup_coding_system): Initialize common_flags member + instead of require_flushing member of `*coding'. + (code_convert_region): Fix previous change. + + * coding.h (struct coding_system): Add member common_flags, delete + member require_flushing. + (CODING_REQUIRE_FLUSHING_MASK, CODING_REQUIRE_DECODING_MASK, + CODING_REQUIRE_ENCODING_MASK, CODING_REQUIRE_DETECTION_MASK): New + macros. + (CODING_REQUIRE_NO_CONVERSION, CODING_MAY_REQUIRE_NO_CONVERSION): + These macros deleted. + (CODING_REQUIRE_FLUSHING, CODING_REQUIRE_DECODING, + CODING_REQUIRE_ENCODING, CODING_REQUIRE_DETECTION): New macros. + + * editfns.c (Fsref): If IDX points an 8-bit code which is not part + of multibyte characters, return it. Pay attention to + enable-multibyte-characters. + + * fileio.c (Finsert_file_contents): Use new macros defined in + coding.h. + (Fwrite_region): Likewise. + + * process.c (create_process): Encode arguments for the process. + (read_process_output): Use new macros defined in coding.h. + (send_process): Likewise. + + * term.c (encode_terminal_code): Use new macros defined in + coding.h. + (write_glyphs): Likewise. + +1997-10-31 Richard Stallman + + * sysdep.c (init_system_name): If gethostname gives a proper + domain name, don't look farther for one. + +1997-10-29 Paul Eggert + + * m/alpha.h (DBL_MIN_REPLACEMENT): New macro. + + * print.c (DBL_MIN): Use workaround if DBL_MIN_REPLACEMENT is defined. + +1997-10-27 Kenichi Handa + + * charset.c (Fchars_in_string): Pay attention to + enable-multibyte-characters. + (Fchars_in_region): Likewise. Avoid error when the region ends in + the middle of a multibyte character. + + * category.c (copy_category_table): Copy also the first extra slot + (vector of docstrings). + (Fcopy_category_table): Do not give unused second arg to + copy_category_table. + +1997-10-26 Kyle Jones + + * buffer.c (Fkill_buffer): Don't assume buffer is current. + +1997-10-24 Eirik Fuller + + * xterm.c (XTread_socket): Check for bogus (0,0) location. + +1997-10-24 Richard Stallman + + * frame.c (Fmouse_pixel_position, Fmouse_position): + Pass -1 as INSIST arg to mouse_position_hook. + * w32term.c (w32_mouse_position): Handle INSIST < 0. + * xterm.c (XTmouse_position): Handle INSIST < 0. + +1997-10-23 Simon Marshall + + * lread.c (Fload): Indicate in messages if source code is being + loaded and don't indicate when compiled code is being loaded. + +1997-10-23 Murata Shuuichirou + + * coding.c (encode_designation_at_bol): Fix bug of finding graphic + registers which should be designated at bol. + +1997-10-23 Kenichi Handa + + * charset.h (CHAR_VALID_P): Renamed from VALID_CHAR_P, new + argument GENERICP. Call char_valid_p for a non-ASCII character. + + * charset.c (char_valid_p): New function + (Fchar_valid_p): New function. + (syms_of_charset): Declare it as a Lisp function. + + * coding.h (struct iso2022_spec): New member + charset_revision_number. + (CODING_SPEC_ISO_SAFE_CHARSETS): This macro deleted. + (CODING_SPEC_ISO_REVISION_NUMBER): New macro. + (struct coding_system): Member `safe_charsets' is moved from + struct iso2022_spec. + + * coding.c (Qsafe_charset): New variable. + (syms_of_coding): Initialize and staticpro it. + (detect_coding_iso2022): Handle SS2 and SS3 correctly. + (DECODE_ISO_CHARACTER): Recover from incorrect encoding in less + dangerous way. + (ENCODE_DESIGNATION): Get charset revision number by + CODING_SPEC_ISO_REVISION_NUMBER. + (setup_coding_system): Initialize the member safe_charsets from + the coding systems's safe-charsets property. Initialize the + member charset_revision_number of struct iso2022_spec. + (ENCODE_ISO_CHARACTER_DIMENSION1): Adjusted for the change of + `safe_charsets' member. + (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise. + (code_convert_region): Restore the current point after calling a + function in coding->post_read_conversion. + + * fns.c (map_char_table): Do not operate on invalid characters. + Pay attention to `enable-multibyte-characters'. + +1997-10-23 Richard Stallman + + * filelock.c (unlock_all_files): Don't call unlock_file; + do the work directly, and avoid calling Fexpand_file_name. + + * xdisp.c (redisplay_window): If clip_changed, always run + window-scroll-functions. + +1997-10-23 Paul Eggert + + Don't generate useless digits when converting floating point to string. + + * print.c (_MAXLDBL, _NMAXLDBL): + Define to work around hpux 7 problem. + (): Include. + (, ): Include if STDC_HEADERS. + (FLT_RADIX, DBL_MANT_DIG, DBL_DIG): Default to IEEE values. + (DOUBLE_DIGITS_BOUND): New macro. + (float_to_string): By default, generate the fewest number of digits + that represent the floating point value exactly. + + * lisp.h (DBL_DIG): Remove; the default value is now set in print.c. + * data.c, floatfns.c: No need to include before "lisp.h", + as the latter no longer defines DBL_DIG. + +1997-10-21 Kenichi Handa + + * Makefile.in (xselect.o): Depend on buffer.h + + * coding.c (Qcoding_system_spec): Deleted. + (Vcoding_system_list, Vcoding_system_alist): New variables. + (setup_coding_system): Adjusted for the change in mule.el. + (detect_eol): Likewise. + (Fcoding_system_spec): Changed to Lisp function in mule.el. + (Fcoding_system_p): Do not call Fcoding_system_spec. + (Fread_coding_system): Give Vcoding_system_alist to + Fcompleting_read as the arg TABLE. + (Fread_non_nil_coding_system): Likewise. Give + Vcoding_system_history to Fcompleting_read as the arg HIST. + (syms_of_coding): Deleted codes for Qcoding_system and + Fcoding_system_spec. Set up new Lisp variables. + + * xselect.c: Include buffer.h. + (selection_data_to_lisp_data): Do not perform code conversion if + the default value of enable-multibyte-characters is nil. + (lisp_data_to_selection_data): Likewise. Access the array + `charsets' in the correct way. + +1997-10-20 Richard Stallman + + * Makefile.in (LD_SWITCH_MACHINE_TEMACS): New macro (defaults empty). + (ALL_LDFLAGS): Use LD_SWITCH_MACHINE_TEMACS here. + + * m/ibmrs6000.h (LD_SWITCH_MACHINE): Conditionalize this + on THIS_IS_MAKEFILE instead of on emacs. + +1997-10-20 Paul Eggert + + * strftime.c: + Switch back to GNU C Library version. + (__tz_compute): Remove unused decl. + (strftime): Use tm_zone even if _LIBC is defined. + +1997-10-19 Kurt Swanson + + * window.c (syms_of_window): Doc fix. + +1997-10-16 Richard Stallman + + * buffer.c (init_buffer): Don't add /: to default dir if it's `/'. + + * keymap.c (Faccessible_keymaps): Avoid alloca for fixed-size array. + (Fset_keymap_parent, Fcopy_keymap, Fwhere_is_internal): Likewise. + + * minibuf.c (read_minibuf): Return DEFALT here, if minibuffer is empty. + (Fread_from_minibuffer, Fcompleting_read): Don't do that here. + + * fileio.c (Fexpand_file_name): Avoid treating // specially + even in a relative file name. + + * keymap.c (Fwhere_is_internal): some minor mode bindings weren't + being found. + +1997-10-15 Richard Stallman + + * window.c (replace_buffer_in_all_windows): + Pass 1 as MINI to window_loop. + + * data.c (Fstring_to_number): Handle NEGATIVE for floats too. + + * lread.c (read_list): Don't recognize Vload_file_name + specially if it is nil. + +1997-10-15 Andreas Schwab + + * alloc.c (gc_sweep): Free memory blocks that contain only unused + objects. + + * window.c (window_scroll): When scrolling forward and point is + inside the scroll margin put point at bottom of it, not at window + start. + +1997-10-13 Andrew Innes + + * callproc.c (child_setup) [WINDOWSNT]: Ensure standard handles + are reset even if spawnve fails. + + * w32menu.c (Fx_popup_menu): Pass menu handle by value. + +1997-10-13 Eli Zaretskii + + * xdisp.c (decode_mode_spec): Display non-nil title as the frame's + name only on FRAME_WINDOW_P frames. + + * frame.c (set_menu_bar_lines): Make the function external instead + of static (MS-DOS needs to call it). + + * emacs.c (shut_down_emacs): Call `dos_cleanup'. + + * msdos.c (mouse_get_pos): Remove reduntant call to `int86'. + Clear the mouse-moved flag for all frames. Update last mouse + position. + (IT_set_menu_bar_lines): Remove. + (x_set_menu_bar_lines): Call `set_menu_bar_line' (from frame.c) + instead of duplicating its code. + (IT_set_frame_parameters): Support the `title' and `reverse' + properties. + + * dosfns.h: Vdos_windows_version: declare. + + * dosfns.c (__tb): Define. + (restore_parent_vm_title): New function. + (ms_windows_version): New function. + (w95_set_virtual_machine_title): New function + (x_set_title): New function. + (dos_cleanup): New function + (syms_of_dosfns): Define `dos-windows-version' Lisp variable. + (init_dosfns): Compute MS-Windows version and save the original + title of our DOS box. + +1997-10-10 Richard Stallman + + * s/netbsd.h (LD_SWITCH_SYSTEM): Use -Wl,-rpath if __ELF__. + +1997-10-01 Andreas Schwab + + * unexelf.c (round_up): Make arguments and return type unsigned. + + * editfns.c: Repeat the argument list of format-time-string in the + comment for make-docstring. + + * lread.c: Make sure that make-docfile does not see the doc string + of the disabled function eval-current-buffer. + + * print.c (syms_of_print): Fix doc string of print-gensym. + +1997-10-01 Richard Stallman + + * s/aix4-1.h [! HAVE_LIBXMU] (LIBXMU): Define as empty. + [! HAVE_LIBXMU] (NO_EDITRES): Defined. + +1997-09-30 Hrvoje Niksic + + * fns.c (Qwidget_type): New variable. + (widget-plist-member, widget-put, widget-get, widget-apply): Move + here from lisp/wid-edit.el; translated into C for efficiency. + (syms_of_fns): Initialize Qwidget_type; defsubr new functions. + +1997-09-29 Karl Heuer + + * s/dgux4.h: Fix name of include file to match 1996-08-24 renaming. + +1997-09-27 Eirik Fuller + + * ralloc.c (relinquish): When returning memory to the system, + watch out for the original data segment boundary. + +1997-09-25 Kenichi Handa + + * keymap.c (push_key_description): Delete useless `if' statement. + +1997-09-24 Kenichi Handa + + * charset.c (find_charset_in_str): Return also charsets in + composite characters. + +1997-09-24 Dave Love + + * buffer.c (mode-line-format): Doc fix. + +1997-09-23 Geoff Voelker + + * callproc.c (child_setup) [WINDOWSNT]: Change directory of + child instead of parent. + +1997-09-19 Richard Stallman + + * Version 20.2 released. + + * s/sol2-5.h (SYSTEM_MALLOC): Defined. + +1997-09-15 Richard Stallman + + * Version 20.1 released. + + * keyboard.c (command_loop_1): Add nonascii_insert_offset + before calling direct_output_for_insert. + +1997-09-15 Andreas Schwab + + * indent.c (compute_motion): Ignore the display table entry for a + base leading code when dealing with multibyte characters. + +1997-09-14 Kenichi Handa + + * fileio.c (Finsert_file_contents): If a coding system is + specified explicitly on visiting a new file, set + buffer-file-coding system of the new buffer to the specified one. + +1997-09-13 Richard Stallman + + * minibuf.c (syms_of_minibuf): Doc fix. + +1997-09-12 Richard Stallman + + * xdisp.c: When redisplaying the echo area, use the value + of enable-multibyte-characters from when message was called. + (message_enable_multibyte): New variable. + (message2_nolog): Set the variable. + (echo_area_display): Use that variable. + (display_string): New arg MULTIBYTE. Callers changed. + + * print.c (Fexternal_debugging_output): On Windows, output to debugger. + +1997-09-11 Richard Stallman + + * msdos.c: Use raw-text as coding system. + +1997-09-10 Eli Zaretskii + + * msdos.c (syms_of_msdos): Intern background-color and + foreground-color, and staticpro them. + (IT_set_frame_parameters): Use Qforeground_color and + Qbackground_color. + +1997-09-09 Richard Stallman + + * xdisp.c (display_menu_bar): Include WINDOW_LEFT_MARGIN in maxendcol. + + * process.c (create_process): Encode the new current dir. + + * callproc.c (Fcall_process): Encode the new current dir. + +1997-09-09 Paul Eggert + + * s/sco5.h (BROKEN_MKTIME): Define. + +1997-09-09 Andreas Schwab + + * xfns.c (x_screen_planes): Fix type of argument. + + * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Add missing fourth + argument of update_syntax_table. + (UPDATE_SYNTAX_TABLE_BACKWARD): Likewise. + (UPDATE_SYNTAX_TABLE): Likewise. + + * coding.c (encode_designation_at_bol): Fix type of local vars C1, C2. + +1997-09-08 Richard Stallman + + * fileio.c (ENCODE_FILE): New macro. + (Vfile_name_coding_system): New variable. + (syms_of_fileio): Set up Lisp variable. + (Fset_visited_file_modtime): Use ENCODE_FILE. + (Fcopy_file, Fmake_directory_internal, Fdelete_directory, Fdelete_file) + (Frename_file, Fadd_name_to_file, Ffile_exists_p Ffile_executable_p) + (Ffile_readable_p, Ffile_writable_p, Faccess_file, Ffile_symlink_p) + (Ffile_directory_p, Ffile_accessible_directory_p, Ffile_regular_p) + (Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p, Fwrite_region) + (Finsert_file_contents, Fverify_visited_file_modtime): Likewise. + + * fileio.c (Ffile_symlink_p): Decode the file name value. + + * dired.c (ENCODE_FILE): New macro. + (Ffile_attributes): Encode the file names to operate on. + (file_name_completion): Do completion on encoded name, then decode. + (Fdirectory_files): Encode the argument. + Decode all result file names using Vfile_name_coding_system. + + * coding.c (Fencode_coding_string, Fdecode_coding_string): Doc fixes. + +1997-09-07 Richard Stallman + + * lread.c (Feval_buffer): New arg FILENAME. + + * buffer.c (modify_overlay): Update overlay_modiff of proper buffer. + +1997-09-07 Geoff Voelker + + * firstfile.c: New file. + +1997-09-07 Richard Stallman + + * xdisp.c (display_string): Determine multibyte from current buffer, + not from W's buffer. + +1997-09-07 Kenneth Stailey + + * s/openbsd.h: New file. + + * m/ns32000.h, m/sparc.h, m/alpha.h, m/pmax.h, unexalpha.c: + Test __OpenBSD__ along with __NetBSD__. + + * unexelf.c: Test __OpenBSD__ along with __NetBSD__. + [__OpenBSD__]: Include sys/exec_elf.h. + +1997-09-05 Ken'ichi Handa + + * coding.c (Ffind_operation_coding_system): If a function in + XXX-coding-system-alist returns a coding system (instead of cons + of coding systems), return cons of it. + +1997-09-05 Richard Stallman + + * coding.c (Fread_coding_system): + New optional arg DEFAULT_CODING_SYSTEM. + * lisp.h (Fread_coding_system): Update decl. + + * callint.c (Fcall_interactively): Pass new arg to Fread_coding_system. + +1997-09-04 Richard Stallman + + * m/alpha.h (PTY_OPEN): Call sigblock properly. + + * fileio.c (Fexpand_file_name): If default dir isn't string, use `/'. + + * callproc.c (Fcall_process_region): Fix previous change: + never override Vcoding_system_for_write. + + * m/alpha.h (PTY_OPEN): Save and restore the SIGCHLD handler. + +1997-09-04 Erik Naggum + + * emacs.c (main): Update Copyright message. + +1997-09-04 Richard Stallman + + * data.c (Faset): Simplify a statement in the char-table case. + This is to help some compilers. + + * coding.c (Qcoding_system_history): New variable. + (syms_of_coding): Initialize it. + (Fread_coding_system): Use Qcoding_system_history. + + * coding.c (setup_coding_system, Ffind_operation_coding_system) + (Fdetect_coding_region, Fread_coding_system): + Don't initialize a Lisp_Object. + +1997-09-03 NIIBE Yutaka + + * emacs.c (main): Call run_time_remap earlier, before any use of stdio. + +1997-09-03 Andreas Schwab + + * minibuf.c (read_minibuf): Fix use of Ffboundp. + +1997-09-03 Geoff Voelker + + * lastfile.c (my_endbss) [WINDOWSNT]: New variable. + +1997-09-03 Richard Stallman + + * coding.c (detect_coding_mask): Re-work previous change. + (detect_eol): Fix use of == instead of -. + +1997-09-03 Kenichi Handa + + * coding.c (detect_coding_mask): Cancel previous change. Always + include CODING_CATEGORY_MASK_RAW_TEXT in the return value. + +1997-09-02 Andrew Innes + + * makefile.nt (TLIB0, TOBJ, OBJ0): New macro. + (LINK_FLAGS): Separate debugging info from the executable. + (LIBS): Include TLIB0. + (TEMACS): Link with TLIB0. + (EMACS): Copy temacs map file to emacs map file. + Update file dependencies. + + * unexw32.c: Include config.h and time.h. + Declare extern data and functions. + (file_data): Move definition from w32heap.c. + (_start): Add debug hook for when profiling. + Spoof executable name when using profilers. + Invoke sbrk immediately when undumped. + (unexec): Print error messages when input and output dump files + cannot be opened. + Reset header checksum. + (open_input_file, open_output_file): Return status instead of aborting. + (get_section_size): Handle different linkers. + (find_section, rva_to_section): New functions. + (get_section_info) [SEPARATE_BSS_SECTION]: Make code for using + a separate .bss section conditional. + Use my_begbss and my_endbss to determine .bss size by default. + Look for Emacs data in EMDATA section. + + * w32.c: Include stddef.h. + (getwd): Delete macro. + (startup_dir): New variable. + (getwd): Return directory in which Emacs started. + (init_user_info): Set SHELL environment variable if not set. + (parse_root, get_long_basename, w32_get_long_filename): New functions. + (init_environment): Look for CMDPROXY. + Make sure that PATH and COMSPEC are capitalized in the environment. + Record startup directory. + (get_emacs_configuration, sys_rename): Use OS_WIN95. + (map_w32_filename): Calculate returned string correctly. + + (sys_fopen): Use _fdopen. + (sys_link): Support NTFS links. + (sys_rename): Use a long file name for temporary name. + (sys_pipe): Make pipes binary and non-inheritable. + (sys_read, sys_write): Spoof text mode translation for pipes + and sockets. + + (hashval): Simplify. + (generate_inode_val): Use long file name version of file. + + (stat): Optimize by using active readdir info. + Set fake_inode to 0 for directories. + Set fake_inode to xor of file indexes for files. + Don't use generate_inode_val to set inode value. + + (volume_info_data): Renamed from volume_info. + (volume_info, fixed_drives, volume_cache): New variables. + (DRIVE_INDEX, VOLINFO_STILL_VALID): New macros. + (lookup_volume_info, add_volume_info, GetCachedVolumeInformation): + New functions. + (get_volume_info): Use volume_info_data. + Use GetCachedVolumeInformation. + + (init_ntproc): No longer restrict to one DOS subprocess. + Use CRT _open and _fdopen. + Cache fixed drive information. + + * w32.h: Remove debugging macros. + (child_process): Remove is_dos_process field, add hwnd handle field. + (FILE_LAST_CR): New macro. + (w32_get_long_filename): Declare extern. + + * w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): + Delete functions. + (keyboard_init_hook): Delete variable. + (prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable. + (reset_terminal_modes) [! USE_SEPARATE_SCREEN]: Reset cursor info. + (initialize_w32_display) [USE_SEPARATE_SCREEN]: Create separate + screen buffer. + (ctrl_c_handler): Only ignore interrupts when interactive. + (set_terminal_modes): Set input mode. + (initialize_w32_display): Record original settings. + Don't reset cursor or clear frame. + + * w32fns.c: Include limits.h and errno.h. + Declare externs from other files. + (w32_in_use): New variable. + (check_w32, have_menus_p, x_set_title, w32_msg_worker, + find_deferred_msg, send_deferred_msg, complete_deferred_msg, + Fw32_focus_frame, W32-send-sys-command): New functions. + (last_mouse_movement_time): Delete variable. + + (x_frame_parms): Alphabetize. Add title parm. + (x_set_icon_name): Use title if set. + (x_set_menu_bar_lines): Ensure client area remains the same. + (x_set_name): Don't update if the name is the same. + Use title for name if available. + (x_icon): Initial support for creating window iconified. + (x_display_info_for_name): Set w32_in_use. + (Fx_open_connection): Validate Vwindow_system. Set w32_in_use. + + (w32_create_window): Set window size to frame dimensions. + Set font width, line height, border, scrollbar indexes. + Don't set X and Y units indexes. + (w32_msg_pump): Renamed from windows_msg_worker. + Make static. Don't post done message. No longer handle + create scrollbar message. Don't abort on anomalous messages. + Return when completion detected. + (w32_wnd_proc): Keep track of button state. + For WINDOWPOSCHANGING, force window dimensions to be multiples + of character dimensions. + Handle CREATESCROLLBAR. + Use correct arguments for SHOWWINDOW. + For SETWINDOWPOS, use WINDOWPOS structure. + + (my_create_window): Abort if message post fails. + (Fx_create_frame): Use title instead of name. + GC protect frame before make_frame_without_minibuffer. + Set icon name. + Use courier new as default font (has bold and italic). + Set BufferPredicate and Title default parameters. + + (x_to_w32_weight): Support semibold weight. + (x_to_w32_charset): Map # to numeric charset identifier. + (w32_to_x_charset): Encode unknown charsets as a number. + (enum_font_cb2): Don't restrict to ANSI and OEM charsets. + + (Fx_color_values): Set high and low words of color values. + + (syms_of_w32fns): Zero w32_in_use. defsubr new functions. + + * w32heap.c (os_subtype): New variable. + (cache_system_info): Set os_subtype. + (recreate_heap): Update system information after loading heap. + + * w32heap.h: Enumerate operating system types. + Declare extern data and functions. + Move file_data struct definition here. + (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): New macros. + + * w32inevt.c: Declare externs from other files. + (w32_kbd_mods_to_emacs): New parameter KEY. + Use w32-capslock-is-shiftlock for old behavior. + (key_event): Pass in new parameter to w32_kbd_mods_to_emacs. + + * w32menu.c (init_menu_items): Disable code. + (x_activate_menubar): New function. + (initialize_frame_menubar): Pass in new param to set_frame_menubar. + + * w32proc.c: Include w32heap.h. + (Vw32_start_process_share_console, Vw32_generate_fake_inodes, + Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): + New variables. + (find_child_console, set_process_dir, Fw32_short_file_name, + Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info, + Fw32_get_current_locale_id, Fw32_get_default_local_id, + Fw32_set_current_locale): New functions. + (CORRECT_DIR_SEPS): New macro. + (create_child): Create a new console if subprocs don't share parent's. + (reap_subprocess): Don't check for dos subprocesses. + Add debug support. + (sys_wait): Ignore socket child_procs. + Check for quit while waiting. + (w32_executable_type): Renamed from w32_is_dos_binary. + Check for dos and Cygnus executables. + (sys_spawnve): Always use cmdproxy if spawning a dos app. + Use quotes to quote arguments for Cygnus apps, backslashes otherwise. + Handle escape characters. Escape quotes at start and end, too. + (sys_select): Treat null timeout as infinite. + Add handles of child processes. + Loop over handles round robin to ensure fairness. + (sys_kill): Send ctrl-break and ctrl-c keystrokes to subprocesses + on SIGINT if not sharing consoles, otherwise generate ctrl-break event. + On other termination signals, send WM_QUIT message to Win95 apps + and WM_CLOSE to NT apps. + (syms_of_ntproc): Intern new symbols. defsubr new functions. + DEFVAR new variables. + + * w32term.c (SIF_*): Win95 macros defined for NT. + (struct tagSCROLLINFO): Win95 struct defined for NT. + (vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border, + vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos, + Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock): New + variables. + (w32_frame_up_to_date): Block input. + (do_line_dance): Use DC while erasing, release at end. + (show_mouse_face): Use column and endcolumn calculated at start of + loop. + (my_create_scrollbar, my_show_window, my_set_window_pos, + my_set_focus) [! ATTACH_THREADS]: Send message to window instead + of invoking Windows procedure. + (x_scroll_bar_create, x_scroll_bar_move, x_scroll_bar_handle_click, + x_scroll_bar_report_motion): Use SCROLLINFO for proportional handle. + (x_scroll_bar_set_handle): Create proportional sized scroll handle. + (w32_set_vertical_scroll_bar): Size handle according to how much + is showing in window. + (x_scroll_bar_set_report_motion): Use top_range, calculated above. + (x_scroll_bar_clear): Hide scroll bar until ready to repaint. + (show_scroll_bars): Pass in frame to my_show_window. + + (w32_read_socket): Distinguish between invisible and obscured frames + when handling PAINT messages. + Fixup off-by-one calculation for PAINT and SIZE. + Pass in new parameter to w32_kbd_mods_to_emacs. + Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW, + INITMENU, and ACTIVATEAPP messages. + Explicitly check for visibile and obscured frames, and to see if + any event should cause a redisplay. + + (x_display_bar_cursor): Don't check whether frame is updating here. + (x_display_cursor): Check it here instead. + (x_set_offset) [HAVE_NTGUI]: Don't add border widths. + Set NOACTIVATE when setting window position. + (x_set_window_size): Fixup off-by-one calculation when setting + window position. Mark frame garbaged earlier. Clear mouse + highlighting state. + (x_focus_on_frame): Set focus by making frame the foreground window. + (x_raise_frame): Support frames to be raised without grabbing focus. + (x_lower_frame): Set NOACTIVATE flag when setting window position. + (x_make_frame_visible, x_make_frame_invisible): Pass in frame + to my_show_window. + (x_iconify_frame): Send a MINIMIZE message to the window. + (x_wm_set_size_hint): Set font width, line height, border, + and scroll bar indexes instead of X and Y unit indexes. + + (w32_initialize): Set input mode. Use w32_msg_worker instead + of windows_msg_worker. Dynamically link proportional scroll bar + functions and intialize proportional scroll bar variables. + (syms_of_w32term): DEFVAR new variables. + + * w32term.h (w32_output): New fields menubar_widget, menubar_active, + and pending_menu_activation. + (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables. + (W32WindowPos): Delete definition. + (WM_EMACS_SETFOCUS, WND_*_INDEX): New macros. + (deferred_msg): New structure. + + * w32xfns.c (have_menus_p): Move to w32fns.c. + + * s/ms-w32.h (INTERRUPT_INPUT): Don't define. + (bcopy): Use memmove instead of memcpy. + (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE): Define. + Undef system calls before redefining. Emulated calls redefined + to sys_*, real calls redefined to _*. + (DebPrint): Macro defined. + +1997-09-02 Michael Welsh Duggan + + * w32term.h (WM_MOUSEWHEEL): Define if not already defined. + Necessary for pre VC5.0 distribution. + (WM_EMACS_TRACKPOPUPMENU): New Macro. + + * w32term.c (construct_mouse_wheel): New function. Constructs an + input event from a WM_MOUSEWHEEL message. + (w32_read_socket): Handle WM_MOUSEWHEEL. + + * w32fns.c (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events. + Capture and handle WM_EMACS_TRACKPOPUPMENU events. + Allow a dragged selection from a popup menu started up + by a mouse down event. + (x_to_win32_color): Support for X Windows RGB string specifications. + + * w32menu.c (get_frame_menubar_event): Check for the possibility + of a menu-bar button. A menu-bar button is a caption on the menu + bar with no submenu. + (set_frame_menubar): Correctly handle menu-bar buttons. + (add_menu_item): Equiv parameter send and paid attention to. + (keymap_panes, list_of_panes): Use CreatePopupMenu. + (single_keymap_panes): Use CreatePopupMenu. Send key descriptions + to add_menu_item. + (list_of_items): Use CreatePopupMenu. Send nil description to + add_menu_item. + (get_menu_event): Send keymap instead of menu to get_keymap_event. + (Fx_popup_menu): Extra parameter to mouse_position_hook. Don't + send address of menu to win32menu_show. + (win32menu_show): Send message to call popup menu rather than + trying directly. get_menu_event should take an address. + Call eat_mouse_events in order to get rid of any extraneous + mouse events. + (list_of_panes): Only bring up one pane if the length of the list + of panes is one. + +1997-09-02 Nico Francois + + * w32menu.c (single_keymap_panes): Fixed problem with 'descrip' + lisp object not being protected properly (GCPRO). + (get_single_keymap_event): Fixed problem with 'descrip' lisp + object not being protected properly (GCPRO). + (name_is_separator): New function. + (list_of_panes): If a pane's name is empty ("") items are now + placed in the main popup instead of a blank-named submenu. This + seems to be an undocumented feature of x-popup-menu. + (list_of_items): New argument HMENU. + Use 1 and 0 instead of Qt and Qnil for enable in add_menu_item + +1997-09-02 Geoff Voelker + + * w32.c (init_environment): Don't look for INFOPATH. + + * w32fns.c (w32_wnd_proc): Pass on WM_DISPLAYCHANGE messages. + + * w32heap.c: Don't use data_seg pragma here. + (_heap_init, _heap_term) [_MSC_VER >= 1000]: New functions that + override CRT routines. + + * w32inevt.c (key_event): New parameter isdead. Set isdead if the + key press was done using a dead key. + + * w32term.c (w32_read_socket): Pass in new parameter to key_event. + Let key_event determine whether key is dead. + For MOVE, use x_real_positions to map to client coords. + (x_set_mouse_pixel_position): Offset to use client area as origin. + + * s/ms-w32.h: Use pragmas to place Emacs initialized data in + EMDATA segment, and Emacs uninitialized data in EMBSS segment. + +1997-09-02 Andrew Innes + + * fileio.c (Fadd_name_to_file) [WINDOWSNT]: Remove conditional. + + * frame.h (FRAME_OBSCURED_P): New macro. + (FRAME_SAMPLE_VISIBILITY): Distinguish between invisible and obscured. + + * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]: Support + menu_bar_activate_event. + (set-input-mode) [DOS_NT]: Do not invoke reset and init sys modes. + + * sysdep.c (sys_subshell) [DOS_NT]: Save and restore parent's + working directory. + (sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console. + (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with + a read_socket_hook. + + * xdisp.c (redisplay_internal): Check to see if frame is not obscured + as well as visible. + +1997-09-02 Michael Welsh Duggan + + * lisp.h: Declare discard_mouse_events. + + * keyboard.c (Qmouse_wheel) [WINDOWSNT]: New variable. + (discard_mouse_events): New function. + (mouse_wheel_syms) [WINDOWSNT]: New variable. + (lispy_mouse_wheel_names) [WINDOWSNT]: New variable. + (make_lispy_event) [WINDOWSNT]: Make mouse-wheel events. + (syms_of_keyboard) [WINDOWSNT]: Define Qmouse_wheel and + mouse_wheel_syms. + + * termhooks.h (event_kind) [WINDOWSNT]: New event type: mouse_wheel. + +1997-09-02 Geoff Voelker + + * fileio.c (Fexpand_file_name) [WINDOWSNT]: When stripping + drive letter, be careful not to create a UNC filename. + +1997-09-02 Richard Stallman + + * coding.c (detect_coding_mask): Add in CODING_CATEGORY_MASK_RAW_TEXT + in the detect_coding_iso2022 case. + + * minibuf.c (Fread_from_minibuffer, Fread_string): Doc fixes. + (Fread_no_blanks_input, Fcompleting_read): Doc fixes. + + * unexnext.c: Include unistd.h instead of libc.h. + +1997-09-01 Richard Stallman + + * s/hpux9.h (HAVE_RINT): Add #undef. + + * floatfns.c (emacs_rint): Define this, + either as a function or as a macro for rint. + (Fround, Ffround): Use emacs_rint, not rint directly. + + * window.c (syms_of_window): Doc fix. + + * fileio.c (Finsert_file_contents): Fix previous change--don't + call Fboundp on Vset_auto_coding_function, just check non-nil. + +1997-09-01 Andreas Schwab + + * alloc.c (free_float, free_cons): Don't use the same field for + chaining as for marking. + (make_float, Fcons, gc_sweep): Corresponding changes. + +1997-09-01 Kenichi Handa + + * charset.h (LEADING_CODE_PRIVATE_22): Comment fixed. + + * process.c (read_process_output): Index for + proc_encode_coding_system should be p->outfd (not `channel' which + is p->infd). + + * fileio.c (Vset_auto_coding_function): Name changed from + Vauto_file_coding_system. + (syms_of_fileio): Adjusted for the above change. Doc change. + (Finsert_file_contents): The argument for Vset_auto_coding is a + concatination of the heading 1K-byte and the tailing 3K-byte. + + * cmds.c (internal_self_insert): Only set TARGET_CLM when C2 is tab. + When multibyte characters are disabled, + use 1 as the width of the inserted character. + +1997-08-31 Andreas Schwab + + * category.c (describe_category): Handle a sub-chartable. + +1997-08-31 Richard Stallman + + * sysdep.c (init_system_name): Don't try to use getdomainname. + +1997-08-30 Richard Stallman + + * dispnew.c (change_frame_size_1): Save current buffer + around calling Fset_window_buffer. + + * lread.c (Fload): Fix doc syntax. + + * m/intel386.h (HAVE_ALLOCA): Do define this, if SOLARIS2. + +1997-08-29 Richard Stallman + + * lread.c (Fload): If FILE arg ends in .el or .elc, + don't insist on adding a suffix. + +1997-08-28 Eli Zaretskii + + * callproc.c (Fcall_process): Set EOL conversion type to LF when + binary-process-output is non-nil. + (Fcall_process_region): binary-process-XXXput only determines EOL + conversion; if it is nil, convert LF <-> CRLF. Don't bind + coding-system-for-read, it is done in Fcall_process. + +1997-08-28 Richard Stallman + + * alloc.c (free_marker): Call unchain_marker. + +1997-08-28 Kenichi Handa + + * coding.c (detect_eol): Do not select no-conversion even if EOL + format of raw-text file is inconsistent. Just read it by + raw-text-unix. + (Fdetect_coding_region): Do not select no-conversion even if EOL + format of raw-text file is inconsistent. + +1997-08-28 Kenichi Handa + + * coding.c (Qno_conversion, Qundecided): New variables. + (syms_of_coding): Initialize and staticpro them. + (coding_category_name): Include "coding-category-raw-test". + (setup_coding_system): Handle coding_type_raw_text. + (detect_coding_mask): Include CODING_CATEGORY_MASK_RAW_TEXT in the + return value instead of CODING_CATEGORY_MASK_BINARY. + (detect_coding): Do not check the case that `mask' is 0, which + never happens now. + (detect_eol_type): If EOL format is inconsistent, return + CODING_EOL_INCONSISTENT. + (detect_eol): If EOL format of raw-text file is inconsistent, + detect it as no-conversion. + (decode_coding): Handle coding_type_raw_text. + (encode_coding): Likewise. + (Fdetect_coding_region): Ajusted for the above changes. + (shrink_conversion_area): Handle coding_type_raw_text. + + * coding.h (coding_type): New member coding_type_raw_text. + (CODING_EOL_INCONSISTENT): New macro. + (CODING_REQUIRE_NO_CONVERSION): Check also coding_type_raw_text. + (CODING_MAY_REQUIRE_NO_CONVERSION): Likewise. + (CODING_CATEGORY_IDX_RAW_TEXT): New macro. + (CODING_CATEGORY_MASK_RAW_TEXT): New macro. + +1997-08-28 Eli Zaretskii + + * msdos.c: Add coding: tag, to prevent Emacs from interpreting + binary strings. + +1997-08-27 Richard Stallman + + * xmenu.c (free_frame_menubar): Clear menubar_height field. + +1997-08-26 Andreas Schwab + + * xdisp.c (redisplay_window): When trying to scroll conservatively, + correctly take the scroll margin into account. + + * buffer.c: Include errno.h. + (init_buffer) [HAVE_GETCWD]: Fix error message for getcwd failure. + + * fileio.c (Finsert_file_contents): Fix use of Fboundp. + + * fns.c (concat): Fix use of Fchar_bytes. + + * lisp.h: Declare Fchar_bytes. + +1997-08-26 Richard Stallman + + * minibuf.c (read_minibuf): Inherit enable-multibyte-characters + along with the input method, if requested. + +1997-08-26 Eli Zaretskii + + * xdisp.c (decode_mode_spec): For %Z and %z, put keyboard and + terminal coding systems into modeline on MSDOS frames as well. + +1997-08-26 Kenichi Handa + + * minibuf.c (Qcurrent_input_method, Qactivate_input_method): New vars. + (syms_of_minibuf): Intern and staticpro them. + (read_minibuf): New argument INHERIT_INPUT_METHOD. If it is + nonzero, remember the current input method in INPUT_METHOD, and + activate it after switching to the minibuffer. + (Fread_from_minibuffer): New argument INHERIT_INPUT_METHOD. + (Fread_minibuffer): Call read_minibuf with INHERIT_INPUT_METHOD nil. + (Fread_string): New argument INHERIT_INPUT_METHOD. + (Fread_no_blanks_input): Likewise. + (Fread_command): Call Fcompleting_read with INHERIT_INPUT_METHOD nil. + (Fread_function, Fread_variable, Fread_buffer): Likewise + (Fcompleting_read): New argument INHERIT_INPUT_METHOD. + + * lisp.h (DEFUN_ARGS_8): New macro. + (Fcompleting_read, Fread_from_minibuffer, Fread_string, + Fread_no_blanks_input): Number of arguments fixed. + + * eval.c (Feval): Handle a subr which takes 8 arguments. + (Ffuncall): Likewise. + + * coding.c (Fread_non_nil_coding_system): Supply the arg + INHERIT-INPUT-METHOD to Fcompleting_read. + (Fread_coding_system): Likewise. + + * callint.c (Finteractive): Document the code letter `M'. + (Fcall_interactively): Call Fcompleting_read, + Fread_from_minibuffer, and Fread_string with a proper value for + the arg INHERIT-INPUT-METHOD. Handle the code letter `M'. + + * fileio.c (Fwrite_region): Convert EOL format even if + enable-multibyte-characters is nil. + (Fread_file_name): Call Fcompleting_read with INHERIT-INPUT-METHOD + nil. + + * keyboard.c (Fexecute_extended_command): Call Fread_from_minibuffer + with INHERIT-INPUT-METHOD nil. + + * fns.c (Fyes_or_no_p): Likewise. + + * mocklisp.c (Fml_arg): Call Fread_string with + INHERIT-INPUT-METHOD nil. + + * search.c (Fsearch_backward): Inherit the current input method on + reading STRING. + (Fsearch_forward): Likewise. + +1997-08-25 Richard Stallman + + * frame.c (Fframe_pixel_height): Doc fix. + + * Makefile.in (emacs): Put dash at beginning. + +1997-08-24 NIIBE Yutaka + + * Makefile.in (xrdb.o): Depend on paths.h. + +1997-08-23 Richard Stallman + + * config.in (KERBEROS5, HAVE_LIBKRB4, HAVE_LIBDES425, HAVE_LIBKRB5) + (HAVE_LIBCRYPTO, HAVE_LIBCOM_ERR, HAVE_KRB5_H, HAVE_DES_H, HAVE_KRB_H) + (HAVE_KERBEROSIV_DES_H, HAVE_KERBEROSIV_KRB_H, HAVE_KERBEROS_DES_H) + (HAVE_KERBEROS_KRB_H, HAVE_COM_ERR_H): Add undefs. + + * callproc.c (init_callproc): Don't warn about missing + arch-dep data directory, while preparing to dump. + + * puresize.h (BASE_PURESIZE): Increased by 10k. + +1997-08-22 Richard Stallman + + * Makefile.in (LIB_MOTIF_EXTRA): New variable. + (LIBW): Use LIB_MOTIF_EXTRA. + * config.in (HAVE_MOTIF_2_1): Add #undef. + + * fileio.c (Fmake_temp_name): Doc fix. + + * buffer.c (syms_of_buffer): Doc fixes. + +1997-08-21 Andreas Schwab + + * xdisp.c (redisplay_window): Don't try using last_point_x + if point is in the left margin of an hscroll'ed window. + +1997-08-21 Ken'ichi Handa + + * fileio.c (syms_of_fileio): Fix previous change. + + * coding.c (detect_eol): If the coding system is an alias, get + eol-type from the base of it. + +1997-08-21 Kenichi HANDA + + * fileio.c (Vauto_file_coding_system_function): New variable. + (Finsert_file_contents): Decide coding system after opening a + file. Call functions set in Vauto_file_coding_system_function. + (syms_of_fileio): Declare auto-file-coding-system-function as a + Lisp variable. + + * fontset.c (Valternate_fontname_alist): Name changed from + Valternative_fontname_alist. + (syms_of_fontset): Adjusted for the above change. + + * fontset.h: Adjusted for the name change of + Valternate_fontname_alist. + + * xterm.c (x_list_fonts): Adjusted for the name change of + Valternate_fontname_alist. + +1997-08-20 Richard Stallman + + * charset.c (Fchars_in_region): Fix gap handling. + + * editfns.c (NULL): Define, if not defined. + +1997-08-19 Geoff Voelker + + * fileio.c (Finsert_file_contents): Fix previous change. + +1997-08-18 Ken'ichi Handa + + * charset.c (Fchars_in_region): Renamed form Fcount_chars_region. + (syms_of_charset): Define Schars_in_region as a Lisp subroutine + instead of Scount_chars_region. + +1997-08-17 Richard Stallman + + * fileio.c (Fdo_auto_save): If open fails, make lispstream nil. + +1997-08-16 Geoff Voelker + + * fileio.c (Finsert_file_contents) [DOS_NT]: Set buffer_file_type + according to eol conversion used on file. + +1997-08-16 Richard Stallman + + * Makefile.in (xselect.o): Fix previous change. + + * minibuf.c (read_minibuf): New arg disable_multibyte. + (Fcompleting_read): Pass 1 for disable_multibyte if + the completion table is read-file-name-internal. + + * xrdb.c: Include paths.h. + (get_system_app): Use PATH_X_DEFAULTS. + + * paths.in (PATH_X_DEFAULTS): New macro. + + * term.c (term_get_fkeys_1): Use kH as alternate for move-to-last-line. + + * charset.c: Many doc fixes. + (Fcount_chars_region): New function. + (min, max): New macros. + + * fns.c (Flength): Doc fix. + + * editfns.c (Fchar_before): Do range check before decrement. + +1997-08-16 Kenichi Handa + + * coding.h (CODING_FLAG_ISO_LATIN_EXTRA): New macro. + + * coding.c (Vmicrosoft_code_table): This variable deleted. + (Vlatin_extra_code_table): New variable. + (detect_coding_iso2022): Pay attention to Vlatin_extra_code_table. + (detect_coding_mask): Likewise. + (setup_coding_system): Handle a new FLAGS element + ACCEPT-LATIN-EXTRA-CODE. + (syms_of_coding): Delete code for Vmicrosoft_code_table. + Declare latin-extra-code-table as Lisp variable, and initialize. + +1997-08-14 Richard Stallman + + * Makefile.in (xselect.o): Depend on coding.h. + + * s/osf1.h (SOCKLEN_TYPE): New macro definition. + +1997-08-14 Andreas Schwab + + * xdisp.c (COERCE_MARKER): Use Fmarker_position instead of + marker_position so that it works with a marker that points nowhere. + (redisplay_window): Check that Voverlay_arrow_position is a + marker before accessing it as such. + +1997-08-14 Eli Zaretskii + + * emacs.c (main): Update re_max_failures so regex.c won't overflow + the stack, except when dumping. + +1997-08-13 Richard Stallman + + * xdisp.c (redisplay_window): When handling just cursor motion, + do not subtract hscroll when accessing last_point_x. + (display_text_line): Add WINDOW_LEFT_MARGIN into hpos + later on, after handling hscroll and minibuffer prompt. + +1997-08-13 Eli Zaretskii + + * msdos.c (syms_of_msdos): Define and bind x-bitmap-file-path and + delete-exited-processes, to prevent cus-start.el from complaining. + +1997-08-13 Kazushi (Jam) Marukawa + + * filelock.c (lock_file): Use %lu instead of %d in sprintf because + the variable named pid is unsigned long. + + * unexalpha.c (unexec): Cast arg to fprintf. + +1997-08-12 Richard Stallman + + * alloc.c (free_marker): New function. + + * insdel.c (signal_before_change): Relocate START and END + using markers for subsequent functions, when we run a function. + + * Makefile.in (emacs): Warn about shadowed standard libraries here. + +1997-08-11 Richard Stallman + + * emacs.c (main): Fix previous change. + +1997-08-11 +03 Eli Zaretskii + + * dosfns.c (init_dosfns): Avoid calling DOS memory-allocation + service, NT DPMI server will crash Emacs in DOS box, if we do. + + * msdos.c (IT_set_frame_parameters): Actually store the frame + parameters in the frame parameters' alist. + + * msdos.c (init_environment): Set Emacs root directory properly when + the executable is in its `src' subdirectory, as under a debugger. + (IT_set_face): If termscript is in use, print the number of the + face as well. + +1997-08-10 Richard Stallman + + * emacs.c (main) [__FreeBSD__ && PROFILING]: Add code for profiling. + +1997-08-10 Eli Zaretskii + + * msdos.c (Qbackground_color, Qforeground_color): Define vars. + + * dosfns.c (Finsert_startup_screen): Call `insert_char' with a + single argument. + +1997-08-10 Ken'ichi Handa + + * coding.h (struct iso2022_spec): New member expected_charsets. + (CODING_SPEC_ISO_EXPECTED_CHARSETS): New macro. + + * coding.c (Fset_terminal_coding_system_internal): Set + CODING_FLAG_ISO_SAFE in terminal_coding.flags. + (ENCODE_ISO_CHARACTER_DIMENSION1): Check + CODING_SPEC_ISO_EXPECTED_CHARSETS. + (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise. + +1997-08-10 Kenichi Handa + + * term.c (encode_terminal_code): Use safe_terminal_coding if + terminal_coding seems to encode Emacs' internal code as is. + (write_glyphs): Likewise. + + * coding.c (ENCODE_ISO_CHARACTER_DIMENSION1): Pay attention to + CODING_FLAG_ISO_SAFE. + (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise. + (safe_terminal_coding): New variable. + (Fset_safe_terminal_coding_system_internal): New function. + (init_coding_once): Initilize safe_terminal_coding. + (syms_of_coding): Declare set-safe-terminal-coding-system as a + Lisp function. + + * coding.h (CODING_FLAG_ISO_SAFE): New macro. + (CODING_INHIBIT_CHARACTER_SUBSTITUTION): New macro. + coding.h (safe_terminal_coding): Extern it. + +1997-08-10 Kenichi Handa + + * coding.c (Vmicrosoft_code_table): New variable. + (syms_of_coding): Declare it as a Lisp variable and initialize it. + (detect_coding_mask): Pay attention to Vmicrosoft_code_table. + + * xterm.c (dumpglyphs): Pay attention to + Vignore_relative_composition. + + * fontset.h (Vignore_relative_composition): Extern it. + + * fontset.c (Vignore_relative_composition): New variable. + (syms_of_fontset): Doc-string of use-default-ascent modified. + Declare ignore-relative-composition as a Lisp variable. + + * fns.c (concat): Pay attention to multibyte characters when + TARGET_TYPE is Lisp_String. + +1997-08-09 Richard Stallman + + * sysdep.c (init_system_name): If domain is null, don't add a period. + +1997-08-08 Richard Stallman + + * buffer.c (init_buffer): Use getcwd instead of getwd, if available. + + * eval.c (do_autoload): Require a suffix for the file. + + * lread.c (read1): Handle read_escape making a multibyte character. + + * strftime.c (gmtime_r, localtime_r): Undef before defining. + + * fns.c (Frequire): Don't insist on a suffix + if the file name argument was explicitly specified. + +1997-08-07 Andreas Schwab + + * Makefile.in (lisp, shortlisp): Add bindings.el and case-table.elc. + + * xdisp.c (redisplay_window): Fix access to w->last_point{,_[xy]}. + + * lisp.h (Flocal_variable_p, Ffind_operation_coding_system): Declared. + (find_symbol_value): Fix declaration. + +1997-08-07 Erik Naggum + + * emacs.c (main): Remove call to init_filelock. + * filelock.c (init_filelock): Function deleted. + * paths.in (PATH_LOCK): Definition deleted. + +1997-08-07 Richard Stallman + + * xrdb.c (X_DEFAULT_SEARCH_PATH): Add /usr/X11R6/lib alternatives. + + * editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): + Don't set clip_changed if the new values are the same as the old. + + * fileio.c (Fwrite_region): Turn off the feature of checking + whether another buffer has locked this file. + + * xdisp.c (COERCE_MARKER): New macro. + (redisplay_internal): Coerce Voverlay_arrow_position to a number + to record it in last_arrow_position. + (mark_window_display_accurate, redisplay_window): Likewise. + (redisplay_window): Don't do the "only point has change" optimization + if the overlay arrow is in this buffer. + +1997-08-06 Richard Stallman + + * unexelf.c (unexec): Cast 1st arg in mmap calls. + + * sysdep.c (init_sys_modes) [mips || HAVE_TCATTR]: + Handle flow_control by setting VSTART and VSTOP characters. + + * filelock.c (lock_file_1, lock_file): Add casts. + + * xselect.c (syms_of_xselect): Doc syntax fixes. + + * coding.c (syms_of_coding): Doc syntax fixes. + + * xdisp.c (redisplay_internal): Count only visible frames at first. + + * xdisp.c (redisplay_internal): Count all visible frames in new_count. + +1997-08-05 Ken'ichi Handa + + * coding.c (detect_eol_type): Fix previous change. + +1997-08-05 Richard Stallman + + * fontset.c (syms_of_fontset): Doc fixes. + +1997-08-04 Richard Stallman + + * indent.c (current_column): Update ptr differently at newline + so that current_column_bol_cache is set properly. + +1997-08-04 Kenichi Handa + + * coding.c (detect_eol_type): If EOL representation does not + seem consistent, use no conversion. + + * process.c (Fset_process_coding_system): Doc-string modified. + (Fprocess_coding_system): Likewise. + + * callproc.c (Fcall_process_region): Use cdr part (not car part) + of Vdefault_process_coding_system for writing out text. + + * coding.c (detect_coding_iso2022): Do not exclude posibility of + 7-bit encoding when designation to G1 occurs. If CSI, SS2, or SS3 + is found, return CODING_CATEGORY_MASK_ISO_8_ELSE. + (Fdetect_coding_region): Doc-string modified. + +1997-08-04 Richard Stallman + + * xfaces.c (merge_face_list): New function. + (compute_char_face): Use merge_face_list. + Allow (foreground-color . COLOR) and (background-color . COLOR) + in place of a face. + +1997-08-03 Richard Stallman + + * m/intel386.h (HAVE_ALLOCA): Don't define this + on USG5_4 if not using GNU C. + + * xdisp.c (redisplay_internal): Count number of visible frames + instead of number of frames that were redisplayed. + + * m/ibmrs6000.h (LD_SWITCH_MACHINE): + Add #ifdef emacs around all the definitions of this. + + * lisp.h (Fload): Update declaration. + +1997-08-03 Kenichi HANDA + + * coding.h (CODING_CATEGORY_MASK_BINARY): New macro. + + * coding.c (detect_coding_mask): Include + CODING_CATEGORY_MASK_BINARY in the return value if any 8-bit code + is found. + + * xfns.c (x_set_frame_parameters): Heading comment fixed. + (x_default_parameter): Likewise. + + * xselect.c (Vclipboard_coding_system): New variable. + (selection_data_to_lisp_data): Decode text by + Vclipboard_coding_system. + (lisp_data_to_selection_data): Encode text by + Vclipboard_coding_system. + (syms_of_xselect): Declare clipboard-coding-system as Lisp + variable and initialize it. + +1997-08-02 Richard Stallman + + * coding.c: Doc fixes. + + * lread.c (Fload): New optional arg MUST-SUFFIX. + * fns.c (Frequire): Pass t for the MUST-SUFFIX arg to Fload. + * eval.c (do_autoload): Pass new arg to Fload. + + * indent.c (compute_motion): Correct the criterion for when to + move back 1 space when we terminate just after continuing the line. + +1997-07-31 Ken'ichi Handa + + * coding.c (encode_coding_iso2022): When source data ends not at + character boundardy, set data in coding->carryover correctly, and + set SRC to SRC_END. + (encode_coding_sjis_big5): Likewise. + (encode_coding): Don't set coding->carryover_size to 0. + + * fileio.c (Fwrite_region): Don't try to flush out a data twice. + +1997-07-31 Richard Stallman + + * xdisp.c (redisplay_window): Fix previous change. + + * dispnew.c (direct_output_for_insert): Set last_point_x properly. + +1997-07-31 Ken'ichi Handa + + * xterm.c (x_list_fonts): Request at least 10 fonts by XListFonts. + + * coding.c (encode_coding_iso2022): Write out invalid multibyte + forms in a buffer as is. + (detect_coding_mask): If ISO_CODE_CSI appears in an invalid + sequence, ignore it. + +1997-07-31 Richard Stallman + + * xdisp.c (redisplay_window): Fix one-off in handling + scroll-conservatively for scrolling up. + + * filelock.c (current_lock_owner): Don't try to delete lock + if this or another existing process owns it! + +1997-07-31 enami tsugutomo + + * process.c (read_process_output): Don't call setup_coding_system + for proc_decode_coding_system[channel]. It is already done in + detect_coding called via decode_coding. + +1997-07-30 Richard Stallman + + * filelock.c (lock_if_free): Don't loop; for strange error, return -1. + + * s/sunos4shr.h (LIBXMU): Alternative definition if CANNOT_DUMP. + + * Makefile.in (LDFLAGS, CPPFLAGS): Get them from configure like CFLAGS. + +1997-07-29 Richard Stallman + + * process.c (wait_reading_process_input): Call detect_input_pending + whenever read_kbd is 0, not just when wait_for_cell. + + * xdisp.c (decode_mode_spec_coding): If multibyte chars disabled. + display only the eol flag. + +1997-07-29 Ken'ichi Handa + + * xterm.c (x_list_fonts): Reject a font whose min_bounds.width is 0. + +1997-07-28 Richard Stallman + + * emacs.c (sort_args): Check properly for `--'. + + * xdisp.c (redisplay_window): Fix previous change. + + * cm.h, sysdep.c, terminfo.c [HAVE_LIBNCURSES]: + Declare ospeed as short, unless NCURSES_OSPEED_T. + + * xdisp.c (redisplay_window): When text has not changed, + call compute_motion starting from the former PT if possible. + If PT is unchanged from w->last_point, don't do compute_motion at all. + +1997-07-28 Andreas Schwab + + * editfns.c (Fformat_time_string): Don't hang if strftime produces + an empty string. Fix arguments of second call to strftime. + Remove check for result being negative, this cannot happen. + + * xterm.c (x_new_font): Follow the change in + x_set_scroll_bar_width and make the scroll bar at least 14 pixels + wide. + + * xfns.c (Fx_create_frame): Initialize fontset in output_data. + +1997-07-28 Dan Nicolaescu + + * charset.c (non_ascii_char_to_string): Fix typos. + +1997-07-27 Richard Stallman + + * callproc.c (syms_of_callproc): + Don't init Vtemp_file_name_pattern here. + + * lread.c (map_obarray): Don't crash if something strange + is in the obarray. + +1997-07-26 Richard Stallman + + * xterm.c (x_term_init) [! HAVE_X11R5]: Don't try to use + XtCvtStringToFont. + + * print.c (strout, printchar): Handle minibuffer_auto_raise. + +1997-07-25 Richard Stallman + + * fileio.c (Fwrite_region): Fix previous change. + +1997-07-25 NIIBE Yutaka + + * indent.c (compute_motion): Handle display table correctly for + multibyte characters. + +1997-07-25 Ken'ichi Handa + + * fontset.c (syms_of_fontset): Set Vhighlight_wrong_size_font to + Qnil. + + * coding.h (CODING_REQUIRE_TEXT_CONVERSION, + CODING_REQUIRE_EOL_CONVERSION, CODING_REQUIRE_CONVERSION): Deleted. + (CODING_REQUIRE_NO_CONVERSION): New macro. + (CODING_MAY_REQUIRE_NO_CONVERSION): New macro. + + * fileio.c (Finsert_file_contents): Use new macros + CODING_MAY_REQUIRE_NO_CONVERSION and + CODING_MAY_REQUIRE_NO_CONVERSION. + (Fwrite_region): Correct the logic for deciding coding system. + + * process.c (read_process_output): Use new macro + CODING_REQUIRE_NO_CONVERSION + (send_process): Use new macro CODING_MAY_REQUIRE_NO_CONVERSION. + + * xterm.c (dumpglyphs): Check the member `encoding' of *FONTP while + setting `byte1' and `byte2' members of *CP. + +1997-07-24 Richard Stallman + + * Makefile.in (${lispsource}TAGS): Specify ETAGS var in inner make. + + * print.c (Vprint_gensym_alist): Renamed from printed_gensyms. + (Vprint_gensym): Now a Lisp_Object; Renamed from print_gensym. + (syms_of_print): Set up both as Lisp vars. + (PRINTPREPARE, PRINTFINISH): Don't clear Vprint_gensym_alist + if Vprint_gensym is a cons cell. + + * Makefile.in (../src/$(OLDXMENU)): New target. + + * xselect.c (selection_data_to_lisp_data): + Make the vector the right size, when format is 16. + + * emacs.c (main): Make --help msg end in newline. + + * xfns.c (Fx_create_frame): Don't fail to initialize `font'. + + * syntax.c (Fforward_comment): When count1 is negative, + return nil if FROM reaches STOP. + + * editfns.c (Fcurrent_message): New function. + (syms_of_editfns): defsubr it. + +1997-07-23 Marcus G. Daniels + + * xterm.c (XTread_socket): Trap the BadMatch error that can occur + after a XSetInputFocus if window is not visible. + +1997-07-23 Richard Stallman + + * xterm.c (XTread_socket) : Use FRAME_X_WINDOW + when calling XSetInputFocus. + + * buffer.c (syms_of_buffer): Doc fix. + + * eval.c (syms_of_eval): Doc fix. + +1997-07-22 Richard Stallman + + * xdisp.c (display_text_line): Don't count minibuf_prompt_width + twice in taboffset. + + * coding.c (syms_of_coding): Doc fix. + +1997-07-21 Richard Stallman + + * s/sol2.h (LIBS_SYSTEM): Undo previous change. + (HAVE_LIBKSTAT): Define it. + + * minibuf.c (choose_minibuf_frame_1): New function. + (read_minibuf): Make an unwind protect to run that. + (read_minibuf_unwind): Don't call choose_minibuf_frame here. + + * keyboard.c (read_char): Delete spurious UNGCPRO. + Add UNGCPRO before the longjmps to wrong_kboard_jmpbuf. + Initialize c before the GCPRO1. + + * frame.c (Fdelete_frame): Undo previous change. + + * s/hpux8.h (LD_SWITCH_SYSTEM_TEMACS): Define this + instead of LD_SWITCH_SYSTEM. + + * window.c (set_window_height): Allow all heights > 0 + for minibuffer windows. + (change_window_height): Fix one-off comparing DELTA with MAXIMUM. + + * xfns.c (Fx_create_frame): Default vertical-scroll-bars + as symbol, not boolean. + +1997-07-20 Richard Stallman + + * process.c (wait_reading_process_input): Initialize total_read. + Check for read_process_output giving back EIO. + + * keyboard.c (Fcommand_execute): gcpro c. + +1997-07-20 Geoff Voelker + + * w32term.c (w32_clear_end_of_line): Include scroll bar width. + +1997-07-19 Richard Stallman + + * s/irix6-0.h: Undo previous change. + + * xterm.c (XTread_socket) : + Don't use FRAME_XIC if it is null, here. + + * puresize.h (BASE_PURESIZE): Increased to 410000. + + * xdisp.c (redisplay_internal): Calculate new_count properly + for non-window displays. + +1997-07-18 Richard Stallman + + * minibuf.c (Fcompleting_read): gcpro def. + + * xterm.c (XTread_socket) : + For wm_take_focus, use x_any_window_to_frame. + + * fileio.c (Fread_file_name): If Fcompleting_read return the default + because the buffer want empty, replace that with an empty string. + +1997-07-18 Simon Marshall + + * data.c: Many doc fixes. + +1997-07-17 Geoff Voelker + + * coding.c (Ffind_operation_coding_system): Use Ffboundp to + check for a function entry. + + * fileio.c (Finsert_file_contents) [DOS_NT]: Use the coding + system to determine buffer_file_type. + (Fwrite_region): Only use Qbuffer_file_coding_system + before checking file-coding-system-alist if non-nil. + (Fwrite_region) [DOS_NT]: Delete conditional code. + +1997-07-17 Andreas Schwab + + * dispnew.c (direct_output_forward_char): Reenable check against + truncated text at end of line. + + * xdisp.c (display_string): Ignore W->left if OBEY_WINDOW_WIDTH is + zero. + +1997-07-17 Richard Stallman + + * xterm.c (dumpglyphs): Use 8-bit output to X, rather than 16-bit, + if the character values permit that. + + * .gdbinit (xcar, xcdr): Print with /x. + + * fileio.c (Fdo_auto_save): Temporarily clear minibuffer_auto_raise. + +1997-07-17 enami tsugutomo + + * xdisp.c (decode_mode_spec_coding): Fix typo; use `val' instead + of `coding-system'. + +1997-07-15 Andreas Schwab + + * xdisp.c (display_text_line): Handle the case of point being in + the invisible part of the line beyond the left margin. + +1997-07-15 Richard Stallman + + * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix previous change. + +1997-07-15 Kenichi HANDA + + * coding.h (CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted + (CODING_CATEGORY_IDX_ISO_7_ELSE): New macro. + (CODING_CATEGORY_IDX_ISO_8_ELSE): New macro + (CODING_CATEGORY_MASK_ISO_ELSE): This macro is deleted. + (CODING_CATEGORY_MASK_ISO_7_ELSE): New macro. + (CODING_CATEGORY_MASK_ISO_8_ELSE): New macro. + (CODING_CATEGORY_MASK_ANY): Adjusted for the above change. + + * coding.c (detect_coding_iso2022): Distinguish + coding-category-iso-7-else and coding-category-iso-8-else. + +1997-07-14 Richard Stallman + + * unexalpha.c (unexec): + Don't call update_dynamic_symbols if static link. + + * keyboard.c (read_char): Call timer_stop_idle unconditionally + at non_reread. + + * keyboard.c (make_lispy_event): Distinguish S-SPC from SPC. + + * cmds.c (internal_self_insert): Use replace_range when + number_to_delete is nonzero. + + * insdel.c (replace_range): New function. + + * keyboard.c (make_lispy_event): Handle non_ascii_keystroke + in the ASCII range. + + * xterm.c (XTread_socket): Treat SPC as a function key. + +1997-07-13 Marcus G. Daniels + + * xterm.c (x_draw_box): Use scratch_cursor_gc to draw the cursor + box using the color specified by cursor_pixel. + +1997-07-13 Eli Zaretskii + + * fileio.c (Fwrite_region) [DOS_NT]: Always use binary mode since + coding conversion now takes care of NL -> CRLF. + + * callproc.c (Fcall_process) [MSDOS]: Request EOL conversion of + the process output, unless we were promised it is binary. + + * coding.c: Substantial comment changes. + + * lread.c (init_lread): Don't add to load-path lisp subdirectories + of the source tree if the parent of the source was moved after + dumping Emacs. + +1997-07-13 Richard Stallman + + * search.c (compile_pattern_1): Don't declare val with CONST. + + * cmds.c (internal_self_insert): When overwriting, insert first + and then delete. + +1997-07-12 Richard Stallman + + * s/irix4-0.h (XPointer): Define as macro. + + * emacs.c (main): Use setrlimit only if RLIMIT_STACK. + +1997-07-11 Marcus G. Daniels + + * xdisp.c (decode_mode_spec): Initialize and use `p' (for the termcap + case). + + * dispnew.c (init_display): Go ahead and prepare for + a X configuration in the CANNOT_DUMP case. + +1997-07-11 Andreas Schwab + + * editfns.c (get_system_name): Don't crash if Vsystem_name does + not contain a string. + * filelock.c (lock_file_1): Don't crash if Fuser_login_name or + Fsystem_name don't return strings. + (current_lock_owner): Likewise. + + * ralloc.c (r_alloc_reinit): New function. + * emacs.c (main) [DOUG_LEA_MALLOC]: Call it when restarting a + dumped Emacs. + +1997-07-11 Richard Stallman + + * m/news-r6.h: Renamed from news-risc6.h. + +1997-07-10 Andreas Schwab + + * xdisp.c (display_text_line): Exit the outer loop immediately + when the right margin has been reached. + + * lisp.h (EXFUN, P_): New definitions. Use them to declare + prototypes for external functions. + + * xterm.c (dumpglyphs): Declare local variable first_ch as + Lisp_Object, not int. + * xselect.c (selection_data_to_lisp_data): Convert Fmake_vector + and Faset arguments to Lisp_Integer. + (clean_local_selection_data): Likewise. + * x-list-font.c (Fx_list_fonts): Fix Fnconc argument. + * window.c (Fcoordinates_in_window_p): Convert Fcons arguments to + Lisp_Integer. + (save_window_save): Convert Fset_marker argument to Lisp_Integer. + * textprop.c (interval_of): Convert args_out_of_range arguments to + Lisp_Integer. + * syntax.c (init_syntax_once): Convert Fmake_vector argument to + Lisp_Integer. + * process.c (Fprocess_send_region): Convert move_gap argument to int. + * mocklisp.c (Fml_arg): Add missing Fread_string arguments. + * minibuf.c (Fread_from_minibuffer): Remove extra get_keymap argument. + (Fminibuffer_complete): Convert Fset_window_start argument to + Lisp_Integer. + * keyboard.c (command_loop_1): Add missing message2 argument. + (menu_bar_items): Add missing get_keyelt argument. + (follow_key): Likewise. + (read_key_sequence): Likewise. + * intervals.c (set_point): Convert call2 arguments to Lisp_Integer. + * fileio.c (Fwrite_region): Fix call2 argument. + (Fread_file_name): Convert Fcons argument to Lisp_Integer. + * editfns.c (Fcurrent_time_zone): Convert Fmake_list argument to + Lisp_Integer. + (Ftranspose_regions): Convert Fset_text_properties arguments to + Lisp_Integer. + * doc.c (Fsubstitute_command_keys): Add missing describe_map_tree + argument. + * coding.c (Ffind_coding_system): Use call1, not call2. + * cmds.c (Fdelete_backward_char): Convert Finsert_char argument to + Lisp_Integer and add missing argument. + (internal_self_insert): Convert Fmove_to_column argument to + Lisp_Integer and add missing argument. + * ccl.c (Fregister_ccl_program): Convert Fmake_vector argument to + Lisp_Integer. + (syms_of_ccl): Likewise. + * category.h (CATEGORY_DOCSTRING): Convert Fchar_table_extra_slot + argument to Lisp_Integer. + (CATEGORY_TABLE_VERSION): Likewise. + * buffer.c (set_buffer_internal_1): Convert Fset_marker argument + to Lisp_Integer. + (set_buffer_temp): Likewise. + (fix_overlays_in_range): Likewise. + + * xdisp.c (message2_nolog): Don't call fwrite will null string. + +1997-07-10 Geoff Voelker + + * w32.c (sys_shutdown): New function. + * s/ms-win32.h: Define HAVE_SHUTDOWN. + +1997-07-10 Eli Zaretskii + + * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer + only if HAVE_X_WINDOWS is defined. + +1997-07-09 Marcus G. Daniels + + * xdisp.c (echo_area_display): Don't offset using left-side + scroll bar width because it is included in the width; clear + the entire line. + +1997-07-09 Richard Stallman + + * process.c (read_process_output): Add cast. + + * filelock.c (current_lock_owner, lock_file_1): Add casts. + + * xdisp.c (redisplay_internal): Fix previous change. + + * s/irix4-0.h (C_SWITCH_SYSTEM): Add -Wf,-XNh option. + + * s/ms-w32.h: Don't define HAVE_SHUTDOWN. + + * frame.c (Fdelete_frame): Always err for deleting the only frame. + +1997-07-09 Kenichi HANDA + + * fontset.c (Ffont_info): Make vector of correct size. + + * xterm.c (x_load_font): Get value of fontp->height from + ascent and descent members of structure font->max_bounds. + (dumpglyphs): Draw background by FillSolid if a font is too short. + +1997-07-08 Richard Stallman + + * xterm.c (x_term_init): Don't use initializer for null_bits. + + * cm.h, sysdep.c, terminfo.c: Fix previous change. + + * fns.c (syms_of_fns): Fix previous change. + + * xdisp.c (decode_mode_spec) : Display buffer coding system + last of the three. + + * doprnt.c: Use #ifdef to test STDC_HEADERS. + + * Makefile.in (shortlisp): Fix typo. + +1997-07-08 enami tsugutomo + + * emacs.c (main) [__NetBSD__]: Round up new stack limit to page bdry. + + * fileio.c (Finsert_file_contents): Give up match-end only if + coding requires conversion. Adjust end of non-matching text area + to multibyte character boundary if enable_multibyte_character is + non-nil. + +1997-07-08 Richard Stallman + + * xdisp.c (decode_mode_spec_coding): Really don't display + EOL indicator when eol_flag is 0. + (echo_area_display): Use proper width when scroll bars on left. + + * syntax.h (struct gl_state_s): New field `offset'. + (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set offset field. + (SETUP_SYNTAX_TABLE): Clear offset field. + (UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): + (UPDATE_SYNTAX_TABLE_BACKWARD): Use the offset field. + + * s/sol2.h (LIBS_SYSTEM): Add -lkvm and -lelf. + +1997-07-07 Richard Stallman + + * editfns.c (Fuser_full_name): Declare p, q and r as unsigned char *. + + * xterm.c (XTread_socket) : Call XFilterEvent. + + * terminfo.c (ospeed): + Define as short, unless HAVE_TERMIOS_H and LINUX. + + * cm.h (ospeed): Declare as short unless HAVE_TERMIOS_H and LINUX. + * sysdep.c (ospeed): Likewise. + + * window.c: Include blockinput.h. + (Fset_window_configuration): Block input around frobbing the frame. + Preseve point in the current buffer if we do not switch + to a different one. + +1997-07-06 Richard Stallman + + * xdisp.c (redisplay_internal): Fix previous change. + (echo_area_display): Use proper vpos when clearing extra minibuf lines. + +1997-07-04 Kenichi HANDA + + * callproc.c (Fcall_process): If enable-multibyte-characters is + nil, do not encode arguments for process, and decode output of + process by emacs-mule. + (Fcall_process_region): If enable-multibyte-characters is nil, do + not encode text to be given to process, and decode output of + process by emacs-mule. + + * process.c (Fstart_process): If enable-multibyte-characters is + nil, set coding system for decoding output of process to + emacs-mule, and set coding system for encoding to nil. + (Fopen_network_stream): If enable-multibyte-characters is nil, set + coding systems for decoding and encoding to nil. + + * fileio.c (Finsert_file_contents): If enable-multibyte-characters + is nil, decode character code by emacs-mule. + (Fwrite_region): Use buffer-file-coding-system for encoding if + enable-multibyte-characters is nil. + + * coding.c (Qemacs_mule, inhibit_eol_conversion): New variables. + (setup_coding_system): If inhibit_eol_conversion is 0, set + coding->eol_type to CODING_EOL_LF. + (syms_of_coding): Initialize and staticpro Qemacs_mule. Change + error-message property of coding-system-error. Declare + inhibit-eol-conversion as Lisp variable. + (system_eol_type): New variable. + (init_coding_once): Initialize it. + (ENCODE_SJIS_BIG5_CHARACTER): Bug in encoding a BIG5 character + fixed. + + * coding.h (Qemacs_mule): Extern it. + + * xterm.c (x_list_fonts): Initialize the variable LIST to Qnil. + +1997-07-06 Richard Stallman + + * xdisp.c (display_menu_bar): Always pass W to display_string. + + * unexalpha.c (update_dynamic_symbols): Add cast when setting reladdr. + + * sysdep.c (init_system_name): Don't be fooled if getdomainname + string starts with a period. + +1997-07-05 Richard Stallman + + * xdisp.c (redisplay_internal): At the end, if more frames have + become visible, repeat the redisplay. + (decode_mode_spec): Don't display subprocess coding systems. + Don't display EOL for keyboard and terminal coding systems. + + * xfns.c (x_set_font): Funcall Qface_set_after_frame_default. + (Qface_set_after_frame_default): New variable. + (syms_of_xfns): Initialize and staticpro it. + + * xterm.c (x_make_frame_visible): Don't move the frame + if it was iconified--only if it was invisible. + +1997-07-04 Richard Stallman + + * gmalloc.c: Rename macro __P to PP. + + * floatfns.c, data.c, doprnt.c: Include float.h before lisp.h. + + * dired.c (Ffile_attributes): Use cast to avoid warnings. + + * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Treat nil like a buffer. + + * lread.c (Vpreloaded_file_list): New variable. + (syms_of_lread): Set up Lisp variable. + (Fload): Add to Vpreloaded_file_list, if dumping. + +1997-07-04 Andreas Schwab + + * editfns.c (Fformat): Add second argument in call to Ftruncate. + + * alloc.c, buffer.c, casefiddle.c, casetab.c, category.c, + category.h, ccl.c, coding.c, editfns.c, fileio.c, fns.c, indent.c, + intervals.c, intervals.h, keymap.c, lisp.h, minibuf.c, print.c, + syntax.c, syntax.h, sysdep.c, textprop.c, xfns.c: Fix numerous + bugs with inappropriate mixing of Lisp_Object with int. + * config.in (RE_TRANSLATE): Define to extract integers from + array of Lisp_Objects. + +1997-07-04 Richard Stallman + + * buffer.c (overlay_strings): Finish up previous change. + + * Makefile.in (lisp, shortlisp): Some files moved to subdirs. + +1997-07-03 Richard Stallman + + * s/sunos4shr.h (LD_SWITCH_SYSTEM_TEMACS): Add #undef. + + * syssignal.h [sigmask] (SIGEMPTYMASK): Define to use sigmask. + + * eval.c (Fsignal, find_handler_clause): If ERROR_SYMBOL + is nil, assume it's in the car of DATA. + * alloc.c (memory_full): Pass Qnil to Fsignal for ERROR_SYMBOL. + + * s/sunos4-0.h (LD_SWITCH_SYSTEM_TEMACS): Defined. Move -e here. + (LD_SWITCH_SYSTEM): Don't use -e option here. + + * Makefile.in (ALL_LDFLAGS): Use LD_SWITCH_SYSTEM_TEMACS. + +1997-07-02 Richard Stallman + + * process.c (send_process): Make buf and temp_buf `unsigned char *'. + + * buffer.c (overlay_strings): Use unsigned char for things + that relate to overlay_str_buf. + + * syssignal.h (sigpause): Don't define if already defined. + + * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable. + +1997-07-02 Andreas Schwab + + * Makefile.in (lisp, shortlisp): Add widget.elc. + +1997-07-02 Kenichi Handa + + * xselect.c (selection_data_to_lisp_data): Call free instead of + xfree. + + * coding.h (struct coding_system): New members + character_unification_table_for_decode and + character_unification_table_for_encode. + + * coding.c (Vstandard_character_unification_table_for_decode): + Name changed from Vstandard_character_unification_table_for_read. + (Vstandard_character_unification_table_for_encode): Name changed + from Vstandard_character_unification_table_for_write. + (Qcharacter_unification_table_for_decode): New variable. + (Qcharacter_unification_table_for_encode): New variable. + (decode_coding_iso2022): Adjusted for the above name change. + (encode_coding_iso2022): Likewise. + (ENCODE_ISO_CHARACTER): Bug of handling return value of unify_char + fixed. + (DECODE_SJIS_BIG5_CHARACTER): New macro. + (decode_coding_sjis_big5): Handle character unificatoin table. + Use macro DECODE_SJIS_BIG5_CHARACTER. + (encode_coding_sjis_big5): Handle character unificatoin table. + Use macro ENCODE_SJIS_BIG5_CHARACTER. + (setup_coding_system): Handle members + character_unification_table_for_decode and + character_unification_table_for_encode of the variable coding. + (Ffind_operation_coding_system): Renamed from Ffind_coding_system. + (syms_of_coding): Initialize and staticpro + Qcharacter_unification_table_for_decode and + Qcharacter_unification_table_for_decode. Declare + Ffind_operation_coding_system as Lisp functions. Declare + Vstandard_character_unification_table_for_decode and + Vstandard_character_unification_table_for_encode as Lisp + variables. + + * charset.c (Fchar_width): Check if the current buffer has display + table. + + * fileio.c (Finsert_file_contents): Doc-string fixed. Call + Ffind_operation_coding_system. + (Fwrite_region): Call Ffind_operation_coding_system. + + * callproc.c: Call Ffind_operation_coding_system. + + * process.c (Fstart_process): Call Ffind_operation_coding_system. + (Fopen_network_stream): Likewise. + + * fontset.h: Move "#endif /* _FONTSET_H */" at the tail. + +1997-07-02 Richard Stallman + + * sysdep.c (init_system_name): Don't accept "(none)" as domain. + + * xterm.c (x_make_frame_visible): Check has_been_visible + field before the UNBLOCK_INPUT. + +1997-07-01 Richard Stallman + + * coding.c (syms_of_coding): Change initial values of + eol_mnemonic_... variables. + + * xdisp.c (decode_mode_spec_coding): Clean up handling of + eol conversions. + + * .gdbinit (xcons): Print car and cdr in hex. + (nextcons): New command. + + * xfns.c (x_set_scroll_bar_width): By default, use enough + columns to give 14 or more pixels. + +1997-06-30 Geoff Voelker + + * emacs.c (decode_env_path): Ensure path elements use proper + directory separator. + + * keyboard.c (make_lispy_event): + Check that ISO_FUNCTION_KEY_OFFSET is defined. + + * process.c (READ_CHILD_OUTPUT): Deleted. + (read_process_output): Use read instead of READ_CHILD_OUTPUT. + + * makefile.nt (OBJ2): Include new source files. + + * s/ms-w32.h: Duplicate undefs from config.in to check completeness. + (STDC_HEADERS, HAVE_TZNAME, HAVE_MKTIME): Define to have a value. + (HAVE_GETPAGESIZE, HAVE_SETLOCALE, HAVE_SHUTDOWN, HAVE_TZSET, + HAVE_LIMITS_H, HAVE_STRERROR): Define. + [HAVE_NTGUI] (HAVE_MENUS): Define. + (SYSTEM_PURESIZE_EXTRA): Increase value. + + * unexw32.c, w32heap.c: Add pragma to force zero initialized + data into .data segment. + + * w32console.c, w32term.c: Include charset.h. + + * w32fns.c (syms_of_w32fns): Delete defsubrs of Sfocus_frame and + Sunfocus_frame. + + * w32heap.c (getpagesize): Define. + +1997-06-30 Richard Stallman + + * editfns.c (Fformat_time_string): Move doc string outside DEFUN. + + * buffer.c (overlay_str_buf): Declare as unsigned char *. + + * fns.c (Fy_or_n_p, Fyes_or_no_p): Obey use_dialog_box. + (use_dialog_box): New variable, controls whether to use dialog boxes. + (syms_of_fns): Set up Lisp variable. + +1997-06-28 Richard Stallman + + * buffer.c (syms_of_buffer): enable-multibyte-characters is a user var. + + * callproc.c (Fcall_process): Fix previous change. + + * fns.c (concat): Use XCONS rather than Fcar, Fcdr--for known cons. + (Fassq, assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq): Likewise. + (Fdelete, Fplist_get, mapcar1, Fmember, Fmemq): Likewise. + + * lread.c (init_lread): Add leim subdir, like lisp subdir. + + * syntax.c (scan_sexps_forward): Split up a complex if-test. + + * keyboard.c (read_char): Add a call to swallow_events + when deciding whether to redisplay. + (swallow_events): Add forward declaration. + + * sysdep.c [HAVE_TERMIOS_H]: Include termios.h. + + * callproc.c (Fcall_process): Avoid storing alloca result + directly into array element. + + * process.c (wait_reading_process_input): If wait_for_cell, + do check for keyboard input and swallow events, just don't exit. + (max): New macro. + (wait_reading_process_input): Pass a smaller first arg to select. + + * buffer.c (Fbury_buffer): Undo previous change. + +1997-06-27 Richard Stallman + + * window.c (temp_output_buffer_show): + Copy default-directory from current buffer. + + * cm.h (ospeed): Always use `extern' in the declaration. + + * Makefile.in (lisp, shortlisp): Some files are in international/. + + * unexelf.c [__NetBSD__]: Add some conditionals for NetBSD. + + * unexelf1.c: File deleted. + +1997-06-26 Richard Stallman + + * s/unixware.h: New file. + +1997-06-25 Richard Stallman + + * fileio.c (Finsert_file_contents): + Pass new arg to prepare_to_modify_buffer. + + * insdel.c (prepare_to_modify_buffer, signal_before_change): + New argument PRESERVE_PTR. + (del_range_1): Use PRESERVE_PTR to preserve FROM. + Save the length of the range separately. + (NULL): Define if not defined. + +1997-06-23 Karl Heuer + + * fileio.c (Ffile_directory_p): Doc fix. + +1997-06-23 Richard Stallman + + * buffer.c (Fbuffer_list): New optional argument FRAME. + + * fns.c (Freverse): Simplify. + +1997-06-22 Richard Stallman + + * s/bsdos3.h: New file. + + * s/bsdos2.h (KERNEL_FILE): New overriding definition. + + * keyboard.c (read_avail_input): Check for failure with EIO. + + * s/gnu-linux.h (LD_SWITCH_SYSTEM) [__mips__]: Alternate definition. + + * m/mips.h: Test __linux__ along with NEWSOS5. + (KERNEL_FILE, UNEXEC): Don't redefine them if __linux__. + [__linux__] (TEXT_START, DATA_START, DATA_SEG_BITS): + Alternate definitions. + + * emacs.c (Fdump_emacs): Bind command-line-processed to nil here. + + * xdisp.c (init_xdisp): Pay attention to FRAME_MENU_BAR_LINES. + + * emacs.c (Fdump_emacs): Error if not run in batch mode. + + * s/hpux10.h (LIBS_TERMCAP): Use -ltermcap instead of -lc. + + * unexelf.c [__sony_news && _SYSTYPE_SYSV]: Include sym.h + and sys/elf_mips.h. + (unexec): Add __sony_news && _SYSTYPE_SYSV conditionals. + Add a _nec_ews_svr4 conditional. + + * s/newsos6.h: New file. + + * m/news-risc6.h: New file. + + * frame.c (Fdelete_frame): Clear echo_area_glyphs if it was + in this frame. + + * process.c (wait_reading_process_input): Don't check for + keyboard input if wait_for_cell. + + * minibuf.c (read_minibuf): New arg allow_props. + If it is 0, discard text properties from the result. Callers changed. + (minibuffer_allow_text_properties): New variable. + (Fread_from_minibuffer): That variable controls allow_props arg. + (syms_of_minibuf): Set up Lisp var. + +1997-06-21 Richard Stallman + + * insdel.c (del_range_1): Make markers for TO and FROM + in case prepare_to_modify_buffer changes the text. + +1997-06-21 Kenichi Handa + + * fontset.h (font_idx_temp): Extern it. + (FS_LOAD_FONT): New macro. + + * fontset.c (font_idx_temp): New temprary variable used in + FS_LOAD_FONT. + + * xfaces.c (Fset_face_attribute_internal): Use FS_LOAD_FONT + instead of calling fs_load_font directly. + + * xterm.c (dumpglyphs): Use FS_LOAD_FONT. + (x_new_fontset): If frame F has already using FONTSET, avoid the + duplicated work. Use FS_LOAD_FONT. + (x_list_fonts): Call Fassoc to search Valternate_charset_table. + (x_load_font): Get around a buf of XListFonts + +1997-06-20 Richard Stallman + + * print.c (Ferror_message_string): Optimize (error STRING) case. + +1997-06-19 Richard Stallman + + * process.c (Fprocess_send_eof): Properly conditionalize prev. change. + +1997-06-18 Richard Stallman + + * process.c (Fprocess_send_eof): Use shutdown, if it's a socket. + Don't close the output descriptor if that is also the input descriptor. + + * config.in (HAVE_SHUTDOWN): Add #undef. + + * editfns.c (Fchar_before): Validate N after decrementing. + Don't use POS as integer. + +1997-06-18 Kenichi Handa + + * coding.c (detect_coding_iso2022): Initilize mask correctly. + + * fns.c (concat): Pay attention to multibyte characters when + TARGET_TYPE is Lisp_String. + +1997-06-17 Richard Stallman + + * process.c (wait_reading_process_input): Fix previous change. + +1997-06-16 Richard Stallman + + * fileio.c (Fdo_auto_save): Use stdio to write the save-list file. + + * fileio.c (Finsert_file_contents): Don't give up on the fast + replace method if the coding remains undecided. + +1997-06-15 Richard Stallman + + * process.c (wait_reading_process_input): When exiting because + the process WAIT_PROC has terminated, first read all its output. + +1997-06-14 Richard Stallman + + * editfns.c (Fchar_after, Fchar_before): Make arg optional. + +1997-06-14 Karl Heuer + + * buffer.h (point): Obsolete macro deleted in favor of PT. + * editfns.c (Fprevious_char): Use PT, not point. + * cmds.c (internal_self_insert): Use PT, not point. + +1997-06-12 Richard Stallman + + * bytecode.c (Bread_char): Deleted. + (Bsave_current_buffer_1): New byte code. + (Fbyte_code): Delete handling Bread_char. + Handle Bsave_current_buffer_1 like Bsave_current_buffer. + +1997-06-11 Paul Eggert + + * callproc.c (Fcall_process): Use setsid to disconnect child + process from controlling terminal. + +1997-06-10 Richard Stallman + + * unexalpha.c (unexec): Call update_dynamic_symbols unconditionally. + (update_dynamic_symbols): Define unconditionally, but do nothing + if __linux__or __NetBSD__. + + * s/netbsd.h (HAVE_TEXT_START, START_FILES, UNEXEC): + Don't define these if __ELF__. + (RUN_TIME_REMAP, N_PAGSIZ, N_BSSADDR, N_TRELOFF): Likewise. + + * m/alpha.h (TEXT_END, COFF, DATA_END): + Define them if __NetBSD__ just as if LINUX. + (HAVE_TEXT_START): Define, if __NetBSD__ and __ELF__. + +1997-06-10 Erik Naggum + + * fileio.c (Fwrite_region): Fix previous doc change. + +1997-06-10 Richard Stallman + + * process.c (wait_reading_process_input): Return if unread events + appear. + + * keyboard.c (kbd_buffer_get_event): When wait_reading_process_input + returns, check Vunread_command_events. + +1997-06-09 Richard Stallman + + * sysdep.c (init_sys_modes): Enable VSTART and VSTOP + if flow_control. + + * editfns.c (Finsert_char): Check QUIT. + + * fontset.c (list_fontsets, fs_load_font): + fast_c_string_match_ignore_case renamed. + + * xterm.c (x_list_fonts): fast_c_string_match_ignore_case renamed. + + * search.c (fast_c_string_match_ignore_case): + Renamed from fast_string_match_ignore_case. Set re_match_object. + +1997-06-09 Kenichi Handa + + * buffer.c (init_buffer_once): Inititialize the member + buffer_file_coding_system. + (syms_of_buffer): Declare Lisp variables + default-buffer-file-coding-system and buffer-file-coding-system. + + * buffer.h (struct buffer): New member buffer_file_coding_system. + + * coding.c (Vcoding_system_alist): Deleted. + (Qcoding_system_spec): Renamed from Qcoding_system_vector. + (Vdefault_process_coding_system, Vfile_coding_system_alist, + Vprocess_coding_system_alist, Vnetwork_coding_system_alist): New + variables. + (Ffind_coding_system): Adjusted for the above change. + (syms_of_coding): Declare them as lisp variables. + (Fcheck_coding_system): Pass list as DATA argument to Fsignal. + + * coding.h (Vdefault_process_coding_system): Extern it. + + * callproc.c (Fcall_process): Pay attention to + Vdefault_process_coding_system. + (Fcall_process_region): Likewise. + + * process.c (Fstart_process): Likewise. + (Fopen_network_stream): Likewise. + + * xdisp.c (decode_mode_spec): Access the value of + buffer-file-coding-system by b->buffer_file_coding_system. + + * fileio.c (Fwrite_region): Cancel the 7th argument CODING_SYSTEM + added by the previous change. + (auto_save_1): Adjusted for the above change. + + * data.c (Faset): Inherit default value correctly while creating + sub char table. + + * xselect.c (selection_data_to_lisp_data): Change coding system + name to iso-latin-1. + (lisp_data_to_selection_data): Likewise. + + * xterm.c (dumpglyph): Shift baseline for such a font that is + shorter but ascent or descent exceed the line height. + For a larger font, draw a small hook at right-bottom edge instead + of a rectangle. + +1997-06-04 Richard Stallman + + * keymap.c (Fcopy_keymap): After copying a sub-char-table, + do store the copy. + +1997-06-04 Kenichi Handa + + * casefiddle.c (casify_object): Fix bug on handling a character + argument. + +1997-06-02 Richard Stallman + + * s/netbsd.h (NO_SHARED_LIBS): Test __alpha__ && ! __ELF__. + + * keyboard.c (syms_of_keyboard): Doc fix. + + * search.c (Freplace_match): If opoint is 0, that's relative to ZV. + + * intervals.c (find_interval): No longer inline. + +1997-06-01 Richard Stallman + + * lisp.h (VALMASK, GCTYPEMASK, MARKBIT, ARRAY_MARK_FLAG) + (PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): + Define regardless of NO_UNION_TYPE. + + * xfns.c (Fx_create_frame): Use XINT to access parent. + + * syntax.c (Fsyntax_table_p, check_syntax_table): Use EQ. + (Fmodify_syntax_entry): Use XINT to access c. + (describe_syntax): Use XINT to access first. + + * search.c (search_buffer): Use XINT around refs to trt. + + * lisp.h (concat3, get_truename_buffer): Declare them. + + * keyboard.c (read_key_sequence): Change some locals to `int'. + + * indent.c (compute_motion): Use XFASTINT on width_table elts. + + * fns.c (map_char_table): Use XSETFASTINT. + + * fileio.c (Fwrite_region, build_annotations): + Set start and end using XSETFASTINT. + + * editfns.c (Fcompare_buffer_substrings): trt contains Lisp_Objects. + (transpose_markers): Use marker_position, not Fmarker_position. + + * buffer.c (Fmove_overlay): Clean up setting o_beg and o_end. + + * alloc.c (Fmake_byte_code): Set val from p, not from val. + (make_event_array): Convert nargs to Lisp_Object. + + * m/powerpcle.h: New file. + + * unexalpha.c [__NetBSD__]: Don't include filehdr.h, aouthdr.h + scnhdr.h or syms.h. Add many other conditionalized definitions. + + * m/alpha.h [__NetBSD__]: Include stdlib.h, not alloca.h. + (ORDINARY_LINK): Defined (if __NetBSD__). + + * s/netbsd.h [__alpha__] (NO_SHARED_LIBS): Defined. + +1997-05-31 Richard Stallman + + * lread.c (init_lread): Sometimes add to load-path + the lisp and site-lisp dirs under the source directory. + + * xfaces.c: Include frame.h unconditionally. + + * Makefile.in (stamp-oldxmenu): Always define this + one way or another. + + * search.c (Freplace_match): Fix previous change. + + * syntax.c (back_comment): Detect 2-char comment starts properly. + New arg COMSTYLE; callers changed. + (Fforward_comment): Handle unmatched two-character comment starters. + + * intervals.c (move_if_not_intangible): Fix previous change. + + * Makefile.in (XOBJ, MSDOS_OBJ, SOME_MACHINE_OBJECTS): Delete xfaces.o. + (obj): Add xfaces.o. + (FACE_SUPPORT, SOME_MACHINE_LISP): Delete faces.elc. + (shortlisp, lisp): Add faces.elc + + * emacs.c (main): Call syms_of_xfaces whenever ! HAVE_NTGUI. + + * xfaces.c (Fframe_face_alist, Fset_frame_face_alist): + Define unconditionally. + (Finternal_next_face_id, next_face_id): Likewise. + (syms_of_xfaces): Define unconditionally, + but conditionalize some of the contents. + +1997-06-01 Roderick Schertler + + * sysdep.c (init_baud_rate): Use INIT_BAUD_RATE if it's defined. + (sys_signal): Lose DGUX special case. + + * s/dgux.h (signal): Define only if not NO_DGUX_SIGNAL_REDEF. + * s/dgux4.h: New file. + +1997-05-30 Richard Stallman + + * xterm.c (process_expose_from_menu, XTread_socket): + Set has_been_visible field. + (x_make_frame_visible): Don't do XMoveWindow unles has_been_visible. + + * xterm.h (struct x_output): New field has_been_visible. + + * lread.c (intern): Don't make a pure string here, + since Fintern does that. + + * Makefile.in (lisp, shortlisp): Use cus-start.el, not .elc. + + * data.c (Farrayp): Accept bool-vectors and char-tables. + + * fns.c (Fchar_table_range, Fset_char_table_range): + Make one-element vector work for RANGE. + +1997-05-30 NIIBE Yutaka + + * term.c (insert_glyphs): Use &, not &&. + +1997-05-29 Richard Stallman + + * search.c (Freplace_match): Use move_if_not_intangible + to handle intangible text better. + + * intervals.c (move_if_not_intangible): New function. + + * editfns.c (Fcurrent_time_string): Doc fix. + + * eval.c (Fsignal): Use call2 to call Vsignal_hook_function. + +1997-05-28 Richard Stallman + + * dispnew.c (scrolling): If a line is not enabled, + give it an infinite draw_cost. + + * data.c (Faset): Doc fix. + + * alloc.c (Fmake_bool_vector): Doc fix. + + * buffer.c (syms_of_buffer): Doc fix. + +1997-05-27 Kenichi Handa + + * fontset.h (FONT_ENCODING_NOT_DECIDED): New macro. + + * fontset.c (fs_load_font): Before using a fontset, be sure to + load the ASCII font of the fontset. Size and height of a fontset + is set to the same as those of the ASCII font of the fontset. Use + macro FONT_ENCODING_NOT_DECIDED. + + * xterm.c (x_load_font): Use macro FONT_ENCODING_NOT_DECIDED. + + * fns.c (map_char_table): For sub char-table, index should be + start from 0 (not from 32) considering a composite character. + (Fmap_char_table): Doc-string adjusted. The variable indices is + declared as an array of Lisp_Object. + + * coding.h (struct iso2022_spec): Member requested_designation is + changed to array of `unsigned char'. + (CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION): New macro. + + * coding.c (encode_invocation_designation): Use macro + CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION. + (encode_designation_at_bol, setup_coding_system): Likewise. + (Fset_terminal_coding_system_internal): Renamed from + Fset_terminal_coding_system. Make it non-interactive. + Do not call Fredraw_display. + (Fset_keyboard_coding_system_internal): Renamed from + Fset_keyboard_coding_system. Make it non-interactive. + + * charset.c (Ffind_charset_string): The variable CHARSETS is + changed to (int *). + + * casetab.c (case_temp1, case_temp2): New variables temporarily + used in macros DOWNCASE and UPCASE1. + (set_case_table): Setup canonical table correctly. Use + map_char_table instead of compute_trt_inverse. + (set_canon, set_identity, shuffle): New functions given to + map_char_table. + (compute_trt_identity, compute_trt_shuffle, compute_trt_inverse): + Deleted. + + * casefiddle.c (casify_object): Handle multibyte characters. + (casify_region): Change the way of handling multibyte characters. + + * lisp.h (CHAR_TABLE_REF): Do not check validity of CT. + (CHAR_TABLE_SET): Likewise. + (DOWNCASE_TABLE): Return case-table instead of the `contents' field. + (UPCASE_TABLE): Likewise. + (DOWNCASE): Use CHAR_TABLE_REF. + (NOCASEP): Use UPCASE1. + (UPCASE1): Use CHAR_TABLE_REF. + + * search.c (looking_at_1): Change using DOWNCASE_TABLE. + (string_match_1): Likewise. + + * editfns.c (Fchar_equal): Make it handle case of multibyte + characters. + +1997-05-27 Richard Stallman + + * window.c (Fsplit_window): Ignore FRAME_NO_SPLIT_P here. + (inhibit_frame_unsplittable): Variable deleted. + (syms_of_window): Don't set up Lisp variable. + + * xterm.c (XTread_socket) : Don't call + x_wm_set_size_hint if window has no parent yet. + Simplify the call to x_real_positions. + (x_make_frame_visible): Use win_gravity to decide whether to + call XMoveWindow. Also, don't do it if frame already visible. + + * xfns.c (x_real_positions): Subtract border width from results. + +1997-05-26 Richard Stallman + + * window.c (syms_of_window): Initialize inhibit_frame_unsplittable. + + * w16select.c (Fwin16_set_clipboard_data): Pass new arg to sit_for. + + * fileio.c (Fdo_auto_save): Pass new arg to sit_for. + + * callint.c (Fcall_interactively): Pass new arg to sit_for. + + * keyboard.c (command_loop_1): Pass 1 as new arg to sit_for. + (read_char): Likewise, pass 0 for it. + + * dispnew.c (sit_for): New arg initial_display. + (Fsit_for): Pass new arg. + + * indent.c (compute_motion): Return correctly if skip_invisible + takes us past TO. + + * xterm.c (XTread_socket) : Don't make an iconify_event + when frame was made invisible. + (x_make_frame_visible): Put the call to x_set_offset back as it was. + Near the end, instead call XMoveWindow, but only if original + positions were not negative. + +1997-05-26 Simon Marshall + + * window.c (syms_of_window): Change frame_override_unsplittable to + inhibit_frame_unsplittable. + (Fsplit_window): Check inhibit_frame_unsplittable. + +1997-05-25 Richard Stallman + + * window.c (Fdisplay_buffer): Use B not b for interactive argument. + + * xfns.c (x_real_positions): Directly compare the frame's window + or parent with the root window. + + * xterm.c (x_make_frame_visible): Call x_set_offset only after + mapping the window and accepting input. + (x_calc_absolute_position): Do nothing if current position + is already for the top-left corner. + Handle errors in XTranslateCoordinates. + (XTread_socket): Simplify handling of ConfigureNotify events. + Always call x_wm_set_size_hint for them. + No need to call XTranslateCoordinates here. + (x_clear_errors): New function. + +1997-05-20 Erik Naggum + + * editfns.c (Fformat_time_string): Doc update. + +1997-05-20 Richard Stallman + + * editfns.c (Fformat_time_string): Doc update. + Handle emacs_strftime returning -1. + If it returns 0, compute actual buffer size needed. + + * Makefile.in (shortlisp): Add custom.elc and cus-start.elc. + + * fns.c (internal_equal): When comparing strings, ignore text props. + Friedman offers to fix anything that has trouble due to this. + + * dispnew.c (sit_for): Delete #if 0. + + * keymap.c (access_keymap, store_in_keymap): Don't look in a char-table + for a character that has modifier bits. + +1997-05-19 Richard Stallman + + * keymap.c (access_keymap): For a char-table, + look only for chars with no modifier bits. + +1997-05-19 Kenichi Handa + + * s/osf1.h (HAVE_TERMIOS): Define it. + + * m/alpha.h (PTY_OPEN): Call sigblock instead of sigblockx. + + * Makefile.in (xdisp.o): Add coding.h in dependency list. + + * fontset.h (struct font_info): Change the declaration of encoding + from `char' to `unsigned char'. + + * xterm.c (x_load_font): Set 4 instead of -1 in fontp->encoding[1] + for the meaning of `can not be decided'. + + * fontset.c (fs_load_font): Modified to cope with the above + change. + + * charset.c (Ffind_charset_region): Change the declaration of + charsets from `char' to `int'. + (find_charset_in_str): Likewise. + + * xselect.c (lisp_data_to_selection_data): Likewise. + + * coding.h (struct iso2022_spec): Change the declaration of + requested_designation from `char' to `int'. + +1997-05-18 Richard Stallman + + * callint.c (Fcall_interactively): Use num_input_events. + + * keyboard.h (num_input_events, num_nonmacro_input_events): + Renamed from ..._input_chars. + + * eval.c (num_nonmacro_input_events): + Renamed from num_nonmacro_input_chars. + + * keyboard.c (num_nonmacro_input_events): + Renamed from num_nonmacro_input_chars. + (syms_of_keyboard): Rename Lisp variable. + +1997-05-18 Erik Naggum + + * lisp.h (Vtty_erase_char): Declared. + * keyboard.c (Vtty_erase_char): Variable defined + (syms_of_keyboard): Set up Lisp variable. + Also set up `num-nonmacro-input-chars' to report actual keystrokes. + * sysdep.c (init_sys_modes): Initialize Vtty_erase_char if + possible from the stty settings, otherwise to nil. + + * lread.c (Fintern): Give keywords a value when interned. + + * dired.c (Ffile_attributes): Return inode number as a cons + only if necessary. + +1997-05-18 Richard Stallman + + * keymap.c (copy_keymap_1): Do nothing if ELT isn't a keymap. + +1997-05-17 Richard Stallman + + * frame.c (make_terminal_frame): Don't add `Emacs' to frame name. + +1997-05-16 Richard Stallman + + * sysselect.h (SELECT_TYPE): Don't define if already defined. + + * cmds.c (nonascii_insert_offset): New variable. + (Fself_insert_command, internal_self_insert): + Add nonascii_insert_offset to what we insert, when appropriate. + (syms_of_cmds): Set up Lisp variable. + + * xdisp.c (display_text_line): Move the code to fill out the line + with the newline's face to the end of the newline code. + Add changes (commented out) to record ellipsis positions in charstarts. + + * charset.c (strwidth): Fix previous change. + + * ralloc.c (mallopt): Declare, if appropriate. + (r_alloc_init) [DOUG_LEA_MALLOC]: Call mallopt, + instead of setting __malloc_extra_blocks. + +Thu May 15 22:21:18 1997 Ken'ichi Handa + + * Makefile.in (charset.o): Add disptab.h in dependency list. + + * charset.c: Include disptab.h. + +1997-05-16 Kenichi Handa + + * xterm.c (dumpglyphs): Draw glyphs one by one if the font for + them is narrower than required. + + * fns.c (copy_sub_char_table): Declare the argument ARG as + Lisp_Object. + + * fontset.c (fontset_pattern_regexp): Cast to (char *) before + assigning to P0. + + * ccl.c (struct ccl_prog_stack): Declear the member ccl_prog as + Lisp_Object *. + + * editfns.c: Declare Fuser_full_name as Lisp_Object in advance to + avoid compiler error. + + * data.c: Declare set_internal as Lisp_Object in advance to avoid + compiler error. + + * alloc.c (BYTES_USED): Put # at the beginning of line. + (emacs_blocked_malloc): Likewise. + + * xterm.c (x_connection_closed): Likewise. + (x_load_font): Cast to (char *) before assigning to FONTNAME. + + * keymap.c: Declare Fcopy_keymap as Lisp_Object in advance to + avoid compiler error. + +1997-05-16 Kenichi Handa + + * charset.h (VALID_CHAR_P): New macro. + + * fns.c (Fset_char_table_default): New function. + +1997-05-15 Kenichi Handa + + * charset.c (non_ascii_char_to_string): Signal error if the + argument C is an invalid character code. + (Fconcat_chars): Use alloca instead of malloc. + + * charset.h (CHAR_STRING): Comment reflect the above change. + + * coding.h: Name change through the code: + coding-category-internal => coding-category-emacs-mule, + XXX_coding_internal => XXX_coding_emacs_mule, + coding_type_internal => coding_type_emacs_mule, + coding_type_automatic => coding_type_undecided, + CODING_CATEGORY_MASK_INTERNAL => CODING_CATEGORY_MASK_EMACS_MULE, + CODING_CATEGORY_IDX_INTERNAL => CODING_CATEGORY_IDX_EMACS_MULE, + CODING_EOL_AUTOMATIC => CODING_EOL_UNDECIDED. + * coding.c: Likewise. + * fileio.c: Likewise. + + * xfns.c (Fx_create_frame): Delete unnecessary code. + +1997-05-15 Richard Stallman + + * fileio.c (Finsert_file_contents): Use xmalloc. not malloc. + Check correctly for whether no code translation is needed. + (Finsert_file_contents): Use xrealloc too. + + * charset.c (strwidth, Fchar_width): Handle display table. + +1997-05-15 Karl Heuer + + * casefiddle.c: Include charset.h. + (Qidentity): Define this variable. + (syms_of_casefiddle): Initialize and staticpro it. + (casify_object, casify_region): Handle multibyte. + +1997-05-14 Richard Stallman + + * casetab.c (compute_trt_identity): Use make_sub_char_table. + (compute_trt_identity, compute_trt_shuffle): + Set up bytes[0] with the charset code. + Check for a sub-char-table when deciding to recurse. + Terminate the loop properly for a sub-char-table. + + * callint.c (Fcall_interactively): Pass extra arg to Fread_string. + + * minibuf.c (Fread_from_minibuffer): Add gcpro. + + * fns.c (Fcopy_sequence): Correctly copy the char-table contents. + + * keymap.c (describe_vector): Identify charset row numbers clearly. + + * casetab.c: Include charset.h. + (compute_trt_inverse): Totally rewritten. + Args are now Lisp_Object. Callers changed. + (compute_trt_identity, compute_trt_shuffle): New subroutines. + (init_casetab_once): Use XSETFASTINT to store into case table; + use CHAR_TABLE_SINGLE_BYTE_SLOTS to end the loop. + +1997-05-13 Richard Stallman + + * syntax.c (describe_syntax_1): Pass new args to describe_vector. + + * category.c (describe_category_1): Pass new args to describe_vector. + +1997-05-12 Richard Stallman + + * keymap.c (get_keyelt): Handle an indirect entry with meta char. + (describe_vector): Rewrite char-table handling. + + * data.c (wrong_type_argument): Pass new arg to Fstring_to_number. + +1997-05-11 Richard Stallman + + * xfns.c (Fx_create_frame): Get X resources from the display + we are making the frame on. + (x_get_arg): New arg DPYINFO. Callers changed. + (display_x_get_resource): New function. + +1997-05-11 Lars Magne Ingebrigtsen + + * data.c (Fstring_to_number): Handle bases 2...16. + (digit_to_number): New subroutine. + +1997-05-10 Richard Stallman + + * fns.c (map_char_table): New arg SUBTABLE. Callers changed. + Pass the whole chartable to C_FUNCTION. + Pass index character as a Lisp_Object. + + * keymap.c (Fmake_keymap): Make a char-table. + (access_keymap, store_in_keymap): Likewise, + (describe_map, Fset_keymap_parent, Faccessible_keymaps): Likewise. + (Fwhere_is_internal, Fcopy_keymap): Handle a char-table. + (copy_keymap_1, accessible_keymaps_char_table): New subroutines. + (where_is_internal_1, where_is_internal_2): New functions. + (syms_of_keymap): Set up Qchar_table_extra_slots prop on Qkeymap. + +1997-05-10 Ken'ichi Handa + + * callproc.c (Fcall_process_region): Supply 7th new arg + CODING_SYSTEM as Qnil to Fwrite_region. + + * ccl.c (Fccl_execute_on_string): Add 4th optional arg + CONTINUE. + + * charset.c (unify_char): New function. + (Fdefine_charset): Doc-string modified. + (find_charset_in_str): Add 4th arg TABLE which is a character + unification table. + (Ffind_charset_region): Add optional arg TABLE which is a + character unification table. + (Ffind_charset_string): Likewise. + + * charset.h (unify_char): Extern it. + + * coding.c (Valternate_charset_table): The valiable deleted. + (Venable_character_unification, + Vstandard_character_unification_table_for_read, + Vstandard_character_unification_table_for_write, + Qcharacter_unification_table): New variables. + (syms_of_coding): Initialize and declare them. + (DECODE_ISO_CHARACTER): Modified to handle a character unification + table instead of Valternate_charset_table. + (DECODE_DESIGNATION): Delete handling of Valternate_charset_table. + (decode_coding_iso2022): Handle a character unification table. + (ENCODE_ISO_CHARACTER): New macro. + (encode_designation_at_bol): Handle a character unification table. + Do not return -1 even if end-of-line is not in the current run. + (encode_coding_iso2022): Handle a character unification table. + Call macro ENCODE_ISO_CHARACTER instead of calling + ENCODE_ISO_CHARACTER_DIMENSION1 and + ENCODE_ISO_CHARACTER_DIMENSION2 directly. Check the size of + carryover before copying it to destination. + (setup_coding_system): Initialize the member + character_unification_table of the struct coding system to Qnil. + (Fset_keyboard_coding_system): Doc string augmented. + + * coding.h (CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no + character set is invoked to PLANE. + (struct coding_system): New member character_unification_table. + + * fileio.c (Fwrite_region): Add 7th optional arg + CODING_SYSTEM. Move gap after a newline code if we are encoding + in a coding system which requires designation sequences to be put + at beginning of line. Set coding.last_block to 1 before calling + a_write for an empty file. + (build_annotations): Code tuned up for handling + pre_write_conversion of a coding system. + (e_write): Delete code for handling carryover of code conversion. + It is now handled in encode_coding. + (auto_save_1): Supply 7th new arg CODING_SYSTEM as Qnil to + Fwrite_region. + + * fontset.c (Vfontset_alias_alist): New variable. + (fontset_pattern_regexp): Delete code for handling nickname of a + fonset. It is now handled in Fquery_fontset by consulting + Vfontset_alias_alist. + (Fquery_fontset): Handle Vfontset_alias_alist. + (syms_of_fontset): Terminate each line by `\n\' in doc-string of + alternate-fontname-alist. Declare Lisp valiable + fontset-alias-alist. Doc-string of highlight-wrong-size-font + and clip-large-size-font modified. + + * xfns.c (Fx_create_frame): Delete code for handling the X + resouce "Fontset". + + * xselect.c (selection_data_to_lisp_data): If TYPE is `STRING' + and DATA contains 8-bit codes, decode them as Latin-1 characters. + (lisp_data_to_selection_data): Supply 4th arg TABLE as Qnil to + find_charset_in_str. + + * xterm.c (dumpglyphs): Even if font (not fontset) is used, + display Latin1 characters correctly if the font contains glyphs + for them. Fix bug of displaying cursor on a composite character. + +1997-05-09 Richard Stallman + + * keyboard.c (Fexecute_extended_command): + Pass new arg to Fcompleting_read. + (command_loop_1): Use an int for last_command_char. + + * lisp.h (read_minibuf): Declaration deleted. + + * callint.c (Fcall_interactively): Pass new arg to + Fread_from_minibuffer and Fread_variable. + + * fns.c (Fyes_or_no_p): Pass new arg to Fread_from_minibuffer. + + * minibuf.c (Fread_command): New optional arg DEFAULT-VALUE. + Callers changed. + (Fread_variable, Fread_string, Fread_from_minibuffer): Likewise. + (read_minibuf): Now static. New arg DEFALT. Callers changed. + Bind minibuffer-default here. + (read_minibuf_unwind): Now static. + (Fcompleting_read): Past DEF to Fread_from_minibuffer; + no need to use it directly here. + + * fileio.c (Fread_file_name): Finish previous change. + + * coding.c (Fread_coding_system, Fread_non_nil_coding_system): + Pass new arg to Fcompleting_read. + + * callint.c (Fcall_interactively): Pass new arg to Fcompleting_read. + + * xmenu.c (Fx_popup_menu): Doc fix. + +1997-05-08 Richard Stallman + + * Makefile.in (TAGS): Fix typo. + + * xdisp.c (mark_window_display_accurate, redisplay_internal): + Test highlight_nonselected_windows. + (display_text_line): Likewise (in more places). + (syms_of_xdisp): Initialize highlight_nonselected_windows to 0. + + * keyboard.c (Qtimer_event): Variable deleted. + (Qtimer_event_handler): New variable. + (syms_of_keyboard): Don't initialize Qtimer_event. + Do initialize Qtimer_event_handler. + (read_char): Don't check for timer event. + (swallow_events): Don't handle timer events. + (timer_check): Likewise. + (make_lispy_event): Likewise. + +1997-05-07 Richard Stallman + + * s/bsd386.h: Delete the code that was trying to define BSD "right" + now that Emacs doesn't use the symbol BSD this way. + +1997-05-06 Richard Stallman + + * Makefile.in (MOUSE_SUPPORT): Delete menu-bar.elc. + (lisp): Move menu-bar.elc here. + Add custom.elc and cus-start.elc. + + * m/intel386.h (LIBS_MACHINE): Add -lelf. + +1997-05-05 Richard Stallman + + * xdisp.c (display_text_line): Clear region_showing to Qnil if the + window should not show a region. + (redisplay_internal): Do update region_showing when ! all_windows. + + * window.c (Fset_window_configuration): Set last_selected_window + in the new selected window's new buffer. + + * xdisp.c (display_text_line): Set w->region_showing to the mark + position if there's a mark; to nil, otherwise. + + * w32fns.c (x_set_mouse_color): Fix previous change. + + * xselect.c (x_reply_selection_request): Delete the inner + unbind_to call, since x_uncatch_errors does the job. + +1997-05-04 Richard Stallman + + * minibuf.c (Fcompleting_read): New arg DEF. + Callers changed. + (Qminibuffer_default): New variable. + (syms_of_minibuf): Initialize it. + + * fileio.c (Fread_file_name): Pass default to Fcompleting_read. + +1997-05-03 Richard Stallman + + * w32fns.c (x_set_mouse_color): Update calls to x_catch_errors + and x_uncatch_errors. + + * xfns.c (x_set_scroll_bar_width): If arg is too small, round it up. + + * window.c (Fdisplay_buffer): If we give up and try other frames, + look again for a window in those frames already showing BUFFER. + +1997-05-01 Richard Stallman + + * xselect.c (x_reply_selection_request): Fix previous change. + +1997-04-30 Richard Stallman + + * xterm.c (XTmouse_position, x_term_init): + Save value from x_catch_errors and pass to x_uncatch_errors. + + * xselect.c (x_own_selection, x_reply_selection_request) + (x_get_foreign_selection): + Save value from x_catch_errors and pass to x_uncatch_errors. + + * xfns.c (x_real_positions, x_set_mouse_color, Fx_list_fonts): + Save value from x_catch_errors and pass to x_uncatch_errors. + + * xterm.c (x_catch_errors): Use specpdl so can be nested. + Use a Lisp string to as the buffer for the X message. + (x_uncatch_errors, x_had_errors_p, x_check_errors): Related changes. + (x_catch_errors_unwind): New function. + (x_error_quitter): Call x_error_catcher if appropriate. + (x_error_message_string): New variable. + (syms_of_xterm): Defvar it. + (x_caught_error_message): Variable deleted. + (X_ERROR_MESSAGE_SIZE): Renamed from X_CAUGHT_ERROR_MESSAGE_SIZE. + (x_error_handler): New function, calls x_error_quitter or ..._checker. + (x_initialize): Use x_error_handler as error handler for X. + +1997-04-28 Richard Stallman + + * fileio.c (Fexpand_file_name): Check length > 0 when necessary. + +1997-04-27 Richard Stallman + + * syntax.c (skip_chars): Fix previous change in syntax/backward case. + + * lread.c (init_lread): Don't add ../lisp to the dump-time load path. + + * buffer.c (Fbury_buffer): If buffer is in selected window, remove it. + Otherwise, remove it from other windows. + + * fileio.c (Fsubstitute_in_file_name): Use xnm uniformly, never nm, + when handling /~ and // at the end. + + * process.c (read_process_output): Update opoint, old_begv and old_zv + based on actual buffer change rather than size of string. + old_begv and old_zv are now ints. + (status_notify): Likewise for opoint. + +1997-04-26 Richard Stallman + + * xterm.c (x_destroy_window): Free saved_menu_event, if any. + + * frame.c (Fdelete_frame): Free FRAME_MESSAGE_BUF. + + * xrdb.c (get_user_app): Free the gethomedir value. + + * buffer.c (reset_buffer): Initialize clip_changed field. + +1997-04-25 Richard Stallman + + * emacs.c (sort_args): Free the malloc'd memory. + + * fileio.c (Fwrite_region): GCPRO `start' near the beginning. + + * xfns.c (x_set_menu_bar_lines): Increment windows_or_buffers_changed. + +1997-04-23 Richard Stallman + + * syntax.c (skip_chars): Merge mule changes back in. + +1997-04-22 Richard Stallman + + * window.c (frame_override_unsplittable): New variable. + (Fsplit_window): Ignore `unsplittable' if frame_override_unsplittable. + (syms_of_window): Set up Lisp var. + + * xmenu.c (set_frame_menubar): When widget is new, + forget records of old contents. + +1997-04-20 Richard Stallman + + * xterm.c (x_set_offset): Turn off the code that added the border_width + to modified_left and modified_top; it seems incorrect to do that. + +1997-04-19 Richard Stallman + + * keymap.c (Faccessible_keymaps): Convert PREFIX to a vector + at the beginning, if it has any definition. + +1997-04-19 Erik Naggum + + * keymap.c (describe_vector): Test for suppressed commands in + all cases. Call get_keyelt with two arguments. + +1997-04-18 Richard Stallman + + * print.c (print): Symbols like e2 and 2e are not confusing. + +1997-04-17 Andrew Innes + + * fileio.c (Fexpand_file_name): Fix expansion of "/foo/../". + +1997-04-15 Ken'ichi Handa + + * coding.c (setup_coding_system): Setup coding->eol_type as LF + for a invalid coding system. + +1997-04-14 Ilya Zakharevich + + * dired.c (Fdirectory_files): Set re_match_object. + + * intervals.c (update_interval): New function. + + * intervals.h (update_interval): New function declaration. + + * regex.c (PTR_TO_OFFSET): New macro. + (POS_AS_IN_BUFFER): New macro. + (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table' text + property into account when doing SYNTAX (c). + (re_compile_fastmap): disable fastmap if any of wordbound + notwordbound wordbeg wordend notsyntaxspec syntaxspec are seen. + (re_search_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start. + (re_match_object): New variable. + (re_match_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start. + (re_match_2_internal): For any of wordbound notwordbound wordbeg + wordend notsyntaxspec syntaxspec call UPDATE_SYNTAX_TABLE before + doing SYNTAX (c). + + * regex.h (re_match_object): New variable. + + * search.c (looking_at_1): Set re_match_object. + (string_match_1): Set re_match_object. + (fast_string_match): Set re_match_object. + (Fskip_chars_forward): Move to syntax.c. + (Fskip_chars_backward): Move to syntax.c. + (Fskip_syntax_forward): Move to syntax.c. + (Fskip_syntax_backward): Move to syntax.c. + (skip_chars): Move to syntax.c. + (search_buffer): Set re_match_object. + (syms_of_search): Move initialization of skip* to syntax.c. + + * syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table' + text property into account when doing SYNTAX (c). + (ST_COMMENT_STYLE, ST_STRING_STYLE): New codes to denote + delimiters for new types of strings and comments. + (Vparse_sexp_lookup_properties): New variable. + (struct lisp_parse_state): Comment updated. + (gl_state): New global variable. + (update_syntax_table): New function. + (char_quoted): Move earlier, update gl_state when needed. + (find_defun_start): Update gl_state when needed. + (back_comment): New function. + (Scomment_fence, Sstring_fence): New delimeter char classes + denoted by `!' and `|'. + (Fchar_syntax, Fmatching_paren): Update gl_state to whole-buffer state. + (scan_words): Update gl_state when needed. + (Fskip_chars_forward): Move from search.c. + (Fskip_chars_backward): Move from search.c. + (Fskip_syntax_forward): Move from search.c. + (Fskip_syntax_backward): Move from search.c. + (skip_chars): Move from search.c. + (Fforward_comment, scan_lists): Update gl_state when needed. + Handle Scomment_fence, Sstring_fence. + (Fbackward_prefix_chars) update gl_state when needed. + (scan_sexps_forward): update gl_state when needed. + Handle Scomment_fence, Sstring_fence. + If comment_stop==-1, stop at start or end of comment or string. + (Fparse-partial-sexp): Doc fix. + (syms_of_syntax): Move initialization of skip* from search.c. + + * syntax.h (enum syntaxcode): + New members Scomment_fence, Sstring_fence. + (SYNTAX_ENTRY): Depending on the value of SYNTAX_ENTRY_VIA_PROPERTY + may do a lookup for syntax table in gl_state. + (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD, + UPDATE_SYNTAX_TABLE, SETUP_SYNTAX_TABLE, + SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros. + (struct gl_state_s): New struct. + + * textprop.c: Style of comments corrected. + (interval_of): New function. + +1997-04-14 Eli Zaretskii + + * w16select.c: New file, MS-Windows clipboard support from + Emacs running as MSDOS application. + + * s/msdos.h (SYMS_SYSTEM): Add `syms_of_win16select'. + + * Makefile.in (MSDOS_OBJ): Add w16select.o. + (dependencies): Add dependencies for w16select.o. + +1997-04-14 Richard Stallman + + * undo.c (Fprimitive_undo): When inserting, always insert + after markers (the ordinary kind of insertion). + + * insdel.c (adjust_markers): Don't be confused by the gap + when computing the arg to record_marker_adjustment. + +1997-04-11 Karl Heuer + + * category.c (Fmodify_category_entry): Delete second arg in call + to make_sub_char_table. + + * lisp.h (DOWNCASE): Return int, not Lisp_Object. + (UPPERCASEP): Use DOWNCASE. + (UPCASE_TABLE): New macro. + (NOCASEP, UPCASE1): Use UPCASE_TABLE. + [!NO_UNION_TYPE] (make_number): Declare. + +1997-04-10 Richard Stallman + + * minibuf.c (read_minibuf): Get the string from the minibuffer + even if the user has selected a different buffer. + + * fileio.c (Finsert_file_contents): Do call signal_after_change + when REPLACE is handled by reading directly from the file. + Use insert_1 to insert replacement text, to avoid + query about whether to modify the buffer. + +1997-04-10 Marcus G. Daniels + + * Makefile.in (mallocobj): Make non-REL_ALLOC configuration work + with glibc's malloc--do use vm-limit.o. + +1997-04-10 Karl Heuer + + * cmds.c (internal_self_insert): Fix return value. + * category.c (Fmake_category_set): Use XSETFASTINT. + * minibuf.c (scmp): Fix Lisp_Object/integer confusion. + (Fdisplay_completion_list): Likewise. + * insdel.c (Fcombine_after_change_execute): Likewise. + * xselect.c (expect_property_change): Likewise. + * xterm.c (construct_menu_click, note_mouse_highlight): Likewise. + (fast_find_position): Likewise. + * ccl.c (ccl_driver): Likewise. + * coding.c (Ffind_coding_system): Likewise. + * charset.c (Fconcat_chars, ONE_BYTE_CHAR_WIDTH): Likewise. + * xmenu.c (Fx_popup_menu, set_frame_menubar): Likewise. + * disptab.h (DISP_TABLE_P): Likewise. + * xdisp.c (display_text_line): Likewise. + * dispnew.c (Fframe_or_buffer_changed_p): Likewise. + * window.c (Fset_window_buffer, Fdisplay_buffer): Likewise. + (delete_window): Don't return value from void function. + +1997-04-09 Richard Stallman + + * s/freebsd.h (BSD_SYSTEM): Alternate definition for FreeBSD v3. + + * systty.h (GETPGRP_NO_ARG): If Glibc 2.1 or later, + don't define this if _BSD_SOURCE is defined. + +1997-04-08 Marcus G. Daniels + + * emacs.c (malloc_get_state, malloc_set_state): New declarations. + (main): Restore internal malloc state when loading from dumped image. + (Fdump_emacs): Copy internal malloc state for dumping, then free it. + + * alloc.c: For glibc's malloc, include for mallinfo, + mallopt, struct mallinfo, and mallopt constants. + (BYTES_USED): New macro. + (memory_full, emacs_blocked_free): Replace _bytes_used with BYTES_USED. + (emacs_blocked_malloc): Set sbrk padding value for glibc, as is + done with gmalloc. + (allocate_vectorlike, make_uninit_string): + Prevent using mmap for possible large chunks. + (init_alloc_once): Set trim and mmap malloc parms, when using glibc. + + * config.in (DOUG_LEA_MALLOC): Add #undef. + + * Makefile.in (mallocobj): Don't add gmalloc if using glibc. + Drop check for `old malloc'; it isn't distributed with Emacs. + +1997-04-08 Richard Stallman + + * casetab.c (init_casetab_once): Initialize the purpose slot. + +1997-04-07 Richard Stallman + + * keyboard.c (read_key_sequence): New argument FIX_CURRENT_BUFFER. + Restore the current buffer from selected window on occasion. + All callers changed. + +1997-04-07 Kenichi HANDA + + * Makefile.in (lisp, shortlisp): Include english.elc and + tibetan.elc. + + * alloc.c (Fmake_char_table): Adjusted for the new structure of + Lisp_Char_Table. + (make_sub_char_table): New function. + + * category.c (category-table-p): Check only type and purpose. + (copy_category_table, Fmodify_category_entry): Adjusted for the + new structure of Lisp_Char_Table. + + * ccl.c: (ccl_driver): Fix bug of the case CCL_WriteArrayReadJump. + + * charset.h (CHARSET_TABLE_ENTRY): Handle ASCII charset correctly. + (SPLIT_NON_ASCII_CHAR, SPLIT_CHAR): Return -1 in C2 for DIMENSION1 + characters. + + * charset.c (non_ascii_char_to_string, update_charset_table, + Fsplit_char): Adjusted for the above change. + + * coding.c (detect_coding_iso2022, detect_coding_mask): Ignore + invalid ESC sequence for ISO 2022. + (Fencode_sjis_char, Fencode_big5_char): Adjusted for the change of + SPLIT_CHAR. + + * data.c (Faref, Faset): Adjusted for the new structure of + Lisp_Char_Table. + + * disptab.c (disp_char_vector): Extern it. + (DISP_CHAR_VECTOR): Handle multibyte characters. + + * fns.c (copy_sub_char_table): New function. + (Fcopy_sequence): Call copy_sub_char_table for copying a sub char + table. + (Fchar_table_range, Fset_char_table_range, map_char_table, + Fmap_char_table): Handle multibyte characters correctly. + + * fontset.c (Vhighlight_wrong_size_font, Vclip_large_size_font): + New variables. + (syms_of_fontset): Declare them as Lisp variables. + + * fontset.h (Vhighlight_wrong_size_font, Vclip_large_size_font): + Extern them. + + * keymap.c (describe_vector): Adjusted for the new structure of + Lisp_Char_Table. + + * lisp.h (CHAR_TABLE_STANDARD_SLOTS): Now 4 more slots than + CHAR_TABLE_ORDINARY_SLOTS for top, defalt, parent, and purpose. + (SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS): + New macros. + (CHAR_TABLE_REF, CHAR_TABLE_SET): Enclose args by parenthesis. + (struct Lisp_Char_Table): New member `top'. The member `defalt' + is moved before `contents' so that XCHAT_TABLE (val)->defalt can + also be used for a sub char table. + (SUB_CHAR_TABLE_P): New macro. + (make_sub_char_table): Extern it. + + * lread.c (read1): Adjusted for the new structure of + Lisp_Char_Table. + + * print.c (print): Likewise. + + * xdisp.c (disp_char_vector): New function to be used from the + macro DISP_CHAR_VECTOR for multibyte characters. + + * xterm.c (dumpglyphs): Clip and highlight glyphs displayed with + fonts of wrong size. + +Sun Apr 6 10:26:53 1997 Eli Zaretskii + + * emacs.c (init_cmdargs) [MSDOS]: Make the change that sets + `installation-directory' if `info' is found as its subdirectory or + sibling, be conditioned on MSDOS (it makes trouble on Unix). + + +1997-04-05 Richard Stallman + + * coding.c (Ffind_coding_system): Doc fix. + +1997-04-03 Karl Heuer + + * fns.c (Fcopy_sequence): Delete unused variable. + (Fchar_table_extra_slot, Fset_char_table_extra_slot): Doc fix. + (map_char_table): When expanding indices, don't increase depth; + that's amount used, not amount allocated. + + * category.h [!__GNUC__] (CATEGORY_SET): Fix syntax error. + + * lisp.h (CHAR_TABLE_REF): Fix syntax error. + (LOWERCASEP): Use NOCASEP instead of its expansion. + (UPCASE): Use UPPERCASEP instead of its expansion. + +1997-04-02 Richard Stallman + + * fileio.c (Finsert_file_contents): When handling REPLACE, + first try comparing block by block; if we discover a need for + nontrivial code conversion, give up and try convert-whole-file method. + + * fileio.c (Fcopy_file): Fix error message. + + * fileio.c (Finsert_file_contents): Handle non-regular files. + +1997-04-01 Richard Stallman + + * search.c (skip_chars): Make `c' an unsigned int. + +1997-04-01 Erik Naggum + + * eval.c (Fuser_variable_p): If not a symbol, return nil. + +1997-03-31 Richard Stallman + + * fileio.c (Fcopy_file): Use Qfile_date_error if can't set file date. + (Qfile_date_error): New variable. + (syms_of_fileio): Set it up. + (Fcopy_file): Fix previous change. + (Finsert_file_contents): Determine the character coding + before we see if REPLACE can be handled. + Do handle REPLACE even if code conversion is needed. + +1997-03-30 Richard Stallman + + * keymap.c (Faccessible_keymaps): When metizing, convert a + string to a vector. But don't metize a character that is + part of PREFIX. + + * window.c (Qwindow_configuration_change_hook): New variable. + (Vwindow_configuration_change_hook): New variable. + (syms_of_window): Initialize; set up Lisp var. + (delete_window): New subroutine, from Fdelete_window. + Most callers changed. + (Fdelete_window): Call Vwindow_configuration_change_functions. + (Fset_window_buffer, Fenlarge_window, Fshrink_window): + Call the Vwindow_configuration_change_functions. + (Fset_window_configuration): Likewise. + + * dispnew.c (change_frame_size_1): Call Fset_window_buffer, + so that Vwindow_configuration_change_hook gets run. + +1997-03-25 Erik Naggum + + * process.c (Fopen_network_stream): Use same socket for in and out. + +1997-03-23 Richard Stallman + + * frame.c (frames_bury_buffer): New function. + * buffer.c (Fbury_buffer): Call frames_bury_buffer. + +1997-03-22 Mark W. Eichin + + * keyboard.c (make_lispy_event): Use iso_lispy_function_keys for + XK_ISO_* keys found in XFree86. + (ISO_FUNCTION_KEY_OFFSET): New macro. + (iso_lispy_function_keys): New table. + + * xterm.c (XTread_socket): Accept XK_ISO_* keys. + +1997-03-19 Kenichi Handa + + * xterm.c (dumpglyphs): Set a clipping region when we draw glyphs + with a font of inappropriate size. + (x_list_fonts): Try alternative fonts if we can't find a font of an + appropriate size. + + * fontset.c (Valternative_fontname_alist): New variable. + (syms_of_fontset): Declare Lisp variable alternative-fontname-alist. + + * fontset.h (Valternative_fontname_alist): Extern it. + + * term.c (insert_glyphs): Fix a bug which turns up when + TS_ins_multi_chars is 0. + +1997-03-18 Kenichi Handa + + * xterm.c (x_list_fonts): Comment about cached font list added. + + * fns.c (map_char_table): Handle multibyte characters. + + * lisp.h (CHAR_TABLE_ORDINARY_SLOTS): Change to 384 (== 256 + 128). + (CHAR_TABLE_STANDARD_SLOTS): Adjusted for the above change. + (CHAR_TABLE_SINGLE_BYTE_SLOTS): New macro. + (CHAR_TABLE_REF, CHAR_TABLE_SET): New macros. + + * data.c (Faref, Faset): Adjusted for the above change. + + * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Likewise. + + * category.h (CATEGORY_SET): Likewise. + + * category.c (Fmodify_category_entry): Likewise. + + * keymap.c (describe_vector): Likewise. + (push_key_description): A key code less than 512 is printed with 3 + octal numbers. Print only entries of valid charsets. + + * disptab.h (GLYPH_FOLLOW_ALIASES): Assure that the resulting G + contains valid character code. + + * xdisp.c (copy_part_of_rope): Declare glyph as type GLYPH. For a + invalid character code, use ' ' (space). + (display_string, display_text_line): Check validity of character + code before calling fix_glyph. + + * term.c (encode_terminal_code): Check validity of character code. + + * charset.h (MAX_CHARSET): Definition changed to the actual + maximum valid charset. + (MAX_CHAR): New macro. + + * charset.c, coding.h, coding.c, fontset.h, fontset.c, xselect.c: + Adjusted for the above change. + + * charset.c (str_cmpchar_id): Return -1 if we have no more room + for a new composite character. + (Fmake_char_internal): Docstring is moved to lisp/mule.el. + + * fontset.h (struct font_info): Typo in comment of + `relative_compose' fixed. + +1997-03-14 Karl Heuer + + * window.c (change_window_height): Handle shrink as well as enlarge. + +1997-03-13 Richard Stallman + + * buffer.c (reset_buffer): Initialize display_count slot. + + * search.c (Freplace_match): Give error if + NEWTEXT uses backslash in an invalid way. + +1997-03-10 Karl Heuer + + * lisp.h (FAST_MAKE_GLYPH): Don't cast CHAR arg; character codes + are now wider than C chars. + +1997-03-09 Richard Stallman + + * buffer.c (Fkill_buffer): Call frames_discard_buffer. + (record_buffer): Move buffer to front of frame_buffer_list. + (Fother_buffer): Use frame_buffer_list. + + * frame.h (struct frame): New field buffer_list. + + * frame.c (frame_buffer_list, set_frame_buffer_list): New functions. + (store_frame_param): Handle buffer-list parameter. + (Qbuffer_list): New variable. + (syms_of_frame_1): Initialize it. + (make_frame): Initialize buffer_list field. + (Fframe_parameters): Handle buffer-list parameter. + (frames_discard_buffer): New function. + (make_frame): Initialize buffer_list. + + * alloc.c (mark_object): Mark the buffer_list field. + +1997-03-05 Ken'ichi Handa + + * coding.c (decode_eol): Fix bug of converting CRLF to LF. + +1997-03-05 NIIBE Yutaka + + * indent.c: (compute_motion): When POS >= TO, don't call + find_before_next_newline as it assumes POS < TO. + +1997-03-02 Ken'ichi Handa + + * category.h (CATEGORY_SET): Cast arg C to + `unsigned char' before indexing category table directly. + +1997-03-01 Richard Stallman + + * process.c (wait_reading_process_input): If wait_for_cell, + ignore subprocess input and respond only to keyboard. + (non_process_wait_mask): New variable. + (add_keyboard_wait_descriptor): Update it. + (delete_keyboard_wait_descriptor): Update it. + (init_process): Initialize it. + +1997-03-01 NIIBE Yutaka + + * gmalloc.c [__GLIBC__ >= 2]: Don't declare __getpagesize. + +1997-02-28 Tomohiko MORIOKA + + * coding.c (create_process, Fopen_network_stream): Typo in indexes + of array proc_encode_coding_system fixed. + +1997-02-28 Kenichi HANDA + + * Makefile.in (lisp, shortlisp): Add lao.elc. + + * buffer.c (init_buffer_once): Make member + enable_multibyte_characters of struct buffer not always local. + (reset_buffer): Do not reset b->enable_multibyte_characters. + (syms_of_buffer): Declare default-enable-multibyte-characters. + + * category.h (CATEGORY_SET): For a composite character, return + category set of the first component. + + * ccl.c (Fregister_ccl_program): Escape newlines in docstring. + + * coding.h (struct iso2022_spec): Member requested_designation is + changed to array of `char' just for saving memory. + (CODING_FLAG_ISO_INIT_AT_BOL, CODING_FLAG_ISO_DESIGNATE_AT_BOL): + New macros. + + * coding.c (setup_coding_system): Now, flags of ISO2022 coding + systems contains charsets instead of charset IDs. Correct setting + coding->symbol and coding->eol_type. The performance improved. + (encode_coding) : Fix typo ("=" -> "=="). + (detect_coding_iso2022, decode_coding_iso2022): Make the code + robust against invalid SI and SO. + (ENCODE_RESET_PLANE_AND_REGISTER): Argument `eol' is deleted. + Don't call ENCODE_DESIGNATION if nothing designated initially. + (encode_designation_at_bol) New function. + (encode_coding_iso2022): Handle CODING_FLAG_ISO_INIT_AT_BOL and + CODING_FLAG_ISO_DESIGNATE_AT_BOL. + (detect_coding_iso2022): Detect coding-category-iso-8-2 more + precisely. + (Ffind_coding_system, syms_of_coding): Escape newlines in + docstring. + + * charset.h (INC_POS, DEC_POS): Don't increase or decrease too + much if there's binary code (invalid character code). + + * data.c (Faref, Faset): Handle a composite char correctly in + char-table. + + * disptab.h (DISP_CHAR_VECTOR): Allow bare 8-bit in display-table. + + * charset.c (Fcmpchar_cmp_rule): Escape newlines in docstring. + + * editfns.c (Fuser_full_name): Likewise. + + * fileio.c (Finsert_file_contents, Fwrite_region): Do not perform + character code conversion if enable-multibyte-characters is nil. + + * fontset.h (Vuse_default_ascent): Extern. + + * fontset.c (syms_of_fontset): Intern Qfontset. Declare new lisp + variable use-default-ascent. + (Vuse_default_ascent): New variable. + (Ffont_info): Return also the value of default-ascent of a font. + (fs_load_font): Disable updating fontsetp->height by non-ASCII + character sets. This should be enabled when Emacs supports + variable height lines. + (fs_load_font, Fset_fontset_font): Bug fix to cope + with the change of charsets to symbols. + + * keymap.c (describe_vector): Do not describe deeper char-table if + enable-multibyte-characters is nil. + + * process.c (proc_decode_coding_system, + proc_encode_coding_system): Changed to array of pointers to struct + coding_system to reduce the size of dumped Emacs. + (create_process, Fopen_network_stream): Allocate them dynamically. + (init_process): Initialize these pointers to NULL. + (Fstart_process, Fopen_network_stream): Do not perform character + code conversion if enable-multibyte-characters is nil. + + * search.c (skip_chars): If enable-multibyte-characters is nil, + don't handle multibyte characters. + + * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to + `unsigned char' before indexing syntax table directly. + + * syntax.c (init_syntax_once): Add trick to avoid compiler warning + of "comparison is always 1 ...". + (describe_syntax): Handle the case that the argument VALUE is + char-table. + + * xdisp.c (display_mode_line): Avoid error while compiling with + --with-x=no. + + * xfns.c (syms_of_xfns): Documentation of + x-pixel-size-width-font-regexp modified. + + * xselect.c (lisp_data_to_selection_data, selection_data_to_lisp_data): + Remove prefix "coding-system-" from coding system symbol names. + + * xterm.h (struct x_display_info): New member + Xatom_MULE_DEFAULT_ASCENT. + + * xterm.c (dumpglyphs): Pay attention to characters registered in + use-default-ascent. Fill background in advance if font has + non-zero _MULE_BASELINE_OFFSET property. + (x_load_font, x_term_init): Handle font property + _MULE_DEFAULT_ASCENT. + +1997-02-28 NIIBE Yutaka + + * sysdep.c: `ospeed' should be short if not HAVE_TERMIO_H. + + * xdisp.c (display_text_line): Correct displaying multi-column + binary data. + (try_window_id): Display blank lines from the next line, when + xp.bufpos == ZV. (This bug is introduced by changes of Mule). + Compare height against xp.vpos instead of xp.bufpos. + +1997-02-27 Erik Naggum + + * lread.c (Fload): Call Vload_source_file_function with 4 args. + +1997-02-22 Tsugutomo ENAMI + + * regex.c: Include charset.h and category.h + + [!emacs] (BASE_LEADING_CODE_P, WORD_BOUNDARY_P, CHAR_HEAD_P, + SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MULTIBYTE_FORM_LENGTH, + STRING_CHAR_AND_LENGTH, GET_CHAR_AFTER_2, GET_CHAR_BEFORE_2): + New dummy macros. + + (enum re_opcode_t): New member categoryspec and + notcategoryspec. + + (STORE_CHARACTER_AND_INCR, EXTRACT_CHARACTER, + CHARSET_LOOKUP_RANGE_TABLE_WITH_COUNT, + CHARSET_LOOKUP_RANGE_TABLE, CHARSET_BITMAP_SIZE, + CHARSET_RANGE_TABLE_EXISTS_P, CHARSET_RANGE_TABLE + CHARSET_PAST_RANGE_TABLE): New macros. + + (TRANSLATE): Cast return value to unsigned char, not char. + + (struct range_table_work_area): New structure. + + (EXTEND_RANGE_TABLE_WORK_AREA, SET_RANGE_TABLE_WORK_AREA, + FREE_RANGE_TABLE_WORK_AREA, CLEAR_RANGE_TABLE_WORK_USED, + RANGE_TABLE_WORK_USED, RANGE_TABLE_WORK_ELT): New macros. + (FREE_STACK_RETURN): Call FREE_RANGE_TABLE_WORK_AREA. + + (regex_compile): Declare `c' and `c1' as int to store + multibyte characters. + Declare range_table_work and initialize it. + Initialize bufp->multibyte to 0 if not emacs. + For case '[' and `default', code re-written to handle + multibyte characters. + Add code for case 'c' and 'C' to handle category spec. + + (re_compile_fastmap): New local variables k, simple_char_max, + and match_any_multibyte_characters. + Use macro CHARSET_BITMAP_SIZE. + Handle multibyte characters in cases charset, charset_not, + wordchar, notwordchar, anychar, syntaxspec, notsyntaxspec, + categoryspec, notcategoryspec. + + (STOP_ADDR_VSTRING, POS_ADDR_VSTRING): New macros. + + (re_search_2): Code re-written to handle multibyte characters. + + (AT_WORD_BOUNDARY): Macro disabled. + + (re_match_2_internal): New local variable multibyte. `d' is + incremented while paying attention to multibyte characters if + necessary. + For case charset, charsetnot, wordbound, notwordbound, + wordbeg, wordend, matchsyntax, and matchnotsyntax, code + re-written to handle multibyte characters. + Add code for case categoryspec and notcategoryspec. + + * regex.h (struct re_pattern_buffer): New member multibyte. + +1997-02-21 Richard Stallman + + * window.c (Fset_window_buffer): Increment display_count + if it is an integer. + + * buffer.c (init_buffer_once): Set up display_count. + (syms_of_buffer): Set up Lisp variable. + + * buffer.h (struct buffer): New field display_count. + +1997-02-20 NIIBE Yutaka + + * dispnew.c (direct_output_forward_char): #if-0-out redundant + check against truncated text at end of line. + Add giving-up for buffers with reverse direction. + (remake_frame_glyphs): Use FRAME_MESSAGE_BUF_SIZE + instead of FRAME_WIDTH, as the message may include multi-byte + character and the length may be longer than width. + (width_run_cache_on_off): Disable width-run-cache when + multi-byte characters are enabled. + (skip_invisible): Don't put the boundary in the middle of + multibyte characters. + + * indent.c (current_column_bol_cache): New variable. This makes + move_to_column faster. + (current_column): Set current_column_bol_cache. + (current_column_1): Likewise. + (Fmove_to_column): Use current_column_bol_cache. + + * xdisp.c (display_text_line): Introduce new local variable + rev_dir_bit to display right to left characters (not yet used). + * xdisp.c (message): Use FRAME_MESSAGE_BUF_SIZE. + (redisplay_internal): Add canceling code for continuation at + wide-column. + (display_text_line): Don't just decrement left_edge->bufpos, + it may be multi-byte character, use DEC_POS instead. + +1997-02-20 NIIBE Yutaka + + Handle multi-byte and wide-column character in computing columns. + Note that we will find the continuation (linebreak) _AFTER_ it + occurs. + + * indent.c (current_column): When the buffer may have multi-byte + characters, call current_column_1. + (compute_motion): Handle multi-byte characters. + (current_column_1): Likewise. + (Fmove_to_column): Likewise. + +1997-02-20 NIIBE Yutaka + + Tab offset calculation changes. We need this change because the + line may be less than WIDTH columns because of wide-character + continuation. + + * indent.h (struct position): New member tab_offset to accumulate + tab offset. + + * xdisp.c (try_window): Change the way of calculation of tab + offset. We now use val.tab_offset to maintain tab offset. + Removed local variable tab_offset. + (try_window_id): Likewise. + + * indent.c: Include "charset.h". + (compute_motion): Remove the variable PREV_VPOS. + Introduce new local variables (multibyte, wide_column, prev_pos, + contin_hpos, prev_tab_offset) to handle multi-byte characters and + wide-column characters. + + (pos_tab_offset): Return COL (Modulo is no longer valid). + Add the line to set tab_offset member. + Use pos.tab_offset. + +1997-02-20 NIIBE Yutaka + + * window.c (Fpos_visible_in_window_p): Bug fix. Specify big + negative number for the argument TOHPOS of compute_motion. + We don't need to calculate to (HPOS==0), but can stop immediately + when VPOS pasts HEIGHT. + * xdisp.c (redisplay_window): Likewise. + (try_window_id): Likewise. + + * indent.c (pos_tab_offset): Specify "- (1 << (BITS_PER_SHORT - 1))" + to express big negative number (for consistency with xdisp.c). + +1997-02-20 NIIBE Yutaka + + * indent.c (vmotion): Specify "1 << (BITS_PER_SHORT - 1)" to + express "Don't care". + * xdisp.c (tri_window_id): Likewise. + + * dispnew.c (direct_output_forward_char): Bug fix. Add + XFASTINT (w->left) for losing cursor check. + +1997-02-20 Kenichi HANDA + + * Makefile.in: The following changes are for new source codes + related to Mule. + (XOBJ): Include fontset.o. + (obj): Include charset.o, coding.o, category.o, and ccl.o. + (lisp, shortlisp): Include Mule related elc files. + (buffer.o, cmds.o, dispnew.o, doprnt.o): Depend on charset.h. + (editfns.o, indent.o, insdel.o, keymap.o): Depend on charset.h. + (minibuf.o, xdisp.o, xfaces.o, xselect.o): Depend on charset.h. + (data.o, print.o, lread.o): Depend on charset.h. + (callproc.o, fileio.o, process.o, term.o): Depend on charset.h and + coding.h. + (regex.o, search.o, syntax.o): Depend on charset.h and category.h. + (fontset.o): Depend on charset.h and fontset.h. + (xterm.o): Depend on charset.h, ccl.h, and fontset.h. + (category.o, ccl.o, charset.o, coding.o, fontset.o): New targets. + + * alloc.c (Fmake_char_table): Typo in doc-string fixed. Handle + the case that PURPOSE is nil (in a deeper char-table). + (Fmake_bool_vector): Make correct size of Lisp_Object for + bool-vector. + + * buffer.c: Include charset.h. + (Fget_buffer_create): Allocate an extra byte for a buffer, and + make it always 0 for anchoring. + (reset_buffer): Handle a new member `enable_multibyte_characters' + in the struct buffer. + (fix_overlay_before): New function. + (init_buffer_once): Handle new members in the struct buffer. + (syms_of_buffer): Declare new buffer local variables + `enable-multibyte-characters' and `direction-reserved'. + + * buffer.h (BEGV_ADDR, PT_ADDR, ZV_ADDR): Use macro POS_ADDR. + (Z_ADDR, BUF_GPT_ADDR, BUF_Z_ADDR): New macros. + (struct buffer): New members `category_table', + `direction_reserved', and `enable-multibyte-characters'. + (POS_ADDR): New macro used at all places instead of &FETCH_CHAR. + (FETCH_BYTE): New macro used at any places to check the argument + against an ASCII character. + (FETCH_MULTIBYTE_CHAR): New macro used at any places to get a + character code of the argument when it is known to be a multibyte + character. + (_fetch_multibyte_char_p, _fetch_multibyte_char_len): New + variables. + (FETCH_CHAR): Use macros FETCH_MULTIBYTE_CHAR and FETCH_BYTE. + + * callint.c (doc-string of `interactive'): Describe new code + letters `i', `z', and `Z'. + (Fcall_interactively): Handle them. + + * callproc.c: Include charset.h and coding.h. + (Fcall_process): Perform character code conversion of a process + arguments and the process output. + (Fcall_process_region): Encode coding of a text given to a + process. + + * cmds.c: Include charset.h. + (forward_point, Fforward_point): New functions. + (Fforward_char, Fdelete_char): Handle multibyte characters by + calling forward_point. + (Fdelete_backward_char): Pay attention to multibyte characters + in overwrite-mode. + (internal_self_insert): Handle self inserting a multibyte + character. + (syms_of_cmds): Handle the new function Fforward_point. + + * data.c: Include charset.h. + (Qprocess): Now extern, not static. + (Faref, Faset): Enable indexing a char table by a multibyte + character. + + * dispextern.h (struct face): New members `non_ascii_gc' and + `fontset'. + [HAVE_FACES]: New macros FACE_NON_ASCII_GC and FACE_FONTSET. + + * dispnew.c: Include charset.h. + (update_line): Handle wide-column characters. + + * disptab.h (DISP_CHAR_VECTOR): Always return nil for multibyte + characters. + + * doprnt.c: Include charset.h. + (doprn1): Handle multibyte characters. + + * editfns.c: Include charset.h. + (Fchar_to_string, Fstring_to_char): Handle multibyte characters. + (Fsref): New function. + (Fgoto_char): Force point to be at a character boundary. + (Ffollowing_char, Fpreceding_char): Handle multibyte characters. + (Fchar_after): Handle multibyte characters. + (Fchar_before): New function. + (general_insert_function): New function. + (Finsert, Finsert_and_inherit, Finsert_before_markers): Use it. + (Finsert_char): Doc-string refer to markers of + before-insertion-type. Handle multibyte characters. + (Fsubst_char_in_region): Handle multibyte characters. + (Fchar_equal): Don't consider `case' of multibyte characters. + (syms_of_editfns): Handle the new function `char-before'. + + * emacs.c (main): Call several initialization function introduced + by Mule. + + * eval.c (init_eval_once): Increase max_lisp_eval_depth to 300. + + * fileio.c: Include charset.h and coding.h. + (READ_BUF_SIZE): New macro. + (Finsert_file_contents): Refer to a coding system in the docstring. + Perform character code conversion of a text read in. + (Fwrite_region): Refer to a coding system in the docstring. + Setup a coding system for character code conversion. + Pass a new arg `pre_write_conversion' (Lisp function) to + build_annotations. + Pass a new arg `coding' to a_write. + (build_annotations): Handle the new arg. + (a_write): Handle the new arg `coding' by passing it to e_write. + (WRITE_BUF_SIZE): New macro. + (e_write): Perform character code conversion of a text to write + out according to the new arg `coding'. + + * fns.c (Fcopy_sequence, concat, internal_equal, Ffillarray): + Fix a bug of miscalculation of `size_in_chars' of a bool vector. + (Fset_char_table_range): When range is vector, make the original + char table deeper if necessary. + + * frame.c: Include "charset.h" + [HAVE_WINDOW_SYSTEM]: Include fontset.h. + (make_frame): Allocate member `fontset_data' of the struct frame. + (Fdelete_frame): Free the area for the member. + + * frame.h (struct frame): New member `fontset_data'. + (FRAME_MESSAGE_BUF_SIZE): New macro. + + * insdel.c: Include charset.h. + (gap_left, gap_right): Put an anchor `\0' at the end of GAP. + (adjust_markers_for_insert): If any markers are adjusted, check + and fix the order of overlays in overlays_before. + (make_gap): Allocate an extra byte and set to `\0' for anchoring. + (insert1, insert_from_buffer_1): Put an anchor `\0' at the head of + GAP. + + * keyboard.c (command_loop_1): Pay attention to a multibyte + character while handling forward-char and backward-char. + [!HAVE_NTGUI && XK_kana_A] (lispy_kana_keys): New variable. + [!HAVE_NTGUI] (lispy_function_keys): New variable. + (make_lispy_event) [XK_kana_A]: Handle kana keys. + + * keymap.c: Include charset.h. + (push_key_description): If enable-multibyte-characters is t, use + octal representation for a code of range 128..255 as binary. + (Ftext_char_description): Handle multibyte characters. + (describe_vector): Provide prettier description of a char table + which contains multibyte characters. + + * lisp.h (CHARACTERBITS, GLYPH_MASK_REV_DIR): New macros. + (GLYPH_MASK_PADDING, GLYPH_MASK_FACE, GLYPH_MASK_CHAR): New macros. + [HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE): + Use CHARACTERBITS. + [!HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE): + New macros. + [!HAVE_FACES] (GLYPH_CHAR, GLYPH_FACE): Mask appropriate bits. + (Fcoding_system_p, Fcheck_coding_system): Declare external. + (Fread_coding_system, Fread_non_nil_coding_system): Likewise. + + * lread.c: Include charset.h. + (Vload_source_file_function): New variable. + (Fload): Call Vload_source_file_function if defined while loading + an Emacs Lisp source file. */ + (read_multibyte): New function. + (read_escape): Handle multibyte characters. + (read1): Correct the value of size_in_chars of a bool vector. + Handle the case `?' is followed by a multibyte character. + (Vload_source_file_function): New variable. + + * minibuf.c: Include charset.h. + (read_minibuf): Pay attention to multibyte characters in the arg + INITIAL while handling the arg BACKUP_N. + (scmp, Fminibuffer_complete_word): Handle multibyte characters. + + * print.c: Include charset.h. + (printchar, strout): Handle multibyte characters. + (print): Correct the value of size_in_chars of a bool vector. + + * process.c: Include charset.h and coding.h. + (proc_decode_coding_system, proc_encode_coding_system): New + variables. + (Fstart_process, create_process, Fopen_network_stream): Setup + coding systems for character code conversion. + (READ_CHILD_OUTPUT): New macro. + (read_process_output): Perform character code conversion of a + process output. + (send_process): Perform character code conversion of a text sent + to a process. + (Fset_process_coding_system, Fprocess_coding_system): New + functions. + (syms_of_process): Handle them. + + * process.h (struct Lisp_Process): New members + decode_coding_system, decoding_buf, encode_coding_system, and + encoding_buf. + + * puresize.h (BASE_PURESIZE): Increase. + + * search.c: Include category.h and charset.h. + (compile_pattern_1): Handle new argument `multibyte'. + (compile_pattern): Handle the flag `enable-multibyte-characters'. + (Vascii_downcase_table): Declare external. + (fast_string_match_ignore_case): New function. + (skip_chars): Handle multibyte characters. + (trivial_regexp_p): Handle regular expression "\\Cc" and "\\CC" + for category. + + * syntax.c: Include charset.h and category.h. + (Vsyntax_code_object): New variable. + (Fmodify_syntax_entry): Handle multibyte characters. A multibyte + character in matching parenthesis is also handled correctly. Use + shared object in the vector Vsyntax_code_object for an ASCII + character. + (describe_syntax): Handle a multibyte character in matching + parenthesis. + (describe_syntax_1): Describe also parent syntax tables. + (scan_words, Fforward_comment): Handle multibyte characters. + (scan_lists, char_quoted, Fbackward_prefix_chars): Likewise. + (scan_sexps_forward): Likewise. + (init_syntax_once): Initialize Vsyntax_code_object. + Initialize Vstandard_syntax_table by share objects in + Vsyntax_code_object. + (syms_of_syntax): Staticpro Vsyntax_code_object. + + * syntax.h (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte + characters. + (SYNTAX_ENTRY_FOLLOW_PARENT): New macro. + (SYNTAX_ENTRY): Handle syntax of multibyte characters. + (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Don't signal error even + if a syntax entry is not cons. + + * term.c: Include charset.h and coding.h. + (TS_end_italic_mode, TS_italic_mode, TS_bold_mode): New variables. + (TS_end_bold_mode, TS_end_underscore_mode): New variables. + (TS_underscore_mode): New variable. + (encode_terminal_code): New function. + (write_glyphs, insert_glyphs): Perform character code conversion + on output to a terminal. + (term_init): Initialize TS_bold_mode, TS_end_bold_mode, + TS_end_underscore_mode, and TS_underscore_mode. + + * xdisp.c: Include charset.h, coding.h, and process.h. + (display_text_line): Handle multibyte characters. + (display_mode_line): Pay attention to wide-column characters. + (decode_mode_spec_coding): New function. + (decode_mode_spec): Handle %-constructs `%z' and `%Z' to print + coding system mnemonics. + (display_string): Handle multibyte characters. + + * xfaces.c: Include charset.h. + (allocate_face, copy_face, face_eq1): Handle member `fontset' of + struct face, i.e. initialize, copy, and check it. + (intern_face, clear_face_cache): Handle member `non_ascii_gc' of + struct face, i.e. initialize and free it. + (free_frame_faces): Unload font only when fontset is not used. + Free non_ascii_gc. + (frame_update_line_height, merge_faces, compute_base_face): Handle + fontset. + (recompute_base_faces): Free non_ascii_gc. + (Fset_face_attribute_internal): Handle fontset. + + * xfns.c: Include charset.h and fontset.h. + (Vx_pixel_size_width_font_regexp): New variable. + (x_set_font): Handle fontset. + (Fx_create_frame): Create fontsets in Vglobal_fontset_alist. + (Fx_list_fonts): Handle fontset. + (syms_of_xfns): Initialize Vx_pixel_size_width_font_regexp. + Setting callback functions for fontset handler. + + * xselect.c: Include charset.h and coding.h. + (QCOMPOUND_TEXT): New variable. + (symbol_to_x_atom): Handle it. + (selection_data_to_lisp_data): Decode a selection data if + selection type is TEXT or COMPOUND_TEXT. + (lisp_data_to_selection_data): Encode a text to COMPOUND_TEXT if + it contains multibyte characters. + (syms_of_xselect): Initialize and staticpro QCOMPOUND_TEXT. + + * xterm.c: Include charset.h, ccl.h, and fontset.h. + (PER_CHAR_METRIC): New macro. + (dumpglyphs): New argument CMPCHARP. Handle multibyte characters. + (XTwrite_glyphs, redraw_previous_char, redraw_following_char): + Supply argument CMPCHARP to dumpglyphs. + (dumprectangle): Display whole glyph of wide-column characters. + Supply argument CMPCHARP to dumpglyphs. + (show_mouse_face): Supply argument CMPCHARP to dumpglyphs. + (x_draw_box): Pay attention to wide-column characters. + (x_draw_single_glyph): Supply argument CMPCHARP to dumpglyphs. + (x_new_font): Call fs_load_font for actual font loading work. + (x_new_fontset): New function. + (x_get_font_info, x_list_fonts, x_load_font, x_query_font): New + functions providing API to fontset handler. + (x_term_init): Initialize several new members of struct x_display_info. + + * xterm.h (struct font_info): This definition is moved to + fontset.h. + (struct x_display_info): New members Xatom_PIXEL_SIZE, + Xatom_MULE_BASELINE_OFFSET, Xatom_RELATIVE_COMPOSE, and null_pixel. + (x_list_fonts, x_get_font_info, x_load_font, x_query_font): + Declare external. + (struct x_output): New members font_baseline and fontset. + (FRAME_FONTSET, FRAME_X_FONT_TABLE): New macros. + + * category.h, category.c, ccl.h, ccl.c, charset.h: New files. + * charset.c, coding.h, coding.c, fontset.h, fontset.c: New files. + +1997-02-14 Richard Stallman + + * print.c (print): Generate a backslash in \2e10. + +1997-02-08 Richard Stallman + + * window.c (change_window_height): Take size from multiple siblings, + nearest ones first, when that can be done without deleting any of them. + +1997-02-07 Richard Stallman + + * minibuf.c (Fminibuffer_message): New function. + (syms_of_minibuf): Set up Lisp function. + + * syntax.c (scan_lists): Signal errors using scan-error. + (syms_of_syntax): Set up Qscan_error. + +1997-02-06 Richard Stallman + + * lread.c (Feval_buffer): Doc fix. + +1997-02-03 Richard Stallman + + * window.c (scroll_preserve_screen_position): New variable. + (keys_of_window): Set up Lisp var. + (window_scroll): If scroll_preserve_screen_position is 0, + behave the old way (advancing point the minimum distance). + +1997-02-02 Richard Stallman + + * emacs.c (main): Don't extend stack limit too far. + +Sun Feb 2 10:36:26 1997 Eli Zaretskii + + * msdos.c (dos_rawgetc): When international keyboard doesn't have + to be supported, recognize Alt-key combinations even if the Alt + key is no longer pressed. + +1997-01-31 Richard Stallman + + * xfns.c (Vx_resource_class): New variable. + (syms_of_xfns): Set up Lisp variable. + (Fx_get_resource, x_window): Use Vx_resource_class. + (validate_x_resource_name): Ensure Vx_resource_class is a string. + +1997-01-27 Paul Eggert + + * data.c (isnan): Define even if LISP_FLOAT_TYPE is not defined, + since fmod might need it. + (fmod): Ensure that the magnitude of the result does not exceed that + of the divisor, and that the sign of the result does not disagree with + that of the dividend. This does not yield a + particularly accurate result, but at least it will be in the + range promised by fmod. + + * doprnt.c: Include if STDC_HEADERS. + (DBL_MAX_10_EXP): Define if not defined; default is IEEE double. + (doprnt1): Allocate enough buffer space to handle very large floating + point numbers, or very large field widths or precisions. + Detect overflow in field widths or precisions. + +1997-01-26 Karl Heuer + + * config.in (HAVE_RINT, HAVE_CBRT): Add undefs. + +1997-01-26 Richard Stallman + + * lread.c (openp): Handle remote file names in path. + Don't use the path for an absolute name. + (Fload): Handle openp finding a remote file name. + +1997-01-25 Karl Heuer + + * floatfns.c [!HAVE_RINT] (rint): Convert macro to an actual + function, so we can take its address. + +1997-01-22 Andreas Schwab + + * indent.c (pos_tab_offset): Take the width of the minibuffer + prompt into account. + (vmotion): In calls to compute_motion use a value for tab_offset + that is corrected by the minibuffer prompt width. + + * xdisp.c (try_window): Remove frobnication of tab_offset in a + minibuffer window. + (display_text_line): Likewise, for the taboffset parameter. + +1997-01-24 Richard Stallman + + * lread.c (Qinhibit_file_name_operation): New variable. + (syms_of_lread): Initialize and staticpro. + (Fload): Bind inhibit-file-name-operation to nil. + +1997-01-23 Richard Stallman + + * eval.c (unbind_to, specbind): Use set_internal. + + * data.c (set_internal): New subroutine. New arg BINDFLAG. + Don't make a new buffer-local binding if BINDFLAG is 0. + (Fset): Use set_internal. + +1997-01-21 Paul Eggert + + * editfns.c (set_time_zone_rule_tz1, set_time_zone_rule_tz2): + Put "+" in value; needed if we are a Solaris 1 executable + running under Solaris 2. + Define these variables only if LOCALTIME_CACHE is defined. + +1997-01-21 Eli Zaretskii + + * msdos.c (run_msdos_command): Remove unused variables. + (crlf_to_lf): Remove unused variables. + (Fmsdos_downcase_filename): Remove unused variable. + (IT_set_frame_parameters): Declare prototypes for external functions. + (IT_set_frame_parameters): Correct format specifier. + (IT_set_terminal_modes): Remove unused variable. + (top level): Add header files which declare used functions. + +1997-01-21 Richard Stallman + + * Makefile.in (stamp-oldxmenu): New target. + (temacs): Depend on stamp-oldxmenu, not on ${OLDXMENU}. + +1997-01-20 Richard Stallman + + * lisp.h (FAST_MAKE_GLYPH): Rename args to CHAR and FACE. + Cast CHAR to unsigned char before using it. + + * xterm.c (dumpglyphs): Declare g as GLYPH. + +1997-01-19 Richard Stallman + + * term.c (fatal): Print a newline at the end. + (term_init): Calls to fatal changed. + + * eval.c (Fsignal): Call fatal if no error handlers and no catch. + + * dispnew.c (init_display): Check for overflow in screen size. + Use `fatal'. + +1997-01-19 Geoff Voelker + + * w32.c (init_environment): Rebuild Vsystem_configuration at startup. + + * w32gui.h: Update include conditionals to use new name. + + * w32gui.h: Renamed from win32.h. + * dispextern.h, w32term.h, makefile.nt: Use new name w32gui.h. + * makefile.nt: Update header comment. + + * w32console.c (initialize_w32_display): Renamed from + initialize_win_nt_display. + * term.c (term_init): Use new name initialize_w32_display. + + * w32.c, w32console.c, w32faces.c, w32fns.c, w32heap.c, + w32inevt.c, w32menu.c, w32proc.c, w32select.c, w32term.c, + w32xfns.c, win32.h, w32inevt.h, w32term.h: Change all uses of win95, + winnt, and win32 into Windows 95, Windows NT, and W32, respectively. + Expand "win" substring in variables referring to Microsoft Windows + constructs into "windows". + Canonicalize header comments to use same terminology. + +1997-01-18 Richard Stallman + + * search.c (skip_chars): Optimize by not calling SET_PT in the loop. + +1997-01-16 Erik Naggum + + * keymap.c (push_key_description): Print C-j, not LFD. + +1997-01-16 Eli Zaretskii + + * msdos.c (XMenuActivate): Don't allow non-positive menu + coordinates. + +1997-01-15 Eli Zaretskii + + * keyboard.c (interrupt_signal): Make emergency exit work on MSDOS + frames. Block further SIGINTs while `interrupt_signal' runs. + + * msdos.c (sigprocmask, sig_suspender): New functions, implement + signal blocking on MSDOS. + +1997-01-15 Richard Stallman + + * s/hpux9.h (HAVE_PSTAT_GETDYNAMIC): New definition. + +1997-01-15 Richard Stallman + + * w32.c (get_emacs_configuration): Return windows95 instead of win95. + +1997-01-13 Richard Stallman + + * dispnew.c (change_frame_size_1): Reject new sizes if they cause + overflow. + +1997-01-13 Eli Zaretskii + + * emacs.c (init_cmdargs) [MSDOS]: Allow `installation-directory' + to be set if either `lib-src' or `info' are found as its + subdirectories or siblings. + +1997-01-12 Richard Stallman + + * fns.c (concat): Take modulus of thisindex before shifting. + Declare thisindex as unsigned. + +1997-01-12 Geoff Voelker + + * w32menu.c (x-popup-menu): Pass in insist flag to mouse_position_hook. + +1997-01-11 Paul Eggert + + * floatfns.c (rounding_driver): New function for systematic support of + 2-argument rounding functions, so that `floor' isn't the only one + that supports 2 arguments. + (Fceiling, Ffloor, Fround, Ftruncate): Use it. + (ceiling2, floor2, round2, truncate2, double_identity): New functions. + (syms_of_floatfns): Define ceiling, round, and truncate even if + LISP_FLOAT_TYPE is not defined. + +1997-01-10 Richard Stallman + + * lread.c (read1): Round size of bool-vector properly. + + * print.c (print): Round size of bool-vector properly. + + * lread.c (read1): Fix error messages. + +1997-01-09 Steve Nygard + + * unexnext.c: Include . + (fgrowth): Initialize to zero. + (vmaddr_growth, dataseg_vmaddr, dataseg_vmend): New variables. + [NS_TARGET] (extreloff, nextrel, dysymtab, reloc_info): New variables. + (unexec_doit): Adjust file offsets of segments that follow the + enlarged data segment. Adjust vmaddr of the SEG_LINKEDIT segment that + follows the data segment. + [NS_TARGET] (unexec_doit): Adjust file offsets in the LC_DYSYMTAB load + command that follows the data segment. Zero out relocation entries + that fall within the data segment. + +1997-01-07 Karl Berry + + * filelock.c (LOCK_PID_MAX): Use sizeof (unsigned long) instead + of hardwiring 21. + (lock_file_1): Use LOCK_PID_MAX when allocating lock_info_str + instead of hardwiring 21. + +1997-01-06 Eli Zaretskii + + * msdos.c (bright_bg): Save the original state of video blink bit. + (maybe_enable_blinking): New function, restores the original state + of the blink bit. + (IT_reset_terminal_modes): Restore the original state of the blink + bit when suspending/exiting. + (run_msdos_command): Make sure bright background colors are again + enabled after subsidiary program returns. + +1997-01-06 Richard Stallman + + * data.c (Fset_default): For a BUFFER_OBJFWD, store into + buffer_defaults even if mask < 0. + +1997-01-04 Richard Stallman + + * keyboard.c (command_loop_1, read_char): + Run Qecho_area_clear_hook when clearing echo area. + (Qecho_area_clear_hook): New variable. + (syms_of_keyboard): Initialize it. + + * buffer.c (Fpop_to_buffer): New arg NORECORD. + +1997-01-04 Geoff Voelker + + * w32proc.c (compare_env, merge_and_sort_env): New functions. + (sys_spawnve): Sort environment variables for subprocess. + (ppid_env_var_buffer): Variable deleted. + +1997-01-02 Karl Berry + + * filelock.c (lock_info_type): Declare pid as unsigned long + instead of int. + (lock_file_1): Use %lu instead of %d in printf. + +1997-01-01 Richard Stallman + + * cmds.c (internal_self_insert): Check the property + on the hook, not on the abbrev symbol. + + * dispnew.c (update_frame): Call detect_input_pending + for X as well as for termcap frames. + +1996-12-31 Richard Stallman + + * bytecode.c (HANDLE_RELOCATION): New macro. + (MAYBE_GC): Call HANDLE_RELOCATION. Swallow following semicolon. + (Fbyte_code): Use HANDLE_RELOCATION. + +1996-12-31 Paul Eggert + + * s/nextstep.h, s/sco4.h (BROKEN_MKTIME): New macro. + * Makefile.in (MKTIME_OBJ), config.in (mktime): + Use BROKEN_MKTIME to determine whether mktime is broken. + +1996-12-30 Paul Eggert + + * data.c, floatfns.c: : Include if STDC_HEADERS. + (IEEE_FLOATING_POINT): New symbol. + * data.c (float_arith_driver, Fmod), floatfns.c (Ffloor): + Test for division by 0 only if ! IEEE_FLOATING_POINT. + * floatfns.c (fmod_float): New function. + + * Makefile.in (MKTIME_OBJ): Use our mktime instead of SCO + 3.2v4.2's, since SCO's botches time arithmetic as used by display-time. + +1996-12-30 Richard Stallman + + * bytecode.c (Fbyte_code): Add error check for jumping out of range. + + * s/hiuxmpp.h, m/sr2k.h: New files. + +1996-12-29 Richard Stallman + + * Makefile.in (process.o): Depend on blockinput.h. + + * process.c: Include blockinput.h. + (create_process): Block input around the fork. + +1996-12-27 Karl Berry + + * filelock.c: Total rewrite. + +1996-12-26 Richard Stallman + + * data.c (Ffset): Change argument name and doc string. + (Fdefalias): Likewise. + +1996-12-26 Richard Stallman + + * xterm.c (x_iconify_frame): Clear visible when we set iconified. + +1996-12-25 Richard Stallman + + * window.c (window_scroll): Preserve vpos of point + if we cannot preserve the actual position of it. + Make it static. New arg WHOLE; callers changed. + + * keyboard.c (read_char_x_menu_prompt): Unread and record all the + input events from here. + (record_menu_key): New subroutine. + + * xmenu.c (single_keymap_panes): New arg DEPTH. + Cut off recursion at that depth. Callers changed. + +1996-12-23 +02 Eli Zaretskii + + * msdos.c (dos_set_keyboard): Test whether KEYB.COM is installed + for international keyboard support. + (dos_get_modifiers): If international keyboard support is NOT + required, make both Right and Left Alt key behave like Meta key. + +1996-12-22 Richard Stallman + + * emacs.c (standard_args): Add -find-file and -visit. + + * cmds.c (internal_self_insert): If the abbrev has no expansion, + just a hook, inhibit the insertion of the character. + + * abbrev.c (Fexpand_abbrev): Return the abbrev symbol, + or nil if no expansion. + +1996-12-20 Richard Stallman + + * xdisp.c (try_window): Add error check for POS. + +1996-12-19 Richard Stallman + + * s/nextstep.h (LD_SWITCH_SYSTEM): Use just -X. + (LIB_STANDARD): Alternate definition if NS_TARGET. + + * xfns.c (x_set_title): Check data type of NAME. + + * search.c (Fmatch_data): Doc fix. + +1996-12-19 Werner Benger + + * keyboard.c (modify_event_symbol): + Don't index thru name_table if it is null. + +1996-12-19 Erik Naggum + + * process.c (read_process_output, exec_sentinel): + * w32menu.c (set_frame_menubar): + * xdisp.c (prepare_menu_bars, update_menu_bar): + * xmenu.c (set_frame_menubar): + Call Fmatch_data with new explicit arguments. + +1996-12-18 Richard Stallman + + * search.c (Fmatch_data): New args INTEGERS and REUSE. + + * process.c (send_process) [EMACS_HAS_USECS]: + When we wait for the buffer to clear, wait just .02 second. + + * intervals.c (adjust_intervals_for_insertion): + Be smarter about when to split an interval + for properties that are not sticky on either side. + + * intervals.h (FRONT_NONSTICKY_P): New macro. + + * intervals.c (set_point): Use virtual bounds, not real bounds, + in the abort test for POSITION. + Skip the intangibility test if POSITION is at either end of buffer. + +1996-12-18 Jonathan I. Kamens + + * config.in (HAVE_LIBMAIL, HAVE_MAILLOCK_H, HAVE_TOUCHLOCK): + Add #undefs. + +1996-12-16 Richard Stallman + + * fileio.c (Finsert_file_contents): Handle BEG and END non-nil + when REPLACE is non-nil. + +1996-12-15 Richard Stallman + + * intervals.c (merge_properties_sticky): Don't discard explicit nil + properties. Don't put on a front-sticky property if we inherit + one from the category that does the job. + + * config.in (HAVE_LIMITS_H): Add #undef. + +1996-12-14 Richard Stallman + + * intervals.c (set_point): Check for intangible properties + on overlays. + + * textprop.c (Fnext_char_property_change): New function. + (Fprevious_char_property_change): New function. + (syms_of_textprop): defsubr them. + +1996-12-14 Lars Magne Ingebrigtsen + + * editfns.c (Fuser_full_name): Return nil if the specified user + doesn't exist. + (init_editfns): Set Vuser_full_name to "unknown" if the user name + can't be resolved. + +1996-12-14 Richard Stallman + + * strftime.c: Replace this with the version from libc. + +1996-12-12 Richard Stallman + + * xfns.c (x_set_scroll_bar_width): Reject a width that's too small. + +1006-12-10 Richard Stallman + + * buffer.c (syms_of_buffer): Doc fix (transient-mark-mode). + +1996-12-10 Andrew Innes + + * fileio.c (Fwrite_region): Be careful not to destroy contents of + existing file when appending. + +1996-12-09 Richard Stallman + + * fileio.c (Fread_file_name_internal): Verify STRING is a string. + (Fread_file_name): Don't insert DIR or INITIAL if it isn't a string. + +1996-12-08 Richard Stallman + + * s/aix4-2.h: New file. + +1995-12-08 Lars Magne Ingebrigtsen + + * editfns.c (Fuser_full_name): Use build_string instead of make_string. + +1996-12-08 Richard Stallman + + * callproc.c (Fcall_process_region): Define missing local `count'. + + * xdisp.c (message2_nolog): Handle minibuffer_auto_raise. + + * minibuf.c (syms_of_minibuf): Doc fix. + +1996-12-07 Lars Magne Ingebrigtsen + + * editfns.c (Fuser_full_name): Accept a string (the login name) as + a parameter. Do ampersand expansion, if required. + (init_editfns): Use it. + +1996-12-06 Eli Zaretskii + + * msdos.c (IT_cmgoto): Don't update FRAME_CURSOR_X when the cursor + is in echo area. + +1996-12-05 Erik Naggum + + * keyboard.c (syms_of_keyboard): Doc fix. + +1996-11-28 Richard Stallman + + * callproc.c (Vtemp_file_name_pattern): New variable. + (syms_of_callproc): Set up Lisp variable. + (init_callproc): Initialize it. + (Fcall_process_region): Use it. + + * bytecode.c (MAYBE_GC): New macro. + (Fbyte_code): Use MAYBE_GC in every goto opcode. + +1996-11-25 Karl Heuer + + * editfns.c (Fline_beginning_position, Fline_end_position): New fns. + * cmds.c (Fend_of_line, Fbeginning_of_line): + Use Fline_beginning_position, Fline_end_position. + * lisp.h (Fend_of_line, Fbeginning_of_line): Declared. + +1996-11-23 Richard Stallman + + * window.c (window_scroll): Don't set w->start or w->force_start + if signaling an error. + + * xmenu.c (Vmenu_updating_frame): New variable. + (syms_of_xmenu): Set up Lisp var. + (Fx_popup_menu, set_frame_menubar): Initialize it. + +1996-11-23 Erik Naggum + + * keyboard.c (syms_of_keyboard): Doc fix for num-input-keys. + +1996-11-22 Lars Magne Ingebrigtsen + + * editfns.c (Fuser_full_name): Accept an optional UID and return + the full name of that user instead. + +1996-11-20 Andrew Innes + + * w32fns.c (w32_wnd_proc): Use dummy message to wake up thread on + quit_char. + +1996-11-19 Eli Zaretskii + + * msdos.c [__DJGPP__ >= 2] (dos_direct_output): Faster method of + writing characters to the screen. + (SCREEN_SET_CURSOR): Remove. + (IT_display_cursor): New function, to turn the cursor on and off. + (IT_cmgoto): New function, sets the cursor to its final position + whenever frame update is complete. + (internal_terminal_init): Set IT_cmgoto as the hook to be called + when frame is up to date. + (dos_rawgetc): Call IT_cmgoto instead of the SCREEN_SET_CURSOR + macro (which is gone now). + (XMenuActivate): Turn off the cursor while the menu is displayed, + to prevent it from showing through the menu panes. + +1996-11-19 Geoff Voelker + + * w32.c, w32.h: Renamed from nt.c, nt.h. + * w32heap.c, w32heap.h: Renamed from ntheap.c, ntheap.h. + * w32inevt.c, w32inevt.h: Renamed from ntinevt.c, ntinevt.h. + * w32proc.c: Renamed from ntproc.c. + * w32console.c: Renamed from w32term.c. + * unexw32.c: Renamed from unexnt.c. + * s/ms-w32.h: Renamed from s/windowsnt.h. + + * dispnew.c (init_display) [HAVE_NTGUI]: Use w32 for window-system. + + * Makefile.in, callproc.c, makefile.nt: Use new names for w32 files. + +1996-11-18 Geoff Voelker + + * emacs.c, frame.c, frame.h, keyboard.c, nt.c, nt.h, + ntheap.c, ntheap.h, ntinevt.c, ntinevt.h, ntproc.c, ntterm.c, + termhooks.h, unexnt.c, w32faces.c, w32fns.c, w32menu.c, w32reg.c, + w32select.c, w32term.c, w32term.h, w32xfns.c, s/windowsnt.h: + Change identifiers of the form win32* to w32*. + + * window.c (special-display-p, same-window-p): Add missing + newlines and backslashes in help strings. + +1996-11-12 Richard Stallman + + * xdisp.c (redisplay_window): When handling scroll_conservatively, + scroll a little farther for the sake of scroll_margin. + +1996-11-11 Richard Stallman + + * abbrev.c (Fexpand_abbrev): If the abbrev's expansion is nil, + don't expand it, but do still call the hook. + (Fdefine_abbrev): Allow anything for EXPANSION. + + * frame.c (Fmodify_frame_parameters): Use alist in reverse order. + +1996-11-10 Richard Stallman + + * process.c (status_notify): Test p->infd > 0 + before each call to read_process_output. + (read_process_output): Handle match data properly in recursive calls. + (exec_sentinel): Likewise. + + * window.c (window_scroll): Handle scroll_margin + by putting point at a place that won't force recentering. + + * xdisp.c (scroll_margin): New variable. + (init_xdisp): Set up Lisp variable. + (redisplay_window): Implement scroll_margin; don't use old start pos + if point is inside the margin. + +1996-11-09 Richard Stallman + + * window.h (struct window): New field optional_new_start. + * xdisp.c (redisplay_window): Handle optional_new_start. + * window.c (Fdelete_other_windows): Set optional_new_start + instead of force_start. + + * insdel.c (signal_after_change): If Vcombine_after_change_calls, + save up changes in combine_after_change_list. + (Fcombine_after_change_execute) + (Fcombine_after_change_execute_1): New subroutines. + (syms_of_insdel): New function. + + * emacs.c (main): Call syms_of_insdel. + + * fns.c: Include frame.h and window.h. + (Fy_or_n_p): Handle minibuffer_auto_raise here. + + * Makefile.in (fns.o): Depend on frame.h and window.h. + +1996-11-08 Richard Stallman + + * macros.c (Fcall_last_kbd_macro): Set this_command from last_command + on entry and again on exit. + +1996-11-07 Richard Stallman + + * frame.c (Fmodify_frame_parameters): Doc fix. + + * fileio.c (USG5 or BSD_SYSTEM or LINUX): Include fcntl.h. + (Ffile_readable_p): Return immediately if stat fails. + Call S_ISFIFO correctly. + +1996-11-06 Richard Stallman + + * editfns.c (Fencode_time): Doc fix. + +1996-11-06 John F. Carr + + * dired.c (Ffile_attributes): Represent inode number as a pair of + integers in case inode numbers do not fit in a Lisp integer. + +1996-11-06 Eli Zaretskii + + * msdos.c [__DJGPP_MINOR__ == 0] (_rename): New function, a + substitute for library low-level file-renaming function which + works around Windows 95 bug. + +1996-11-06 Richard Stallman + + * window.c (window_loop, case GET_BUFFER_WINDOW): + Don't find any minibuffer window + except the one that is currently in use. + +1996-11-05 Richard Stallman + + * fileio.c (S_ISFIFO): Default definition (if S_IFIFO is defined). + + * editfns.c (Fencode_time): Use xfree, not free. + + * print.c (PRINTFINISH): Use xfree, not free. + +1996-11-04 Richard Stallman + + * xfns.c (Fx_create_frame): Look for X-resource for minibuffer. + + * alloc.c (Fgarbage_collect): Use Vhistory_length + for truncating Vcommand_history. + + * print.c (PRINTPREPARE): Really do set free_print_buffer. + + * xdisp.c (scroll_conservatively): New variable. + (redisplay_window): Obey it. + (syms_of_xdisp): Set up Lisp var. + +1996-11-02 Richard Stallman + + * minibuf.c (choose_minibuf_frame): Don't change selected_frame's + selected window even if it is a minibuffer window, + if it is active. + +1996-11-01 Richard Stallman + + * print.c (PRINTDECLARE): Declare specpdl_count and free_print_buffer. + (PRINTPREPARE): If print_buffer is nonzero, + save its contents in a string using record_unwind_protect. + (PRINTFINISH): Restore old print_buffer contents. + Free it only if this PRINTPREPARE malloc'd it. + (print): Don't call PRINTFULLP after all. + (print_unwind): New function. + + * print.c (printchar, strout): Do QUIT for echo area output. + (PRINTFULLP): New macro. + (print): Exit if PRINTFULLP. + When printing a symbol, don't save a pointer to the name. + (PRINTFINISH): Null out print_buffer after freeing it. + +1996-10-31 Richard Stallman + + * xterm.c (cancel_mouse_face): New function. Code copied from + x_set_window_size, fixing a bug. + (x_set_window_size): Use cancel_mouse_face. + (XTread_socket): When frame size has changed, call cancel_mouse_face. + + * widget.c (EmacsFrameResize): Use cancel_mouse_face. + +1996-10-31 Erik Naggum + + Reorganize function definitions so etags finds them. + * abbrev.c (Finsert_abbrev_table_description). + * editfns.c (Finsert_and_inherit_before_markers). + * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success, + Frun_hook_with_args_until_failure). + * window.c (Fcurrent_window_configuration). + * xselect.c (Fx_own_selection_internal, Fx_get_selection_internal, + Fx_disown_selection_internal). + +1996-10-30 Richard Stallman + + * emacs.c (main): Clear out *Messages* before init_callproc. + + * keyboard.c (command_loop_1): Update selected buffer again + after read_key_sequence. + +1996-10-29 Richard Stallman + + * callproc.c (init_callproc): Use dir_warning. + + * lread.c (dir_warning): New function. + (init_lread): Use dir_warning. + +1996-10-28 Erik Naggum + + * alloc.c (Fmake_char_table): Doc fix. + +1996-10-25 Richard Stallman + + * keymap.c (describe_buffer_bindings): Pass 1 for PARTIAL + in some calls to describe_map_tree. + +1996-10-24 Richard Stallman + + * process.c (status_notify): Update p->tick again + just before running the sentinel, in case it dies. + +1996-10-23 Richard Stallman + + * xdisp.c (decode_mode_spec): In the `L' case, + remove a buffer from base_line_pos if window has switched buffers. + +1996-10-15 Richard Stallman + + * minibuf.c (read_minibuf_unwind): Don't restore minibuf_window; + instead call choose_minibuf_frame. + (choose_minibuf_frame): Don't let any other frame keep its minibuf + window selected. + + * xterm.c (XTread_socket, KeyPress case): Clear compose_status + if the key has the meta modifier. + +1996-10-14 Richard Stallman + + * eval.c (Vdebug_on_signal): Renamed from Vdebug_force. + +1996-10-13 Richard Stallman + + * m/pmax.h (BROKEN_O_NONBLOCK): Define only if Ultrix. + (LIBS_MACHINE, KERNEL_FILE): Don't define if __NetBSD__. + (C_SWITCH_X_MACHINE): Define only if Ultrix. + [__NetBSD__] (START_FILES, CANNOT_DUMP): New definitions. + [__NetBSD__] (RUN_TIME_REMAP, UNEXEC): Undef them. + + * m/mips.h (UNEXEC): Undef before defining. + + * fileio.c (Fexpand_file_name): + No longer discard .../ before another / or ~. + That is now only in Fsubstitute_in_file_name. + +1996-10-12 Simon Marshall + + * data.c (Fdefine_function): Function definition deleted. + (syms_of_data): Don't call defsubr for it. + +1996-10-12 Richard Stallman + + * xterm.c (XTwrite_glyphs, XTclear_end_of_line, XTclear_frame) + (clear_cursor, x_display_bar_cursor, x_display_box_cursor) + (x_set_window_size): Use phys_cursor_on field in frame. + (x_update_cursor): Negative phys_cursor_x no longer means anything. + + * frame.h (struct frame): New field phys_cursor_on. + +1996-10-08 David Kågedal + + * xmenu.c (Fx_popup_menu): Give the menu a title when the menu is + a single keymap. + +1996-10-07 Richard Stallman + + * s/ptx.h (POSIX_SIGNALS): New definition. + + * dispnew.c (init_display): If not yet initialized, + we can't really use X, so we must do the real work. + +1996-10-06 Richard Stallman + + * xdisp.c (display_text_line): New arg ovstr_done. (Callers changed). + Ignore that many chars from start of overlay strings. + Return updated value in ovstring_chars_done field. + + * indent.c (vmotion, compute_motion): Fill in ovstring_chars_done + in the return value. + + * indent.h (struct position): New field ovstring_chars_done. + +1996-10-06 Erik Naggum + + * window.c (Fspecial_display_p, Fsame_window_p): New functions. + (Fdisplay_buffer): Use them, instead of doing the work here. + (syms_of_window): Defsubr them. + +1996-10-05 Marcus G. Daniels + + * xfns.c (x_set_internal_border_width): Only change + an edit_widget's internal_border_width for the toolkit case. + +1996-10-04 Richard Stallman + + * lread.c (openp): Omit /: from start of file name. + +1996-10-03 Richard Stallman + + * buffer.c (init_buffer): Add /: to dir names that could be magic. + * emacs.c (decode_env_path): Add /: to dir names that could be magic. + (init_cmdargs): Add /: to argv[0] if it could be magic. + +1996-10-02 Richard Stallman + + * xfns.c (syms_of_xfns): For x-sensitive-text-pointer-shape, use + DEFVAR_LISP. + +1996-10-01 Karl Heuer + + * frame.c (store_frame_param): Allow setting a frame's minibuffer + to the value that it already has. + +1996-10-01 Richard Stallman + + * buffer.c (syms_of_buffer): Doc fix. + +1996-09-28 Richard Stallman + + * xterm.c (show_mouse_face): Undo 1996-08-30 change. + + * s/irix5-0.h (ospeed): New definition. + * s/irix6-0.h (ospeed): New #undef to counteract that definition. + +1996-09-27 Richard Stallman + + * xterm.c (XTflash): Don't flash in the internal borders. + or between a scroll bar and the edge. + + * eval.c (Vdebug_force): New variable. + (syms_of_eval): Set up Lisp var. + (find_handler_clause): If Vdebug_force, call debugger + even if there are handlers. + +1996-09-26 Marcus Daniels + + * xfns.c (x_set_scroll_bar_width): Move cursor to the + left margin, past a scroll bar, if any. + +1996-09-26 Richard Stallman + + * lread.c (isfloat_string): Accept E like e. + + * callint.c (Fcall_interactively): Bind cursor-in-echo-area to t + for `k' and `K'. + + * s/hpux10.h (KERNEL_FILE): Redefine it here. + +1996-09-25 Richard Stallman + + * textprop.c (Fset_text_properties, Fadd_text_properties) + (Fremove_text_properties): Call modify_region and signal_after_change + only for buffers, not for strings. + + * xterm.c (XTflash): Flash just top and bottom screen line. + + * window.c (syms_of_window): Doc fixes. + +1996-09-25 Marcus Daniels + + * s/irix5-0.h (sigsetmask, _longjmp, _setjmp): #undef them. + (_BSD_SIGNALS): Definition deleted. + +1996-09-25 Eli Zaretskii + + * dosfns.c (init_dosfns): When setting `__opendir_flags' value, + override the bits recorded when dumping. + +1996-09-24 Richard Stallman + + * w32term.c (w32_read_socket): Delete WAITP arg. + + * keyboard.c (read_avail_input): Don't pass WAITP to read_socket_hook. + + * xterm.c (XTread_socket): Delete WAITP arg. + + * config.in (HAVE_GETCWD): Add #undef. + + * fileio.c (Vuser_login_name): Declared extern. + (minibuf_level): extern decl moved to top level. + (Fwrite_region): Query before writing to a file that is locked, + even if it is locked by the same user. + + * textprop.c (set_properties, add_properties, remove_properties): + Don't call modify_region or signal_after_change here. + (Fset_text_properties, Fadd_text_properties, Fremove_text_properties): + Call them here when appropriate. + + * Makefile.in (LIBES): Add LOADLIBES and LDLIBS. + +1996-09-24 Eli Zaretskii + + * msdos.c (run_msdos_command): When testing whether a shell + belongs to the MSDOS family, convert its name to lower-case. + +1996-09-24 Richard Stallman + + * eval.c (Vsignal_hook_function): New variable. + (syms_of_eval): Set up Lisp variable. + (Fsignal): Call that function. + + * xfns.c (x_set_internal_border_width, Fx_create_frame): + Call widget_store_internal_border. + (Fx_create_frame): Don't use a superclass when + checking for an internalBorder resource. + + * widget.c (widget_store_internal_border): New function. + (EmacsFrameSetValues): Undo previous change. + +1996-09-23 Richard Stallman + + * xfns.c (x_window): With Motif, double extra_borders. + Use a preprocessor conditional to test for Motif. + + * frame.h (struct frame): New field window_width. + (FRAME_WINDOW_WIDTH): Refer to window_width field. + (SET_FRAME_WIDTH): Set window_width field as well as width field. + +1996-09-22 Richard Stallman + + * eval.c (syms_of_eval): Initialize Vrun_hooks here. + Don't make it a Lisp variable. + + * frame.c (Fdelete_frame): Set update_mode_lines. + + * emacs.c (main): Add copyright etc. to --version output. + +1996-09-21 Richard Stallman + + * bytecode.c (Bsave_current_buffer): New macro. + (Fbyte_code): Handle Bsave_current_buffer. + + * editfns.c (Fsave_current_buffer): New function. + (syms_of_editfns): defsubr it. + + * search.c (REGEXP_CACHE_SIZE): Increase to 20. + (compile_pattern): Check for size match before calling Fstring_equal. + +1996-09-21 Paul Eggert + + * editfns.c: For time zone difference calculations, use the same + code as the GNU C Library; this fixes a bug with large negative years. + (tm_diff): Renamed from difftm. Yield int, not long. + (TM_YEAR_BASE): Renamed from TM_YEAR_ORIGIN. + +1996-09-21 Richard Stallman + + * xdisp.c (echo_area_display): Clear the left-side scroll bar columns. + +1996-09-20 Richard Stallman + + * xterm.c (x_scroll_bar_create, x_scroll_bar_move): + (x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM. + + * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Renamed from + LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM. + (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM. + + * widget.c (EmacsFrameSetValues): Copy internal_border_width + from the Emacs frame if caller isn't changing it. + + * xfns.c (Fx_create_frame): Default Qinternal_border_width to 1. + + * xterm.c (XTchange_line_highlight, dumpglyphs, XTclear_end_of_line) + (do_line_dance, pixel_to_glyph_coords): Use FRAME_WINDOW_WIDTH. + + * xfns.c (x_set_scroll_bar_width): Default the width to 3 cols. + Call change_frame_size. + + * xterm.c (x_scroll_bar_move, x_scroll_bar_create): + Add a border around the actual window. + + * dispnew.c (make_frame_glyphs, update_line, update_frame) + (scroll_frame_lines, char_ins_del_cost): Use FRAME_WINDOW_WIDTH. + + * minibuf.c (read_minibuf): Use FRAME_LEFT_SCROLL_BAR_WIDTH + to set the cursor position at the end. + + * xterm.c (x_scroll_bar_expose): Don't trim the width here. + + * xdisp.c (display_mode_line): Use faces for inverse video mode line + whenever that possible. + + * xfns.c (Fx_create_frame): Default Qvertical_scroll_bars to `left'. + +Fri Sep 20 02:37:37 1996 Marcus Daniels + + * xterm.c (XTclear_end_of_line): Shift end-of-line when there is a + left-side scroll bar by FRAME_LEFT_SCROLL_BAR_WIDTH. + (do_line_dance): Take into account the width of a left-side scroll bar. + (dumprectangle): Trim at FRAME_WINDOW_WIDTH instead of FRAME_WIDTH. + (fast_find_position): Use new macro WINDOW_LEFT_MARGIN. + (show_mouse_face): Likewise. + (x_scroll_bar_set_handle): VERTICAL_SCROLL_BAR_INSIDE_WIDTH now + requires the frame as an argument. + (x_scroll_bar_expose): Narrow the box slightly for a left-side + scroll bar. + + * xfns.c: Add the symbol `right'; this symbol is used to indicate + that a right-side scroll bar is wanted. + (x_set_vertical_scroll_bars): Check for left<->right<->none + scroll bar changes, and modify the vertical scroll bar type + as appropriate. + (x_figure_window_size): Use new SET_FRAME_WIDTH macro. + (Fx_create_frame): Likewise. + (Fx_horizontal_line): Use new macro WINDOW_LEFT_MARGIN. + + * xdisp.c (echo_area_display): Shift display_string past a + left-side scroll bar. + (redisplay_window): Likewise. + (redisplay_internal): Shift cursor past a left-side scroll bar. + (redisplay_window): Likewise. + (try_window_id): Likewise. + (display_text_line): Likewise. + (redisplay_internal): Shift charstarts past a left-side scroll bar. + (display_text_line): Likewise. + (redisplay_internal): Use new macro WINDOW_FULL_WIDTH_P. + (redisplay_window): Likewise. + (display_text_line): Likewise. + (display_text_line): Shift output past left-side scroll bar. + (display_text_line): Use new WINDOW_RIGHTMOST_P macro. + (display_text_line): Don't pad right columns unless using + a right-side scroll bar. Don't draw vertical bars unless there + isn't any kind of scroll bar. + (display_string): Likewise. + (display_mode_line): Use new macros WINDOW_LEFT_MARGIN, + WINDOW_RIGHT_MARGIN, and WINDOW_FULL_WIDTH_P. + (display_string): Use new macro WINDOW_RIGHTMOST_P. + + * window.c (Fwindow_edges): Use new WINDOW_RIGHT_EDGE macro. + (coordinates_in_window): Use WINDOW_LEFT_MARGIN, WINDOW_RIGHT_MARGIN, + and WINDOW_RIGHT_EDGE. Adjust for left-side scroll bar margin. + (window_loop, Fdisplay_buffer): Use new WINDOW_FULL_WIDTH_P macro. + (window_internal_width): Window width now always includes the + scroll bar, if any. Use WINDOW_RIGHTMOST_P and WINDOW_FULL_WIDTH_P. + + * w32term.c (fast_find_position, show_macro_face): Use new + WINDOW_LEFT_MARGIN macro. + + * w32fns.c (Qright): New variable. + (syms_of_win32fns): Initialize and staticpro Qright. + (x_set_vertical_scroll_bars): Check for left<->right<->none + scroll bar changes, and modify the vertical scroll bar type + as appropriate. + (x_figure_window_size): Use new SET_FRAME_WIDTH macro. + (Fx_create_frame): Likewise. + + * term.c (term_init): Use new vertical scroll bar enumerated type. + (term_init): Use new macro SET_FRAME_WIDTH. + + * sunfns.c (Fsun_menu_internal): Use new WINDOW_LEFT_MARGIN macro. + + * ntterm.c (initialize_win_nt_display): Use SET_FRAME_WIDTH. + + * keyboard.c (make_lispy_event): When converting from pixel to + glyph coordinates, offset by WINDOW_LEFT_MARGIN instead of XINT + (XWINDOW (window)->left; this is necessary when there are + left-side scrollbars. + + * frame.c (make_frame): Switch from boolean + `has_vertical_scrollbars' integer to an enumerated type. + Use new macro SET_FRAME_WIDTH. + + * dispnew.c (preserve_other_columns, preserve_my_columns): Use new + macros WINDOW_LEFT_MARGIN and WINDOW_RIGHT_EDGE. + (adjust_window_charstarts, verify_charstarts, cancel_my_columns): + Use new macro WINDOW_LEFT_MARGIN instead of w->left. + (direct_output_for_insert, direct_output_forward_char): Likewise. + (buffer_posn_from_coords): Likewise. + (verify_charstarts): Use new macro WINDOW_FULL_WIDTH_P. + (update_frame): For determining when to wrap the cursor, use the + new macro FRAME_WINDOW_WIDTH instead of FRAME_WIDTH; they aren't + necessarily the same any more. + (change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes. + Give `set_window_width' the window width value. + Use new macro SET_FRAME_WIDTH. + + * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Add frame as an + argument, and use it to decrease the width in the case of a + left-side scroll bar; this prevents the bar and adjacent text + from scrunching together. + (LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM): Add constant. + + * frame.h (vertical_scroll_bar_type): Add enumerated + none/left/right type for identifying vertical scroll bars. + (struct frame): Use vertical_scroll_bar_type. + (FRAME_HAS_VERTICAL_SCROLL_BARS): Use vertical scroll bar type. + (FRAME_VERTICAL_SCROLL_BAR_TYPE): New macro. + (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT): New macros. + (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT): New macros. + (FRAME_SCROLL_BAR_WIDTH, FRAME_LEFT_SCROLL_BAR_WIDTH): New macros. + (FRAME_WINDOW_WIDTH, FRAME_WINDOW_WIDTH_ARG): New macros. + (SET_FRAME_WIDTH): New macro for assigning to both + `external_width' and `width'. + (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side + scroll bars too. + + * window.h (WINDOW_LEFT_MARGIN): New macro. + (WINDOW_RIGHT_EDGE, WINDOW_RIGHT_MARGIN): New macros. + (WINDOW_FULL_WIDTH_P, WINDOW_RIGHTMOST_P): New macros. + +1996-09-20 Richard Stallman + + * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_HEIGHT): New arg F (not used). + (VERTICAL_SCROLL_BAR_TOP_RANGE): New arg F (not used). + * xterm.c: Pass frame arg in calls to VERTICAL_SCROLL_BAR_INSIDE_HEIGHT + and VERTICAL_SCROLL_BAR_TOP_RANGE. + + * sysdep.c (init_system_name): Retry gethostbyname only 5 times + and don't sleep after the last time. + +1996-09-19 Eli Zaretskii + + * dired.c (file_name_completion): Remove code which sets and + restores the `stat' control flags (they might not be restored if + C-g is pressed during completion). + (file_name_completion_stat): Set and restore flags that make + `stat' faster here instead of in `file_name_completion'. + +1996-09-18 Richard Stallman + + * buffer.c (overlay_strings): Declare pstr using unsigned char. + + * xdisp.c (display_text_line): Declare ovstr as unsigned char *. + + * minibuf.c (Fcompleting_read): Doc fix. + +1996-09-17 Erik Naggum + + * lisp.h: Declare make_symbol. + + * lread.c (init_obarray): staticpro Qvariable_documentation. + + * keymap.c (syms_of_keymap): staticpro global_map. + + * keyboard.c (syms_of_keyboard): Initialize and staticpro + internal_last_event_frame and read_key_sequence_cmd. + + * fileio.c (syms_of_fileio): staticpro Qset_visited_file_modtime. + + * dired.c (syms_of_dired): staticpro Qdirectory_files, + Qfile_name_completion, Qfile_name_all_completions, and Qfile_attributes. + + * casetab.c (syms_of_casetab): staticpro Vascii_canontable, + Vascii_eqv_table, and Vascii_upcase_table. + + * alloc.c (Fmake_symbol): Initialize `obarray' field. + +1996-09-16 Karl Heuer + + * Makefile.in: Replaced symbol BSD with BSD_SYSTEM. + * emacs.c, floatfns.c, keyboard.c, mem-limits.h, process.c: Likewise. + * sysdep.c, syssignal.h, syswait.h, xterm.c: Likewise. + * s/bsd386.h, s/bsd4-1.h, s/bsd4-2.h, s/bsd4-3.h, s/dgux.h: Likewise. + * s/freebsd.h, s/msdos.h, s/rtu.h, s/umax.h, s/umips.h: Likewise. + * m/intel386.h, m/mips.h, m/mips4.h, m/vax.h: Likewise. + +1996-09-16 Richard Stallman + + * buffer.c (Fget_buffer_create): Initialize BUF_OVERLAY_MODIFF. + + * minibuf.c (read_minibuf_unwind): Clear last_overlay_modified field. + + * msdos.c (IT_set_menu_bar_lines): Clear last_overlay_modified field. + + * w32term.c (note_mouse_highlight): Test last_overlay_modified field. + + * xterm.c (note_mouse_highlight): Test last_overlay_modified field. + + * window.c (Fset_window_start): Clear last_overlay_modified field. + (set_window_height, set_window_width, Fset_window_buffer) + (change_window_height, window_scroll, Fset_window_configuration): + Clear last_overlay_modified field. + (Fpos_visible_in_window_p): Test last_overlay_modified field. + + * Makefile.in (frame.o, textprop.o, abbrev.o): Depend on window.h. + + * process.c (stream_process): Variable deleted. + (syms_of_process): staticpro deleted. + +1996-09-15 Richard Stallman + + * sysdep.c: Don't explicitly Include termios.h. + (ospeed): Use HAVE_TERMIOS to decide whether to use speed_t. + + * s/hpux9.h (C_SWITCH_X_SYSTEM): Add -I/usr/contrib/X11R5/include. + (LD_SWITCH_X_DEFAULT): Add -L/usr/contrib/X11R5/lib. + +1996-09-14 Richard Stallman + + * buffer.h (struct buffer): New field overlay_modiff. + (MODIFF, BUF_OVERLAY_MODIFF): New macros. + * window.h (struct window): New field last_overlay_modified. + + * xdisp.c (redisplay_internal, mark_window_display_accurate) + (redisplay_window): Test and update last_overlay_modified field + along with last_modified. + + * dispnew.c (direct_output_for_insert): Set last_overlay_modified + field in window. + + * keyboard.c (command_loop_1): Test last_overlay_modified + along with last_modified. + + * xdisp.c (overlay_unchanged_modified): New variable. + (redisplay_internal): Set overlay_unchanged_modified. + * insdel.c (gap_left, gap_right, modify_region): + Compare overlay_unchanged_modified with OVERLAY_MODIFF. + + * buffer.c (modify_overlay): Renamed from redisplay_region + moved here from xdisp.c, and made static. Callers changed. + Update OVERLAY_MODIFF instead of MODIFF. + * xdisp.c (redisplay_region): Renamed and moved to buffer.c. + + * s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): + Don't define them if using GCC. + +1996-09-13 Richard Stallman + + * keyboard.c (recursive_edit_1): Handle a string as the + throw value. + + * minibuf.c (read_minibuf): If not in minibuffer window, + cancel the active minibuffer. + +1996-09-12 Richard Stallman + + * frame.c (Fmake_terminal_frame): Use Vdefault_frame_alist. + + * s/hpux9.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT): + Don't specify dirs for X, only for Motif. + +1996-09-11 Richard Stallman + + * lread.c (Fload): Move ... to ends of messages. + + * puresize.h (BASE_PURESIZE): Increased. + + * s/sco5.h (LIBX11_SYSTEM): Don't use ..._s libraries. + +1996-09-10 Richard Stallman + + * insdel.c (signal_before_change): Fix previous change. + + * lisp.h (struct Lisp_Symbol): New field `obarray'. + + * xterm.c (x_connection_closed): Call XtCloseDisplay. + +1996-09-09 Richard Stallman + + * keyboard.c (Fexecute_extended_command): Delete junk lines. + Print the key bindings after the command, temporarily; + then bring back the previous message. + + * buffer.c (syms_of_buffer): Doc fixes. + + * filelock.c (lock_superlock): Delete superlock file if it stayed + locked for 20 seconds. + +1996-09-08 Erik Naggum + + * lread.c: Add #n=object, #n#, and #:symbol constructs to reader. + (readevalloop, read, Fread_from_string): Empty list of read objects + before read0 call. + (read1): New variable `uninterned_symbol', which controls how to + make symbols. Support #:, #n=object and #n#. + (make_symbol): New function, used in read1 to make uninterned symbols + (Fintern): Set `obarray' field of interned symbols. + (init_obarray): Explicit set `obarray' field of symbol `nil'. + (syms_of_lread): staticpro read_objects, the list of read objects. + + * print.c: Add #n=object, #n#, and #:symbol constructs to printer. + (PRINTDECLARE): New macro to declare required variables. + (PRINTPREPARE, PRINTFINISH): Set printed_genyms to nil. + (Fwrite_char, write_string, write_string_1, Fterpri, Fprin1, + Fprin1_to_string, Fprinc, Fprint): Use new macro PRINTDECLARE. + (print): Print uninterned symbols readable. + (syms_of_print): Defvar `print-gensym', staticpro printed_gensyms. + +1996-09-05 Karl Heuer + + * editfns.c (Finsert_buffer_substring): Check for deleted buffer. + (Fcompare_buffer_substrings): Likewise. + +1996-09-04 Richard Stallman + + * lisp.h: Add many declarations. + + * lisp.h (BITS_PER_EMACS_INT): New macro. + (XMARKBIT): Test BITS_PER_EMACS_INT to conditionalize fast definition. + * m/alpha.h (BITS_PER_EMACS_INT): New definition. + + * s/sol2.h (LIBS_SYSTEM): Use -lkstat instead of -lelf -lkvm + + * process.c (create_process): Test HAVE_SETPGID for using setpgid. + + * config.in (HAVE_SETPGID): Add #undef. + + * keymap.c (syms_of_keymap): staticpro current_global_map; + + * intervals.c (get_local_map): Call indirect-function. + + * m/alpha.h (UNEXEC): Use unexelf.c. + + * unexelf.c: unexelf1.c merged into this file. + + * terminfo.c: Include config.h. + [HAVE_TERMIOS_H]: Include termios.h. + (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t. + + * process.c (create_process_1, sigchld_handler) [POSIX_SIGNALS]: + Don't reestablish handler. + + * keyboard.c (input_available_signal) [POSIX_SIGNALS]: + Don't reestablish handler. + (interrupt_signal) [POSIX_SIGNALS]: Likewise. + + * data.c (arith_error) [POSIX_SIGNALS]: Don't reestablish handler. + + * config.in (HAVE_TERMIOS_H): Add #undef. + + * cm.h, sysdep.c [HAVE_TERMIOS_H]: Include termios.h. + (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t. + + * eval.c (Fmacroexpand): Don't declare `form' as register. + + * frame.c (Fredirect_frame_focus): Don't call Ffocus_frame. + + * keyboard.c (Fexecute_extended_command): Fix previous change. + + * intervals.c (copy_intervals_to_string): Take arg as buffer. + + * keyboard.c (Fcommand_execute): gcpro cmd and prefixarg + while calling do_autoload. + + * eval.c (Fmacroexpand): gcpro form while calling do_autoload. + (do_autoload): gcpro fun, funname, fundef. + +1996-09-03 Richard Stallman + + * keyboard.c (Fexecute_extended_command): gcpro prefixarg. + + * xfns.c, w32fns.c (x_set_frame_parameters): + Make height and width ints. + + * fns.c (map_char_table): Declare depth as int. + + * xterm.c (note_mouse_highlight): + Pass POS argument to fast_find_position as int. + + * textprop.c (set_properties, add_properties, remove_properties): + Call modify_region with ints. + + * insdel.c (prepare_to_modify_buffer): Take integer arguments. + (signal_before_change): Take integer arguments. + + * alloc.c (Fmake_byte_code): Call make_pure_vector using nargs. + + * alloc.c (Fpurecopy): Cast arg to make_pure_vector. + (Fmake_byte_code): Use XFASTINT when calling make_pure_vector. + + * doprnt.c (doprnt1): If lispstrings, accept a string + as a `struct Lisp_String *'. + + * editfns.c (Fformat): Pass a string using XSTRING. + + * xdisp.c (message): Cast size arg to doprnt. + + * term.c (term_init): Avoid type-mismatch calling get_frame_size. + (OUTPUT_IF, OUTPUT): Cast frame height to int. + + * search.c (search_buffer): Use EMACS_UINT. + +1996-09-03 Richard Stallman + + * emacs.c (sort_args): Don't rearrange any args that follow "--". + +1996-09-03 Richard Stallman + + * xfns.c, w32fns.c (Ffocus_frame, Funfocus_frame): Functions deleted. + + * xfns.c (x_get_and_record_arg): New function. + (x_icon): Use that, for Qicon_top and Qicon_left. + (x_report_frame_params): Report the Qparent_id parameter. + +1996-09-03 Paul Eggert + + * config.in (mktime): Define to emacs_mktime if we are using our own + mktime, since Nextstep doesn't let Emacs redefine the builtin mktime. + * Makefile.in (MKTIME_OBJ): Use our mktime instead of NEXTSTEP's, + since NEXTSTEP's wrongly ignores TZ. + (mktime): #undef, to avoid messing up the file name mktime.c. + * editfns.c (Fencode_time): Remove NEXTSTEP workaround; + we now use our mktime instead. + +1996-09-03 Richard Stallman + + * process.c (create_process): Undo previous change. + +1996-09-02 Richard Stallman + + * editfns.c (Fencode_time) [_NEXT_SOURCE]: Use ZONE, not ABSZONE. + + * Make region highlighting show in just one window. + * xdisp.c (redisplay_internal): Test last_selected_window slot. + (mark_window_display_accurate, display_text_line): Likewise. + * window.c (unshow_buffer): Clear last_selected_window slot, maybe. + (Fset_window_buffer): Set last_selected_window slot. + (Fselect_window): Set last_selected_window slot. + (delete_all_subwindows): Maybe call unshow_buffer. + * buffer.c (reset_buffer): Initialize last_selected_window slot. + * buffer.h (strict buffer): New slot last_selected_window. + +1996-09-01 Richard Stallman + + * process.c (Fprocess_contact): New function. + (NETCONN_P): Use GC_CONSP. + (list_processes_1): Use new childp format. + (Fopen_network_stream): Store a cons cell in childp. + + * keyboard.c (record_asynch_buffer_change, gobble_input): + Use sigblock instead of sigblockx. + + * syssignal.h (sigunblockx): Definitions deleted. + (sigpausex, sigblockx, sigholdx): Definitions deleted. + + * process.c (create_process): Test defined (TIOCSCTTY) + and defined (HAVE_SETSID) instead of DONT_REOPEN_PTY. + + * fileio.c (Faccess_file): New function. + (Qaccess_file): New variable. + (syms_of_fileio): defsubr function; init and staticpro Qaccess_file. + +1996-09-01 Karl Heuer + + * config.in (MULTI_FRAME): Obsolete macro deleted. + * Makefile.in: Removed support for !MULTI_FRAME. + * dispextern.h, frame.h, keyboard.h, lisp.h, puresize.h: Likewise. + * alloc.c, buffer.c, data.c, dispnew.c, frame.c: Likewise. + * keyboard.c, minibuf.c, print.c, sysdep.c, w32faces.c: Likewise. + * window.c, xdisp.c, xfaces.c: Likewise. + + * abbrev.c, bytecode.c: Change all references from point to PT. + * callint.c, casefiddle.c, cmds.c, dispnew.c, editfns.c: Likewise. + * fileio.c, indent.c, lread.c, print.c, process.c: Likewise. + * search.c, syntax.c, undo.c, window.c: Likewise. + +1996-09-01 Richard Stallman + + * Makefile.in (TAGS): Use $(srcdir) in deps. + +1996-08-31 Boris Goldowsky + + * fileio.c (build_annotations): Remember original buffer that the + region came from; pass this to `format-annotate-function'. + +1996-08-31 Geoff Voelker + + * Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): + Include dos-nt.elc. + +1996-08-31 Richard Stallman + + * keyboard.c (requeued_events_pending_p): New function. + + * config.in (HAVE_SETRLIMIT): Add #undef. + + * emacs.c [HAVE_SETRLIMIT]: Include time.h and resource.h. + (main) [HAVE_SETRLIMIT]: Call setrlimit to extend the stack limit. + New local `rlim'. + + * lread.c (Fload): Add "source is newer" info to the "loading" and + "done" messages. + +1996-08-31 Paul Eggert + + * config.in (HAVE_SYS_SYSTEMINFO_H, HAVE_GETDOMAINNAME, HAVE_SYSINFO): + New macros. + * sysdep.c (): + Include if HAVE_SYS_SYSTEMINFO_H is defined. + (init_system_name): Use sysinfo or getdomainname to append domain name + if host name is not already fully qualified. + +1996-08-31 Richard Stallman + + * xfns.c (Fx_list_fonts): New optional arg MAXIMUM. + +1996-08-31 Erik Naggum + + * alloc.c (Fgarbage_collect): Report used and free intervals. + +1996-08-31 Richard Stallman + + * xterm.h (struct x_display_info): Add element Xatom_FONT. + * xterm.c (x_term_init): Initialize Xatom_FONT member. + (x_new_font): Use Xatom_FONT member. + +1996-08-31 Kevin Layer + + * ntproc.c (Vwin32_start_process_show_window): New variable. + (create_child): Conditionally force subprocess to hide window. + (syms_of_ntproc): DEFVAR it. + +1996-08-31 Richard Stallman + + * s/nextstep.h (LD_SWITCH_SYSTEM): Add alternate definition if + not __NeXT. + +1996-08-30 Richard Stallman + + * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer flag. + * xterm.c (XTupdate_end): Always clear mouse_face_defer flag. + + * xterm.c (do_line_dance, dumprectangle): Use x_update_cursor. + (show_mouse_face, clear_cursor): Likewise. + (x_display_cursor): New args X and Y. + (XTupdate_end, XTcursor_to, XTwrite_glyphs): Pass new args. + (XTupdate_begin): Initialize curs_x, curs_y here. + + * xfns.c (x_set_cursor_color): Use x_update_cursor. + +1996-08-29 Richard Stallman + + * xterm.c (XTread_socket): Fix previous change. + + * keyboard.c (cmd_error): Clear executing_macro. + +1996-08-29 David Byers + + * minibuf.c (Fminibuffer_complete_word): Check for + unexpected data type returned by Ftry_completion. + +1996-08-29 Erik Naggum + + * macros.c (init_macros): Initialize executing_macro, too. + +1996-08-29 Richard Stallman + + * xterm.c (XTread_socket): Call XFilterEvent on all events, + if HAVE_X_I18N and FRAME_XIC nonzero. + + * keyboard.c (cmd_error): Add number of kbd macro iterations + to the error message. + + * macros.h (executing_macro_iterations, executing_macro): Declared. + + * macros.c (executing_macro_iterations, executing_macro): New vars. + (Fexecute_kbd_macro): Set them. + +1996-08-28 Morten Welinder + + * minibuf.c (Vhistory_length, Qhistory_length): New variables. + (syms_of_minibuf): Register and initialise these. + (read_minibuf): Truncate history list if needed. + +1996-08-28 Richard Stallman + + * fns.c (Fsubstring): Handle vectors as well as strings. + + * callint.c (Fcall_interactively): For `N' and `n', + if we don't get a number, try again. + +1996-08-28 Lars Magne Ingebrigtsen + + * alloc.c (syms_of_alloc): Set up Lisp variables ...-consed, + such as Vcons-cells-consed. + +1996-08-28 Richard Stallman + + * emacs.c (main): Add bug report info in --help message. + +1996-08-26 Richard Stallman + + * term.c (Vring_bell_function): New variable. + (syms_of_term): Set up Lisp variable. + (ring_bell): Use Vring_bell_function. + +1996-08-25 Richard Stallman + + * xterm.c (fast_find_position): Fix previous change. + + * keyboard.c (command_loop_1): Cancel echoing etc. + before running post-command-hook and such. + + * xterm.c (fast_find_position): Minor fix in handling maybe_next_line. + + * config.in (HAVE_LIBKRB, HAVE_LIBDES): Add #undefs. + +1996-08-24 Richard Stallman + + * Renamings to avoid conflicting names on MSDOS. + * s/riscix12.h: Renamed from s/riscix12.h. + * s/sunos413.h: Renamed from s/sunos4-1-3.h. + * s/dgux5-4-3.h: Renamed from s/dgux5-4r3.h. + * s/sunos4-1-2.h: File deleted. + + * xmenu.c (set_frame_menubar): Don't add ibw to menubar_size. + + * xfns.c (x_window): Don't add ibw to menubar_size. + +1996-08-24 Paul Eggert + + * editfns.c (Fencode_time, Fset_time_zone_rule): + Use UTC if the zone is t. + +1996-08-24 Erik Naggum + + * print.c (print-quoted): New variable. + (print): Print certain expressions more compactly when set. + Also use XCAR and XCDR directly -- we know we have conses. + +1996-08-23 Marcus Daniels + + * xterm.c (x_term_init): If the default Xt font does not exist on + the X server, add a resource so that dialog boxes use a common font. + +1996-08-23 Richard Stallman + + * window.c (Fsplit_window): Treat width just like height; + no special handling for scroll bars. + +1996-08-22 Richard Stallman + + * Makefile.in (paths.h, config.h): Targets deleted. + (../config.status): Add two new rules to check need for reconfigure. + + * keyboard.c (command_loop_1): Check column_number_displayed + in the selected window, not Vcolumn_number_mode. + (Vcolumn_number_mode): Variable deleted. + (syms_of_keyboard): Delete Lisp variable column-number-mode. + +1996-08-22 Erik Naggum + + * dispnew.c (change_frame_size_1): Clean up conditional. + +1996-08-22 Richard Stallman + + * xmenu.c (xdialog_show): Don't allow 9 buttons. + +1996-08-21 Richard Stallman + + * process.c (send_process): GCPRO object. + + * unexalpha.c: Conditionalize previous changes on not __linux__. + + * xfns.c (x_set_scroll_bar_width): Call x_set_window_size + when arg is nil. + +1996-08-20 Richard Stallman + + * unexalpha.c: Include reloc.h and elf_abi.h. + (rel_dyn_section, dynstr_section, dynsym_section): New variables. + (old_data_scnhdr): New variable. + (CHECK_SCNHDR): Compare just 8 chars of section name. + (unexec): Check for rel_dyn_section, dynsym_section, dynstr_section. + Do call update_dynamic_symbols. + (update_dynamic_symbols): Finish it up and take away #if 0. + +1996-08-19 Richard Stallman + + * unexalpha.c (unexec): Copy the .got section. + +1996-08-16 Karl Heuer + + * cmds.c (Fdelete_backward_char): Fix off-by-one error. + Treat deleted newline specially. + +1996-08-16 Richard Stallman + + * bytecode.c (Fbyte_code): For relative gotos, force signed arithmetic. + +1996-08-14 Richard Stallman + + * xfns.c (Fx_open_connection): Don't set Vx_resource_name. + +See ChangeLog.6 for earlier changes.