home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / e20313sr.zip / emacs / 20.3.1 / src / ChangeLog < prev    next >
Text File  |  1999-07-31  |  403KB  |  11,101 lines

  1. 1998-08-19  Richard Stallman  <rms@psilocin.ai.mit.edu>
  2.  
  3.     * Version 20.3 released.
  4.  
  5.     * callproc.c (Fcall_process): Use malloc for decoding_buf.
  6.     
  7.     * s/freebsd.h (LD_SWITCH_SYSTEM): Delete -dp.
  8.  
  9.     * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Increased.
  10.  
  11. 1998-08-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
  12.  
  13.     * xselect.c (selection_data_to_lisp_data): Code-convert selections
  14.     regardless of enable-multibyte-characters.
  15.     (lisp_data_to_selection_data): Likewise for decoding.
  16.  
  17. 1998-08-18  Ken'ichi Handa  <handa@delysid.gnu.org>
  18.  
  19.     * ccl.c (ccl_driver): In case
  20.     ccl_read_multibyte_character_suspend:, if ccl->last_block is
  21.     nonzero, jump to ccl_repeat.
  22.  
  23. 1998-08-18  Kenichi Handa  <handa@etl.go.jp>
  24.  
  25.     * ccl.c (CCL_READ_CHAR): If eof is encounterd while processing the
  26.     last block, don't just finish but processes eol block of the
  27.     current CCL program.
  28.     (ccl_driver): Add a new jump label ccl_repeat for the above
  29.     change.
  30.  
  31.     * coding.c (ccl_coding_driver): Setup ccl->last_block properly.
  32.     (setup_coding_system): Correctly setup `valid_codes' member.
  33.  
  34.     * term.c (write_glyphs): When terminal_coding require flushing,
  35.     call encode_coding with "" as the SOURCE arg so that ccl_driver
  36.     correctly processes eof block of a CCL program.
  37.  
  38. 1998-08-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
  39.  
  40.     * keyboard.c (read_char): If not reading a key sequence (MAPS is nil),
  41.     bind input-method-exit-on-first-char and input-method-use-echo-area
  42.     to t.
  43.     (read_char): If PREV_EVENT is non-nil, don't run the input method.
  44.     (read_key_sequence): Do not bind input-method-function.    
  45.     
  46.     * callint.c (Fcall_interactively): Pass new args to Fread_event
  47.     and Fread_char.  Let Fread_char do the prompting.
  48.  
  49.     * lread.c (read_filtered_event): New arg INPUT_METHOD.  Calls changed.
  50.     (Fread_event): New args PROMPT and SUPPRESS-INPUT-METHOD.
  51.     (Fread_char, Fread_char_exclusive): Likewise.
  52.     * lisp.h (Fread_event, Fread_char, Fread_char_exclusive):
  53.     Update declarations.
  54.  
  55.     * fns.c (Fy_or_n_p): Don't bind input-method-function.
  56.     Instead, pass 0 as INPUT_METHOD to read_filtered_event.
  57.  
  58.     * insdel.c (replace_range): Rename NOMARKERS arg to MARKERS.
  59.  
  60.     * editfns.c (Ftranspose_regions): Pass 0 as NOMARKERS to replace_range.
  61.  
  62.     * cmds.c (internal_self_insert): Pass 1 as NOMARKERS to replace_range.
  63.  
  64.     * fns.c (Fy_or_n_p): Bind input-method-function to nil.
  65.  
  66. 1998-08-17  Richard Stallman  <rms@psilocin.ai.mit.edu>
  67.  
  68.     * keyboard.c (Freset_this_command_lengths): Return nil.
  69.     (read_char): [Changes in the input method code.]
  70.     Process and clear before_command_restore_flag before the input method.
  71.     Save and restore ok_to_echo_at_next_pause and
  72.     current_kboard->echo_after_prompt.
  73.     Save, copy and empty this_command_keys, if it is not empty.
  74.     Clear the echo area before the input method.
  75.     Then in all cases restore this_command_keys, and reenable echoing
  76.     if it was enabled before.
  77.  
  78. 1998-08-16  Richard Stallman  <rms@psilocin.ai.mit.edu>
  79.  
  80.     * charset.c (Fmultibyte_char_to_unibyte): New function.
  81.     (syms_of_charset): defsubr it.
  82.  
  83. 1998-08-15  Richard Stallman  <rms@psilocin.ai.mit.edu>
  84.  
  85.     * xterm.c, xterm.h: x_display_unibyte_char_with_fontset renamed to
  86.     unibyte_display_via_language_environment.
  87.     
  88.     * xfns.c (unibyte_display_through_language_environment):
  89.     Renamed from x_display_unibyte_char_with_fontset.
  90.  
  91.     * xterm.h (widget_store_internal_border): Conditionalize declaration.
  92.  
  93. 1998-08-15  Kenichi Handa  <handa@etl.go.jp>
  94.  
  95.     * coding.c (coding_category_name): Fix the order of initial
  96.     contents.
  97.     (detect_coding_mask): Fix previous change.
  98.  
  99.     * insdel.c (copy_text): Fix previous change, call
  100.     multibyte_char_to_unibyte.
  101.  
  102.     * puresize.h (BASE_PURESIZE): Increased.
  103.  
  104.     * xfns.c (x_display_unibyte_char_with_fontset): New variable.
  105.     (syms_of_xfns): Declare x-display-unibyte-char-with-fontset as a
  106.     Lisp variable.
  107.  
  108.     * xterm.h (x_display_unibyte_char_with_fontset): Extern it.
  109.  
  110.     * xterm.c (dumpglyphs): If x_display_unibyte_char_with_fontset is
  111.     nonzero, convert a unibyte 8-bit char to a multibyte char and
  112.     display it by a font listed in the current fontset.
  113.  
  114.     * xselect.c (Vnext_selection_coding_system): New variable.
  115.     (selection_data_to_lisp_data): If Vnext_selection_coding_system is
  116.     non-nil, use it.
  117.     (lisp_data_to_selection_data): Likewise.
  118.     (syms_of_xselect): Declare next-selection-coding-system as a Lisp
  119.     variable.
  120.  
  121. 1998-08-13  Eli Zaretskii  <eliz@delysid.gnu.org>
  122.  
  123.     * msdos.c (dos_set_keyboard): Set up stack and flags before
  124.     calling _go32_dpmi_simulate_int.
  125.  
  126. 1998-08-13  Andrew Innes  <andrewi@harlequin.co.uk>
  127.  
  128.     * w32.c (stat): Fall-back to default behaviour when we cannot get
  129.     accurate information on file attributes.
  130.  
  131. 1998-08-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
  132.  
  133.     * indent.c (vmotion): Don't use WINDOW for Fget_char_property
  134.     when it is not showing the right buffer.
  135.  
  136. 1998-08-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  137.  
  138.     * process.c (wait_reading_process_input): If a pty gives EIO,
  139.     raise SIGCHLD just in case.
  140.  
  141. 1998-08-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
  142.  
  143.     * syntax.c (scan_sexps_forward): Set up the syntax table scanning
  144.     stuff before jumping into the loop.
  145.  
  146. 1998-08-10  Eli Zaretskii  <eliz@delysid.gnu.org>
  147.  
  148.     * msdos.c (IT_cmgoto): In the echo area, only put the cursor at
  149.     the end of text if it is beyond the displayed text end.
  150.  
  151. 1998-08-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
  152.  
  153.     * keyboard.c (read_char): Don't decrement this_command_key_count
  154.     when saving it.
  155.  
  156. 1998-08-09  Kenichi HANDA  <handa@etl.go.jp>
  157.  
  158.     * fileio.c (Fwrite_region): Reflect the eol conversion
  159.     specification of default value of buffer-file-coding-system if
  160.     any.
  161.  
  162.     * coding.c (default_buffer_file_coding): New variable.
  163.     (init_coding_once): Initialize default_buffer_file_coding.
  164.  
  165.     * coding.h (default_buffer_file_coding): Extern it.
  166.  
  167. 1998-08-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
  168.  
  169.     * s/freebsd.h (__FreeBSD_version): Define it, or else
  170.     include osreldate.h to define it.
  171.     (LIB_GCC): Unconditional definition deleted.
  172.     [ELF] (LD_SWITCH_SYSTEM, START_FILES, UNEXEC, LIB_STANDARD, LIB_GCC):
  173.     New alternative definitions.
  174.     [! ELF] (START_FILES, LIB_GCC): New alternative definitions.
  175.  
  176.     * unexelf.c (unexec): Check for section names end and edata
  177.     with no underscore.
  178.  
  179.     * coding.c (CHARSET_OK): Check that coding_system_table[IDX] != 0.
  180.  
  181. 1998-08-08  Richard Stallman  <rms@psilocin.ai.mit.edu>
  182.  
  183.     * coding.c: Avoid using initializers for Lisp_Object.
  184.  
  185. 1998-08-07  Paul Eggert  <eggert@twinsun.com>
  186.  
  187.     * xterm.c (x_term_init): Don't reset LC_TIME to "C", since we
  188.     want strftime to be localized.
  189.  
  190. 1998-08-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
  191.  
  192.     * s/ptx4-2.h: New file.
  193.  
  194.     * xterm.c (x_list_fonts): Fix previous change.
  195.  
  196.     * callproc.c (Fcall_process): Check type of process cmd args
  197.     earlier on.
  198.  
  199.     * process.c (Fprocess_send_eof): Transfer proc_encode_coding_system
  200.     data to the new outfd.
  201.  
  202.     * commands.h (Vthis_command): Renamed from this_command.
  203.  
  204.     * minibuf.c (Fminibuffer_complete): 
  205.     this_command renamed to Vthis_command.
  206.  
  207.     * macros.c (Fcall_last_kbd_macro):
  208.     this_command renamed to Vthis_command.
  209.  
  210.     * keyboard.c (Vthis_command): Renamed from this_command.
  211.     (real_this_command): New variable, but not a Lisp variable;
  212.     updated like Vthis_command, but never altered by Lisp programs.
  213.     (command_loop_1): Use real_this_command to set Vreal_last_command.
  214.     
  215. 1998-08-07  Kenichi Handa  <handa@etl.go.jp>
  216.  
  217.     * cmds.c (internal_self_insert): If enable-multibyte-characters is
  218.     nil, convert a multibyte character to unibyte appropriately.
  219.  
  220.     * editfns.c (general_insert_function): Likewise.
  221.  
  222.     * charset.c (multibyte_char_to_unibyte): New function.
  223.     (charset_id_internal): Avoid initializer for Lisp_Object.
  224.     (init_charset_once): Likewise.
  225.  
  226.     * lisp.h (multibyte_char_to_unibyte): Extern it.
  227.  
  228. 1998-08-06  Richard Stallman  <rms@psilocin.ai.mit.edu>
  229.  
  230.     * window.c (Fsplit_window): Doc fix.
  231.  
  232.     * macros.c (Fexecute_kbd_macro): Fix error message.
  233.     (Fend_kbd_macro): Fix error message.
  234.  
  235.     * coding.c (setup_coding_system): Avoid initializer for Lisp_Object.
  236.     (setup_raw_text_coding_system, detect_coding): Likewise.
  237.     (code_convert_region, code_convert_string): Likewise.
  238.     (Fset_coding_priority_internal): Likewise.
  239.  
  240. 1998-08-06  Kenichi Handa  <handa@etl.go.jp>
  241.  
  242.     * dired.c (Fdirectory_files): If MATCH is non-nil, decode filenames
  243.     before checking them against MATCH.
  244.  
  245. 1998-08-05  Richard Stallman  <rms@psilocin.ai.mit.edu>
  246.  
  247.     * keyboard.c (read_char): When input method returns no chars,
  248.     call cancel_echoing.  Restore the previous echo area message
  249.     and this_command_keys, too.
  250.  
  251.     * abbrev.c (Funexpand_abbrev): Add ADJUST instead of subtracting.
  252.  
  253.     * w32select.c (Vselection_coding_system):
  254.     Renamed from Vclipboard_coding_system.
  255.     (syms_of_w32select): No need to staticpro Vselection_coding_system.
  256.  
  257. 1998-08-04  Eli Zaretskii  <eliz@delysid.gnu.org>
  258.  
  259.     * w16select.c (Vselection_coding_system):
  260.     Renamed from Vclipboard_coding_system.
  261.     (Fw16_set_clipboard_data): Don't count trailing zero in the string
  262.     for the purposes of conversion.
  263.  
  264. 1998-08-04  Richard Stallman  <rms@psilocin.ai.mit.edu>
  265.  
  266.     * xterm.c (x_list_fonts): Call XFreeFont after the new call
  267.     to XLoadQueryFont.
  268.     (fast_find_position): Handle case where position is before
  269.     an invisible character, thus not actually listed in charstarts.
  270.     
  271.     * keyboard.c (Vinput_method_previous_message): New variable.
  272.     (syms_of_keyboard): Set up lisp variable.
  273.     (Qinput_method_exit_on_first_char, Qinput_method_use_echo_area):
  274.     New variables.
  275.     (syms_of_keyboard): Initialize them.
  276.     (Fread_key_sequence): New arg COMMAND_LOOP.
  277.     Bind those variables.
  278.  
  279.     * lisp.h (Fread_key_sequence): Update declaration.
  280.  
  281.     * callint.c (Fcall_interactively): Pass new arg to Fread_key_sequence.
  282.     
  283. 1998-08-03  Richard Stallman  <rms@psilocin.ai.mit.edu>
  284.  
  285.     * window.c (Fmove_to_window_line): Doc fix.
  286.  
  287.     * xterm.h (FRAME_OUTER_WINDOW): New macro.
  288.  
  289.     * xterm.c (x_make_frame_visible): Use XGetGeometry to see if
  290.     position has been changed by the window manager.  Use
  291.     FRAME_OUTER_WINDOW.
  292.  
  293.     * insdel.c (replace_range): Don't assume PT is at the place
  294.     where the change is being done.
  295.  
  296.     * editfns.c (Fsubst_char_in_region): Use replace_range in case
  297.     where we may need to combine bytes.
  298.     (Ftranslate_region): Likewise.
  299.  
  300. 1998-08-01  Richard Stallman  <rms@psilocin.ai.mit.edu>
  301.  
  302.     * lread.c (read1): In reading a string, treat Qlambda
  303.     like Qget_file_char.
  304.  
  305.     * doc.c (Fdocumentation): Specify UNIBYTE = 0
  306.     when calling get_doc_string for a compiled function.
  307.  
  308. 1998-08-01  Kenichi HANDA  <handa@etl.go.jp>
  309.  
  310.     * ccl.h (ccl_spec): New member valid_codes.
  311.  
  312.     * coding.c (Qvalid_codes): New variable.
  313.     (coding_category_name): Include "coding-category-ccl".
  314.     (detect_coding_ccl): New function.
  315.     (setup_coding_system): Setup coding->spec.ccl.valid_codes from the
  316.     coding system priority `valid-codes' for CCL based coding systesm.
  317.     (detect_coding_mask): Check also a CCL based coding system.
  318.     (Fupdate_coding_systems_internal): Renamed from
  319.     Fupdate_iso_coding_systems.
  320.     (syms_of_coding): Change property char-table-extra-slot of
  321.     translation-table to 1.  Initialize and static pro Qvalid_codes.
  322.  
  323.     * coding.h (CODING_CATEGORY_IDX_CCL): New macro.
  324.     (CODING_CATEGORY_IDX_BIG5, CODING_CATEGORY_IDX_RAW_TEXT,
  325.     CODING_CATEGORY_IDX_BINARY, CODING_CATEGORY_IDX_MAX): Increased by
  326.     one.
  327.     (CODING_CATEGORY_MASK_CCL): New macro.
  328.     (CODING_CATEGORY_MASK_ANY): Include CODING_CATEGORY_MASK_CCL.
  329.  
  330.     * insdel.c (copy_text): In multibyte to unibyte conversion, take
  331.     nonascii-translation-table and nonascii-insert-offset into
  332.     account.
  333.  
  334. 1998-07-30  Paul Eggert  <eggert@twinsun.com>
  335.     
  336.     * src/Makefile.in (widget.o, xfns.o, xmenu.o):
  337.     Prepend $(srcdir)/ to rule dependencies outside this dir.
  338.  
  339. 1998-07-29  Kenichi Handa  <handa@etl.go.jp>
  340.  
  341.     * fns.c (concat): Fix previous change.
  342.  
  343. 1998-07-29  Richard Stallman  <rms@psilocin.ai.mit.edu>
  344.  
  345.     * process.c (create_process): For outchannel, set up
  346.     proc_encode_coding_system, not proc_decode_coding_system.
  347.  
  348. 1998-07-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
  349.  
  350.     * keymap.c (push_key_description): Output multibyte char as itself.
  351.  
  352. 1998-07-27  Richard Stallman  <rms@psilocin.ai.mit.edu>
  353.  
  354.     * keyboard.c (Fexecute_extended_command):
  355.     Don't delay before displaying the suggestion message
  356.     if the command did not display anything in the echo area.
  357.  
  358. 1998-07-26  Richard Stallman  <rms@psilocin.ai.mit.edu>
  359.  
  360.     * s/ultrix4-3.h (rint): Add declaration.
  361.  
  362. 1998-07-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
  363.  
  364.     * s/aix3-2.h (HAVE_STRING_H): Move #undef here.
  365.     * s/aix4.h (HAVE_STRING_H): Delete #undef here.
  366.  
  367.     * sysdep.c [AIXHFT] (hft_init, hft_reset): Add declarations.
  368.  
  369. 1998-07-25  Kenichi Handa  <handa@etl.go.jp>
  370.  
  371.     * coding.c (syms_of_coding): Mention auto-coding-alist in the
  372.     docstring of file-coding-system-alist.
  373.  
  374.     * fileio.c (Finsert_file_contents): Call Vset_auto_coding_function
  375.     with two arguments.
  376.     (Fwrite_region): If buffer-file-coding-system is set locally, use
  377.     the coding system whithout checking file-coding-system-alist.
  378.     (syms_of_fileio): Docstring of set-auto-coding-function adjusted
  379.     for the change of argument number.
  380.  
  381. 1998-07-20  Kenichi HANDA  <handa@etl.go.jp>
  382.  
  383.     * callproc.c (Fcall_process): Use alloca instead of
  384.     get_conversion_buffer.
  385.  
  386.     * coding.c (init_coding): New function.
  387.     (init_coding_once): Don't initialize conversion_buffer here.  It
  388.     is done in init_coding.
  389.  
  390.     * emacs.c (main): Call init_coding.
  391.  
  392.     * lisp.h (init_coding): Extern it.
  393.  
  394. 1998-07-19  Kenichi Handa  <handa@etl.go.jp>
  395.  
  396.     * charset.c (Fdefine_charset): Fix doc-string.
  397.  
  398.     * xterm.c (dumpglyphs): After calling ccl_driver, set cp->byte1 to
  399.     zero for 1-byte font.
  400.  
  401. 1998-07-15  kenichi HANDA  <handa@kowloon.etl.go.jp>
  402.  
  403.     * process.c (read_process_output): Even if we read data without
  404.     code conversion, calculate character counts.  If we insert the
  405.     data into a unibyte buffer, treat the data as unibyte.
  406.  
  407. 1998-07-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
  408.  
  409.     * keyboard.c (Qinput_method_function): New variable.
  410.     (syms_of_keyboard): Init and staticpro it.
  411.     (read_key_sequence): Bind input-method-function,
  412.     and set it to nil after reading the first event.
  413.     (raw_keybuf, raw_keybuf_count): New variables, to record
  414.     raw input events as they are read with read_char.
  415.     (GROW_RAW_KEYBUF): New macro.
  416.     (Fthis_single_command_raw_keys): New function.
  417.     (syms_of_keyboard): defsubr it.
  418.  
  419. 1998-07-13  Andrew Innes  <andrewi@delysid.gnu.org>
  420.  
  421.     * w32menu.c (add_menu_item): Draw menu items like titles if
  422.     call_data is 0.
  423.  
  424. 1998-07-13  Eli Zaretskii  <eliz@mescaline.gnu.org>
  425.  
  426.     * w16select.c (set_clipboard_data, get_clipboard_data,
  427.     Fw16_set_clipboard_data, Fw16_get_clipboard_data,
  428.     Fx_selection_exists_p): Use CF_OEMTEXT instead of CF_TEXT.
  429.  
  430. 1998-07-12  Andrew Innes  <andrewi@delysid.gnu.org>
  431.  
  432.     * w32select.c: (Fw32_set_clipboard_data): Set Vlast_coding_system_used.
  433.     (Fw32_get_clipboard_data): Likewise.
  434.  
  435. 1998-07-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
  436.  
  437.     * marker.c (Fcopy_marker): Make return from wrong_type_argument
  438.     fall thru into normal case.
  439.  
  440.     * fileio.c (Finsert_file_contents): When replacing, in multibyte bfr,
  441.     always extend the range to a character boundary.
  442.  
  443. 1998-07-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  444.  
  445.     * keyboard.c (read_char): Call the input method if appropriate.
  446.     Change logic for distinguishing rereads from new events;
  447.     use local var `reread'.  Take events from
  448.     Vunread_input_method_events and Vunread_post_input_method_events.
  449.     (Vunread_input_method_events, Vunread_post_input_method_events)
  450.     (Vinput_method_function): New variable.
  451.     (syms_of_keyboard): Set up Lisp vars.
  452.     (command_loop_1): Check Vunread_input_method_events and
  453.     Vunread_post_input_method_events along with Vunread_command_events.
  454.     
  455. 1998-07-11  Andrew Innes  <andrewi@harlequin.co.uk>
  456.  
  457.     * w32menu.c (w32_menu_show): Set widget call_data to 0 if
  458.     definition is nil.
  459.     (add_menu_item): Gray menu entry if widget call_data is 0.
  460.  
  461. 1998-07-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  462.  
  463.     * xselect.c (Vselection_coding_system):
  464.     Renamed from Vclipboard_coding_system.  All uses changed.
  465.     (syms_of_xselect): Rename Lisp variable.
  466.  
  467. 1998-07-09  Eli Zaretskii  <eliz@mescaline.gnu.org>
  468.  
  469.     * w16select.c (Vclipboard_coding_system): New variable.
  470.     (set_clipboard_data, set_clipboard_data): New parameter Raw
  471.     determines whether CRLF <-> NL translation needs to be done.  All
  472.     callers changed.
  473.     (Fw16_set_clipboard_data): Encode the text using
  474.     Vclipboard_coding_system, if necessary.
  475.     (Fw16_get_clipboard_data): Decode the text using
  476.     Vclipboard_coding_system, if necessary.
  477.     (syms_of_win16select): DEFVAR Vclipboard_coding_system and
  478.     staticpro it.
  479.  
  480. 1998-07-09  Kenichi Handa  <handa@etl.go.jp>
  481.  
  482.     * coding.c (code_convert_string): Count characters again if we
  483.     encounter some invalid code while decoding.
  484.  
  485. 1998-07-09  Kenichi Handa  <handa@etl.go.jp>
  486.  
  487.     * ccl.c: Typo in comments fixed.
  488.  
  489.     * coding.c (DECODE_ISO_CHARACTER): While decoding two-byte code,
  490.     if the sencond byte is invalid, produce the first byte as is.
  491.  
  492.     * fontset.c (fs_load_font): Typo in comments fixed.
  493.  
  494.     * xselect.c (selection_data_to_lisp_data): Set
  495.     Vlast_coding_system_used.
  496.     (lisp_data_to_selection_data): Likewize.
  497.  
  498. 1998-07-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
  499.  
  500.     * charset.c (Fchars_in_region): Coerce markers.
  501.  
  502. 1998-07-08  Kenichi Handa  <handa@etl.go.jp>
  503.  
  504.     * editfns.c (Fformat): Replace explicit numeric constants with
  505.     proper macros.
  506.  
  507.     * fns.c (concat): Likewize.
  508.  
  509. 1998-07-06  Kenichi Handa  <handa@etl.go.jp>
  510.  
  511.     * charset.h (MAX_CHAR_COMPOSITION): Defined as (GLYPH_MASK_CHAR - 1),
  512.     one less than the previous value.
  513.     (GENERIC_COMPOSITION_CHAR): New macro. 
  514.  
  515.     * charset.c (Vgeneric_character_list): New variable.
  516.     (init_charset_once): Init and staticpro it.
  517.     (Fgeneric_character_list): New function. 
  518.     (syms_of_charset): defsubr it.
  519.  
  520.     * fns.c (Fset_char_table_default): Check only if the charset of
  521.     the arg CH is in the valid range or not.  Handle the case that CH
  522.     is a generic character for composite characters.
  523.  
  524. 1998-07-06  Kenichi Handa  <handa@etl.go.jp>
  525.  
  526.     * editfns.c (Fformat): Pay attention to the byte combining problem.
  527.  
  528.     * fileio.c (Finsert_file_contents): Cancel previous change.  Setup
  529.     the variable coding even if the inserted bytes is zero.
  530.  
  531.     * fns.c (concat): Deal with combining bytes between two args.
  532.  
  533. 1998-07-03  Richard Stallman  <rms@psilocin.ai.mit.edu>
  534.  
  535.     * print.c (print_escape_multibyte, Qprint_escape_multibyte)
  536.     (Qprint_escape_nonascii): New variables.
  537.     (syms_of_print): Initialize them and set up Lisp variable.
  538.     (PRINTPREPARE): Bind print-escape-multibyte to t if appropriate.
  539.     Also bind print-escape-nonascii if appropriate.
  540.     (print): Test print_escape_multibyte and print_escape_nonascii,
  541.     rather than enable-multibyte-characters.
  542.  
  543. 1998-06-29  Andrew Innes  <andrewi@harlequin.co.uk>
  544.  
  545.     * fileio.c (Ffile_regular_p) [WINDOWSNT]: Bind
  546.     `w32-get-true-file-attributes' to t while calling stat.
  547.     (Finsert_file_contents) [WINDOWSNT]: Likewise.
  548.     (Fwrite_region): Don't try seeking to end of FILENAME for
  549.     appending if not a regular file.
  550.  
  551. 1998-07-03  Kenichi Handa  <handa@etl.go.jp>
  552.  
  553.     * editfns.c (Finsert): Typo in doc-string fixed.
  554.     (Finsert_and_inherit, Finsert_before_markers,
  555.     Finsert_and_inherit_before_markers):  Likewize.
  556.  
  557. 1998-07-02  Ken'ichi Handa  <handa@melange.gnu.org>
  558.  
  559.     * fileio.c (Finsert_file_contents): Do not set Vlast_coding_system
  560.     if inserted bytes is zero.
  561.  
  562. 1998-06-28  Eli Zaretskii  <eliz@is.elta.co.il>
  563.  
  564.     * unexec.c [COFF]: New variable coff_offset.
  565.     (make_hdr) [MSDOS]: If a_name is a coff-go32-exe executable with a
  566.     prepended stub, compute coff_offset.
  567.     (make_hdr, copy_sym) [COFF]: Use coff_offset when seeking into temacs.
  568.  
  569. 1998-06-29  Richard Stallman  <rms@psilocin.ai.mit.edu>
  570.  
  571.     * editfns.c (Fbyte_to_position): New function.
  572.     (syms_of_editfns): defsubr it.
  573.  
  574. 1998-06-29  Eli Zaretskii  <eliz@delysid.gnu.org>
  575.  
  576.     * callproc.c (Fcall_process) [! subprocesses]: Balance parentheses
  577.     in an if clause.
  578.  
  579. 1998-06-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
  580.  
  581.     * fileio.c (Fread_file_name): Bind minibuffer-completing-file-name to t.
  582.  
  583.     * minibuf.c (Vminibuffer_completing_file_name): New var.
  584.     (syms_of_minibuf): Set up Lisp variable.
  585.     (Fminibuffer_complete_word): Test it, instead of checking
  586.     specifically for Qread_file_name_internal.
  587.     (Fcompleting_read): Likewise.
  588.  
  589. 1998-06-27  Richard Stallman  <rms@psilocin.ai.mit.edu>
  590.  
  591.     * xterm.c (x_list_fonts): Fix prev change: cast result of alloca.
  592.  
  593. 1998-06-26  Ken'ichi Handa  <handa@melange.gnu.org>
  594.  
  595.     * coding.h (Qemacs_mule): Extern it.
  596.  
  597.     * process.c (init_process): Initilize Vdefault_process_coding_system.
  598.  
  599. 1998-06-26  Kenichi Handa  <handa@etl.go.jp>
  600.  
  601.     * coding.c (setup_raw_text_coding_system): New function.
  602.     (decode_coding_sjis_big5): Bug for handling invalid code fixed.
  603.  
  604.     * coding.h (setup_raw_text_coding_system): Extern it.
  605.  
  606.     * fileio.c (Finsert_file_contents): Call
  607.     setup_raw_text_coding_system.
  608.  
  609.     * process.c (Fstart_process): Check process-coding-system-alist
  610.     and default-process-coding-system even in unibyte mode.
  611.     (create_process): In unibyte mode, suppress character code
  612.     conversion.
  613.  
  614. 1998-06-25  Andrew Innes  <andrewi@harlequin.co.uk>
  615.  
  616.     * w32fns.c (Fx_list_fonts): Bring arglist into sync with xfns.c.
  617.     (x_set_font): Call face-set-after-frame-default.
  618.     (Qface_set_after_frame_default): New variable.
  619.     (syms_of_w32fns): Initialize it.
  620.  
  621. 1998-06-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
  622.  
  623.     * search.c (wordify): Fix i_byte even in unibyte case for copy loop.
  624.     If input is unibyte, make the output unibyte.
  625.  
  626. 1998-06-24  Richard Stallman  <rms@psilocin.ai.mit.edu>
  627.  
  628.     * print.c (PRINTFINISH): Convert text to unibyte before
  629.     inserting in a unibyte buffer.
  630.  
  631.     * doc.c (get_doc_string): Take both UNIBYTE and DEFINITION as args.
  632.     All callers changed.
  633.     * lisp.h (get_doc_string): Adjust declaration.
  634.     
  635.     * lread.c (read_list): Pass new arg to get_doc_string.
  636.  
  637.     * doc.c (get_doc_string): 2nd arg is now DEFINITION;
  638.     if non-nil, read a dynamic function definition.
  639.     (read_doc_string): Don't call read here.
  640.  
  641. 1998-06-23  Richard Stallman  <rms@psilocin.ai.mit.edu>
  642.  
  643.     * indent.c (indented_beyond_p): Return the right kind of value.
  644.  
  645. 1998-06-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
  646.  
  647.     * emacs.c (sort_args): Discard duplicate options with no args.
  648.     (main): With duplicate -d options, use the last one.  Likewise for -t.
  649.     Check -d last, by checking for -nl earlier on.
  650.     
  651. 1998-06-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  652.  
  653.     * keyboard.c (command_loop): Reset executing_macro after
  654.     command_loop_2 has returned, in case a throw to exit or top-level
  655.     was executed as part of a keyboard macro.
  656.  
  657.     * callproc.c (Fcall_process): Handle third argument BUFFER
  658.     consistently when it is an integer or a list.
  659.  
  660. 1998-06-22  Kenichi Handa  <handa@etl.go.jp>
  661.  
  662.     * syntax.c (Fmodify_syntax_entry): Use macro STRING_BYTES to get
  663.     byte size of a string.
  664.  
  665. 1998-06-22  Andrew Innes  <andrewi@harlequin.co.uk>
  666.  
  667.     * w32select.c: Include buffer.h, charset.h, and coding.h.
  668.     (Vclipboard_coding_system): New variable.
  669.     (syms_of_w32select): DEF_VAR it.
  670.     (Fw32_set_clipboard_data): Encode string using
  671.     Vclipboard_coding_system if necessary.
  672.     (Fw32_get_clipboard_data): Decode clipboard contents using
  673.     Vclipboard_coding_system if necessary.
  674.  
  675.     * w32console.c (initialize_w32_display): Call init_crit to
  676.     initialize interrupt_handle (referenced by sys_select).
  677.  
  678. 1998-06-22  Richard Stallman  <rms@gnu.org>
  679.  
  680.     * print.c (print_string): Properly compute number of chars
  681.     in multibyte case, before calling strout.
  682.  
  683.     * lisp.h (Qinhibit_redisplay): Declared.
  684.  
  685.     * keyboard.c (menu_item_eval_property): Bind Qinhibit_redisplay.
  686.  
  687.     * xdisp.c (Vinhibit_redisplay, Qinhibit_redisplay): New variables.
  688.     (syms_of_xdisp): Set up Lisp var.
  689.     (redisplay_internal): Test Vinhibit_redisplay.
  690.  
  691. 1998-06-21  Ken'ichi Handa  <handa@melange.gnu.org>
  692.  
  693.     * process.c (read_process_output): While processing carryover,
  694.     check the size of p->decoding_buf.
  695.  
  696. 1998-06-21  Eli Zaretskii  <eliz@mescaline.gnu.org>
  697.  
  698.     * process.c (wait_reading_process_input) [! subprocesses]:
  699.     Recompute timeout each time through the loop.  Check
  700.     requeued_events_pending_p and exit the loop if there is unread
  701.     keyboard input.
  702.  
  703. 1998-06-20  Richard Stallman  <rms@gnu.org>
  704.  
  705.     * search.c (Freplace_match): Work by chars, not by bytes,
  706.     for scanning the old text, and for inserting new string in buffer.
  707.  
  708. 1998-06-20  Karl Heuer  <kwzh@gnu.org>
  709.  
  710.     * xterm.c (x_list_fonts): Keep alloca usage simple.
  711.  
  712. 1998-06-20  Per Starback  <starback@strindberg.ling.uu.se>
  713.  
  714.     * xdisp.c, charset.h, coding.c, emacs.c: Doc fixes.
  715.  
  716. 1998-06-20  Kenichi Handa  <handa@etl.go.jp>
  717.  
  718.     * print.c (strout): Show multibyte message correctly.
  719.  
  720.     * ccl.c: Comment for CCL_MapMultiple modified.
  721.  
  722.     * charset.c (find_charset_in_str): Do not set the value of
  723.     charsets[LEADING_CODE_COMPOSITION].
  724.  
  725.     * process.c (read_process_output): Handle carryover correctly.
  726.  
  727.     * xterm.c (dumpglyphs): Check the case that FACE_FONT (face) is
  728.     NULL.  While displaing cursor with non-default face, if the
  729.     variable `font' is NULL, don't set GCFont.
  730.  
  731. 1998-06-19  Richard Stallman  <rms@gnu.org>
  732.  
  733.     * minibuf.c (syms_of_minibuf): Initialize buffer-name-history.
  734.  
  735. 1998-06-18  Richard Stallman  <rms@gnu.org>
  736.  
  737.     * casefiddle.c (casify_object): Cope with modifier bits in character.
  738.  
  739. 1998-06-17  Geoff Voelker  <voelker@cs.washington.edu>
  740.  
  741.     * w32.c (is_unc_volume, open_unc_volume, read_unc_volume,
  742.     close_unc_volume, unc_volume_file_attributes): New functions.
  743.     (wnet_enum_handle): New variable.
  744.     (opendir, readdir, closedir, sys_access, stat): Handle UNC volumes.
  745.  
  746. 1998-06-16  Kenichi Handa  <handa@etl.go.jp>
  747.  
  748.     * xterm.c (x_list_fonts): If SIZE is zero and MAXNAMES is 1, use
  749.     XLoadQueryFont instead of XListFonts.
  750.     (x_load_fonts): Call x_list_fonts with MAXNAMES 1.
  751.  
  752. 1998-06-16  Andrew Innes  <andrewi@harlequin.co.uk>
  753.  
  754.     * xdisp.c (message_dolog): GCPRO the oldpoint, oldbegv and oldzv
  755.     markers, and old_deactivate_mark.
  756.  
  757. 1998-06-15  Andrew Innes  <andrewi@harlequin.co.uk>
  758.  
  759.     * w32.c (sys_rename): On some network drives, rename fails with
  760.     EACCES instead of EEXIST if target already exists.
  761.  
  762.     * coding.c (encode_eol): Fix typo that prevented converting to Mac
  763.     line endings.  Always update dst_bytes to number of bytes actually
  764.     copied.
  765.     (decode_eol): Fix value of coding->produced when decoding Unix
  766.     line endings (in case this function is ever used for that).
  767.  
  768. 1998-06-14  Ken'ichi Handa  <handa@melange.gnu.org>
  769.  
  770.     * fileio.c (Finsert_file_contents): Redo the change for handling
  771.     set-auto-coding while adding a kludgy code to avoid a compiler
  772.     bug.
  773.     (syms_of_fileio): Doc-string of the variable
  774.     set-auto-coding-function modified for the change above.
  775.  
  776. 1998-06-14  Eli Zaretskii  <eliz@mescaline.gnu.org>
  777.  
  778.     * msdos.c (dos_set_keyboard): Call Int 2Fh via the DPMI server,
  779.     not directly. 
  780.     (dos_yield_time_slice): New function.
  781.     (sys_select): Use it instead of __dpmi_yield.
  782.  
  783. 1998-06-14  Erik Naggum  <erik@naggum.no>
  784.  
  785.     * minibuf.c (Fcompleting_read): Escape bare newline in doc string.
  786.  
  787. 1998-06-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
  788.  
  789.     * fileio.c (Finsert_file_contents): Fix change to set INSERTED.
  790.  
  791. 1998-06-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
  792.  
  793.     * keyboard.c (parse_menu_item): Put a quote around DEF
  794.     to pass it as an argument to the filter function.
  795.  
  796.     * syntax.c (skip_chars):
  797.     Don't examine STRING before verifying that it is a string.
  798.  
  799. 1998-06-13  Kenichi Handa  <handa@etl.go.jp>
  800.  
  801.     * coding.c (detect_coding_system): Always return a list of HIGHEST
  802.     is zero.
  803.     (Fdetect_coding_region): Doc-string adjusted for the above change.
  804.     (Fdetect_coding_string): Likewise.
  805.  
  806. 1998-06-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
  807.  
  808.     * emacs.c (standard_args): Fix arg order to match code in `main'.
  809.  
  810. 1998-06-12  Ken'ichi Handa  <handa@melange.gnu.org>
  811.  
  812.     * fileio.c (Finsert_file_contents): Undo the previous change for
  813.     handling set-ault-coding.
  814.  
  815. 1998-06-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  816.  
  817.     * fileio.c (Finsert_file_contents): After calling handler,
  818.     get INSERTED from the handler's value.
  819.  
  820.     * callint.c (Fcall_interactively) <k, K>: If sequence ends in a down
  821.     event, discard following up event.
  822.  
  823. 1998-06-12  Kenichi Handa  <handa@etl.go.jp>
  824.  
  825.     * fileio.c (set_auto_coding_unwind): New function.
  826.     (Finsert_file_contents): If the current buffer is empty, decide
  827.     the coding system after the file is inserted in the buffer.  If
  828.     not, insert the head and tail of a file in a temporary buffer and
  829.     call set-auto-coding-function.
  830.     (e_write): If there are carryover bytes in encoding because of
  831.     incomplete multibyte form, write them out as is.
  832.  
  833. 1998-06-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  834.  
  835.     * syntax.c (scan_lists): Use prev_char_comend_first, not ...comstart...
  836.  
  837. 1998-06-11  Geoff Voelker  <voelker@cs.washington.edu>
  838.  
  839.     * makefile.nt (LINK_FLAGS): Place debug info in executable in
  840.     unoptimized compile.  Link to run off of cd or network.
  841.  
  842. 1998-06-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
  843.  
  844.     * syntax.c (Fforward_comment):
  845.     Properly compute BYTEPOS arg to char_quoted.
  846.  
  847. 1998-06-09  Andrew Innes  <andrewi@harlequin.co.uk>
  848.  
  849.     * w32.c (sys_rename): Don't examine errno if rename didn't fail.
  850.  
  851.     * s/ms-w32.h (getcwd): Remove define.
  852.     (getdefdir) [emacs]: Redefine to always return root directory.
  853.  
  854. 1998-06-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
  855.  
  856.     * lisp.h (Feval_region): Accept 4 args.
  857.  
  858.     * lread.c (readevalloop): New arg READFUN.  Callers changed.
  859.     (Feval_region): New arg READ_FUNCTION.
  860.  
  861. 1998-06-08  Richard Stallman  <rms@psilocin.ai.mit.edu>
  862.  
  863.     * syntax.h (SETUP_SYNTAX_TABLE): Don't call update_syntax_table
  864.     for FROM-1 if that's before BEGV.
  865.  
  866. 1998-06-07  Richard Stallman  <rms@psilocin.ai.mit.edu>
  867.  
  868.     * syntax.c (struct lisp_parse_state): New field, levelstarts.
  869.     (scan_sexps_forward): Use 10th elt of STATE to set levelstarts.
  870.     (parse-partial-sexp): Add 10th elt to return value.
  871.  
  872.     * keyboard.c (lispy_function_keys): Add kanji...eisu-toggle.
  873.  
  874.     * keyboard.c (cmd_error): Init Vlast_prefix_arg.
  875.     (init_kboard, command_loop_1): Init Vlast_prefix_arg.
  876.     (Fcommand_execute): Set Vlast_prefix_arg to prefix arg used.
  877.  
  878.     * callint.c (syms_of_callint): Set up Lisp variable.
  879.  
  880.     * alloc.c (mark_kboards): Mark all the Lisp_Object fields.
  881.  
  882.     * keyboard.c (command_loop_1):
  883.     Set Vreal_last_command with Vlast_command.
  884.     (init_kboard): Init Vreal_last_command field.
  885.     (syms_of_keyboard): Set up Lisp var real-last-command.
  886.  
  887.     * keyboard.h (struct kboard): New elts Vreal_last_command
  888.     and Vlast_prefix_arg.
  889.  
  890. 1998-06-06  Richard Stallman  <rms@psilocin.ai.mit.edu>
  891.  
  892.     * xterm.c (XTread_socket): Accept Japanese XK keysyms.
  893.  
  894.     * xdisp.c (redisplay_internal): If cursor's in the frame's echo area,
  895.     make last_point invalid instead of setting it normally.
  896.     (display_text_line): If cursor's in the frame's echo area,
  897.     don't set this_line_endpos.
  898.     (redisplay_window): Use Fwindow_end to find lower scroll margin.
  899.     
  900.     * syntax.c (scan_lists): Properly skip the comment-fence character
  901.     that ends a comment, when moving forward.
  902.     (Fbackward_prefix_chars): Return immediately if point is at BEGV.
  903.  
  904.     * callproc.c (init_callproc): Check Vinstallation_directory
  905.     even if !initialized.
  906.  
  907. 1998-06-06  Richard Stallman  <rms@sucrose.ai.mit.edu>
  908.  
  909.     * syntax.c (prev_char_comend_first): New function.
  910.     (back_comment): Use that.  Carefully update syntax table position
  911.     for each character that is fetched.
  912.     (Fforward_comment): Likewise.
  913.     (scan_lists): Likewise.
  914.     (prev_char_comstart_first): New function.
  915.  
  916.     * syntax.c 
  917. 1998-06-05  Andrew Innes  <andrewi@harlequin.co.uk>
  918.  
  919.     * w32.c: #include sys/file.h
  920.     (sys_access): Provide our own implementation which recognizes D_OK.
  921.     (is_exec): New function.
  922.     (stat): Use it.
  923.     (init_environment): Set TMPDIR to an existing directory.
  924.     Abort if none of the usual places is available.
  925.     (sys_rename): On Windows 95, choose a temp name that
  926.     includes the original file's base name and use an explicit loop
  927.     rather than calling mktemp.  Only attempt to unlink the newname if
  928.     the rename fails, rather than second-guessing whether the old and
  929.     new names refer to the same file.
  930.  
  931.     * fileio.c (Finsert_file_contents): Always update
  932.      Vlast_coding_system_used when we actually perform IO.
  933.     (Fwrite_region): Update documentation.
  934.  
  935. 1998-06-03  Richard Stallman  <rms@gnu.org>
  936.  
  937.     * emacs.c (main): Don't implement --version if not initialized.
  938.  
  939.     * intervals.c (create_root_interval): Initialize position to 0
  940.     for a string.
  941.     (interval_start_pos): New function.
  942.     (find_interval): Handle string positions starting at 0.
  943.     (adjust_intervals_for_insertion): Likewise.
  944.     (adjust_intervals_for_deletion): Likewise.
  945.     (compare_string_intervals): Likewise.
  946.     (graft_intervals_into_buffer): Set `position' in reproduce_tree value.
  947.     (copy_intervals): Init `position' to 0.
  948.  
  949.     * textprop.c: Handle the new convention that `position' values
  950.     in a string's intervals start from zero.
  951.     (validate_interval_range, interval_of, Fnext_property_change)
  952.     (property_change_between_p, Fnext_single_property_change)
  953.     (Fprevious_property_change, Fprevious_single_property_change):
  954.     (Ftext_property_any, Ftext_property_not_all): Implement that.
  955.  
  956.     * textprop.c: Undo previous change.
  957.  
  958.     * coding.c (code_convert_string_norecord): New function.
  959.     Does encoding or decoding but doesn't set Vlast_coding_system_used.
  960.  
  961.     * coding.h (DECODE_FILE, ENCODE_FILE):
  962.     Use code_convert_string_norecord.
  963.  
  964. 1998-06-02  Richard Stallman  <rms@gnu.org>
  965.  
  966.     * sysdep.c (sys_subshell): Cast arg to chdir.
  967.     (init_sys_modes): Cast arg to setbuf or setvbuf.
  968.  
  969.     * keyboard.c (syms_of_keyboard): Doc fix for suggest-key-bindings.
  970.  
  971. 1998-06-02  Ken'ichi Handa  <handa@melange.gnu.org>
  972.  
  973.     * charset.c (string_to_non_ascii_char): Don't check the arg
  974.     EXCLUDE_TAIL_GARBAGE for an invalid composite characters.
  975.  
  976. 1998-06-01  Ken'ichi Handa  <handa@melange.gnu.org>
  977.  
  978.     * coding.c (detect_coding_mask): Initilize local variable C.
  979.  
  980. 1998-06-01  Richard Stallman  <rms@gnu.org>
  981.  
  982.     * emacs.c (main): Test `initialized' before clearing *Messages*.
  983.  
  984. 1998-06-01  Karl Heuer  <kwzh@gnu.org>
  985.  
  986.     * s/aix4.h (SOCKLEN_TYPE): Define as int.
  987.  
  988.     * callproc.c (Fcall_process): Avoid initializer on auto struct.
  989.  
  990. 1998-06-01  Andrew Innes  <andrewi@mescaline.gnu.org>
  991.  
  992.     * s/ms-w32.h: Use 1 as explicit value of empty #defines.
  993.  
  994.     * makefile.nt (LOCAL_FLAGS): Define HAVE_NTGUI if appropriate.
  995.  
  996. 1998-05-31  Karl Heuer  <kwzh@gnu.org>
  997.  
  998.     * doprnt.c (doprnt1): Fix char signedness mismatches.
  999.     * fileio.c (Finsert_file_contents): Likewise.
  1000.  
  1001. 1998-05-31  Richard Stallman  <rms@gnu.org>
  1002.  
  1003.     * dispnew.c (Fredraw_frame): Don't erase frame or its glyph records
  1004.     if it hasn't got any.
  1005.  
  1006. 1998-05-30  Geoff Voelker  <voelker@cs.washington.edu>
  1007.  
  1008.     * w32proc.c (sys_spawnve): Place Emacs pid in EM_PARENT_PROCESS_ID.
  1009.  
  1010.     * w32.c (sys_rename): Handle filenames with accented characters.
  1011.     (stat): Handle "c:/.." and "/.." specially.
  1012.     
  1013.     * unexw32.c (w32_fatal_reload_error): Update error message.
  1014.  
  1015. 1998-05-30  Karl Heuer  <kwzh@gnu.org>
  1016.  
  1017.     * Makefile.in (distclean): Delete config.stamp, stamp-oldxmenu.
  1018.  
  1019.     * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fix.
  1020.     * charset.c (syms_of_charset): Put \n\ at eol of docstring.
  1021.  
  1022. 1998-05-29  Richard Stallman  <rms@gnu.org>
  1023.  
  1024.     * textprop.c (Fnext_property_change): Properly offset interval
  1025.     position for string when comparing with LIMIT.
  1026.     (property_change_between_p): Likewise.
  1027.     (Fnext_single_property_change, Fprevious_property_change): Likewise.
  1028.     (Fprevious_single_property_change): Likewise.
  1029.  
  1030. 1998-05-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1031.  
  1032.     * keyboard.c (command_loop_1): In shortcuts for forward-char etc.,
  1033.     use FETCH_CHAR not FETCH_BYTE.
  1034.  
  1035. 1998-05-28  Andrew Innes  <andrewi@harlequin.co.uk>
  1036.  
  1037.     * lread.c (read1): Swap saved_doc_string_length and
  1038.     prev_saved_doc_string_length.
  1039.     (read_list): Negate docstring position if negative before checking
  1040.     against saved_doc_string_length et al.
  1041.  
  1042. 1998-05-28  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1043.  
  1044.     * lread.c: Remember the last TWO strings skipped with #@.
  1045.     (prev_saved_doc_string*): New variables.
  1046.     (Fload): Initalize prev_saved_doc_string.
  1047.     (read1): Copy saved_doc_string to prev_saved_doc_string
  1048.     before storing a new string in saved_doc_string.
  1049.     (read_list): Look in prev_saved_doc_string as well as
  1050.     in saved_doc_string.
  1051.  
  1052. 1998-05-25  Andrew Innes  <andrewi@harlequin.co.uk>
  1053.  
  1054.     * doc.c (get_doc_string): Make non-static.
  1055.  
  1056.     * lisp.h: Add prototype for get_doc_string.
  1057.  
  1058.     * lread.c (read_vector): Add bytecodeflag parameter, which is
  1059.      nonzero when reading a bytecode object.  If
  1060.      `load-force-doc-strings' is t when reading a lazily-loaded
  1061.      bytecode vector, the loaded docstring must be treated as unibyte
  1062.      and passed to Fread to obtain the actual bytecode string and
  1063.      constants vector.
  1064.     (read1): Add extra parameter to read_vector calls.
  1065.  
  1066.     (read1): Enable saving of doc strings on WINDOWSNT.
  1067.     (read_list): Call get_doc_string instead of read_doc_string, when
  1068.      forced to load doc strings.
  1069.     
  1070. 1998-05-25  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  1071.  
  1072.     * s/gnu-linux.h (setpgrp): Remove extra parens around parameters.
  1073.  
  1074.     * xterm.c (XTread_socket): Fix second argument of
  1075.     x_any_window_to_frame.
  1076.  
  1077.     * print.c (print) <Lisp_Cons>: Detect circular list.
  1078.  
  1079. 1998-05-25  Kenichi Handa  <handa@etl.go.jp>
  1080.  
  1081.     * coding.c (detect_coding_system): Treat CODING_EOL_INCONSISTENT
  1082.     like CODING_EOL_UNDECIDED.
  1083.  
  1084.     * coding.c (ascii_skip_code): New variable.
  1085.     (detect_coding_mask): Skip ASCII codes at the head according to
  1086.     ascii_skip_code.
  1087.     (coding_priorities): New variable.
  1088.     (Fset_coding_priority_internal): New function.
  1089.     (detect_coding): Call set_coding_mask with coding_priorities as
  1090.     arg CODING.
  1091.     (init_coding_once): Initialize ascii_skip_code.
  1092.     (syms_of_coding): Declare set-coding-priority-internal as a Lisp
  1093.     function.
  1094.  
  1095. 1998-05-25  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1096.  
  1097.     * config.in (RE_TRANSLATE): Use CHAR_TABLE_TRANSLATE.
  1098.  
  1099.     * lisp.h (CHAR_TABLE_TRANSLATE): New macro.
  1100.  
  1101. 1998-05-24  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1102.  
  1103.     * window.c (Fdelete_windows_on): For FRAME, change t to nil
  1104.     and nil to t, but don't change other values.
  1105.  
  1106.     * xdisp.c (message_dolog): Do set windows_or_buffers_changed,
  1107.     if *Messages* is displayed in a window.
  1108.  
  1109. 1998-05-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1110.  
  1111.     * indent.c (compute_motion): Check for past vpos/hpos target
  1112.     before skipping invisible chars.
  1113.  
  1114.     * buffer.c (Fother_buffer): Doc fix.
  1115.  
  1116.     * window.c (window_loop): Pass new arg to Fother_buffer.
  1117.  
  1118.     * frame.c (frame_buffer_predicate): New arg FRAME.
  1119.     (frame_buffer_list, set_frame_buffer_list): Likewise.
  1120.     (make_frame): Pass new arg to Fother_buffer.
  1121.  
  1122.     * buffer.c (Fother_buffer): New arg FRAME.
  1123.     Pass it to frame_buffer_list, frame_buffer_predicate.
  1124.     Calls changed.
  1125.     (record_buffer): Pass selected frame to them
  1126.     and set_frame_buffer_list.
  1127.  
  1128.     * lisp.h (frame_buffer_predicate, frame_buffer_list)
  1129.     (set_frame_buffer_list, Fother_buffer): Decls changed.
  1130.  
  1131.     * window.c (select_window_1): New subroutine, from Fselect_window.
  1132.     (Fselect_window): Use select_window_1.
  1133.     (temp_output_buffer_show): Use select_window_1.
  1134.     
  1135. 1998-05-22  Kenichi Handa  <handa@etl.go.jp>
  1136.  
  1137.     * ccl.c: Change term "character translation table" to "translation
  1138.     table".
  1139.  
  1140.     * charset.c: Change term "character translation table" to
  1141.     "translation table".
  1142.     (string_to_non_ascii_char): New arg EXCLUDE_TAIL_GARBAGE.  Caller
  1143.     changed.
  1144.     (Funibyte_char_to_multibyte): Doc-string fixed.
  1145.     (syms_of_charset): Doc-string fixed.
  1146.  
  1147.     * charset.h (STRING_CHAR_AND_CHAR_LENGTH): New macro.
  1148.     (string_to_non_ascii_char): Adjusted for the new arg.
  1149.  
  1150.     * coding.c: Change term "character translation table" to
  1151.     "translation table".
  1152.  
  1153.     * coding.h: Change term "character translation table" to
  1154.     "translation table".
  1155.  
  1156.     * print.c (print_string): Don't ignore garbage bytes following a
  1157.     multibyte characters.
  1158.     (print): Likewise.
  1159.  
  1160. 1998-05-22  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1161.  
  1162.     * search.c (shrink_regexp_cache): New function.
  1163.  
  1164.     * alloc.c (Fgarbage_collect): Call shrink_regexp_cache.
  1165.  
  1166. 1998-05-20  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1167.  
  1168.     * editfns.c (Fchar_after): Make nil fully equivalent to (point) as arg.
  1169.     (Fchar_before): Likewise.
  1170.  
  1171. 1998-05-20  Eli Zaretskii  <eliz@is.elta.co.il>
  1172.  
  1173.     * fileio.c (Ffile_name_directory, Ffile_name_nondirectory)
  1174.     [DOS_NT]: Handle the special construct "/:" when followed by d:foo.
  1175.  
  1176.     * buffer.c (init_buffer): Support DOS_NT absolute file names.
  1177.  
  1178. 1998-05-20  Kenichi Handa  <handa@etl.go.jp>
  1179.  
  1180.     * charset.c (find_charset_in_str): New arg CMPCHARP.
  1181.     (Ffind_charset_region): Call find_charset_in_str with CMPCHARP 0.
  1182.     (Ffind_charset_string): Likewise.
  1183.  
  1184.     * charset.h (find_charset_in_str): Number of arguments fixed.
  1185.  
  1186.     * coding.c (shrink_decoding_region): No short cut by
  1187.     coding->heading_ascii if eol conversion is necessary.
  1188.  
  1189.     * fns.c (Fstring_make_multibyte): Call CHECK_STRING.
  1190.     (Fstring_make_unibyte, Fstring_as_unibyte, Fstring_as_multibyte):
  1191.     Likewise.
  1192.  
  1193.     * xselect.c (lisp_data_to_selection_data): Call
  1194.     find_charset_in_str with CMPCHARP 1 to encode Lisp string if it
  1195.     contains a composite character.
  1196.  
  1197. 1998-05-19  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1198.  
  1199.     * minibuf.c (syms_of_minibuf): Doc fix.
  1200.  
  1201.     * window.c (Fscroll_up, Fscroll_down, Fscroll_other_window): Doc fixes.
  1202.     
  1203.     * frame.c (make_frame_visible_1): New function.
  1204.     (Fmake_frame_visible): Use that.
  1205.  
  1206.     * xdisp.c (redisplay_window): Don't use window->start
  1207.     if it is out of range of BEGV/ZV.
  1208.  
  1209. 1998-05-18  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1210.  
  1211.     * minibuf.c (read_minibuf): If history list var is void, make it nil.
  1212.  
  1213. 1998-05-18  Ken'ichi Handa  <handa@melange.gnu.org>
  1214.  
  1215.     * syntax.c (skip_chars): Fix previous change.
  1216.  
  1217. 1998-05-17  Kenichi HANDA  <handa@etl.go.jp>
  1218.  
  1219.     * ccl.c: Change term translation to code conversion, then change
  1220.     terms unify/unification to translate/translation respectively
  1221.     throughtout the file.
  1222.  
  1223.     * charset.c: Change terms unify/unification to
  1224.     translate/translation respectively throughtout the file.
  1225.     (ONE_BYTE_CHAR_WIDTH): Delete unnecessary continuation line at the
  1226.     tail.
  1227.  
  1228.     * charset.h: Change terms unify/unification to
  1229.     translate/translation respectively throughtout the file.
  1230.     (GET_TRANSLATION_TABLE): Name changed from UNIFICATION_ID_TABLE.
  1231.  
  1232.     * coding.c: Change terms unify/unification to
  1233.     translate/translation respectively throughtout the file.
  1234.     (encode_coding_iso2022): Fix bug in encoding a text ending by a
  1235.     composite character.
  1236.     (check_composing_code): If we are decoding the last block of data,
  1237.     return 0 even if the source doesn't end by an escape sequence
  1238.     which terminates the current composing sequence.
  1239.     (decode_coding_iso2022): Decode correctly even if the source
  1240.     doesn't end by an escape sequence which terminates the current
  1241.     composing sequence.
  1242.  
  1243.     * coding.h: Change terms unify/unification to
  1244.     translate/translation respectively throughout the file.
  1245.  
  1246.     * fns.c (concat): Fix bug in concatinating a list of multibyte and
  1247.     unibyte characters.
  1248.  
  1249.     * lisp.h (Vnonascii_translation_table): Name changed from
  1250.     Vnonascii_translate_table.
  1251.  
  1252.     * syntax.c (skip_chars): Fix bug in handling a range which
  1253.     contains multibyte characters.
  1254.  
  1255. 1998-05-17  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1256.  
  1257.     * filelock.c (get_boot_time): Scan the whole wtmp file
  1258.     to find the most recent reboot.
  1259.  
  1260.     * window.c (Fselect_window): Doc fix.
  1261.     (temp_output_buffer_show): Make the temp buffer current
  1262.     before running Qtemp_buffer_show_hook.
  1263.  
  1264.     * fileio.c (Fexpand_file_name): Change conditional
  1265.     in previous change from WINDOWSNT to DOS_NT.
  1266.  
  1267. 1998-05-16  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1268.  
  1269.     * buffer.h (struct buffer): New slot display_time.
  1270.  
  1271.     * buffer.c (syms_of_buffer): Set up Lisp variable buffer-display-time.
  1272.     Doc fixes.
  1273.     (reset_buffer): Initialize display_time slot.
  1274.     (init_buffer_once): Initialize display_time slot.
  1275.  
  1276.     * window.c (Fset_window_buffer): Update buffer's display_time.
  1277.  
  1278.     * insdel.c (insert_1_both, insert_from_string_1, replace_range)
  1279.     (insert_from_buffer_1, adjust_before_replace, adjust_after_replace): 
  1280.     Don't copy text being deleted, if undo is disabled.
  1281.  
  1282.     * lread.c (readchar): Use readchar_backlog again
  1283.     to read a character byte by byte, if its byte sequence
  1284.     does not really match the character code.
  1285.     (unreadchar): Handle readchar_backlog.
  1286.     (readevalloop, Fread): Initialize readchar_backlog to -1.
  1287.  
  1288. 1998-05-15  Geoff Voelker  <voelker@cs.washington.edu>
  1289.  
  1290.     * fileio.c (Fexpand_file_name) [WINDOWSNT]: Be careful not to
  1291.      concatenate the directory prefix and file name to accidentally
  1292.      create a network share name.
  1293.  
  1294. 1998-05-14  Andrew Innes  <andrewi@harlequin.co.uk>
  1295.  
  1296.     * w32xfns.c (interrupt_handle): New variable.
  1297.     (init_crit): Initialize it.
  1298.     (delete_crit): Cleanup on exit.
  1299.     (signal_quit): New function.  Signal any threads that are blocked
  1300.     on a "system" call (provided they have been specially written to
  1301.     check for this), so the call can fail with EINTR as on Unix.
  1302.  
  1303.     * w32term.h (signal_quit): Add prototype.
  1304.  
  1305.     * w32fns.c (w32_wnd_proc): Call signal_quit when C-g is received.
  1306.  
  1307.     * w32proc.c (sys_select): Always wait on interrupt_handle, so that
  1308.     user can break out of `accept-process-input' (for instance) by
  1309.     typing C-g.
  1310.  
  1311. 1998-05-14  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1312.  
  1313.     * keyboard.c (read_char): If redisplay is preempted,
  1314.     try swallow_events; if that clears input_pending,
  1315.     finish the redisplay.
  1316.  
  1317. 1998-05-14  Geoff Voelker  <voelker@cs.washington.edu>
  1318.  
  1319.     * w32term.c (w32_ring_bell): Flash window correctly.
  1320.  
  1321. 1998-05-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1322.  
  1323.     * fileio.c (Finsert_file_contents): Don't check non-regular
  1324.     files for a coding: specification.
  1325.  
  1326. 1998-05-13  Inge Frick  <inge@nada.kth.se>
  1327.  
  1328.     * keyboard.c (parse_menu_item): Removed unnecessary gcproing.
  1329.     Fix a test of inmenubar.
  1330.  
  1331. 1998-05-13  Eli Zaretskii  <eliz@mescaline.gnu.org>
  1332.  
  1333.     * msdos.c (init_environment): Set TMPDIR to an existing
  1334.     directory.  Abort if none of the usual places is available.
  1335.  
  1336. 1998-05-13  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1337.  
  1338.     * syntax.c (skip_chars): When fetching char after \,
  1339.     don't fail to set c_leading_code.
  1340.  
  1341. 1998-05-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1342.  
  1343.     * fileio.c (Finsert_file_contents): Check that a -*- coding: -*- spec
  1344.     or a local variables list exists, before Vset_auto_coding_function.
  1345.  
  1346.     * minibuf.c (Fminibuffer_complete_word):
  1347.     Fix the string-comparison loop.
  1348.  
  1349.     * search.c (search_buffer): Set search regs for all success
  1350.     with an empty string.
  1351.     (set_search_regs): Clear out all regs except 0.
  1352.  
  1353.     * minibuf.c (Fall_completions, Ftry_completion):
  1354.     Compare char sizes, not STRING_BYTES.
  1355.  
  1356. 1998-05-12  Inge Frick  <inge@nada.kth.se>
  1357.  
  1358.     * keyboard.c (parse_menu_item): Argument inmenubar < 0 now means
  1359.     parsing a keyboard menu item.
  1360.     (read_char_minibuf_menu_prompt): Use `parse_menu_item' to understand
  1361.     new menu item format.
  1362.  
  1363. 1998-05-12  Andrew Innes  <andrewi@harlequin.co.uk>
  1364.  
  1365.     * w32.c (stat, get_long_basename): Fail if filename contains any
  1366.     characters that are illegal in file names.
  1367.  
  1368. 1998-05-11  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1369.  
  1370.     * minibuf.c (assoc_for_completion): Use Fcompare_strings.
  1371.     (test_completion): In obarray, try both unibyte and multibyte strings.
  1372.     (read_minibuf): Convert unibyte prompt to multi if minibuffer is multi.
  1373.     (Fdisplay_completion_list): Convert unibyte to strings to multibyte
  1374.     to conform to the buffer.
  1375.  
  1376.     * fileio.c (Finsert_file_contents): Don't use the fast replace code
  1377.     if coding needs eol conversion.
  1378.     (Finsert_file_contents) [DOS_NT]: When setting buffer_file_type,
  1379.     if code conversion is needed, file is not binary.
  1380.  
  1381.     * xdisp.c (redisplay_window): Handle scroll_step along with
  1382.     scroll_conservatively.  Fix 1-off error checking the limit for them.
  1383.  
  1384.     * filelock.c (unlock_file): Encode the file name. 
  1385.  
  1386. 1998-05-10  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1387.  
  1388.     * buffer.c (Fset_buffer_multibyte): Error if marker is put
  1389.     on buffer's marker-chain while we have temporarily put nil there.
  1390.  
  1391.     * marker.c (unchain_marker): Abort if the marker is not
  1392.     in its buffer's chain.
  1393.     (buf_bytepos_to_charpos): Fix assignment of `record'
  1394.     when scanning from below.
  1395.     Don't create a marker if buffer's marker chain is empty.
  1396.  
  1397.     * coding.c (code_convert_region1): Set Vlast_coding_system_used.
  1398.     (code_convert_string1): Likewise.
  1399.     (Fdecode_coding_region, Fencode_coding_region): Doc fixes.
  1400.     (Fdecode_coding_string, Fencode_coding_string): Doc fixes.
  1401.  
  1402.     * Makefile.in (TAGS): Specify directory when running etags.
  1403.  
  1404. 1998-05-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
  1405.  
  1406.     * bytecode.c (Fbyte_code): Don't use Bmark.
  1407.  
  1408.     * .gdbinit (xstring): Handle unibyte strings.
  1409.     (xchartable, xboolvector): New commands.
  1410.  
  1411.     * xdisp.c (redisplay_window): Don't use last_point_x and last_point_y
  1412.     if cursor_in_echo_area.
  1413.  
  1414.     * minibuf.c (Qbuffer_name_history): New variable.
  1415.     (syms_of_minibuf): Initialize it.
  1416.     (Fread_buffer): Use that history list.
  1417.  
  1418. 1998-05-09  Richard Stallman  <rms@psilocin.gnu.org>
  1419.  
  1420.     * syntax.c (scan_lists, scan_sexps_forward): Move complex expressions
  1421.     outside of the switch statement.
  1422.  
  1423. 1998-05-09  Ken'ichi Handa  <handa@melange.gnu.org>
  1424.  
  1425.     * indent.c (compute_motion): Fix previous change.
  1426.  
  1427. 1998-05-08  Kenichi Handa  <handa@etl.go.jp>
  1428.  
  1429.     * coding.c (detect_coding_mask): Check also coding-category-binary.
  1430.  
  1431. 1998-05-08  Richard Stallman  <rms@psilocin.gnu.org>
  1432.  
  1433.     * doc.c (get_doc_string): New arg UNIBYTE
  1434.     Maybe use make_unibyte_string.  All callers changed.
  1435.     (read_doc_string): Specify 1 for UNIBYTE.
  1436.  
  1437.     * process.c (Fstart_process): Remove the special case for
  1438.     unibyte, for initializing the process coding systems.
  1439.     Instead, use the normal multibyte code, but check
  1440.     BUFFER's value and the default value of enable-multibyte-characters.
  1441.     (Fopen_network_stream): Likewise.
  1442.  
  1443. 1998-05-08  Ken'ichi Handa  <handa@melange.gnu.org>
  1444.  
  1445.     * indent.c (compute_motion): Fix, in a different way, the bug of
  1446.     handling wide-column character around right margin.
  1447.  
  1448. 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
  1449.  
  1450.     * indent.c (compute_motion): Undo both May 7 changes.
  1451.  
  1452.     * doprnt.c (doprnt1): Cast arg to CHAR_STRING.
  1453.  
  1454. 1998-05-07  Andrew Innes  <andrewi@harlequin.co.uk>
  1455.  
  1456.     * callproc.c (Fcall_process): Fix test for when to call
  1457.     Ffind_operation_coding_system.
  1458.  
  1459. 1998-05-07  Ken'ichi Handa  <handa@melange.gnu.org>
  1460.  
  1461.     * indent.c (compute_motion): Fix previous change.
  1462.  
  1463. 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
  1464.  
  1465.     * search.c (Freplace_match): Fix the loop for copying text
  1466.     from a string, in handling lastpos and pos.
  1467.  
  1468. 1998-05-07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  1469.  
  1470.     * data.c (set_internal): Properly compare lisp objects.
  1471.     (Fmakunbound): Likewise.
  1472.     * lread.c (Fintern): Properly compare lisp objects.
  1473.  
  1474. 1998-05-07  Andrew Innes  <andrewi@harlequin.co.uk>
  1475.  
  1476.     * fileio.c (Fexpand_file_name) [DOS_NT]: Note when special escape
  1477.     prefix /: is present, and reinsert after name has been expanded.
  1478.     Only recognize drive specifier at beginning of name.
  1479.  
  1480.     * fileio.c (Fexpand_file_name):
  1481.     Don't strip trailing slash if newdir is just /.
  1482.  
  1483. 1998-05-07  Eli Zaretskii  <eliz@mescaline.gnu.org>
  1484.  
  1485.     * process.c (init_process, syms_of_process) [not subprocesses]:
  1486.     Make definition consistent with prototypes on lisp.h
  1487.  
  1488. 1998-05-07  Kenichi Handa  <handa@etl.go.jp>
  1489.  
  1490.     * indent.c (compute_motion): Fix bug of handling wide-column
  1491.     character around right margin.
  1492.  
  1493. 1998-05-07  Richard Stallman  <rms@psilocin.gnu.org>
  1494.  
  1495.     * buffer.c (syms_of_buffer) <buffer-file-coding-system>: Doc fix.
  1496.  
  1497. 1998-05-07  Kenichi Handa  <handa@etl.go.jp>
  1498.  
  1499.     * callproc.c (Fcall_process): If we must display received data on
  1500.     the fly, don't wait until a buffer is filled.
  1501.  
  1502. 1998-05-05  Richard Stallman  <rms@psilocin.gnu.org>
  1503.  
  1504.     * fileio.c (barf_or_query_if_file_exists): Encode file name.
  1505.  
  1506. 1998-05-04  Kenichi HANDA  <handa@etl.go.jp>
  1507.  
  1508.     * coding.c (encode_coding_iso2022): Don't skip a code following
  1509.     some invalid code.
  1510.  
  1511. 1998-05-04  Richard Stallman  <rms@psilocin.gnu.org>
  1512.  
  1513.     * fileio.c (Finsert_file_contents): Don't use gap pos to set point
  1514.     if del_range_byte deleted 0 characters.
  1515.  
  1516.     * search.c (boyer_moore): Check more reliably for ptr[1] being
  1517.     out of range.  Use pat_end to point at the pattern's end.
  1518.  
  1519.     * emacs.c (main): Call the syms_of_... and keys_of_... functions
  1520.     earlier, before init_vms_input and init_display.
  1521.     
  1522. 1998-05-04  E. Jay Berkenbilt  <ejb@ql.org>
  1523.  
  1524.     * window.h (WINDOW_RIGHT_MARGIN): Don't subtract 1 from width when
  1525.     there are no vertical scrollbars and this is the rightmost window
  1526.     in the frame.
  1527.  
  1528. 1998-05-04  Eli Zaretskii  <eliz@mescaline.gnu.org>
  1529.  
  1530.     * lread.c (Fload): Rename dosmode to fmode and use it on all
  1531.     platforms.  Avoid calling fdopen only for WINDOWSNT, use fdopen
  1532.     for the the MSDOS version.
  1533.     (read1): Avoid recording doc strings positions only for WINDOWSNT,
  1534.     not for MSDOS.
  1535.  
  1536. 1998-05-04  Andreas Schwab  <schwab@delysid.gnu.org>
  1537.  
  1538.     * xterm.c: Include syssignal.h after lisp.h.
  1539.  
  1540.     * syssignal.h: Declare init_signals and add prototypes.
  1541.  
  1542.     * lisp.h: Declare init functions.
  1543.  
  1544. 1998-05-03  Richard Stallman  <rms@psilocin.gnu.org>
  1545.  
  1546.     * s/sunos4shr.h (LIBXMU): Don't bother testing CANNOT_DUMP.
  1547.  
  1548.     * Makefile.in (TAGS-LISP): New target.
  1549.     (${lispsource}TAGS): Target deleted.
  1550.     (tags): Depend on TAGS-LISP.
  1551.     (TAGS): Generate the TAGS file in the build dir.
  1552.     (lisptagsfiles): Variable deleted.
  1553.  
  1554.     * Makefile.in (shortnamesdir, cppdir): Vars deleted.
  1555.     (shortnames): Target deleted.
  1556.     (temacs): Don't use $(SHORT).
  1557.     (SHORT): Var deleted.
  1558.  
  1559. 1998-05-02  Richard Stallman  <rms@psilocin.gnu.org>
  1560.  
  1561.     * alloc.c (Fmake_bool_vector): Clear out extraneous bits at end.
  1562.  
  1563.     * lread.c (read1): Clear out extraneous bits at end of bool-vector.
  1564.  
  1565.     * search.c (compile_pattern_1): Declare raw_pattern as unsigned char *.
  1566.     Fix casts when assigning raw_pattern.
  1567.     Cast raw_pattern when calling re_compile_pattern.
  1568.  
  1569. 1998-05-02  Hallvard B Furuseth  <h.b.furuseth@usit.uio.no>
  1570.  
  1571.     * process.c (create_process): Add cast when calling encode_coding
  1572.     and another when storing buf into new_argv.
  1573.  
  1574.     * search.c (search_buffer): Fix casts when assigning raw_pattern.
  1575.  
  1576.     * editfns.c (Fformat): Fix casts when assigning buf.
  1577.  
  1578.     * lread.c (isfloat_string): Don't look at bytes before the string.
  1579.  
  1580. 1998-05-02  Richard Stallman  <rms@psilocin.gnu.org>
  1581.  
  1582.     * s/nextstep.h (HAVE_STRING_H): Add #undef.
  1583.     (NO_ABORT): Defined.
  1584.  
  1585.     * editfns.c (Finsert_char): Doc fix.
  1586.  
  1587. 1998-05-02  Hrvoje Niksic  <hniksic@srce.hr>
  1588.  
  1589.     * fileio.c (Fmake_temp_name): Improve randomness of generated file 
  1590.     names.
  1591.  
  1592. 1998-05-01  Richard Stallman  <rms@psilocin.gnu.org>
  1593.  
  1594.     * search.c (wordify): Do the second loop by chars, not by bytes.
  1595.  
  1596. 1998-05-01  Kenichi Handa  <handa@etl.go.jp>
  1597.  
  1598.     * coding.c (encode_coding_iso2022): If encoding a last block,
  1599.     reset graphic planes and registers.
  1600.  
  1601. 1998-04-30  Geoff Voelker  <voelker@cs.washington.edu>
  1602.  
  1603.     * keyboard.c (Qdrag_n_drop, drag_n_drop_syms, lispy_drag_n_drop_names) 
  1604.     New variables.
  1605.     (make_lispy_event): Handle drag_n_drop events.
  1606.     (syms_of_keyboard): Initialize new symbols.
  1607.  
  1608.     * w32fns.c (enum_font_cb2): Only ignore raster fonts when
  1609.     determining height and width.
  1610.  
  1611.     * termhooks.h (event_kind): New event type `drag_n_drop'.
  1612.  
  1613.     * makefile.nt (LIBS): Link in shell32.lib.
  1614.     
  1615.     * w32fns.c: Include shellapi.h.
  1616.     (w32_createwindow): Enable drag-n-drop on new windows.
  1617.     (w32_wnd_proc): Handle WM_DROPFILES messages.
  1618.     Disable drag-n-drop on closing windows.
  1619.  
  1620.     * w32term.c: Include shellapi.h.
  1621.     (construct_drag_n_drop): New function.
  1622.     (w32_read_socket): Handle WM_DROPFILES messages.    
  1623.  
  1624. 1998-04-30  Skip Collins  <ColliBF1@APLMSG.JHUAPL.EDU>
  1625.  
  1626.     * w32fns.c (msh_mousewheel): New variable.
  1627.     (w32_msg_pump): Register that Emacs accepts mousewheel events.
  1628.     (w32_wnd_proc): Check for mousewheel events.
  1629.  
  1630.     * w32term.c (msh_mousewheel): Declare.
  1631.     (w32_read_socket): Check for mousewheel events.
  1632.  
  1633.     * w32term.h (WM_MOUSEWHEEL): Define relative to WM_MOUSELAST.
  1634.     (MSH_MOUSEWHEEL): New macro.
  1635.  
  1636. 1998-04-29  Richard Stallman  <rms@psilocin.gnu.org>
  1637.  
  1638.     * indent.c (compute_motion): When invisible text cross TO,
  1639.     return TO, not the start of the invisible text.
  1640.  
  1641.     * process.c (Fset_process_inherit_coding_system_flag, Fstart_process): 
  1642.     Store inherit_coding_system_flag as a Lisp_Object.
  1643.     (Fopen_network_stream): Likewise.
  1644.     (Fprocess_inherit_coding_system_flag): Access it as Lisp_Object.
  1645.     (read_process_output): Likewise.
  1646.  
  1647.     * process.h (struct Lisp_Process):
  1648.     Make inherit_coding_system_flag a Lisp_Object.
  1649.  
  1650. 1998-04-29  David Mosberger-Tang  <David.Mosberger@acm.org>
  1651.  
  1652.     * unexelf.c [__alpha__ && !__NetBSD__ && !__OpenBSD__]:
  1653.     Include definition of HDRR structure that used to be in sym.h,
  1654.     instead of sym.h
  1655.  
  1656. 1998-04-29  Andreas Schwab  <schwab@delysid.gnu.org>
  1657.  
  1658.     * xfns.c: Fix -Wimplicit warnings.
  1659.  
  1660.     * xdisp.c (redisplay_window): Update STARTP_BYTE alongside with
  1661.     STARTP.  New variable scroll_margin_bytepos, to parallel
  1662.     scroll_margin_pos.  Fix arguments of pos_tab_offset to agree with
  1663.     the first argument of compute_motion.
  1664.  
  1665.     * window.c (make_window): Initialize last_point field.
  1666.  
  1667.     * sysdep.c (emacs_get_tty): Zero out termios structure before
  1668.     getting attributes to get consistent values for holes.
  1669.     (emacs_set_tty): Likewise.
  1670.  
  1671.     * lisp.h: Declare Fcompare_strings.
  1672.  
  1673.     * fns.c: Include <time.h> for time.
  1674.  
  1675.     * emacs.c (main): Use Vbuffer_alist instead of Fbuffer_list.
  1676.     (syms_of_emacs): Fix doc of Vsignal_USR1_hook and
  1677.     Vsignal_USR2_hook.
  1678.  
  1679.     * coding.c (setup_coding_system): Properly check for nil.
  1680.  
  1681. 1998-04-29  Richard Stallman  <rms@psilocin.gnu.org>
  1682.  
  1683.     * editfns.c (Fcompare_buffer_substrings): Rewrite to loop by chars.
  1684.  
  1685.     * coding.h (Vfile_name_coding_system)
  1686.     (Vdefault_file_name_coding_system): Declarations added.
  1687.  
  1688.     * emacs.c (abort): Omit this definition, if NO_ABORT.
  1689.     End by calling exit, to avoid warning.
  1690.     
  1691. 1998-04-28  Richard Stallman  <rms@psilocin.gnu.org>
  1692.  
  1693.     * filelock.c: Include coding.h.
  1694.     (lock_file): Encode the file name, to make lock file name.
  1695.  
  1696.     * editfns.c (Fgap_position, Fgap_size): New functions.
  1697.     (syms_of_editfns): defsubr them.
  1698.  
  1699.     * filelock.c (lock_file): gcpro `fn'.
  1700.  
  1701.     * insdel.c (insert_1_both): Call prepare_to_modify_buffer before
  1702.     moving or making gap.
  1703.     (insert_from_string_1): Don't check max buffer size here.
  1704.  
  1705.     * data.c (Flsh, Fash): Handle out-of-range shift counts reasonably.
  1706.  
  1707. 1998-04-28  Dave Love  <d.love@dl.ac.uk>
  1708.  
  1709.     * s/aix4.h (HAVE_STRING_H): Add #undef.
  1710.     (HAVE_WAIT_HEADER): Defined.
  1711.  
  1712. 1998-04-28  Richard Stallman  <rms@psilocin.gnu.org>
  1713.  
  1714.     * emacs.c (main): Fix bug report address in --help message.
  1715.     (main): Doc --multibyte and --unibyte in --help message.
  1716.  
  1717.     * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_X_WINDOWS.
  1718.  
  1719. 1998-04-28  Eli Zaretskii  <eliz@mescaline.gnu.org>
  1720.  
  1721.     * Makefile.in (callproc.o, print.o, cmds.o, dispnew.o, fileio.o,
  1722.     frame.o, keyboard.o, minibuf.o, process.o, scroll.o, sysdep.o,
  1723.     term.o, w16select.o, window.o, xdisp.o, xfaces.o, lread.o): Depend
  1724.     on msdos.h.
  1725.     (print.o): Depend on dispextern.h.
  1726.  
  1727. 1998-04-28  Andreas Schwab  <schwab@delysid.gnu.org>
  1728.  
  1729.     * process.c (Fset_process_inherit_coding_system_flag):
  1730.     Fix test for non-nil FLAG.
  1731.  
  1732.     * lread.c: Fix -Wimplicit warnings.
  1733.     (readevalloop): Fix type of UNIBYTE parameter.
  1734.  
  1735. 1998-04-27  Richard Stallman  <rms@psilocin.gnu.org>
  1736.  
  1737.     * xterm.c (XTwrite_glyphs): Don't advance cursor X beyond limit.
  1738.     (XTcursor_to): Likewise.
  1739.  
  1740.     * blockinput.h (reinvoke_input_signal): Don't use prototype decl.
  1741.  
  1742. 1998-04-27  Hrvoje Niksic  <hniksic@srce.hr>
  1743.  
  1744.     * fns.c (Fload_average): New arg USE_FLOATS.
  1745.  
  1746. 1998-04-27  Eli Zaretskii  <eliz@mescaline.gnu.org>
  1747.  
  1748.     * fns.c [HAVE_MENUS]: Include xterm.h only if HAVE_WINDOW_SYSTEM
  1749.     is defined.
  1750.  
  1751.     * callproc.c, fileio.c: Include msdos.h after lisp.h.
  1752.  
  1753.     * msdos.c (IT_ring_bell, IT_write_glyphs, IT_clear_end_of_line,
  1754.     IT_clear_screen, IT_clear_to_end, IT_clear_to_end, IT_cursor_to,
  1755.     IT_cmgoto, IT_reassert_line_highlight, IT_change_line_highlight,
  1756.     IT_update_begin, IT_update_end, IT_set_terminal_modes,
  1757.     IT_reset_terminal_modes, IT_set_terminal_window,
  1758.     pixel_to_glyph_coords, IT_menu_display):  Bring definitions in
  1759.     accordance with prototype declarations.
  1760.  
  1761.     * msdos.h [!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
  1762.     and prototypes for external functions.
  1763.  
  1764. 1998-04-26  Richard Stallman  <rms@psilocin.gnu.org>
  1765.  
  1766.     * fns.c (Fcompare_strings): Doc fix.
  1767.  
  1768.     * minibuf.c (minibuf_conform_representation): New function.
  1769.     (Ftry_completion): Use it to return multibyte string
  1770.     if and only if the completion table has a multibyte string.
  1771.     (Fdisplay_completion_list): 
  1772.     Convert string to unibyte before displaying it, if default is unibyte.
  1773.  
  1774.     * eval.c (find_handler_clause): Cast Fbacktrace to proper type.
  1775.  
  1776.     * data.c (Fmakunbound): Test keywordness only in initial obarray.
  1777.  
  1778. 1998-04-26  Erik Naggum  <erik@naggum.no>
  1779.  
  1780.     * emacs.c (standard_args): Apply --unibyte/multibyte after --nw.
  1781.  
  1782.     * lisp.h: Include initial_obarray from lread.c
  1783.  
  1784.     * data.c (set_internal): Test keywordness only in initial obarray.
  1785.  
  1786.     * lread.c (Fintern): Initialize keywords only in initial obarray.
  1787.  
  1788. 1998-04-25  Richard Stallman  <rms@psilocin.gnu.org>
  1789.  
  1790.     * sysdep.c (croak): Add forward declaration.
  1791.  
  1792.     * xfns.c (x_set_foreground_color, x_set_background_color)
  1793.     (x_set_mouse_color, x_set_cursor_color): Don't call unload_color
  1794.     if same pixel is used in another slot in the frame.
  1795.  
  1796.     * xterm.c (x_display_cursor): Use FRAME_CURSOR_X_LIMIT.
  1797.  
  1798.     * dispnew.c (change_frame_size_1): Use FRAME_CURSOR_X_LIMIT.
  1799.     (update_frame): Likewise.
  1800.  
  1801.     * frame.h (FRAME_CURSOR_X_LIMIT): New macro.
  1802.  
  1803. 1998-04-25  Erik Naggum  <erik@naggum.no>
  1804.  
  1805.     * lread.c (Fread_from_string): Initialize startval and endval.
  1806.  
  1807. 1998-04-24  Richard Stallman  <rms@psilocin.gnu.org>
  1808.  
  1809.     * lread.c (read1): Allow multibyte and unibyte together
  1810.     in one string.
  1811.  
  1812.     * xdisp.c (Qinhibit_point_motion_hooks): New variable.
  1813.     (syms_of_xdisp): Init and staticpro it.
  1814.     (redisplay_window): Bind the symbol to t.
  1815.  
  1816. 1998-04-24  Geoff Voelker  <voelker@cs.washington.edu>
  1817.  
  1818.     * w32.c (sys_socket): Make sockets non-inheritable.
  1819.  
  1820. 1998-04-23  Andrew Innes  <andrewi@harlequin.co.uk>
  1821.  
  1822.     * coding.c (shrink_decoding_region): Do not consider LF as ascii
  1823.      if preceded by CR, since that confuses eol decoding.
  1824.     (code_convert_region): When conversion fails with
  1825.      CODING_FINISH_INSUFFICIENT_SRC, was overwriting src with garbage
  1826.      from dst instead of copying from src to dst.
  1827.  
  1828.     * fileio.c (Fcopy_file): Skip dev/inode check on Windows.
  1829.  
  1830.     * lread.c (dir_warning): Don't log a warning if Emacs hasn't
  1831.     finished initializing.
  1832.  
  1833.     * s/ms-w32.h (utimbuf): New macro.
  1834.  
  1835.     * w32.c (fstat, utime): New functions; these are provided in
  1836.      conjunction with stat to make handling of file timestamps
  1837.      consistent.
  1838.     (convert_from_time_t): Fix calculation of low-order bits.
  1839.     (sys_unlink): Allow read-only files to be unlinked as on Unix.
  1840.  
  1841.     * w32fns.c (x_set_vertical_scroll_bars): Put scroll bars on the
  1842.     right, as is conventional on MS-Windows.
  1843.     (w32_wnd_proc): Add code to draw popup menu titles.
  1844.     Ensure mouse capture is released before running popup menu.
  1845.  
  1846.     * w32term.c (w32_read_socket): Don't misinterpret WM_PAINT message
  1847.      as an expose event if the repaint region is actually empty.  Also
  1848.      use the standard menubar_selection_callback routine.
  1849.  
  1850.     * w32menu.c: Replace code with a new version written from scratch
  1851.      based on xmenu.c; menu construction is now completely lazy.
  1852.  
  1853.     * w32proc.c (sys_kill): Fix indenting.
  1854.  
  1855. 1998-04-23  Inge Frick  <inge@nada.kth.se>
  1856.  
  1857.     * keyboard.c: (parse_menu_item): Support keywords :keys and
  1858.     :key-sequence.  Some changes to provide GC-protection. Some
  1859.     cosmetic changes.
  1860.     (syms_of_keyboard): Define new symbols `:keys' and `:key-sequence'.
  1861.  
  1862. 1998-04-23  Richard Stallman  <rms@psilocin.gnu.org>
  1863.  
  1864.     * Makefile.in (emacs.o): Depend on buffer.h.
  1865.  
  1866.     * charset.c (syms_of_charset): Doc fix for nonascii-insert-offset.
  1867.  
  1868.     * editfns.c (Fbuffer_substring): Doc fix.
  1869.     (Finsert_and_inherit_before_markers): Doc fix.
  1870.     (Finsert_and_inherit, Finsert_before_markers, Finsert): Doc fixes.
  1871.  
  1872.     * fns.c (Fstring_make_multibyte): Doc fix.
  1873.     (Fstring_make_unibyte): Doc fix.
  1874.  
  1875. 1998-04-22  Richard Stallman  <rms@psilocin.gnu.org>
  1876.  
  1877.     * charset.c (Funibyte_char_to_multibyte): Doc fix.
  1878.  
  1879.     * xfns.c (x_set_foreground_color): Call unload_color on the old color.
  1880.     (x_set_background_color, x_set_mouse_color): Likewise.
  1881.     (x_set_cursor_color, x_set_border_pixel): Likewise.
  1882.  
  1883.     * xfaces.c (unload_color): No longer static.
  1884.  
  1885.     * insdel.c (insert_from_string, insert_from_string_before_markers): 
  1886.     Don't special case LENGTH = 0.
  1887.     (insert_from_buffer): Likewise.
  1888.  
  1889. 1998-04-22  Erik Naggum  <erik@naggum.no>
  1890.  
  1891.     * filelock.c (get_boot_time): Remove extraneous semicolon.
  1892.  
  1893.     * lisp.h: Remove extraneous semicolon.
  1894.  
  1895. 1998-04-22  Eli Zaretskii  <eliz@delysid.gnu.org>
  1896.  
  1897.     * w16select.c (Fwin16_set_clipboard_data): Call UNBLOCK_INPUT
  1898.     before calling sit_for.  
  1899.     (Fwin16_get_clipboard_data, Fwin16_set_clipboard_data):    Balance
  1900.     the calls to BLOCK_INPUT and UNBLOCK_INPUT.
  1901.     (alloc_xfer_buf): If want_size is more than 1MB, return
  1902.     immediately with failure.
  1903.     (Fw16_set_clipboard_data, Fw16_get_clipboard_data): Replace win16
  1904.     with w16.
  1905.  
  1906. 1998-04-21  Richard Stallman  <rms@psilocin.gnu.org>
  1907.  
  1908.     * eval.c (Fsignal): Unconditionally do TOTALLY_UNBLOCK_INPUT.
  1909.  
  1910.     * dispnew.c (update_frame): Move echo area cursor into range.
  1911.  
  1912. 1998-04-21  Eli Zaretskii  <eliz@delysid.gnu.org>
  1913.  
  1914.     * callproc.c (Fcall_process) [MSDOS]: Call child_setup instead of
  1915.     run_msdos_command. 
  1916.     (child_setup) [MSDOS]: Call run_msdos_command here.
  1917.     (child_setup) [DOS_NT]: Get past drive letter in pwd.  Don't call
  1918.     close_load_descs, since we are not in a vfork.
  1919.  
  1920.     * msdos.c (run_msdos_command): Don't construct process
  1921.     environment, it's already done in child_setup.
  1922.     (run_msdos_command): Add ENVV to argument list.
  1923.  
  1924. 1998-04-20  Richard Stallman  <rms@psilocin.gnu.org>
  1925.  
  1926.     * emacs.c (main): Move the --unibyte code below
  1927.     the most basic initializations.
  1928.     Clear out *Messages* at that point.
  1929.  
  1930.     * lread.c (read_from_string_index_byte): New variable.
  1931.     (read_from_string_index): Now counts characters.
  1932.     (readchar, unreadchar, Fread_from_string): Changed accordingly.
  1933.  
  1934.     * lread.c (readchar): Read a multibyte char all at once
  1935.     from a buffer, marker or string.
  1936.     (unreadchar): Unread a multibyte char all at once.
  1937.     (read1): Properly handle non-escaped multibyte chars.
  1938.     They force a string to be multibyte.
  1939.     When reading direct from a file, any multibyte sequence means
  1940.     a multibyte string.
  1941.     Insist on MAX_LENGTH_OF_MULTI_BYTE_FORM bytes when checking
  1942.     for read_buffer full; this way need not check specially for multibyte.
  1943.  
  1944.     * emacs.c: Include buffer.h
  1945.     (main): When handling --unibyte, mark all existing
  1946.     buffers as unibyte; but don't handle it when dumping.
  1947.  
  1948.     * alloc.c (Fgarbage_collect): Don't truncate command-history here.
  1949.  
  1950.     * callint.c (Fcall_interactively): Truncate command-history here.
  1951.  
  1952.     * keyboard.c (Fcommand_execute): Truncate command-history here.
  1953.  
  1954.     * lread.c (readevalloop): New arg UNIBYTE.  Callers changed.
  1955.     Use it to bind load_convert_to_unibyte.
  1956.     (Feval_buffer): New arg UNIBYTE.  Pass it to readevalloop.
  1957.     (readevalloop_1): New unwind-protect subroutine.
  1958.     (load_convert_to_unibyte): New variable.
  1959.     (syms_of_lread): Set up Lisp var.
  1960.     (read1): If load_convert_to_unibyte, convert strings to unibyte.
  1961.     
  1962.     * insdel.c (copy_text): Count down bytes_left properly
  1963.     in multibyte to unibyte case.
  1964.  
  1965.     * fns.c (Fcompare_strings): Require first 6 args.
  1966.  
  1967. 1998-04-20  Kenichi HANDA  <handa@etl.go.jp>
  1968.  
  1969.     * Makefile.in (lisp): Add czech.elc, slovak.elc, and romanian.elc.
  1970.     (shortlisp): Likewise.
  1971.  
  1972.     * coding.c (setup_coding_system): For a type 4 coding system,
  1973.     FLAGS member of coding spec is a cons of CCL program symbols.
  1974.  
  1975.     * ccl.c (Fregister_ccl_program): Put ccl-program-idx property to
  1976.     NAME.
  1977.  
  1978. 1998-04-19  Eli Zaretskii  <eliz@delysid.gnu.org>
  1979.  
  1980.     * process.h (struct Lisp_Process): Add inherit_coding_system_flag
  1981.     member.
  1982.  
  1983.     * process.c (Fset_process_inherit_coding_system_flag,
  1984.     Fprocess_inherit_coding_system_flag): New functions.
  1985.     (syms_of_process): Defsubr them.
  1986.     (Fstart_process, Fopen_network_stream): Initialize
  1987.     inherit_coding_system_flag.
  1988.     (read_process_output): If the process buffer isn't dead, call
  1989.     after-insert-file-set-buffer-file-coding-system.
  1990.  
  1991. 1998-04-18  Hrvoje Niksic  <hniksic@srce.hr>
  1992.  
  1993.     * fileio.c (Fmake_temp_name): Complete rewrite.
  1994.  
  1995. 1998-04-18  Richard Stallman  <rms@psilocin.gnu.org>
  1996.  
  1997.     * minibuf.c (Ftry_completion): Use Fcompare_strings.
  1998.     (Fall_completions, Fminibuffer_complete_word): Likewise.
  1999.  
  2000.     * fns.c (Fcompare_strings): New function.
  2001.     (syms_of_fns): defsubr it.
  2002.  
  2003.     * xselect.c (Fx_get_cut_buffer_internal):
  2004.     If FORMAT is 0, cut buffer is empty.
  2005.  
  2006.     * emacs.c (main): --unibyte affects minibuffer too.
  2007.  
  2008. 1998-04-17  Richard Stallman  <rms@psilocin.gnu.org>
  2009.  
  2010.     * emacs.c (syms_of_emacs): Fix patching error in previous change.
  2011.  
  2012.     * lread.c (read1): Compute NaN and infinities using 0.0 in a
  2013.     variable, to cope with compilers that think they are smarter than us.
  2014.  
  2015.     * lread.c (readchar): Find the previous byte's address properly
  2016.     for the buffer case, as for the marker case.
  2017.  
  2018. 1998-04-17  Geoff Voelker  <voelker@cs.washington.edu>
  2019.  
  2020.     * emacs.c (Vpath_separator): New variable.
  2021.     (syms_of_emacs): Define Vpath_separator using SEPCHAR.
  2022.  
  2023.     * lastfile.c (_my_endbss, my_endbss_static): New variables.
  2024.  
  2025.     * term.c (reset_terminal_modes): Only invoke hook if defined.
  2026.  
  2027.     * makefile.nt (LINK_TYPE): Do not include debug info in optimized
  2028.     binary.
  2029.     (LIBS): Include mpr.lib.
  2030.     (clean): Delete patch generated files, optimized build directory.
  2031.  
  2032.     * s/ms-w32.h (HAVE_STRING_H, HAVE_STRFTIME): Define macros.
  2033.     (SYSTEM_PURESIZE_EXTRA): Increase to handle more dumped lisp files.
  2034.  
  2035.     * unexw32.c (my_begbss_static, my_endbss_static): Declare.
  2036.     (get_bss_info_from_map_file): Only define if SEPARATE_BSS_SECTION.
  2037.     (get_section_info): Use my_begbss_static, my_endbss_static to
  2038.     determine bounds of bss.
  2039.     (w32_fatal_reload_error): New function.
  2040.     (read_in_bss, map_in_heap): Invoke w32_fatal_reload_error upon error.
  2041.  
  2042.     * w32.c    (sys_read): Clear carriage return flag.
  2043.     Report normal EOF when read fails if nothing in buffer.
  2044.     Only read more if more remaining.
  2045.     (check_windows_init_file): New function.
  2046.     (term_ntproc): Invoke check_windows_init_file.
  2047.  
  2048.     * w32.h (FILE_SEND_SIGCHLD): New macro.
  2049.  
  2050.     * w32faces.c (Qforeground_color, Qbackground_color): Declare.
  2051.     (compute_char_face, merge_face_list): Update from xterm.c.
  2052.  
  2053.     * w32fns.c (w32_msg_pump): Handle WM_EMACS_SETLOCALE.
  2054.     (w32_wnd_proc): Handle WM_EMACS_SETFOREGROUND.
  2055.  
  2056.     * w32heap.c (recreate_heap): Invoke w32_fatal_reload_error upon error.
  2057.     * w32heap.h (w32_fatal_reload_error): Declare.
  2058.  
  2059.     * w32inevt.c (Vw32_recognize_altgr): Declare.
  2060.     (w32_kbd_mods_to_emacs): Obey Vw32_recognize_altgr.
  2061.     Add more keys for Vw32_capslock_is_shiftlock.
  2062.     (w32_kbd_patch_key): Obey Vw32_recognize_altgr.
  2063.     (map_virt_key): Brazilian keyboards use 0xc1 for /(?) key.
  2064.  
  2065.     * w32menu.c (Vmenu_updating_frame): New variable.
  2066.     (Fx_popup_menu, set_frame_menubar): Record frame whose menu is 
  2067.     being updated.
  2068.     (syms_of_w32menu): Define Vmenu_updating_frame.
  2069.  
  2070.     * w32proc.c (w32_executable_type): Properly cast dos_header when
  2071.     making size comparison.
  2072.     (sys_spawnve): Update comments.
  2073.     (sys_select): Ignore children dead children with pending input.
  2074.     Delay sending SIGCHLD until all output has been read.
  2075.     (sys_kill): Sleep to allow focus change events to propagate.
  2076.     Use TerminateProcess on Win95.
  2077.     (int_from_hex, enum_locale_fn, Fw32_get_valid_locale_ids):
  2078.     New functions.
  2079.     (Vw32_valid_locale_ids): New variable.
  2080.     (Fw32_set_current_locale): Send message to input thread.
  2081.     (syms_of_ntproc): defsubr Sw32_get_valid_locale_ids.
  2082.  
  2083.     * w32term.c (Vw32_recognize_altgr): New variable.
  2084.     (dumpglyphs): Update from xterm.c.
  2085.     (w32_ring_bell): Flash window, don't just reset its state.
  2086.     (dumprectangle, show_mouse_face, x_draw_single_glyph): Use new 
  2087.     args to dumpglyphs.
  2088.     (my_set_foreground_window): New function.
  2089.     (w32_condemn_scroll_bars): Mark all as condemned scroll bars.
  2090.     (w32_redeem_scroll_bar): Look through all scroll bars.
  2091.     (w32_judge_scroll_bars): Don't clear out condemned list.
  2092.     (w32_read_socket): Clip window after frame has been restored.
  2093.     (x_focus_on_frame, x_raise_frame): Use my_set_foreground_window.
  2094.     (syms_of_w32term): Define Vw32_recognize_altgr.
  2095.  
  2096.     * w32term.h (WM_EMACS_SETFOREGROUND, WM_EMACS_SETLOCALE):
  2097.     New message macros.
  2098.  
  2099. 1998-04-16  Richard Stallman  <rms@psilocin.gnu.org>
  2100.  
  2101.     * callproc.c (Fcall_process_region): Unbind coding-system-for-write
  2102.     after calling Fwrite_region.
  2103.  
  2104.     * eval.c (Fcatch): Doc fix.
  2105.  
  2106.     * mocklisp.c (Fml_if): Initialize val.
  2107.  
  2108. 1998-04-16  Erik Naggum  <erik@naggum.no>
  2109.  
  2110.     * emacs.c (main): Fix typo, add --multibyte and --no-multibyte.
  2111.     (standard_args): Add --multibyte and --no-multibyte.
  2112.  
  2113. 1998-04-16  Richard Stallman  <rms@psilocin.gnu.org>
  2114.  
  2115.     * fns.c (time): Declare it only if not HAVE_UNISTD_H.
  2116.  
  2117.     * emacs.c (standard_args): Add --no-unibyte.
  2118.     (main): Recognize --no-unibyte to inhibit EMACS_UNIBYTE.
  2119.  
  2120.     * fns.c (Frequire): Doc fix.
  2121.  
  2122.     * fileio.c (file_name_as_directory): For empty arg, return `./'.
  2123.  
  2124. 1998-04-16  Eli Zaretskii  <eliz@gnu.org>
  2125.  
  2126.     * msdos.c (it_keyboard): New variable, supports Italian keyboard.
  2127.     (keyboard_layout_list): Add Italian keyboard.
  2128.  
  2129. 1998-04-15  Ken'ichi Handa  <handa@melange.gnu.org>
  2130.  
  2131.     * coding.c (code_convert_region): If point in the conversion
  2132.     region, move it to FROM in advance.
  2133.  
  2134. 1998-04-15  Eli Zaretskii  <eliz@delysid.gnu.org>
  2135.  
  2136.     * callproc.c (Fcall_process): Call
  2137.     after-insert-file-set-buffer-file-coding-system if
  2138.     inherit-process-coding-system is non-nil.
  2139.  
  2140.     * coding.c (syms_of_coding): Declare and define
  2141.     inherit-process-coding-system.
  2142.  
  2143.     * coding.h: Declare inherit-process-coding-system.
  2144.  
  2145.     * w32.c (sys_pipe): Use binary pipe I/O unconditionally.
  2146.  
  2147.     * callproc.c: Remove binary-process-{in,out}put.
  2148.     (syms_of_callproc): Likewise.
  2149.     (Fcall_process, Fcall_process_region): Don't use
  2150.     binary-process-{in,out}put.
  2151.  
  2152. 1998-04-15  Andreas Schwab  <schwab@delysid.gnu.org>
  2153.  
  2154.     * config.in (RE_TRANSLATE_P): Define.
  2155.  
  2156. 1998-04-15  Ken'ichi Handa  <handa@melange.gnu.org>
  2157.  
  2158.     * ccl.c (Fccl_execute_on_string): Put \n\ at eol of docstring.
  2159.  
  2160.     * xfns.c (x_set_font): Give 2nd arg nil to Fquery_fontset.
  2161.     (Fx_create_frame): Likewise.
  2162.  
  2163. 1998-04-15  Kenichi Handa  <handa@etl.go.jp>
  2164.  
  2165.     * ccl.c: Typo in comments fixed.
  2166.     (Qccl_program_idx, Qunification_table, Qunification_table_id): New
  2167.     variables.
  2168.     (syms_of_ccl): Initialize and staticpro them.
  2169.     (CCL_ReadMultibyteChar2): Macro name changed from
  2170.     CCL_ReadMultibyteCharacter.
  2171.     (CCL_WriteMultibyteChar2): Macro name changed from
  2172.     CCL_WriteMultibyteChar2.
  2173.     (CCL_
  2174.     (MAX_TABLE_SET_LEVEL): New macro.
  2175.     (tr_stack): New type.
  2176.     (translate_stack, translate_stack_pointer): New variables.
  2177.     (PUSH_TRANSLATE_STACK, POP_TRANSLATE_STACK): New macros.
  2178.     (ccl_driver): Adjusted for the above changes.
  2179.     (resolve_symbol_ccl_program): New function.
  2180.     (Fccl_execute): The arg CCL-PROGRAM can be a symbol of CCL
  2181.     program.  If CCL-PRGRAM is a vector, convert symbols in it to ID
  2182.     numbers by resolve_symbol_ccl_program.
  2183.     (Fccl_execute_on_string): Likewise.
  2184.     (Fregister_ccl_program): If the arg CCL-PRGRAM is a vector,
  2185.     convert symbols in it to ID numbers by resolve_symbol_ccl_program.
  2186.  
  2187.     * ccl.h (Vccl_program_table, Qccl_program_idx): Extern them.
  2188.  
  2189.     * fontset.c (find_ccl_program_func): New variable.
  2190.     (fs_load_font): Call a function pointed by find_ccl_program_func
  2191.     instead of finding CCL program to encode a character by itself.
  2192.     (Fquery_fontset): New optional 2nd arg REGEXPP.  Callers changed.
  2193.  
  2194.     * fontset.h (FONT_ENCODING_NOT_DECIDED): The value is changed to 255.
  2195.     (find_ccl_program_func): Extern it.
  2196.     (Fquery_fontset): Args number changed to 2.
  2197.     
  2198.     * xfns.c (syms_of_xfns): Initialize find_ccl_program_func.
  2199.  
  2200.     * xterm.c (x_find_ccl_program): New function.
  2201.  
  2202.     * xterm.h (x_find_ccl_program): Extern it.
  2203.  
  2204. 1998-04-14  Dave Love  <fx@gnu.org>
  2205.  
  2206.     * keymap.c: Revert erroneous 1998-04-07 change.
  2207.  
  2208. 1998-04-14  Karl Heuer  <kwzh@gnu.org>
  2209.  
  2210.     * xfns.c (x_destroy_bitmap): Declare as void, not int.
  2211.     (x_report_frame_params, x_set_border_pixel): Likewise.
  2212.     (x_set_internal_border_width): widget_store_internal_border takes
  2213.     just one arg, not two.
  2214.  
  2215. 1998-04-14  Andreas Schwab  <schwab@delysid.gnu.org>
  2216.  
  2217.     * xdisp.c (try_window): Fix mixing of Lisp_Object and int.
  2218.  
  2219.     * window.c (Fset_window_configuration): Fix mixing of Lisp_Object
  2220.     and int.
  2221.  
  2222.     * sysdep.c (init_sys_modes): Fix mixing of Lisp_Object and int
  2223.  
  2224.     * search.c (compile_pattern, compile_pattern_1): Fix mixing of
  2225.     Lisp_Object and int.
  2226.  
  2227.     * process.c (read_process_output): Fix mixing of Lisp_Object and
  2228.     int.
  2229.  
  2230.     * minibuf.c (Fself_insert_and_exit): Fix mixing of Lisp_Object and
  2231.     int.
  2232.  
  2233.     * marker.c (set_marker_both): Remove bogus checks on charpos.
  2234.  
  2235.     * keyboard.c (parse_menu_item): Don't GCPRO non-lisp variables.
  2236.  
  2237.     * insdel.c (signal_after_change): Fix mixing of Lisp_Object and
  2238.     int.
  2239.  
  2240.     * indent.c (indented_beyond_p): Fix mixing of Lisp_Object and int.
  2241.  
  2242.     * frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Fix
  2243.     mixing of Lisp_Object and int.
  2244.  
  2245.     * fns.c (Fsubstring, substring_both, Fchar_table_range,
  2246.     Fset_char_table_range): Fix mixing of Lisp_Object and int.
  2247.  
  2248.     * fileio.c (Fwrite_region): Fix mixing of Lisp_Object and int.
  2249.  
  2250.     * editfns.c (Fchar_after, Fchar_before): Fix mixing of Lisp_Object
  2251.     and int
  2252.  
  2253.     * coding.c (code_convert_region): Fix mixing of Lisp_Object and
  2254.     int.
  2255.  
  2256.     * charset.c (Fchars_in_region): Fix mixing of Lisp_Object and int.
  2257.  
  2258.     * ccl.c (ccl_driver, syms_of_ccl): Fix mixing of Lisp_Object and
  2259.     int.
  2260.  
  2261.     * cm.h: Update return types of declarations.
  2262.  
  2263.     * xterm.h, puresize.h, termhooks.h, lisp.h, keyboard.h,
  2264.     intervals.h, dispextern.h, blockinput.h, coding.h: Add more
  2265.     prototypes.
  2266.  
  2267.     * xterm.c, xselect.c, xrdb.c, xmenu.c, xdisp.c, window.c,
  2268.     widget.c, undo.c, terminfo.c, term.c, sysdep.c, syntax.c,
  2269.     search.c, scroll.c, process.c, print.c, mocklisp.c, prefix-args.c,
  2270.     marker.c, keymap.c, keyboard.c, intervals.c, insdel.c, indent.c,
  2271.     frame.c, fontset.c, fns.c, floatfns.c, filelock.c, fileio.c,
  2272.     eval.c, emacs.c, editfns.c, doprnt.c, doc.c, dispnew.c, dired.c,
  2273.     data.c, coding.c, cmds.c, cm.c, charset.c, ccl.c, category.c,
  2274.     casetab.c, casefiddle.c, callproc.c, callint.c, bytecode.c,
  2275.     buffer.c, alloc.c, abbrev.c: Fix -Wimplicit warnings.
  2276.  
  2277.     * buffer.c (Fset_buffer_multibyte): Do nothing if nothing actually
  2278.     changes.
  2279.  
  2280.     * coding.c (code_convert_region): Call adjust_after_insert also
  2281.     in unibyte mode.
  2282.  
  2283.     * fileio.c (Finsert_file_contents): Call adjust_after_insert also
  2284.     in unibyte mode.
  2285.  
  2286. 1998-04-13  Ken'ichi Handa  <handa@melange.gnu.org>
  2287.  
  2288.     * coding.c (code_convert_string): Give decode_coding correct byte
  2289.     length of source text.
  2290.  
  2291. 1998-04-13  Richard Stallman  <rms@gnu.org>
  2292.  
  2293.     * print.c (strout): Convert old echo area to multibyte, like printchar.
  2294.     (printchar, strout): If echo area text converted to multibyte
  2295.     does not all fit, truncate it at char boundary.
  2296.  
  2297.     * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos): 
  2298.     When calling set_marker_both, pass the right buffer.
  2299.  
  2300.     * indent.c (Fcompute_motion): Check that TO and FROM are in range.
  2301.  
  2302. 1998-04-13  Eli Zaretskii  <eliz@delysid.gnu.org>
  2303.  
  2304.     * msdos.c (dosv_refresh_virtual_screen): Do not use negative
  2305.     arguments.
  2306.     (dos_direct_output): Fix the offset passed to
  2307.     dosv_refresh_virtual_screen.
  2308.     (IT_display_cursor): Don't call dosv_refresh_virtual_screen.
  2309.     (IT_reset_terminal_modes): Don't call dosv_refresh_virtual_screen
  2310.     when setting cursor.
  2311.  
  2312. 1998-04-12  Richard Stallman  <rms@gnu.org>
  2313.  
  2314.     * print.c (temp_output_buffer_setup): Clear out overlays,
  2315.     visited file, undo list, etc.
  2316.  
  2317.     * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): FROM counts chars.
  2318.     (SYNTAX_TABLE_BYTE_TO_CHAR): Handle the offset properly
  2319.     both before and after conversion.
  2320.  
  2321.     * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Arg renamed to charpos.
  2322.     (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise.
  2323.  
  2324.     * xdisp.c (display_text_line): When handling selective > 0,
  2325.     update pos and pos_byte with results of calling scan_newline.
  2326.  
  2327.     * data.c (set_internal, Fmakunbound): Fix previous change.
  2328.  
  2329. 1998-04-12  Hallvard B Furuseth  <h.b.furuseth@usit.uio.no>
  2330.  
  2331.     * print.c (print) <Lisp_String>: Fix "\ " handling.
  2332.  
  2333. 1998-04-11  Richard Stallman  <rms@gnu.org>
  2334.  
  2335.     * s/netbsd.h (LINKER): Add definition.
  2336.     (LD_SWITCH_SYSTEM): Undo previous change.
  2337.  
  2338.     * data.c (set_internal, Fmakunbound): No error if setting
  2339.     a keyword to itself.
  2340.  
  2341. 1998-04-09  Karl Heuer  <kwzh@gnu.org>
  2342.  
  2343.     * marker.c (Fbuffer_has_markers_at): Fix termination condition.
  2344.  
  2345.     * search.c (min, max): Make these macros, not functions.
  2346.     (scan_buffer, boyer_moore): Simplify args to those macros.
  2347.     * unexw32.c (min, max): Define as macros.
  2348.     * w32.c (min, max): Define as macros.
  2349.     * w32term.c (min, max): Define as macros.
  2350.     * callproc.c (relocate_fd): Avoid `min'/`max' as variable names.
  2351.     * print.c (print): Likewise.
  2352.     * dispnew.c (minmax): New macro.
  2353.     (update_frame): Use it.
  2354.  
  2355.     * w32proc.c: Delete incorrect prototype of report_file_error.
  2356.     * w32.c (unrequest_sigio, request_sigio): Fix prototype.
  2357.  
  2358.     * w32menu.c (set_frame_menubar): Call Fset_match_data, not
  2359.     Fstore_match_data.
  2360.  
  2361.     * emacs.c (abort): Don't redefine on DOS_NT.
  2362.  
  2363. 1998-04-09  Kenichi Handa  <handa@etl.go.jp>
  2364.  
  2365.     * charset.c (string_to_non_ascii_char): Include garbage bytes (if
  2366.     any) following a multibyte character in *ACTUAL_LEN.
  2367.     (Fcharset_after): New function.
  2368.     (syms_of_charset): Defsubr it.
  2369.     (multibyte_form_length): Modified to be consistent with
  2370.     string_to_non_ascii_char.
  2371.     
  2372.     * charset.h (MULTIBYTE_FORM_LENGTH): Don't check LEN here.
  2373.  
  2374.     * xdisp.c (display_text_line): Code for displaying a character by
  2375.     octal form is modified.
  2376.  
  2377. 1998-04-08  Richard Stallman  <rms@gnu.org>
  2378.  
  2379.     * data.c (keyword_symbols_constant_flag): New variable.
  2380.     (syms_of_data): Set up Lisp variable.
  2381.     (set_internal): Obey it and give error for :-symbols.
  2382.     (Fmakunbound): Likewise.
  2383.  
  2384. 1998-04-08  Eli Zaretskii  <eliz@delysid.gnu.org>
  2385.  
  2386.     * dosfns.c (init_dosfns): Fix bug in passing segment address of
  2387.     the transfer buffer.
  2388.  
  2389. 1998-04-08  Karl Heuer  <kwzh@gnu.org>
  2390.  
  2391.     * keymap.c (fix_submap_inheritance): Fix parens.
  2392.  
  2393. 1998-04-07  Richard Stallman  <rms@gnu.org>
  2394.  
  2395.     * fileio.c (Fmake_temp_name): Detect error return from mktemp.
  2396.  
  2397. 1998-04-07  Eli Zaretskii  <eliz@is.elta.co.il>
  2398.  
  2399.     * charset.c (string_to_non_ascii_char, multibyte_form_length)
  2400.     (split_non_ascii_string, str_cmpchar_id): Make the STR argument
  2401.     const unsigned char *.
  2402.     * charset.h: Update prototypes for the above.
  2403.  
  2404.     * filelock.c: Include <utmp.h> only if CLASH_DETECTION is
  2405.     defined.
  2406.  
  2407.     * process.c (kill_buffer_processes): Make consistent with
  2408.     prototype in lisp.h.
  2409.  
  2410.     * msdos.c (request_sigio, unrequest_sigio): Make consistent with
  2411.     prototypes in lisp.h.
  2412.  
  2413.     * charset.h (CHAR_STRING): Cast to unsigned char ** explicitly.
  2414.  
  2415.     * w16select.c (Fwin16_set_clipboard_data): Call message2 with 3
  2416.     arguments.
  2417.  
  2418.     * emacs.c (abort): Don't redefine on MSDOS.
  2419.  
  2420. 1998-04-07  Dave Love  <fx@gnu.org>
  2421.  
  2422.     * keymap.c (describe_command): Use quotes around symbol name.
  2423.  
  2424.     * emacs.c (main): Obey environment variable EMACS_UNIBYTE as
  2425.     alternative to --unibyte.
  2426.  
  2427. 1998-04-06  Jonathan I. Kamens  <jik@kamens.brookline.ma.us>
  2428.  
  2429.     * config.in (GSSAPI, HAVE_LIBGSSAPI_KRB5, HAVE_LIBGSSAPI)
  2430.     (HAVE_GSSAPI_H): Add undefs for GSS-API support in movemail.
  2431.  
  2432. 1998-04-06  Richard Stallman  <rms@gnu.org>
  2433.  
  2434.     * dired.c (Fdirectory_files): Use make_uninit_multibyte_string.
  2435.     Use STRING_BYTES on encoded_directory.
  2436.  
  2437. 1998-04-06  Andreas Schwab  <schwab@gnu.org>
  2438.  
  2439.     * fns.c (Flength): Doc fix.
  2440.  
  2441.     * unexelf.c (unexec): Account for possible padding before the old
  2442.     .bss section.
  2443.  
  2444.     * editfns.c (Ftranspose_regions): Fix order of parameters for
  2445.     replace_range.
  2446.  
  2447.     * dired.c (Fdirectory_files): GCPRO encoded_directory and list.
  2448.     Compute needsep only once.  Pass correct arg to chars_in_text.
  2449.  
  2450.     * alloc.c (gc_sweep): Avoid using two loop variables counting the
  2451.     same thing.
  2452.  
  2453. 1998-04-06  Ken'ichi Handa  <handa@delysid.gnu.org>
  2454.  
  2455.     * fns.c (Fstring_as_unibyte): Set size_byte field to -1.
  2456.  
  2457. 1998-04-05  Eli Zaretskii  <eliz@is.elta.co.il>
  2458.  
  2459.     * config.in: Don't include <string.h> when configuring.
  2460.  
  2461. 1998-04-04  Richard Stallman  <rms@psilocin.gnu.org>
  2462.  
  2463.     * s/netbsd.h (LD_SWITCH_SYSTEM): Add -L/usr/lib.
  2464.  
  2465. 1998-04-03  enami tsugutomo  <enami@but-b.or.jp>
  2466.  
  2467.     * editfns.c (Fmessage_box): Pass the missing third argument
  2468.     STRING_MULTIBYTE (val) to message2.
  2469.  
  2470.     * frame.c (make_frame_without_minibuffer): Conditionalize on
  2471.     HAVE_WINDOW_SYSTEM.
  2472.     (make_minibuffer_frame): Likewise.
  2473.     * frame.h: Ditto.
  2474.  
  2475. 1998-04-03  Richard Stallman  <rms@psilocin.gnu.org>
  2476.  
  2477.     * intervals.c (set_intervals_multibyte):
  2478.     Function moved after set_intervals_multibyte_1.
  2479.  
  2480.     * xdisp.c (redisplay_window): If updating mode line,
  2481.     temporarily change selected_frame
  2482.  
  2483. 1998-04-02  Dave Love  <fx@gnu.org>
  2484.  
  2485.     * emacs.c (main): Add [--unibyte] to usage.
  2486.  
  2487. 1998-04-02  Richard Stallman  <rms@psilocin.gnu.org>
  2488.  
  2489.     * print.c (print) <Lisp_String>: Follow a hex escape with `\ ' if nec.
  2490.  
  2491.     * data.c (Fmake_variable_frame_local): Doc fix.
  2492.  
  2493.     * fns.c (Fstring_as_multibyte): Never return unibyte string unchanged.
  2494.  
  2495. 1998-04-02  NIIBE Yutaka  <gniibe@mri.co.jp>
  2496.  
  2497.     * fns.c (Fstring_as_multibyte): Set size_byte field.
  2498.  
  2499. 1998-04-02  Richard Stallman  <rms@psilocin.gnu.org>
  2500.  
  2501.     * fns.c (char_table_translate): New function.
  2502.     * config.in (RE_TRANSLATE): Use char_table_translate.
  2503.  
  2504. 1998-04-02  Kenichi Handa  <handa@etl.go.jp>
  2505.  
  2506.     * coding.c (CHARSET_OK): Don't reject safe charsets.
  2507.     (DECODE_DESIGNATION): Likewise.
  2508.     (check_composing_code): Likewise.
  2509.  
  2510.     * marker.c (buf_charpos_to_bytepos): Delete local variable
  2511.     gapend_byte.
  2512.  
  2513.     * xselect.c (selection_data_to_lisp_data): Give
  2514.     make_string_from_bytes a correct char size.
  2515.  
  2516. 1998-04-01  Richard Stallman  <rms@psilocin.gnu.org>
  2517.  
  2518.     * xdisp.c (redisplay_window): Fix computing pos from last_point.
  2519.  
  2520. 1998-03-30  Kenichi Handa  <handa@etl.go.jp>
  2521.  
  2522.     * coding.c (code_convert_region): Handle skipped ASCII characters
  2523.     at the head and tail of conversion region correctly when adjusting
  2524.     position keepers.  Call adjust_after_insert to record undo info
  2525.     and adjust markers when we don't have to change byte sequence of
  2526.     a buffer.
  2527.  
  2528.     * coding.h (struct coding_system): Comment for the member
  2529.     heading_ascii modified.
  2530.  
  2531.     * fileio.c (Finsert_file_contents): Call adjust_after_insert when
  2532.     a text is inserted in a multibyte buffer without any code
  2533.     conversion.
  2534.  
  2535.     * insdel.c (adjust_markers_for_replace): New function.
  2536.     (adjust_after_replace): Arguments changed.  Call
  2537.     adjust_markers_for_replace if this function is called after
  2538.     replacement.
  2539.     (adjust_after_insert): New function.
  2540.  
  2541.     * lisp.h (adjust_after_replace, adjust_after_insert): Extern them.
  2542.  
  2543. 1998-03-28  Richard Stallman  <rms@psilocin.gnu.org>
  2544.  
  2545.     * xdisp.c (display_text_line): Handle overlay-arrow correctly.
  2546.  
  2547. 1998-03-28  Richard Stallman  <rms@psilocin.gnu.org>
  2548.  
  2549.     * fileio.c (barf_or_query_if_file_exists): New arg QUICK.
  2550.     All calls changed.
  2551.     
  2552. 1998-03-27  Richard Stallman  <rms@psilocin.gnu.org>
  2553.  
  2554.     * insdel.c (check_markers_debug_flag): New variable.
  2555.     (syms_of_insdel): Set up Lisp var.
  2556.     (CHECK_MARKERS): New macro.  Use it everywhere
  2557.     instead of calling check_markers directly.
  2558.     It tests check_markers_debug_flag.
  2559.  
  2560. 1998-03-26  Richard Stallman  <rms@psilocin.gnu.org>
  2561.  
  2562.     * alloc.c (mark_buffer): Mark the undo_list slot specially;
  2563.     don't mark a marker just cause it is in this list.
  2564.     (Fgarbage_collect): Discard from all undo-lists
  2565.     all elements that adjust markers that were not marked.
  2566.  
  2567.     * buffer.h (struct buffer): Field `undo_list' moved before `name'
  2568.     so it won't get marked in the usual way.
  2569.  
  2570.     * coding.c (code_convert_region): Call adjust_before_replace
  2571.     in the no-conversion case.  Adjust GPT, ZV and Z in chars.
  2572.     
  2573. 1998-03-25  Richard Stallman  <rms@psilocin.gnu.org>
  2574.  
  2575.     * lread.c (init_lread): Init Vstandard_input.
  2576.  
  2577. 1998-03-25  Ken'ichi Handa  <handa@melange.gnu.org>
  2578.  
  2579.     * xdisp.c (redisplay_window): Fix previous change.
  2580.  
  2581. 1998-03-25  Kenichi Handa  <handa@etl.go.jp>
  2582.  
  2583.     * indent.c (compute_motion): Call strwidth only when necessary.
  2584.     Set wide_column_end_hpos only when MULTIBYTE_BYTES_WIDTH set
  2585.     nonzero to wide_column.
  2586.  
  2587.     * xdisp.c (redisplay_window): Give byte position to FETCH_BYTE.
  2588.     Call pos_tab_offset appropriately.
  2589.     (try_window_id): Give byte position to FETCH_BYTE.  Set
  2590.     val.bytepos to pos_byte.
  2591.  
  2592.     * lisp.h (make_buffer_string, make_buffer_string_both): Extern
  2593.     them.
  2594.  
  2595.     * process.c (read_process_output): Count multibyte characters.  If
  2596.     received data is stored in p->decoding_buf, copy it to a temporary
  2597.     buffer and call insert_before_makers instead of
  2598.     insert_from_string_before_markers.
  2599.  
  2600. 1998-03-24  Ken'ichi Handa  <handa@melange.gnu.org>
  2601.  
  2602.     * lisp.h (record_delete): The second arg is Lisp_Object.
  2603.  
  2604. 1998-03-24  Kenichi Handa  <handa@etl.go.jp>
  2605.  
  2606.     * indent.c (MULTIBYTE_BYTES_WIDTH): Set wide_column only when we
  2607.     encounter a wide-column character.
  2608.  
  2609.     * undo.c (record_delete): Record last_point_position when there's
  2610.     no record other than marker adjustment before undo boundary.
  2611.  
  2612.     * insdel.c (del_range_2): Move gap again to a proper place just
  2613.     after calling make_buffer_string_both.
  2614.  
  2615.     * coding.c (shrink_decoding_region): If EOL_CONVERSION is nonzero,
  2616.     don't skip `\r' (instead of `\n').
  2617.  
  2618. 1998-03-23  Andreas Schwab  <schwab@gnu.org>
  2619.  
  2620.     * xmenu.c (popup_get_selection): On receiving a KeyPress event
  2621.     only deactivate the menu when the key is not a modifier key.
  2622.  
  2623.     * xfns.c (Fx_create_frame): Use "borderWidth", not "borderwidth",
  2624.     as resource name, to be consistent with other X applications.
  2625.  
  2626. 1998-03-21  Richard Stallman  <rms@delysid.gnu.org>
  2627.  
  2628.     * dired.c (Fdirectory_files):
  2629.     In FULL case, compute number of characters
  2630.  
  2631.     * fns.c (substring_both, Fsubstring): Use make_specified_string.
  2632.     (concat): Make string result unibyte or multibyte as appropriate.
  2633.  
  2634.     * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string.
  2635.  
  2636.     * alloc.c (make_specified_string): New function.
  2637.     (make_string_from_bytes): New function.
  2638.     (compact_strings): Get byte size from size, if size_byte < 0.
  2639.     (Fmake_string): Use make_uninit_string for single-byte char.
  2640.     (make_unibyte_string): Mark string as unibyte.
  2641.     (make_uninit_string): Likewise.
  2642.     (make_string): Likewise, if size == size in bytes.
  2643.     (make_pure_string): New arg MULTIBYTE.
  2644.     (Fpurecopy): Pass new arg to make_pure_string.
  2645.  
  2646.     * editfns.c (Fchar_to_string): Use make_string_from_bytes.
  2647.     (Fformat): Use make_specified_string.
  2648.     (make_buffer_string_both): Use make_uninit_string if buffer is unibyte.
  2649.  
  2650.     * casefiddle.c (casify_object): Use make_specified_string.
  2651.  
  2652.     * charset.c (Fstring): Use make_string_from_bytes.
  2653.     (Fcompose_string): Likewise.
  2654.  
  2655.     * cmds.c (internal_self_insert): Use make_string_from_bytes.
  2656.  
  2657.     * coding.c (code_convert_string): Use make_string_from_bytes.
  2658.  
  2659.     * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes.
  2660.  
  2661.     * lread.c (read1): Pass new arg to make_pure_string.
  2662.     (make_symbol): Likewise.
  2663.     (init_obarray): Likewise.
  2664.     (read1): Use make_specified_string.
  2665.  
  2666.     * print.c (PRINTPREPARE): Use make_string_from_bytes.
  2667.  
  2668.     * process.c (read_process_output): Use make_string_from_bytes.
  2669.  
  2670.     * search.c (Fregexp_quote): Use make_specified_string.
  2671.  
  2672.     * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes.
  2673.  
  2674.     * insdel.c: (insert_from_string_1, replace_range):
  2675.     Use STRING_MULTIBYTE to determine whether string is multibyte.
  2676.  
  2677.     * editfns.c: Use STRING_BYTES and SET_STRING_BYTES.
  2678.  
  2679.     (Ftranspose_regions): Try to handle combining bytes.
  2680.  
  2681.     * alloc.c, xterm.c, xselect.c, xmenu.c, xfns.c, xdisp.c, search.c,
  2682.     process.c, print.c, lread.c, keymap.c, insdel.c, keyboard.c,
  2683.     frame.c, fns.c, filelock.c, doc.c, dispnew.c, data.c, coding.c,
  2684.     charset.c, ccl.c, category.c, casefiddle.c, callproc.c, callint.c,
  2685.     bytecode.c, abbrev.c, minibuf.c, buffer.c, fileio.c: Use
  2686.     STRING_BYTES and SET_STRING_BYTES.
  2687.  
  2688.     * xmenu.c: Don't include puresize.h any more as code that needs it
  2689.     has moved to keyboard.c.
  2690.     (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p):
  2691.     Functions deleted; code moved to parse_menu_item in keyboard.c.
  2692.     (single_keymap_panes): Large part of code moved to single_menu_item.
  2693.     (single_menu_item): New function that uses parse_menu_item.
  2694.     (Qmenu_alias): Variable deleted.
  2695.     (QCtoggle, QCradio): New variables.
  2696.     (syms_of_xmenu): Change initializations of variables.
  2697.  
  2698.     * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap)
  2699.     (copy-keymap, where_is_internal_1):
  2700.     Support new format for menu items.
  2701.     (syms_of_keymap): New symbol `menu-item'.
  2702.  
  2703.     * keyboard.c: Include puresize.h for CHECK_IMPURE.
  2704.     (parse_menu_item): New function.
  2705.     (menu_item_eval_property_1, menu_item_eval_property) New suroutines.
  2706.     (menu_bar_one_keymap): Moved some code to menu_bar_item.
  2707.     (menu_bar_item): Rewritten to use parse_menu_item.
  2708.     (menu_bar_item_1): Function deleted.
  2709.     (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio):
  2710.     (Qmenu_alias): New variables.
  2711.     (syms_of_keyboard): Initialize them, and item_properties.
  2712.  
  2713.     * insdel.c (replace_range): New arg NOMARKERS.
  2714.  
  2715. 1998-03-21  Richard Stallman  <rms@psilocin.gnu.org>
  2716.  
  2717.     * dired.c (Fdirectory_files): In FULL case,
  2718.     compute number of characters
  2719.  
  2720.     * insdel.c (insert_from_string_1, replace_range):
  2721.     Use STRING_MULTIBYTE to determine whether string is multibyte.
  2722.  
  2723.     * lisp.h: Declarations changed.
  2724.     (STRING_MULTIBYTE, STRING_BYTES, SET_STRING_BYTES):
  2725.     New definitions treating negative size_byte as a flag for unibyte.
  2726.  
  2727.     * xselect.c (selection_data_to_lisp_data): Use make_string_from_bytes.
  2728.  
  2729.     * search.c (Fregexp_quote): Use make_specified_string.
  2730.  
  2731.     * process.c (read_process_output): Use make_string_from_bytes.
  2732.  
  2733.     * print.c (PRINTPREPARE): Use make_string_from_bytes.
  2734.  
  2735.     * fns.c (substring_both, Fsubstring): Use make_specified_string.
  2736.     (concat): Make string result unibyte or multibyte as appropriate.
  2737.     
  2738.     * doc.c (Fsubstitute_command_keys): Use make_string_from_bytes.
  2739.  
  2740.     * coding.c (code_convert_string): Use make_string_from_bytes.
  2741.  
  2742.     * cmds.c (internal_self_insert): Use make_string_from_bytes.
  2743.  
  2744.     * charset.c (Fstring): Use make_string_from_bytes.
  2745.     (Fcompose_string): Likewise.
  2746.  
  2747.     * casefiddle.c (casify_object): Use make_specified_string.
  2748.  
  2749.     * editfns.c (Fchar_to_string): Use make_string_from_bytes.
  2750.     (Fformat): Use make_specified_string.
  2751.     (make_buffer_string_both): Use make_uninit_string if buffer is unibyte.
  2752.     
  2753.     * sunfns.c (syms_of_sunfns): Pass new arg to make_pure_string.
  2754.  
  2755.     * lread.c (read1): Pass new arg to make_pure_string.
  2756.     (make_symbol): Likewise.
  2757.     (init_obarray): Likewise.
  2758.     (read1): Use make_specified_string.
  2759.  
  2760.     * alloc.c (make_specified_string): New function.
  2761.     (make_string_from_bytes): New function.
  2762.     (compact_strings): Get byte size from size, if size_byte < 0.
  2763.     (Fmake_string): Use make_uninit_string for single-byte char.
  2764.     (make_unibyte_string): Mark string as unibyte.
  2765.     (make_uninit_string): Likewise.
  2766.     (make_string): Likewise, if size == size in bytes.
  2767.     (make_pure_string): New arg MULTIBYTE.
  2768.     (Fpurecopy): Pass new arg.
  2769.  
  2770.     * lisp.h (STRING_BYTES, SET_STRING_BYTES): New macros.
  2771.  
  2772.     * All files: Use STRING_BYTES and SET_STRING_BYTES.
  2773.     
  2774.     * editfns.c (Ftranspose_regions): Try to handle combining bytes.
  2775.     * insdel.c (replace_range): New arg NOMARKERS.
  2776.     
  2777. 1998-03-20  Richard Stallman  <rms@psilocin.gnu.org>
  2778.  
  2779.     * cmds.c (internal_self_insert): Pass new arg to replace_range.
  2780.     
  2781.     * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1):
  2782.     (adjust_before_replace, adjust_after_replace, replace_range):
  2783.     (del_range_2): Call record_delete the new way.
  2784.     Use make_buffer_string_both to make the string to pass.
  2785.  
  2786.     * editfns.c (make_buffer_string_both): New function.
  2787.     (make_buffer_string): Use make_buffer_string_both.
  2788.  
  2789.     * undo.c (record_delete): Replace LENGTH arg with STRING.
  2790.     (record_change): Call record_delete the new way.
  2791.     
  2792.     * Makefile.in (keymap.o): Depend on puresize.h.
  2793.     (xmenu.o): Don't depend on puresize.h.
  2794.  
  2795. 1998-03-20  Inge Frick  <inge@nada.kth.se>
  2796.  
  2797.     * keyboard.h (item_properties): New variable.
  2798.     (ITEM_PROPERTY_...): New macros.
  2799.  
  2800.     * keymap.c (fix_submap_inheritance, get_keyelt, store_in_keymap,
  2801.     copy-keymap, where_is_internal_1): Support new format for menu items.
  2802.     (syms_of_keymap): New symbol `menu-item'.
  2803.     
  2804.     * keyboard.c: Include puresize.h for CHECK_IMPURE.
  2805.     (parse_menu_item): New function.
  2806.     (menu_item_eval_property_1, menu_item_eval_property) New suroutines.
  2807.     (menu_bar_one_keymap): Moved some code to menu_bar_item.
  2808.     (menu_bar_item): Rewritten to use parse_menu_item.
  2809.     (menu_bar_item_1): Function deleted.
  2810.     (QCenable, QCvisible, QChelp, QCfilter, QCbutton, QCtoggle, QCradio):
  2811.     (Qmenu_alias): New variables.
  2812.     (syms_of_keyboard): Initialize them, and item_properties.
  2813.  
  2814.     * xmenu.c: Don't include puresize.h any more as code that needs it
  2815.     has moved to keyboard.c.
  2816.     (menu_item_equiv_key, menu_item_enabled_p_1, menu_item_enabled_p):
  2817.     Functions deleted; code moved to parse_menu_item in keyboard.c.
  2818.     (single_keymap_panes): Large part of code moved to single_menu_item.
  2819.     (single_menu_item): New function that uses parse_menu_item.
  2820.     (Qmenu_alias): Variable deleted.
  2821.     (QCtoggle, QCradio): New variables.
  2822.     (syms_of_xmenu): Change initializations of variables.
  2823.  
  2824. 1998-03-20  Richard Stallman  <rms@psilocin.gnu.org>
  2825.  
  2826.     * window.c (window_display_table): Don't look inside buffer if its nil.
  2827.  
  2828.     * insdel.c (del_range_2): Use adjust_markers_for_record_delete.
  2829.  
  2830. 1998-03-19  Kenichi Handa  <handa@etl.go.jp>
  2831.  
  2832.     * editfns.c (Fgoto_char): If POSITION is a marker pointing a
  2833.     different buffer, don't rely on the byte position of the marker.
  2834.  
  2835. 1998-03-19  Richard Stallman  <rms@psilocin.gnu.org>
  2836.  
  2837.     * editfns.c (Fformat): Handle padding before or after, for %s etc.
  2838.     Treat 0 like a multibyte char in %c.
  2839.  
  2840. 1998-03-19  Erik Naggum  <erik@naggum.no>
  2841.  
  2842.     * filelock.c (get_boot_time): Conditionalize on BOOT_TIME.
  2843.     (lock_file_1): Add boot-time to lock only if available.
  2844.  
  2845. 1998-03-19  Kenichi Handa  <handa@etl.go.jp>
  2846.  
  2847.     * fns.c (Fstring_as_multibyte): Call multibyte_chars_in_text
  2848.     instead of chars_in_text because we must ignore
  2849.     enable-multibyte-characters here.
  2850.     * lread.c (read1): Likewise.
  2851.     * marker.c (byte_char_debug_check): Likewise.
  2852.  
  2853. 1998-03-19  Richard Stallman  <rms@psilocin.gnu.org>
  2854.  
  2855.     * filelock.c (current_lock_owner): If lock file data doesn't include
  2856.     the uptime, assume the lock is from this system boot.
  2857.  
  2858. 1998-03-18  Richard Stallman  <rms@psilocin.gnu.org>
  2859.  
  2860.     * lread.c (read0): Swap args to Fmake_string.
  2861.  
  2862. 1998-03-17  Richard Stallman  <rms@psilocin.gnu.org>
  2863.  
  2864.     * callproc.c (syms_of_callproc): Doc fixes.
  2865.  
  2866.     * insdel.c (adjust_markers_for_delete):
  2867.     Delete unused local coming_gap_size.
  2868.     (adjust_markers_for_record_delete): New function.
  2869.     (insert_1_both, insert_from_string_1, insert_from_buffer_1)
  2870.     (adjust_after_replace, replace_range):
  2871.     Use adjust_markers_for_record_delete.
  2872.  
  2873.     * editfns.c (Fsave_excursion): Doc fix.
  2874.  
  2875.     * window.c (Frecenter): Operate on window's buffer even
  2876.     if some other was current.
  2877.  
  2878.     * filelock.c (get_boot_time): New function.
  2879.     (lock_file_1): Include boot time in the lock text.
  2880.     (current_lock_owner): Parse and compare the boot time.
  2881.  
  2882. 1998-03-16  Erik Naggum  <erik@naggum.no>
  2883.  
  2884.     * editfns.c (Fformat): Properly print floats.
  2885.  
  2886. 1998-03-16  Kenichi Handa  <handa@etl.go.jp>
  2887.  
  2888.     * insdel.c (ADJUST_CHAR_POS): New macro.
  2889.     (combine_bytes): Use the macro ADJUST_CHAR_POS.
  2890.     (adjust_after_replace): New arg REPLACE.  If it is zero, give LEN
  2891.     as the arg LENGTH to offset_intervals.
  2892.     (del_range_2): Give correct args to count_combining_before and
  2893.     combine_bytes.  Adjust the gap position after record_delete if
  2894.     necessary.  Give character position to adjust_overlays_for_delete.
  2895.  
  2896.     * fileio.c (Finsert_file_contents):
  2897.     Give adjust_after_replace the new arg REPLACE as 0.
  2898.  
  2899.     * coding.c (code_convert_region): The 6th arg name is changed to
  2900.     REPLACE.  Even if there's no need of code conversion, call
  2901.     adjust_after_replace to handle bytes combining.
  2902.  
  2903. 1998-03-15  Richard Stallman  <rms@psilocin.gnu.org>
  2904.  
  2905.     * syntax.h (SYNTAX_FLAGS_COMSTART_FIRST): New macro.
  2906.     (SYNTAX_FLAGS_COMSTART_SECOND): Likewise.
  2907.     (SYNTAX_FLAGS_COMEND_FIRST, SYNTAX_FLAGS_COMEND_SECOND): Likewise.
  2908.     (SYNTAX_FLAGS_PREFIX, SYNTAX_FLAGS_COMMENT_STYLE): Likewise.
  2909.  
  2910.     * syntax.c (Fbackward_prefix_chars): Set point properly while scanning.
  2911.     (scan_sexps_forward): Make INC_FROM do UPDATE_SYNTAX_TABLE_FORWARD.
  2912.     Delete the explicit calls to UPDATE_SYNTAX_TABLE_FORWARD.
  2913.     Also set prev_from_syntax (new local var).  Test that in the loop,
  2914.     instead of fetching syntax of the previous char.
  2915.  
  2916.     * editfns.c (Fchar_after, Fchar_before): Properly check arg type
  2917.     and whether in range, for all cases.
  2918.  
  2919. 1998-03-14  Richard Stallman  <rms@psilocin.gnu.org>
  2920.  
  2921.     * process.c (exec_sentinel, read_process_output):
  2922.     Fstore_match_data => Fset_match_data.
  2923.     
  2924.     * xmenu.c (set_frame_menubar): Fstore_match_data => Fset_match_data.
  2925.  
  2926.     * xdisp.c (message_dolog): Save and restore Vdeactivate_mark.
  2927.     (prepare_menu_bars): Fstore_match_data => Fset_match_data.
  2928.     (update_menu_bar): Likewise.
  2929.  
  2930. 1998-03-13  Richard Stallman  <rms@psilocin.gnu.org>
  2931.  
  2932.     * search.c (Fset_match_data): Renamed from Fstore_match_data.
  2933.     (syms_of_search): Corresponding change.
  2934.  
  2935.     * lisp.h: Fstore_match_data => Fset_match_data.
  2936.  
  2937.     * window.c (Fwindow_end): New arg UPDATE.
  2938.  
  2939.     * window.c (Fset_window_configuration): Don't call do_switch_frame
  2940.     or run Qwindow_configuration_change_hook if frame is dead.
  2941.  
  2942.     * cmds.c (internal_self_insert): Call Fforward_buffer to advance
  2943.     over the replacement characters.
  2944.  
  2945. 1998-03-12  Richard Stallman  <rms@psilocin.gnu.org>
  2946.  
  2947.     * process.c (Fstart_process): Doc fix.
  2948.  
  2949.     * s/ptx4.h (SETUP_SLAVE_PTY): New definition.
  2950.  
  2951.     * buffer.c (init_buffer): Call Fset_buffer_multibyte for *scratch*.
  2952.  
  2953. 1998-03-11  Richard Stallman  <rms@psilocin.gnu.org>
  2954.  
  2955.     * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1)
  2956.     (adjust_after_replace, replace_range):
  2957.     Account for combining bytes in args to record_insert.
  2958.     (del_range_2): Make undo records for combining bytes.
  2959.     Put second call to move_gap_both before setting beg_unchanged.
  2960.  
  2961. 1998-03-12  Kenichi HANDA  <handa@etl.go.jp>
  2962.  
  2963.     * coding.c (code_convert_region): Adjusted for the change of
  2964.     adjust_after_replace.
  2965.  
  2966.     * fileio.c (Finsert_file_contents): Don't do position adjustments
  2967.     and handling post-read-conversion here, they are done in
  2968.     code_convert_region.  Even if a file is read by no-conversion,
  2969.     call adjust_after_replace to adjust positions.
  2970.  
  2971.     * insdel.c (adjust_before_replace): Call
  2972.     adjust_overlays_for_delete.
  2973.     (adjust_after_replace): Delete args COMBINED_BEFORE_BYTES and
  2974.     COMBINED_AFTER_BYTES.  This makes the newly generated text
  2975.     following GPT_ADDR a buffer contents.
  2976.  
  2977. 1998-03-10  Richard Stallman  <rms@psilocin.gnu.org>
  2978.  
  2979.     * insdel.c (adjust_markers_for_insert): Don't leave a marker within
  2980.     the combined_after_bytes.  Use DEC than INC when leaving
  2981.     a marker before the insertion.
  2982.     (count_combining_before): Return number of bytes from start
  2983.     of insertion that will combine.
  2984.     (insert_1_both): Compensate for change in count_combining_before.
  2985.     Delete intervals for the combined_after_bytes.
  2986.     Compensate for that when updating other intervals.
  2987.     (insert_from_buffer_1, replace_range): Likewise.
  2988.     (adjust_after_replace): Likewise.
  2989.     (insert_from_string_1): Likewise.  Also handle intervals
  2990.     for inserting just part of string.
  2991.  
  2992.     * insdel.c (insert_1_both, insert_from_string_1, insert_from_buffer_1):
  2993.     Count all of combined_after_bytes, not just 1, when correcting
  2994.     nchars, and in related places.
  2995.     (adjust_after_replace, replace_range): Likewise.
  2996.  
  2997. 1998-03-09  Gerd Moellmann  <gerd@gnu.org>
  2998.  
  2999.     * fontset.c (fontset_pattern_regexp): `==' was used instead of `='.
  3000.  
  3001. 1998-03-09  Richard Stallman  <rms@psilocin.gnu.org>
  3002.  
  3003.     * insdel.c (combine_bytes): New function.
  3004.     (insert_1_both, insert_from_string_1, insert_from_buffer_1):
  3005.     Simplify greatly by using combine_bytes near the end
  3006.     to handle all aspects of combining except for undo-recording.
  3007.     This means most of the code deals with the text as if there were
  3008.     no combining.
  3009.     (replace_range): Likewise.  Also handle unibyte-multibyte conversion
  3010.     as in insert_from_string_1.
  3011.     (del_range_2): Handle combining of character before the deletion
  3012.     with strays after the deletion.
  3013.     (adjust_markers_for_delete): Delete debugging code for Z == Z_BYTE.
  3014.     (adjust_markers_for_insert): Move Z == Z_BYTE debugging code
  3015.     to before we relocate the marker.
  3016.  
  3017. 1998-03-09  Richard Stallman  <rms@psilocin.gnu.org>
  3018.  
  3019.     * lisp.h (struct Lisp_Buffer_Local_Value):
  3020.     Field car renamed to realvalue.  New fields check_frame,
  3021.     found_for_buffer, found_for_frame, buffer, frame.
  3022.     
  3023.     * data.c (store_symval_forwarding, swap_in_symval_forwarding)
  3024.     (set_internal, default_value, Fset_default, Fmake_local_variable)
  3025.     (Fmake_variable_buffer_local, Fkill_local_variable):
  3026.     Handle new data structure for struct Lisp_Buffer_Local_Value.
  3027.     (Fmake_variable_frame_local): New function.
  3028.  
  3029.     * buffer.c (set_buffer_internal_1) 
  3030.     (swap_out_buffer_local_variables): Handle new data structure
  3031.     for struct Lisp_Buffer_Local_Value.
  3032.  
  3033.     * print.c (print): Handle new data structure
  3034.     for struct Lisp_Buffer_Local_Value.
  3035.  
  3036.     * alloc.c (gc_sweep, mark_object): Handle new data structure
  3037.     for struct Lisp_Buffer_Local_Value.
  3038.  
  3039. 1998-03-08  Richard Stallman  <rms@psilocin.gnu.org>
  3040.  
  3041.     * insdel.c (adjust_markers_for_insert): New arg COMBINED_BEFORE_BYTES.
  3042.     Calls changed.
  3043.  
  3044.     * search.c (simple_search): Don't count a character until it matches!
  3045.     Call set_search_regs differently in a forward search.
  3046.     (boyer_moore): Fix up the code that translates the pattern
  3047.     and loops thru equivalent characters.
  3048.     
  3049. 1998-03-07  Richard Stallman  <rms@psilocin.gnu.org>
  3050.  
  3051.     * insdel.c (adjust_markers_for_insert): New arg COMBINED_AFTER_BYTES.
  3052.     Calls changed.
  3053.     (insert_1): Call insert_1_both.
  3054.     (count_combining_before): New function.
  3055.     (count_combining_after): New function.
  3056.     (insert_1_both, insert_from_string_1): Handle bytes that combine
  3057.     with chars adjacent to the inserted text.
  3058.     (insert_from_buffer_1, replace_range): Likewise.
  3059.     (adjust_after_replace):
  3060.     New args COMBINED_BEFORE_BYTES, COMBINED_AFTER_BYTES.
  3061.  
  3062. 1998-03-06  Kenichi Handa  <handa@etl.go.jp>
  3063.  
  3064.     * Makefile.in (alloc.o): Depend on charset.h.
  3065.  
  3066.     * alloc.c (Fmake_string): Handle the case INIT is a multibyte
  3067.     character correctly.
  3068.  
  3069.     * buffer.c (advance_to_char_boundary): Handle the case the code
  3070.     0240..0377 is not a constituent of a multibyte sequence.
  3071.  
  3072.     * coding.c (code_convert_region): Fix previous change.  Adjusted
  3073.     for the change of adjust_after_replace (see insdel.c change above).
  3074.  
  3075. 1998-03-04  Ken'ichi Handa  <handa@melange.gnu.org>
  3076.  
  3077.     * coding.c (code_convert_region): Fix previous change.
  3078.  
  3079. 1998-03-04  Kenichi HANDA  <handa@etl.go.jp>
  3080.  
  3081.     * buffer.c (Fset_buffer_multibyte): Fix arg for chars_in_text.
  3082.     Be sure not to have a multibyte sequence striding over the GAP
  3083.  
  3084.     * charset.c (strwidth): Make it work for invalid bytes sequence.
  3085.     (Fstring_width): Give byte length of STR to strwidth.
  3086.  
  3087.     * coding.c (code_convert_region): Handle the case that codes
  3088.     0240..0377 are generated just after a multibyte character.
  3089.  
  3090.     * editfns.c (Fformat): Format multibyte characters by "%c"
  3091.     correctly.  Handle padding for multibyte characters correctly.
  3092.  
  3093. 1998-03-03  Richard Stallman  <rms@psilocin.gnu.org>
  3094.  
  3095.     * puresize.h (BASE_PURESIZE): Increased.
  3096.  
  3097. 1998-03-03  Kenichi Handa  <handa@etl.go.jp>
  3098.  
  3099.     * Makefile.in (dired.o): Depend on charset.h and coding.h.
  3100.  
  3101.     * callproc.c (Vdefault_file_name_coding_system): Extern it.
  3102.     (Fcall_process): Use ENCODE_FILE.
  3103.  
  3104.     * coding.h (ENCODE_FILE): Moved from fileio.c.  Use
  3105.     default-file-name-coding-system if file-name-coding-system is nil.
  3106.     (DECODE_FILE): New macro.
  3107.  
  3108.     * dired.c: Include charset.h and coding.h.
  3109.     (ENCODE_FILE): This macro is moved to coding.h.
  3110.     (Vdefault_file_name_coding_system): Extern it.
  3111.     (Fdirectory_files): Use DECODE_FILE.
  3112.     (file_name_completion): Likewise.
  3113.  
  3114.     * editfns.c (Fformat): Fix previous change.
  3115.  
  3116.     * fileio.c (ENCODE_FILE): This macro is moved to coding.h.
  3117.     (Vdefault_file_name_coding_system): New variable.
  3118.     (syms_of_fileio): Defsubr it.
  3119.     (Ffile_symlink_p): Use DECODE_FILE.
  3120.     (Ffile_name_directory): Use size_byte member of XSTRING (filename).
  3121.     (Ffile_name_as_directory): Likewise.
  3122.     (Fdirectory_file_name): Likewise.
  3123.     (Fsubstitute_in_file_name): Likewise.
  3124.     (expand_and_dir_to_file): Likewise.
  3125.     (Fdo_auto_save): Likewise.
  3126.     (Fread_file_name): Likewise.
  3127.  
  3128.     * insdel.c (insert_1_both): If enable-multibyte-characters is nil,
  3129.     insert each byte as one character.
  3130.  
  3131.     * process.c (Vdefault_file_name_coding_system): Extern it.
  3132.     (create_process): Use ENCODE_FILE.
  3133.  
  3134. 1998-03-02  Kenichi Handa  <handa@etl.go.jp>
  3135.  
  3136.     * callproc.c (Fcall_process): Calculate CARRYOVER correctly.
  3137.  
  3138.     * charset.h (NONASCII_INSERT_OFFSET): New macro.
  3139.     (VALID_MULTIBYTE_CHAR_P): New macro.
  3140.  
  3141.     * charset.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
  3142.     moved to charset.h.
  3143.     (unibyte_char_to_multibyte): Always return a valid character.
  3144.     (Funibyte_char_to_multibyte): New function.
  3145.     (syms_of_charset): Defsubr it.  Doc-string of
  3146.     nonascii-insert-offset is modified.
  3147.  
  3148.     * coding.h: Typo in comment fixed.
  3149.  
  3150.     * cmds.c (internal_self_insert): Avoid checking
  3151.     enable-multibyte-characters twice.
  3152.  
  3153.     * editfns.c (string1): Cast ARGS to `char **' to avoid
  3154.     compiler warning.
  3155.  
  3156.     * fileio.c (Ffile_name_nondirectory): Use size_byte member of
  3157.     XSTRING (filename).
  3158.  
  3159.     * fns.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
  3160.     moved to charset.h.
  3161.     (concat): Use unibyte_char_to_multibyte.
  3162.  
  3163.     * insdel.c (DEFAULT_NONASCII_INSERT_OFFSET): Macro definition is
  3164.     moved to charset.h.
  3165.     (copy_text): Don't convert codes in the range 0200..0237 to
  3166.     multibyte characters.  For codes in the range 0240..0377, use
  3167.     unibyte_char_to_multibyte.
  3168.     (count_size_as_multibyte): Likewise.
  3169.     (adjust_before_replace): Comment fixed.
  3170.  
  3171.     * xdisp.c (try_window_id): Use DEC_BOTH unconditionally.
  3172.     (display_text_line): Likewise.
  3173.  
  3174. 1998-03-02  Richard Stallman  <rms@psilocin.gnu.org>
  3175.  
  3176.     * lisp.h (Vnonascii_translate_table, Qcharset): New variable decls.
  3177.     (Fstring_make_multibyte, Fstring_make_unibyte): New function decl.
  3178.     (Fstring_as_multibyte, Fstring_as_unibyte): New function decl.
  3179.     (list2, list3, list4, list5): New function decl.
  3180.     (Fwrite_region): Add an argument.
  3181.     (compare_window_configurations): New function decl.
  3182.     
  3183.     * keyboard.c: Include syntax.h.
  3184.     (interrupt_signal): Save and restore gl_state
  3185.     around an immediate quit, in case debugger returns.
  3186.  
  3187.     * Makefile.in (keyboard.o): Depend on syntax.h.
  3188.  
  3189.     * syntax.h (UPDATE_SYNTAX_TABLE):
  3190.     Do nothing unless parse_sexp_lookup_properties.
  3191.     (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
  3192.     (SYNTAX_TABLE_BYTE_TO_CHAR): If parse_sexp_lookup_properties is 0,
  3193.     return 0 right away.
  3194.     (SETUP_SYNTAX_TABLE): Add if (1) ... else.
  3195.  
  3196. 1998-03-01  Richard Stallman  <rms@psilocin.gnu.org>
  3197.  
  3198.     * fileio.c (auto_save_1): Pass new arg to Fwrite_region.
  3199.     (Fwrite_region): New arg CONFIRM.  If non-nil, confirm overwriting.
  3200.  
  3201.     * callproc.c (Fcall_process_region): Pass new arg to Fwrite_region.
  3202.  
  3203. 1998-03-01  Ilya Zakharevich  <ilya@math.ohio-state.edu>
  3204.     
  3205.     * syntax.c (update_syntax_table): Properly update `position'
  3206.     field of used intervals.
  3207.  
  3208.     * interval.c (update_interval): Properly update `position'
  3209.     field of used intervals.
  3210.  
  3211. 1998-02-28  Richard Stallman  <rms@psilocin.gnu.org>
  3212.  
  3213.     * fns.c (internal_equal): compare_window_configurations takes new arg.
  3214.  
  3215.     * window.c (compare_window_configurations): New arg ignore_positions.
  3216.     (Fcompare_window_configurations): New function.
  3217.     (syms_of_window): defsubr it.
  3218.  
  3219.     * keyboard.c (Fthis_command_keys_vector): New function.
  3220.     (Fread_key_sequence_vector): New function.
  3221.     (syms_of_keyboard): defsubr them.
  3222.     (Fthis_single_command_keys): Always return a vector.
  3223.  
  3224. 1998-02-27  Richard Stallman  <rms@psilocin.gnu.org>
  3225.  
  3226.     * xterm.c (XTframe_up_to_date): Check that mouse_face_mouse_frame
  3227.     is non-null before calling note_mouse_highlight.
  3228.     (x_destroy_window): If f equals mouse_face_mouse_frame,
  3229.     clear that, and clear mouse_face_deferred_gc too.
  3230.  
  3231.     * xdisp.c (syms_of_xdisp): Doc fix.
  3232.  
  3233.     * data.c (store_symval_forwarding) <Lisp_Misc_Buffer_Objfwd>:
  3234.     If buffer_local_types has -1, this variable is read-only.
  3235.  
  3236.     * buffer.c (syms_of_buffer): enable-multibyte-characters is read-only.
  3237.  
  3238.     * data.c (Fset_default) <BUFFER_OBJFWDP>:
  3239.     Unconditionally set the slot in buffer_defaults.
  3240.  
  3241.     * buffer.c (reset_buffer): Initialize enable_multibyte_characters.
  3242.  
  3243.     * buffer.c (init_buffer_once): Force enable-multibyte-characters
  3244.     to be local in every buffer whether it is set or not.
  3245.  
  3246.     * fns.c (mapcar1): Handle bool-vectors.
  3247.     (Fmapconcat, Fmapcar): Doc fixes.
  3248.     (Flength): For char-table, length is based on max valid char code.
  3249.  
  3250.     * syssignal.h: Delete #endif left over from previous change.
  3251.  
  3252. 1998-02-27  Andreas Schwab  <schwab@gnu.org>
  3253.  
  3254.     * indent.c (compute_motion): If we just moved over a continuation
  3255.     return contin_hpos as prevhpos.
  3256.  
  3257. 1998-02-27  Karl Heuer  <kwzh@gnu.org>
  3258.  
  3259.     * insdel.c (del_range_2): Reorder args.  All callers changed.
  3260.  
  3261. 1998-02-25  Karl Heuer  <kwzh@gnu.org>
  3262.  
  3263.     * insdel.c (del_range_both): Reorder args.  All callers changed.
  3264.  
  3265. 1998-02-24  Kenichi Handa  <handa@etl.go.jp>
  3266.  
  3267.     * xdisp.c (message_dolog): Give correct args to
  3268.     message_log_check_duplicate and del_range_both.
  3269.  
  3270.     * search.c (scan_newline): Delete duplicated code.
  3271.  
  3272. 1998-02-21  Richard Stallman  <rms@gnu.org>
  3273.  
  3274.     * cmds.c (Fdelete_backward_char): Count both bytes and chars.
  3275.  
  3276. 1998-02-21  Ilya Zakharevich  <ilya@math.ohio-state.edu>
  3277.  
  3278.     * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Fix condition.
  3279.     (UPDATE_SYNTAX_TABLE_BACKWARD, UPDATE_SYNTAX_TABLE): Likewise.
  3280.     (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix bounds.
  3281.     * syntax.c (update_syntax_table): Fix calculations using offset.
  3282.     (skip_chars): Fix loop termination condition.
  3283.     * textprop.c (interval_of): Handle Qt.
  3284.  
  3285. 1998-02-20  Andreas Schwab  <schwab@gnu.org>
  3286.  
  3287.         * s/gnu-linux.h (LINUX_MAP_SHARED_DOES_WORK): Define for kernel
  3288.     version after 2.0.
  3289.     (UNEXEC_USE_MAP_PRIVATE): Don't define if
  3290.     LINUX_MAP_SHARED_DOES_WORK.
  3291.  
  3292.     * syssignal.h (sigmask) [POSIX_SIGNALS]: Always define our own
  3293.     version that returns a sigset_t.
  3294.     (sigpause) [POSIX_SIGNALS]: Unconditionally define in terms of
  3295.     sigsuspend.  Don't redefine SIGEMPTYMASK.
  3296.     (sys_sigpause): Don't declare.
  3297.     (temp_mask): Don't declare.
  3298.     * sysdep.c (sys_sigpause): Removed.
  3299.     (new_action, old_action): Move as local variables into sys_signal.
  3300.     (old_mask, temp_mask): Removed.
  3301.  
  3302. 1998-02-20  Kenichi Handa  <handa@etl.go.jp>
  3303.  
  3304.     * editfns.c (Fmessage): Check byte size (instead of char size) of
  3305.     VAL against MESSAGE_LENGTH.
  3306.  
  3307.     * fileio.c (Fwrite_region): When writing a string, give byte size
  3308.     to a_write.
  3309.     (a_write): Handle annotations correctly when writing a string.
  3310.  
  3311.     * ccl.c (Fccl_execute_on_string): Put \n\ at end-of-line of
  3312.     doc-string.
  3313.  
  3314. 1998-02-19  Kenichi Handa  <handa@etl.go.jp>
  3315.  
  3316.     * buffer.c (advance_to_char_boundary): Make the behaviour
  3317.     consistent with INC_POS.
  3318.  
  3319.     * ccl.c (Fccl_execute_on_string): Add new arg UNIBYTE-P.
  3320.  
  3321.     * charset.h (INC_POS): Use macro BASE_LEADING_CODE_P.
  3322.     (DEC_POS): Make the behaviour consistent with INC_POS.
  3323.     (BUF_INC_POS, BUF_DEC_POS): Likewise.
  3324.  
  3325.     * charset.c (invalid_character): New function.
  3326.     (chars_in_text): Make the behaviour consistent with INC_POS.
  3327.     (multibyte_chars_in_text): Likewise.
  3328.     (str_cmpchar_id): Likewise.
  3329.     (non_ascii_char_to_string): Call invalid_character.
  3330.     (Fchar_direction): Likewise.
  3331.  
  3332.     * coding.c (decode_coding_iso2022): Update coding->fake_multibyte.
  3333.     (ENCODE_SINGLE_SHIFT_2, ENCODE_SINGLE_SHIFT_3,
  3334.     encode_coding_iso2022, decode_coding_sjis_big5,
  3335.     encode_coding_sjis_big5, decode_eol, encode_eol, decode_coding,
  3336.     encode_coding): Likewise.
  3337.     (shrink_decoding_region, shrink_encoding_region): Do not skip
  3338.     non-ASCII code in any cases.  Bug fix for getting starting address
  3339.     from BEG.
  3340.     (code_convert_region): Sync character positions correctly by
  3341.     paying attention to coding->fake_multibyte.
  3342.     (code_convert_string): Set number of character and bytes just
  3343.     processed in members of CODING.
  3344.     (code_convert_string): Adjusted for the change of
  3345.     code_convert_region.
  3346.     (code_convert_region1): Likewise.
  3347.  
  3348.     * coding.h (struct coding_system): New member fake_multibyte.
  3349.  
  3350.     * fileio.c (Finsert_file_contents): Read a file contents into the
  3351.     correct buffer (byte) position.  Adjusted for the change of
  3352.     code_convert_region.
  3353.  
  3354.     * fns.c (Fset_char_table_default): For an invalid character, call
  3355.     invalid_character.
  3356.  
  3357.     * indent.c (MULTIBYTE_BYTES_WIDTH): New macro.
  3358.     (current_column_1): Don't follow a display table for a heading
  3359.     byte of a multibyte character.  Use the macro
  3360.     MULTIBYTE_BYTES_WIDTH.
  3361.     (Fmove_to_column): Likewise.
  3362.     (compute_motion): Likewise.  Handling of wide-column character
  3363.     fixed.
  3364.  
  3365.     * insdel.c (adjust_before_replace): Comment added.
  3366.     (adjust_after_replace): Comment added.  Give correct args to
  3367.     adjust_point.  Don't call signal_after_change here.
  3368.  
  3369.     * intervals.c (temp_set_point_both): Declare arg BYTEPOS as int.
  3370.     (set_point_both): Likewise.
  3371.  
  3372.     * search.c (search_buffer): Update POS_BYTE for regexp search.
  3373.  
  3374.     * xdisp.c (display_text_line): Handling of a wide-column character
  3375.      fixed.  Make the behaviour consistent with INC_POS.
  3376.  
  3377. 1998-02-18  Richard Stallman  <rms@gnu.org>
  3378.  
  3379.     * editfns.c (Fchar_before): Check POS in valid range
  3380.     before calling CHAR_TO_BYTE.
  3381.  
  3382.     * search.c (search_command): Check LIM in valid range
  3383.     before calling CHAR_TO_BYTE.
  3384.  
  3385. 1998-02-15  Richard Stallman  <rms@psilocin.gnu.org>
  3386.  
  3387.     * minibuf.c (read_minibuf): Do use DEFALT in place of empty input
  3388.     when when expflag is nonzero.
  3389.     (Fread_no_blanks_input): Arg INIT renamed to INITIAL.
  3390.  
  3391. 1998-02-14  Richard Stallman  <rms@psilocin.gnu.org>
  3392.  
  3393.     * fileio.c (Fread_file_name): Alter the history
  3394.     to contain just the actual file name, and not any
  3395.     other preinserted text that is not really used.
  3396.  
  3397.     * search.c (simple_search): Call set_search_regs.
  3398.     (boyer_moore): New arg CHARSET_BASE says which chars
  3399.     to use the translate tables for.
  3400.     (search_buffer): Properly test which chars participate in translation.
  3401.     
  3402. 1998-02-12  Gerd Moellmann  <gerd@gnu.org>
  3403.  
  3404.     * intervals.c (split_interval_right): Make sure to call
  3405.     balance_possible_root_interval in case an interval doesn't have a
  3406.     right child, because otherwise the interval tree might degenerate
  3407.     into a list.
  3408.     (split_interval_left): Ditto if an interval hasn't a left child.
  3409.  
  3410. 1998-02-12  Richard Stallman  <rms@psilocin.gnu.org>
  3411.  
  3412.     * search.c (TRANSLATE): New arg OUT.  Handle non-integer in TRT.
  3413.     All calls changed.
  3414.  
  3415.     * editfns.c (Fsubst_char_in_region): Don't increment pos twice.
  3416.  
  3417.     * charset.h (INC_BOTH, DEC_BOTH): In unibyte mode,
  3418.     simply increment bytepos.
  3419.  
  3420.     * syntax.c (skip_chars): Use INC_POS instead of INC_BOTH.
  3421.     (Fforward_comment): Always use both FROM and FROM_BYTE to set point.
  3422.     Use dec_bytepos not DEC_POS.
  3423.     (scan_lists): Handle unibyte buffers when decrementing temp_pos.
  3424.     (INC_FROM): Use INC_BOTH.
  3425.     (inc_bytepos, dec_bytepos): In unibyte mode, just increment bytepos.
  3426.  
  3427.     * xdisp.c (display_text_line): Use INC_BOTH for unibyte buffers too.
  3428.  
  3429. 1998-02-10  Richard Stallman  <rms@psilocin.gnu.org>
  3430.  
  3431.     * keymap.c (describe_map_tree): Add the maps we have already
  3432.     handled into SUB_SHADOWS.
  3433.  
  3434. 1998-02-06  Kenichi Handa  <handa@melange.gnu.org>
  3435.  
  3436.     * fns.c (Fstring_bytes): Declare arg STRING as Lisp_Object.
  3437.  
  3438.     * editfns.c (Fposition_bytes): Declare arg POSITION as
  3439.      Lisp_Object.  Allow marker as arg POSITION.  Use XINT for type
  3440.      consistency.
  3441.  
  3442. 1998-02-09  Andreas Schwab  <schwab@gnu.org>
  3443.  
  3444.     * indent.c (compute_motion): If right margin is reached and we are
  3445.     truncating don't clobber PREV_HPOS if we are already past TO.
  3446.  
  3447. 1998-02-09  Richard Stallman  <rms@psilocin.gnu.org>
  3448.  
  3449.     * fns.c (concat): Use Vnonascii_translate_table.
  3450.  
  3451.     * charset.c (Vnonascii_translate_table): New variable.
  3452.     (unibyte_char_to_multibyte): Use Vnonascii_translate_table.
  3453.     (syms_of_charset): Defvar it.
  3454.  
  3455.     * insdel.c (copy_text, count_size_as_multibyte):
  3456.     Use Vnonascii_translate_table.
  3457.  
  3458. 1998-02-08  Richard Stallman  <rms@psilocin.gnu.org>
  3459.  
  3460.     * print.c (printchar): When outputting to echo area,
  3461.     update message_enable_multibyte, and convert previous text
  3462.     from unibyte to multibyte if necessary.
  3463.  
  3464.     * search.c (search_command): Fix call to search_buffer.
  3465.  
  3466. 1998-02-07  Richard Stallman  <rms@psilocin.gnu.org>
  3467.  
  3468.     * dired.c (Fdirectory_files): Call compile_pattern the new way.
  3469.  
  3470.     * search.c (boyer_moore, simple_search): New subroutines.
  3471.     (search_buffer): For non-regexp, use one of those subroutines.
  3472.     Args TRT and INVERSE_TRT are now Lisp_Object.  Callers changed.
  3473.     (compile_pattern_1): Arg TRANSLATE is now Lisp_Object.  Calls changed.
  3474.     (compile_pattern): Arg TRANSLATE is now Lisp_Object.  Calls changed.
  3475.  
  3476.     * config.in (RE_TRANSLATE_TYPE): Define as Lisp_Object.
  3477.     (RE_TRANSLATE): Use Faref to examine translate table.
  3478.  
  3479. 1998-02-06  Richard Stallman  <rms@psilocin.gnu.org>
  3480.  
  3481.     * marker.c (byte_char_debug_check): New function.
  3482.     (CONSIDER, both definitions): Call it.
  3483.     (buf_charpos_to_bytepos, buf_bytepos_to_charpos): Likewise.
  3484.     (byte_debug_flag): New variable.
  3485.     (syms_of_marker): Set up Lisp variable.
  3486.  
  3487.     * buffer.c (advance_to_char_boundary): New function.
  3488.     (Fset_buffer_multibyte): Advance all byte-positions to char boundaries.
  3489.     Clear undo list.
  3490.     
  3491.     * fontset.h (GENERIC_FONT_PTR): Commented-out definition deleted.
  3492.  
  3493. 1998-02-06  Kenichi Handa  <handa@etl.go.jp>
  3494.  
  3495.     * window.h: Change argument number of Fdisplay_buffer to 3.
  3496.  
  3497. 1998-02-06  Richard Stallman  <rms@psilocin.gnu.org>
  3498.  
  3499.     * buffer.c (Fpop_to_buffer): Pass new arg to Fdisplay_buffer.
  3500.  
  3501.     * window.c (Fdisplay_buffer): New arg FRAME.
  3502.     (temp_output_buffer_show): Pass new arg to Fdisplay_buffer.
  3503.     (Fother_window_for_scrolling): Likewise.
  3504.  
  3505.     * editfns.c (Fposition_bytes): New function.
  3506.     (syms_of_editfns): defsubr it.
  3507.  
  3508.     * fns.c (Fstring_bytes): New function. 
  3509.     (syms_of_fns): defsubr it.
  3510.  
  3511. 1998-02-05  Richard Stallman  <rms@psilocin.gnu.org>
  3512.  
  3513.     * minibuf.c (read_minibuf): If input is empty, return empty string.
  3514.     (Fread_string): Return DEFAULT_VALUE here, if input is empty.
  3515.     (Fcompleting_read): Likewise.
  3516.  
  3517. 1998-02-04  Richard Stallman  <rms@psilocin.gnu.org>
  3518.  
  3519.     * keymap.c (Fdescribe_bindings_internal):
  3520.     Renamed from Fdescribe_bindings.  New arg NOMENU.
  3521.     (syms_of_keymap): Corresponding changes.
  3522.     (describe_buffer_bindings): Get NOMENU out of the arg list.
  3523.     Pass it along to describe_map_tree.
  3524.     Improve text of `alternate_heading'.
  3525.  
  3526.     * alloc.c (list2, list3, list4, list5): New functions.
  3527.  
  3528. 1998-02-04  Kenichi Handa  <handa@etl.go.jp>
  3529.  
  3530.     * charset.c (Fiso_charset): Doc-string modified.
  3531.  
  3532.     * editfns.c (Fsubst_char_in_region): Handle character-base
  3533.     position and byte-base position correctly.
  3534.     (Fstring_to_char): Give byte size to STRING_CHAR.
  3535.  
  3536.     * insdel.c (copy_text): When copying from multibyte to unibyte, do
  3537.     not alter ASCII characters.
  3538.  
  3539. 1998-02-03  Richard Stallman  <rms@psilocin.gnu.org>
  3540.  
  3541.     * editfns.c (Fformat): If MULTIBYTE is changed to 1
  3542.     after we start computing TOTAL, jump back to `retry' (a new label).
  3543.  
  3544. 1998-02-01  Richard Stallman  <rms@sucrose.gnu.org>
  3545.  
  3546.     * lread.c (read1): Handle infinities, NaN and -0.0 specially.
  3547.     (isfloat_string): Accept e+INF and e+NAN as exponents.
  3548.  
  3549.     * print.c (float_to_string): Handle infinities and NaN specially.
  3550.  
  3551.     * fns.c (concat): Handle bool-vectors correctly.
  3552.  
  3553.     * fns.c (concat): If making a string, a nonempty bool-vector is error.
  3554.  
  3555. 1998-01-30  Richard Stallman  <rms@psilocin.gnu.org>
  3556.  
  3557.     * data.c (Faref, Faset): Allow indexing a char-table
  3558.     directly by numbers up to CHAR_TABLE_ORDINARY_SLOTS.
  3559.  
  3560.     * fns.c (Fset_char_table_range, Fchar_table_range):
  3561.     Allow a charset name symbol to designate a range.
  3562.  
  3563.     * callproc.c (Fcall_process): Allow creating a new buffer
  3564.     for the output.
  3565.  
  3566. 1998-01-30  Kenichi Handa  Kenichi Handa  <handa@etl.go.jp>
  3567.  
  3568.     * coding.c (ENCODE_ISO_CHARACTER): Pay attention to
  3569.     CODING_FLAG_ISO_USE_ROMAN and CODING_FLAG_ISO_USE_OLDJIS.
  3570.     (code_convert_region1): New function.
  3571.     (Fdecode_coding_region): Call code_convert_region1.
  3572.     (Fencode_coding_region): Likewise.
  3573.     (code_convert_string1): New function.
  3574.     (Fdecode_coding_string): Call code_convert_string1.
  3575.     (Fencode_coding_string): Likewise.
  3576.  
  3577.     * doc.c (Fsubstitute_command_keys): Declare length_byte out of
  3578.     internal block.
  3579.  
  3580.     * editfns.c (CONVERTED_BYTE_SIZE): Fix the logic.
  3581.     (Fformat): Update the variable MULTIBYTE according to the result
  3582.     of Fprin1_to_string.  Free BUF after making Lisp string from it.
  3583.  
  3584. 1998-01-28  Richard Stallman  <rms@psilocin.gnu.org>
  3585.  
  3586.     * search.c (search_buffer): New args pos_byte and lim_byte.
  3587.     (search_command): Pass new args.
  3588.  
  3589. 1998-01-28  Kenichi Handa  <handa@etl.go.jp>
  3590.  
  3591.     * coding.c (DECODE_SJIS_BIG5_CHARACTER): Don't have to increase
  3592.     coding->produced_char here.
  3593.     (code_convert_region): Initialize LEN_BYTE correctly.
  3594.  
  3595.     * search.c (fast_string_match): Give re_search byte size of
  3596.     STRING.
  3597.     (trivial_regexp_p): Initialize LEN to byte size of REGEXP.
  3598.     (search_buffer): Give re_search_2 STARTPOS, RANGE and STOP by
  3599.     counting them by bytes.
  3600.  
  3601.     * data.c (syms_of_data): Register multibyte-string-p as a Lisp
  3602.     function.
  3603.  
  3604. 1998-01-28  Richard Stallman  <rms@psilocin.gnu.org>
  3605.  
  3606.     * category.c (Fmodify_category_entry): Doc fix.
  3607.     (Fdescribe_categories): Renamed from Fdescribe_category.
  3608.     (syms_of_category): Corresponding changes.
  3609.     (Fcategory_set_mnemonics): Doc fix.
  3610.     (Fchar_category_set): Doc fix.
  3611.     (Fmake_category_set): Doc fix.
  3612.  
  3613. 1998-01-26  Richard Stallman  <rms@psilocin.gnu.org>
  3614.  
  3615.     * xdisp.c (message_dolog): Cast M to unsigned char * to access bytes.
  3616.  
  3617.     * keyboard.c (command_loop_1): Run post-command-hook before,
  3618.     not after, clearing this-command-keys and updating last-command.
  3619.  
  3620.     * fns.c (string_make_multibyte): In all-ASCII case, return orig STRING.
  3621.  
  3622.     * fns.c (Fstring_as_unibyte): New function.
  3623.     (Fstring_as_multibyte): New function.
  3624.     (syms_of_fns): defsubr them.
  3625.  
  3626. 1998-01-25  Richard Stallman  <rms@psilocin.gnu.org>
  3627.  
  3628.     * window.c (compare_window_configurations): New function.
  3629.  
  3630.     * fns.c (internal_equal): Use compare_window_configurations.
  3631.  
  3632.     * fileio.c (file_name_as_directory): For an empty name, return "/".
  3633.  
  3634. 1998-01-24  Richard Stallman  <rms@psilocin.gnu.org>
  3635.  
  3636.     * callproc.c (Fcall_process): Test only args past args[4]
  3637.     for multibyteness.
  3638.  
  3639. 1998-01-23  Ken'ichi Handa  <handa@melange.gnu.org>
  3640.  
  3641.     * charset.h: Delete garbage line "int use_dialog_box".
  3642.  
  3643. 1998-01-23  Richard Stallman  <rms@psilocin.gnu.org>
  3644.  
  3645.     * lread.c (Funintern): Clear the symbol's obarray field.
  3646.  
  3647. 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
  3648.  
  3649.     * s/sol2-5.h (SYSTEM_MALLOC): Defined.
  3650.  
  3651. 1998-01-21  Ken'ichi Handa  <handa@melange.gnu.org>
  3652.  
  3653.     * fileio.c (Finsert_file_contents): Fix previous change.
  3654.  
  3655. 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
  3656.  
  3657.     * syntax.c (back_comment): Move the find_defun_start call
  3658.     out of the scan_sexps_forward call.
  3659.     No need to call find_defun_start
  3660.     if we found the defun start in the initial scan.
  3661.  
  3662. 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
  3663.  
  3664.     * callproc.c (Fcall_process): Use raw-text instead of emacs-mule
  3665.     when enable-multibyte-characters is nil.  Adjusted for the change
  3666.     of encode_coding and decode_coding.
  3667.  
  3668.     * ccl.h: Definition of macros CCL_STAT_XXX are moved from ccl.c to
  3669.     here.
  3670.  
  3671.     * charset.c (min_composite_char): New variable.
  3672.     (syms_of_charset): Declare a Lisp variable min-composite-char.
  3673.  
  3674.     * charset.h (BCOPY_SHORT): New macro.
  3675.  
  3676.     * coding.h (CODING_FINISH_XXX): New macros.
  3677.     (CODING_MODE_XXX): New macros.
  3678.     (struct coding_system): New member mode, category_idx,
  3679.     heading_ascii.  Deleted members last_block, direction, selective,
  3680.     carryover, carryover_size.
  3681.     (CODING_MAY_REQUIRE_DECODING): New macro.
  3682.     (CODING_CATEGORY_MASK_ISO_7BIT, CODING_CATEGORY_MASK_ISO_8BIT,
  3683.     CODING_CATEGORY_MASK_ISO_SHIFT, CODING_CATEGORY_MASK_ISO): New
  3684.     macros.
  3685.     (Qraw_text): Extern it.
  3686.  
  3687.     * coding.c (DECODE_CHARACTER_ASCII): Update coding->produced_char;
  3688.     (DECODE_CHARACTER_DIMENSION1): Likewise.
  3689.     (Qraw_text, Qcoding_category): New variables.
  3690.     (syms_of_coding): Intern and staticpro them.
  3691.     (coding_system_table): New variable.
  3692.     (CHARSET_OK, SHIFT_OUT_OK): New macros.
  3693.     (detect_coding_iso2022): Detection algorithm improved.
  3694.     (decode_coding_iso2022): Arg CONSUMED deleted, and the meaning of
  3695.     return value changed.  Update members produced, produced_char,
  3696.     consumed, consumed_char of the struct *coding.  Pay attention to
  3697.     CODING_MODE_INHIBIT_INCONSISTENT_EOL.
  3698.     (encode_coding_iso2022): Likewise.
  3699.     (decode_coding_sjis_big5, encode_coding_sjis_big5): Likewise.
  3700.     (decode_eol, encode_eol): Likewise.
  3701.     (ENCODE_ISO_CHARACTER): Update coding->consumed_char.
  3702.     (DECODE_SJIS_BIG5_CHARACTER): Update coding->produced_char.
  3703.     (ENCODE_SJIS_BIG5_CHARACTER): Update coding->consumed_char.
  3704.     (detect_coding_mask): New args PRIORITIES and SKIP.
  3705.     (detect_coding): Adjusted for the change of detect_coding_mask.
  3706.     Update coding->heading_ascii.
  3707.     (detect_eol_type): New arg SKIP.
  3708.     (detect_eol): Adjusted for the change of detect_eol_type.
  3709.     (ccl_codign_driver): New function.
  3710.     (decode_coding): Arg CONSUMED deleted, and the meaning of return
  3711.     value changed.  Update members produced, produced_char, consumed,
  3712.     consumed_char of the struct *coding.
  3713.     (encode_coding): Likewise.
  3714.     (shrink_decoding_region, shrink_encoding_region): New function.
  3715.     (code_convert_region, code_convert_string): Completely rewritten.
  3716.     (detect_coding_system): New arg HIGHEST.
  3717.     (Fdetect_coding_region): New arg HIGHEST.
  3718.     (Fdetect_coding_string): New function.
  3719.     (Fdecode_coding_region, Fencode_coding_region): Adjusted for the
  3720.     change of code_convert_region.
  3721.     (Fdecode_coding_string, Fencode_coding_string): Adjusted for the
  3722.     change of code_convert_string.
  3723.     (Fupdate_iso_coding_systems): New function.
  3724.     (init_coding_once): Initialize coding_system_table.
  3725.     
  3726.     * data.c (Faset): Allow setting a multibyte character in a
  3727.     multibyte string as far as it doesn't change the size_byte of the
  3728.     string.
  3729.  
  3730.     * fileio.c (Finsert_file_contents): Adjusted for the change of
  3731.     struct coding_system and function decode_coding.  For normail file
  3732.     reading, use code_convert_region.
  3733.     (Fwrite_region): Adjusted for the change of struct coding_system.
  3734.     (e_write): Adjusted for the change of encode_coding.
  3735.  
  3736.     * fns.c (mapcar1): Keep `i' in `i_before' before `i' is
  3737.     incremented by FETCH_STRING_CHAR_ADVANCE.
  3738.  
  3739.     * insdel.c (adjust_before_replace, adjust_after_replace): New
  3740.     functions.
  3741.  
  3742.     * lisp.h (detect_coding_system): Extern it.
  3743.  
  3744.     * process.c (Fstart_process): Use raw-text instead of emacs-mule
  3745.     if enable-multibyte-characters is nil.  Initialize members
  3746.     decoding_carryover and encoding_carryover of PROC.
  3747.     (create_process): Adjusted for the change of encode_coding.
  3748.     (Fopen_network_stream): Initialize members decoding_carryover and
  3749.     encoding_carryover of PROC.
  3750.     (read_process_output): Adjusted for the change of decode_coding.
  3751.     (send_process): Adjusted for the change of encode_coding.
  3752.  
  3753.     * process.h (struct Lisp_Process): New members decoding_carryover
  3754.     and encoding_carryover.
  3755.  
  3756.     * term.c (encode_terminal_code): Adjusted for the change of
  3757.     encode_coding.
  3758.     (write_glyphs): Likewise.  Adjusted for the change of struct
  3759.     coding_system.
  3760.     (insert_glyphs): Likewise.
  3761.  
  3762.     * xselect.c (selection_data_to_lisp_data): Adjusted for the change
  3763.     of decode_coding.
  3764.     (lisp_data_to_selection_data): Adjusted for the change of
  3765.     encode_coding.
  3766.     (syms_of_xselect): Initialize clipboard-coding-system to
  3767.     compound-text.
  3768.  
  3769. 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
  3770.  
  3771.     * fileio.c (Finsert_file_contents): Even if
  3772.     enable-multibyte-characters is nil, we must check `coding:' tag
  3773.     and `file-coding-system-alist' to handle eol-conversion.
  3774.  
  3775.     * coding.c (Vselect_safe_coding_system_function): New variable.
  3776.     (coding_category_table): This variable deleted.
  3777.     (Vcoding_category_table): New variable.
  3778.     (coding_category_name): Add "coding-category-iso-7-tight".
  3779.     (detect_coding_iso2022): Check the mask
  3780.     CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Check a new coding
  3781.     category coding-category-iso-7-tight.
  3782.     (DECODE_DESIGNATION): Decode only such designations that CODING
  3783.     can handle.
  3784.     (check_composing_code): New function.
  3785.     (decode_coding_iso2022): Decode only such characters that CODING
  3786.     can handle.
  3787.     (encode_coding_iso2022): Before and after encoding composite
  3788.     characters, reset designation and invocation status.
  3789.     (detect_coding_sjis): Delete unnecessary check.
  3790.     (detect_coding_big5): Likewise.
  3791.     (encode_designation_at_bol): Check the validity of requested
  3792.     designation register.
  3793.     (setup_coding_system): Set requested designation registers for
  3794.     non-supported charsets to
  3795.     CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION.  Set mask
  3796.     CODING_FLAG_ISO_DESIGNATION in CODING->FLAGS.  Code tuned for
  3797.     no-conversion and undecided.
  3798.     (detect_coding): Adjusted for the new variable
  3799.     Vcoding_category_table.
  3800.     (syms_of_coding): Initialize Vcoding_category_table and staticpro
  3801.     it.  Register select-safe-coding-system as a Lisp variable.
  3802.  
  3803.     * coding.h (CODING_FLAG_ISO_DESIGNATION): New macro.
  3804.     (struct iso2022_spec): New member.
  3805.     last_invalid_designation_register.
  3806.     (struct coding_system): New member inhibit_inconsistent_eol_type.
  3807.     (CODING_CATEGORY_IDX_ISO_7_TIGHT,
  3808.     CODING_CATEGORY_MASK_ISO_7_TIGHT): New macros.
  3809.     (CODING_CATEGORY_MASK_ANY): Include
  3810.     CODING_CATEGORY_MASK_ISO_7_TIGHT.
  3811.     (coding_category_table, coding_category_name): Extern deleted.
  3812.     (Vselect_safe_coding_system_function): Extern it.
  3813.     
  3814.     * charset.h (MAX_CHAR_COMPOSITION): New macro.
  3815.     (CHAR_CHARSET): Check more strictly.
  3816.     (CODING_FLAG_ISO_DESIGNATION): New macro.
  3817.  
  3818. 1998-01-21  Kenichi Handa  <handa@etl.go.jp>
  3819.  
  3820.     * ccl.h: (struct ccl_program): New member private_state.
  3821.  
  3822.     * ccl.c (Vccl_translation_table_vector, Qccl_program,
  3823.     Qccl_translation_table, Qccl_translation_table_id): New variables.
  3824.     append new symbols.  Qccl_translation_table and
  3825.     Qccl_translation_table_id.
  3826.     (CCL_Call): Fix the comment.
  3827.     (CCL_ReadMultibyteCharacter, CCL_WriteMultibyteCharacter,
  3828.     CCL_UnifyCharacter, CCL_UnifyCharacterConstTbl,
  3829.     CCL_IterateMultipleMap, CCL_TranslateMultipleMap): New macros for
  3830.     CCL Commands.
  3831.     (EXCMD): New macro.
  3832.     (ccl_driver): New case lable `CCL_Extention'.
  3833.     (setup_ccl_program): Initialize the member `private_state' of CCL.
  3834.     (Fregister_ccl_program): Delete unused variable IDX.
  3835.     (Fregister_ccl_translation_table): New function.
  3836.     (syms_of_ccl): Intern and staticpro Qccl_program,
  3837.     Qccl_translation_table, and Qccl_translation_table_id.  Declare
  3838.     `ccl-translation-table-vector' as a Lisp variable.  Declare
  3839.     register-ccl-translation-table as a Lisp function.
  3840.  
  3841.     * charset.h (Vcharacter_unification_table_vector): Extern it.
  3842.     (UNIFICATION_ID_TABLE): New macro.
  3843.  
  3844.     * charset.c (Vcharacter_unification_table_vector): New variable.
  3845.     (syms_of_charset): Declare it as a Lisp symbol.
  3846.     (unify_char): Delete unnecessary codes.
  3847.  
  3848. 1998-01-21  Richard Stallman  <rms@psilocin.gnu.org>
  3849.  
  3850.     * indent.c (current_column_1):
  3851.     Eliminate argument POS; use PT and PT_BYTE.
  3852.     When doing FETCH_BYTE, use scan_byte.
  3853.     (current_column): Check whether buffer really has multibyte chars,
  3854.     not whether they are enabled.
  3855.  
  3856.     * editfns.c (Fsave_current_buffer): Use set_buffer_if_live.
  3857.  
  3858.     * bytecode.c (Fbyte_code) <Bsave_current_buffer_1>:
  3859.     Use set_buffer_if_live.
  3860.  
  3861.     * buffer.c (set_buffer_if_live): New function.
  3862.  
  3863. 1998-01-20  Richard Stallman  <rms@psilocin.gnu.org>
  3864.  
  3865.     * charset.c (nonascii_insert_offset): Variable moved from cmds.c.
  3866.     (syms_of_charset): Initialize variable.
  3867.  
  3868.     * cmds.c (internal_self_insert, Fself_insert_command): 
  3869.     Use unibyte_char_to_multibyte.
  3870.     (nonascii_insert_offset): Variable moved to charset.c.
  3871.     (syms_of_cmds): Don't initialize nonascii_insert_offset.
  3872.  
  3873.     * fileio.c (Fsubstitute_in_file_name): Use unibyte_char_to_multibyte.
  3874.     
  3875.     * keyboard.c (command_loop_1): Use unibyte_char_to_multibyte.
  3876.  
  3877.     * xdisp.c (message_dolog): Use unibyte_char_to_multibyte.
  3878.     Pass different args to scan_newline.
  3879.     Properly compare oldpoint with Z.
  3880.     
  3881.     * syntax.c (skip_chars): Use unibyte_char_to_multibyte,
  3882.  
  3883.     * fns.c (concat): Use unibyte_char_to_multibyte.
  3884.  
  3885.     * charset.c (unibyte_char_to_multibyte): New function.
  3886.     (DEFAULT_NONASCII_INSERT_OFFSET): New macro definition.
  3887.  
  3888.     * lread.c (unreadchar): For unreading an ASCII char
  3889.     thru a buffer or marker, really decrement point or the marker position.
  3890.  
  3891.     * xdisp.c (display_menu_bar): Don't set maxendcol too large.
  3892.  
  3893.     * editfns.c (Fchar_equal): Fix case-conversion code.
  3894.  
  3895. 1998-01-19  Richard Stallman  <rms@psilocin.gnu.org>
  3896.  
  3897.     * window.h (WINDOW_RIGHT_MARGIN): Deduct width of vertical line
  3898.     if frame has no scroll bars.
  3899.  
  3900.     * fns.c (concat): Fix lossage in installing previous patch.
  3901.  
  3902.     * window.c (window_scroll): Set opoint_byte properly.
  3903.  
  3904. 1998-01-16  Richard Stallman  <rms@sucrose.gnu.org>
  3905.  
  3906.     * intervals.c (set_intervals_multibyte): New function.
  3907.     (set_intervals_multibyte_1): New function.
  3908.  
  3909.     * marker.c (clear_charpos_cache): New function.
  3910.  
  3911. 1998-01-16  Richard Stallman  <rms@gnu.org>
  3912.  
  3913.     * buffer.c (Fset_buffer_multibyte): New function.
  3914.     (syms_of_buffer): defsubr it.
  3915.  
  3916.     * syntax.c (skip_chars): Fix test for end of string, looking for `-'.
  3917.     (back_comment): Don't allow quoting a comment-end.
  3918.     (scan_lists): Likewise.
  3919.  
  3920.     * .gdbinit: Make GDB not handle SIGINT.
  3921.  
  3922.     * search.c (compile_pattern_1): If representation of STRING
  3923.     does not fit MULTIBYTE, convert its contents.
  3924.     (fast_c_string_match_ignore_case): Pass 0 to compile_pattern
  3925.     as MULTIBYTE.
  3926.     (search_buffer): If representation of STRING
  3927.     does not fit MULTIBYTE, convert its contents.
  3928.  
  3929.     * print.c (print) <Lisp_String>: When multibyte is enabled, print
  3930.     single-byte non-ASCII chars using octal escapes.
  3931.  
  3932.     * lread.c (read1): Escape codes can force multibyte or single-byte.
  3933.     Otherwise buffer_defaults->enable_multibyte_characters decides.
  3934.     Only set force_singlebyte when a \-sequence is in the relevant range.
  3935.     (read_escape): New arg STRINGP.  `\ ' is ignored only when STRINGP
  3936.     (normally, when reading a string).  Calls changed.
  3937.  
  3938.     * fns.c (concat): Move the test for all nil in `append'
  3939.     back to the right place.
  3940.     Always compute result_len_byte as for a multibyte string.  Then,
  3941.     if the result will be single-byte, don't use that computation.
  3942.     When converting single-byte to multibyte, don't use copy_text.
  3943.     Do use copy_text between single-byte string and multibyte string.
  3944.  
  3945.     (Fstring_make_multibyte, Fstring_make_unibyte): New functions.
  3946.     (syms_of_fns): defsubr them.
  3947.  
  3948.     (string_char_to_byte): Count from the beginning or the end,
  3949.     whichever is closer.  Keep a cache of recent values.
  3950.     (string_byte_to_char): Likewise.
  3951.  
  3952.     (Fstring_lessp): Compare the strings char by char.
  3953.  
  3954.     * xdisp.c (display_text_line): Set pos_byte with pos
  3955.     when skipping invisible.
  3956.  
  3957.     * alloc.c (STRING_BASE_SIZE): New macro.
  3958.     (STRING_FULLSIZE): Use STRING_BASE_SIZE instead of the whole
  3959.     size of struct Lisp_String.
  3960.     (make_pure_string): Use STRING_FULLSIZE.
  3961.  
  3962. 1998-01-16  Richard Stallman  <rms@psilocin.gnu.org>
  3963.  
  3964.     * window.c (Fspecial_display_p): Return the right value
  3965.     when special-display-regexps specifies frame parameters.
  3966.  
  3967.     * syntax.h (SYNTAX_TABLE_BYTE_TO_CHAR): New macro.
  3968.  
  3969. 1998-01-12  Richard Stallman  <rms@sucrose.gnu.org>
  3970.  
  3971.     * keymap.c (Fkey_description): Remember to set i_before.
  3972.     and use it in all cases.
  3973.  
  3974. 1998-01-12  Kenichi Handa  <handa@etl.go.jp>
  3975.  
  3976.     * minibuf.c (Fminibuffer_complete_word): Fix a bug of refering
  3977.     `i'.  We must refer `i_byte' instead.
  3978.  
  3979.     * insdel.c (insert_from_string_1): Decrement GAP_SIZE by
  3980.     outgoing_nbytes.
  3981.  
  3982.     * keymap.c (push_key_description): If C >= 128, always use octal
  3983.     representation.
  3984.  
  3985.     * fns.c (concat): Check STRINGP before increasing result_len_byte.
  3986.  
  3987. 1998-01-12  Richard Stallman  <rms@sucrose.gnu.org>
  3988.  
  3989.     * fileio.c (Finsert_file_contents): When not decoding,
  3990.     properly calculate number of chars in the text.
  3991.     Fix error message.
  3992.  
  3993.     * coding.c (code_convert_region): Always count chars inserted
  3994.     in accord with value of enable-multibyte-characters.
  3995.     (Fcoding_system_p): Doc fix.
  3996.     (Fcheck_coding_system): Doc fix.
  3997.     (Fterminal_coding_system): Doc fix.
  3998.     (Fkeyboard_coding_system): Doc fix.
  3999.  
  4000. 1998-01-11  Dave Love  <fx@gnu.org>
  4001.  
  4002.     * charset.c (Fchar_valid_p): Fix bare newlines in doc string.
  4003.  
  4004. 1998-01-11  Richard Stallman  <rms@sucrose.gnu.org>
  4005.  
  4006.     * fileio.c (file_name_as_directory): Error if arg is empty.
  4007.     (Fwrite_region): Don't flush the encoding buffer if failure is set.
  4008.  
  4009. 1998-01-10  Richard Stallman  <rms@sucrose.gnu.org>
  4010.  
  4011.     * syntax.h (struct gl_state_s): New field `object'.
  4012.     (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set it.
  4013.     Handle non-current buffer properly.  Args renamed to all caps.
  4014.     (SETUP_SYNTAX_TABLE): Set `object'.  Args renamed to all caps.
  4015.     (UPDATE_SYNTAX_TABLE): Use gl_state.object.
  4016.     (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
  4017.  
  4018.     * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Add gl_state.offset
  4019.     when using the arg FROM.  Use BYTE_TO_CHAR.
  4020.  
  4021. 1998-01-09  Richard Stallman  <rms@gnu.org>
  4022.  
  4023.     * callint.c (Fcall_interactively): Allocate string by bytes.
  4024.     Use message_with_string.
  4025.  
  4026.     * dired.c (Fdirectory_files): Fix arg to compile_pattern.
  4027.  
  4028. 1998-01-06  Richard Stallman  <rms@sucrose.gnu.org>
  4029.  
  4030.     * emacs.c (standard_args): Add "-unibyte" aka "--unibyte".
  4031.     (main): Handle --unibyte.
  4032.  
  4033. 1998-01-05  Richard Stallman  <rms@psilocin.gnu.org>
  4034.  
  4035.     * search.c (search_buffer): Handle bytes vs chars in non-RE case.
  4036.     Have two locals len and len_byte.
  4037.  
  4038.     * minibuf.c (read_minibuf): Handle bytes vs chars
  4039.     when checking for junk at end of expression.
  4040.  
  4041. 1998-01-04  Richard Stallman  <rms@psilocin.gnu.org>
  4042.  
  4043.     * editfns.c (Fformat): Do all the work directly--don't use doprnt.
  4044.     Calculate the right size the first time, so no need to retry.
  4045.     Count chars and bytes in the result.
  4046.     Convert single-byte strings to multibyte as needed.
  4047.  
  4048.     * buffer.c (record_overlay_string): Totalize sizes assuming
  4049.     strings are converted to match buffer in multibyteness.
  4050.     (overlay_strings): Convert strings to match buffer in multibyteness.
  4051.  
  4052.     * search.c (fast_c_string_match_ignore_case): Use string_make_unibyte.
  4053.  
  4054.     * fns.c (string_make_unibyte): New function.
  4055.  
  4056.     * insdel.c (count_size_as_multibyte): New function.
  4057.     (insert_from_string_1, insert_from_buffer_1): Use it.
  4058.  
  4059.     * lread.c (read_escape): `\ ' stands for nothing at all.
  4060.  
  4061.     * .gdbinit (xstring): Use size_byte.
  4062.  
  4063.     * lread.c (oblookup): Take args SIZE and SIZE_BYTE.  Callers changed.
  4064.     * abbrev.c (Fexpand_abbrev): Pass both kinds of size to oblookup.
  4065.     * minibuf.c (test_completion): Pass both kinds of size to oblookup.
  4066.  
  4067.     * print.c (print_string): Now static.
  4068.     (print): When multibyte is disabled,
  4069.     print multibyte string chars using hex escapes.
  4070.  
  4071.     * puresize.h (BASE_PURESIZE): Increased.
  4072.  
  4073.     * bytecode.c (Fbyte_code): Use size_byte.
  4074.  
  4075.     * filelock.c (MAKE_LOCK_NAME): Use size_byte.
  4076.  
  4077.     * lread.c (init_obarray, read1, make_symbol):
  4078.     Pass new arg to make_pure_string.
  4079.     (Fintern, oblookup, Fintern_soft, intern): Handle size_byte.
  4080.  
  4081.     * alloc.c (make_pure_string): New arg length_byte.
  4082.     Take account of size used by size_byte; store both sizes.
  4083.     (Fpurecopy): Call make_pure_string the new way.
  4084.     (compact_strings): Use size_byte field to compute string's size.
  4085.  
  4086. 1998-01-03  Richard Stallman  <rms@psilocin.gnu.org>
  4087.  
  4088.     * coding.c (code_convert_region): Delete duplicate local `zv_before'.
  4089.  
  4090.     * fileio.c (Fdo_auto_save): Save and restore multibyteness of minibuffer.
  4091.  
  4092.     * process.c (read_process_output): use insert_1_both.
  4093.  
  4094.     * abbrev.c (Fexpand_abbrev): Pass new args to insert_from_string.
  4095.     (Funexpand_abbrev): Likewise.  Use size_byte.
  4096.  
  4097.     * editfns.c (Ftranslate_region): Scan by chars and bytes
  4098.     using STRING_CHAR_AND_LENGTH.  Replace only single-byte chars.
  4099.  
  4100.     * insdel.c (copy_text): New function.
  4101.     (insert_from_buffer_1): Call copy_text to convert between
  4102.     single-byte and multibyte text.
  4103.     (insert_from_string_1): Likewise.
  4104.     
  4105.     * process.c (read_process_output): New var `multibyte'.
  4106.     Set it according to which coding system was used.
  4107.  
  4108.     * charset.c (multibyte_chars_in_text): New function.
  4109.  
  4110.     * fileio.c (Fwrite_region): Use message_with_string.
  4111.     (auto_save_error, Fdo_auto_save): Likewise.
  4112.  
  4113.     * print.c (printchar): Pass new arg to message_dolog.
  4114.     (strout): New arg MULTIBYTE.  Callers changed.
  4115.  
  4116.     * lread.c (dir_warning): Pass new arg to message_dolog.
  4117.  
  4118.     * emacs.c (main): Pass new arg to message_dolog.
  4119.  
  4120.     * keyboard.c (echo_now): Use message2_nolog, not message1_nolog.
  4121.     (Fexecute_extended_command): Likewise.
  4122.     (read_char_minibuf_menu_prompt): Use message2_nolog, not message1.
  4123.  
  4124.     * xdisp.c (message_dolog, message2): New arg MULTIBYTE.
  4125.     Callers changed.
  4126.     (message1, message1_nolog): String must be ASCII-only.
  4127.     (message2, message2_nolog): Now static.
  4128.  
  4129.     * search.c (compile_pattern): New arg MULTIBYTE.  Callers changed.
  4130.  
  4131.     * syntax.c (skip_chars): Handle multibyte and unibyte strings
  4132.     for either kind of buffer.  Scan string by bytes and chars.
  4133.  
  4134.     * keymap.c (describe_vector): Unconditionally handle multibyte chars.
  4135.  
  4136.     * fns.c (map_char_table): Unconditionally consider non-ASCII charsets.
  4137.  
  4138.     * cmds.c (internal_self_insert): Simplify handling of c2;
  4139.     avoid testing enable-multibyte-characters.
  4140.  
  4141.     * callproc.c (Fcall_process): When deciding whether to encode args,
  4142.     check them for multibyteness, don't check enable-multibyte-characters.
  4143.  
  4144.     * doc.c: Include charset.h.
  4145.  
  4146.     * keymap.c (describe_vector): Pass new args to insert_from_string.
  4147.  
  4148.     * search.c (wordify): Use make_uninit_multibyte_string.
  4149.     Scan by chars and bytes.
  4150.  
  4151.     * lread.c (read1): PCH is now int *.
  4152.     Declare ch as int.
  4153.     (read0): Declare c as int.
  4154.     (read_list): Declare ch as int.
  4155.     (read0): Use Fmake_string not make_string.
  4156.     (read1): When reading a string, maybe use make_unibyte_string.
  4157.  
  4158.     * keymap.c (Ftext_char_description): Use make_multibyte_string.
  4159.  
  4160.     * keyboard.c (parse_modifiers): Use size_byte.
  4161.     (echo_char): Use size_byte.
  4162.     (parse_modifiers_uncached): Likewise.
  4163.     (record_char): Likewise.
  4164.     (parse_solitary_modifier): Likewise.
  4165.  
  4166.     * fns.c (Fsubstring): Use make_multibyte_string.
  4167.  
  4168.     * minibuf.c (Fminibuffer_complete_word): Pass new args to
  4169.     insert_from_string.  Scan string by bytes and chars.
  4170.     (Ftry_completion): Use size_byte while comparing.
  4171.     (Fall_completions): Use size_byte while comparing.
  4172.     (test_completion): 
  4173.  
  4174.     * editfns.c (syms_of_editfns): Delete defsubr for sref.
  4175.  
  4176.     * fns.c (string_make_multibyte): New function.
  4177.  
  4178.     * fileio.c (Ffile_name_directory): Maybe use make_unibyte_string.
  4179.     (Ffile_name_nondirectory): Likewise.
  4180.     (Fsubstitute_in_file_name): Convert substituted envvars to multibyte
  4181.     if necessary.  Otherwise use make_unibyte_string.
  4182.     (Finsert_file_contents): Use make_unibyte_string.
  4183.     (double_dollars): Use make_uninit_multibyte_string.
  4184.  
  4185.     * doc.c (Fsubstitute_command_keys): Scan by bytes.
  4186.  
  4187.     * coding.c (code_convert_string): Maybe use make_unibyte_string.
  4188.  
  4189.     * cmds.c (internal_self_insert): Use make_multibyte_string.
  4190.  
  4191.     * charset.c (Fstring): Use make_multibyte_string.
  4192.     (Fcompose_string): Likewise.
  4193.  
  4194.     * casefiddle.c (casify_object): Scan string by bytes and chars.
  4195.     Use make_multibyte_string.
  4196.  
  4197.     * xselect.c (lisp_data_to_selection_data): Use size_byte.
  4198.     (Fx_store_cut_buffer_internal): Use size_byte.
  4199.     (selection_data_to_lisp_data): Use make_multibyte_string.
  4200.  
  4201.     * category.c (Fmake_category_set): Don't allow multibyte string.
  4202.     (describe_category): Pass new args to insert_from_string.
  4203.     (describe_category_1): Likewise.
  4204.  
  4205.     * dispnew.c (Fsend_string_to_terminal): Use size_byte.
  4206.  
  4207.     * xdisp.c (x_consider_frame_title): Use size_byte.
  4208.     (display_text_line): Likewise.
  4209.     And scan Voverlay_arrow_string by bytes and chars.
  4210.     (display_menu_bar): Call display_string with a byte size.
  4211.     (display_mode_line): Call display_string with a byte size.
  4212.  
  4213.     * frame.c (set_term_frame_name): Use size_byte.
  4214.  
  4215.     * ccl.c (Fccl_execute_on_string): Use size_byte.
  4216.  
  4217.     * xterm.c (x_load_font): Use string_byte.
  4218.  
  4219.     * keyboard.c (read_char): Use Faref on Vkeyboard_translate_table
  4220.     if it is a string.
  4221.     (apply_modifiers_uncached): New arg base_len_byte.  Calls changed.
  4222.     (read_char_minibuf_menu_prompt): 
  4223.     (read_key_sequence): Access buffer's downcase_table with XCHAR_TABLE.
  4224.     (Fexecute_extended_command): Use Faref to access FUNCTION.
  4225.     Use size_byte of BINDING.
  4226.     (stuff_buffered_input): Use size_byte of STUFFSTRING.
  4227.  
  4228.     * xdisp.c (redisplay_window): Set pos.bytepos along with pos.bufpos.
  4229.  
  4230.     * keymap.c (Fkey_binding): Scan PREFIX a char at a time.
  4231.     (Fkey_description): Scan KEYS by chars.
  4232.  
  4233.     * xfns.c (x_create_bitmap_from_file): Use size_byte on strings.
  4234.     (x_set_name, x_set_title, validate_x_resource_name): Likewise.
  4235.     (Fx_get_resource, display_x_get_resource): Likewise.
  4236.     (x_get_resource_string): Likewise.
  4237.  
  4238.     * xmenu.c (xmenu_show): Use size_byte of strings.
  4239.  
  4240.     * callproc.c (Fcall_process): Use size_byte for the args.
  4241.     (Fcall_process_region): Likewise for temp file.
  4242.     (child_setup, getenv_internal, Fgetenv): Likewise.
  4243.  
  4244. 1998-01-02  Richard Stallman  <rms@psilocin.gnu.org>
  4245.  
  4246.     * process.c (read_process_output): Handle bytes vs chars.
  4247.     (send_process): Use size_byte of OBJECT.
  4248.     (Fprocess_send_string): Pass size_byte to send_process.
  4249.  
  4250.     * lisp.h (STRING_MULTIBYTE): New macro.
  4251.  
  4252.     * print.c (strout): Take args SIZE and SIZE_BYTE;
  4253.     operate on both chars and bytes.
  4254.     (print_string): Pass new arg to strout.
  4255.     If not using strout, fetch a whole multibyte char at once.
  4256.     (write_string): Pass new arg to strout.
  4257.     (write_string_1): Likewise.
  4258.     (print) <case Lisp_String>: Scan by chars and bytes.
  4259.     (print) <case Lisp_Symbol>: Scan name by chars and bytes.
  4260.  
  4261.     * insdel.c (insert_1_both): New function.
  4262.  
  4263.     * print.c (PRINTPREPARE): Use make_multibyte_string.
  4264.     Initialize print_buffer_pos_byte.  Use insert_1_both.
  4265.     (printchar): Update print_buffer_pos_byte and print_buffer_pos.
  4266.     (print_buffer_pos_byte): New variable.
  4267.     
  4268.     * editfns.c (general_insert_function):
  4269.     Pass the additional args to INSERT_FROM_STRING_FUNC.
  4270.     (Fchar_to_string): Use make_multibyte_string.
  4271.     (Fsref): Function deleted.
  4272.     (Fformat_time_string): Use size_byte of FORMAT_STRING.
  4273.     (make_buffer_string): Use make_uninit_multibyte_string.
  4274.     (Ftranslate_region): Use TABLE's size_byte.
  4275.     (Fmessage, Fmessage_box): Update message_text based on size_byte.
  4276.  
  4277.     * insdel.c (insert_from_string): New args POS_BYTE, LENGTH.
  4278.     (insert_from_string_before_markers): 
  4279.     (insert_from_string_1): New arg POS_BYTE.  Swap args NCHARS, NBYTES.
  4280.     Don't fail to use POS_BYTE!
  4281.     (insert_from_buffer_1): Get both inschars and insbytes from NEW.
  4282.  
  4283.     * alloc.c (make_uninit_multibyte_string): New function.
  4284.     (make_uninit_string): Use make_uninit_multibyte_string.
  4285.     (make_multibyte_string): New function.
  4286.     (make_unibyte_string): New function.
  4287.     (make_string): Compute number of chars from the data.
  4288.  
  4289.     * search.c (string_match_1): Convert string indices to/from bytes.
  4290.     (Freplace_match): Convert string indices to/from bytes.
  4291.     (Fregexp_quote): Convert string indices to/from bytes.
  4292.  
  4293.     * lread.c (Fread_from_string): Convert string indices to/from bytes.
  4294.  
  4295.     * data.c (Fmultibyte_string_p): New function.
  4296.     (Faref): Index string by chars.
  4297.     (Faset): Index multibyte string by chars.
  4298.  
  4299.     * charset.c (Ffind_charset_string): Handle bytes vs chars in string.
  4300.     Special case for single-byte strings.
  4301.     (Fchars_in_string): Function deleted.
  4302.     (Fstring): Renamed from Fconcat_chars.
  4303.     Handle bytes vs chars in string.
  4304.     (syms_of_charset): Corresponding changes.
  4305.     
  4306.     * fns.c (concat, Fsubstring, internal_equal, mapcar1):
  4307.     Distinguish bytes and chars when indexing strings.
  4308.     (Fstring_equal, Fstring_lessp): Likewise.
  4309.     (substring_both): New function.
  4310.     (string_char_to_byte, string_byte_to_char): New functions.
  4311.     
  4312.     * charset.h (FETCH_STRING_CHAR_ADVANCE): New macro.
  4313.  
  4314.     * lisp.h (struct lisp_String): New field size_byte.
  4315.  
  4316.     * charset.c (Fchar_boundary_p): Function deleted.
  4317.     (syms_of_charset): defsubr deleted.
  4318.  
  4319.     * insdel.c (make_gap): Set GPT_BYTE along with GPT.
  4320.  
  4321.     * window.c (Fselect_window): Don't set OW->pointm if OW->buffer is nil.
  4322.     (Fset_window_configuration): Set old selected window's pointm.
  4323.     
  4324.     * minibuf.c (Fcompleting_read): Doc fix.
  4325.  
  4326.     * keymap.c (current_minor_maps): 
  4327.     If a variable has an entry in Vminor_mode_overriding_map_alist,
  4328.     and also an entry in Vminor_mode_map_alist, ignore the latter.
  4329.  
  4330. 1998-01-01  Richard Stallman  <rms@psilocin.gnu.org>
  4331.  
  4332.     * Markers now have an ordinary bytepos, not including the gap:
  4333.  
  4334.     * marker.c (buf_bytepos_to_charpos): Use marker bytepos, not bufpos.
  4335.     (buf_charpos_to_bytepos, marker_byte_position): Likewise.
  4336.     (Fset_marker, set_marker_restricted, set_marker_both): Likewise.
  4337.     (set_marker_restricted_both): Likewise.
  4338.  
  4339.     * editfns.c (transpose_markers): Update marker's bytepos.
  4340.  
  4341.     * alloc.c (Fmake_marker): Initialize marker's bytepos and charpos.
  4342.  
  4343.     * lread.c (readchar): Use marker's bytepos instead of bufpos.
  4344.  
  4345.     * fns.c (internal_equal): For markers, use bytepos instead of bufpos.
  4346.  
  4347.     * insdel.c (adjust_markers_gap_motion): Now a no-op.
  4348.     (adjust_markers_for_delete): Update ->bytepos instead of ->bufpos,
  4349.     but don't adjust for the gap.
  4350.     (adjust_markers_for_insert): Likewise.
  4351.  
  4352.     * lisp.h (struct Lisp_Marker): Rename `bufpos' to `bytepos'.
  4353.     Its value no longer includes the gap space.
  4354.     
  4355.     * editfns.c (Fchar_after): Fix previous change.
  4356.  
  4357.     * fileio.c (a_write): Fix prototype.
  4358.  
  4359.     * lisp.h (struct Lisp_Marker): New field `charpos'.
  4360.     (pos_tab_offset): Decl deleted.
  4361.     (insert_1, indented_beyond_p): Decls changed.
  4362.     (move_gap_both, del_range_byte, del_range_both, del_range_2)
  4363.     (scan_newline, Ffile_locked_p): New decls.
  4364.     (struct Lisp_Marker): 
  4365.  
  4366.     * search.c (scan_newline): Always restore prev value of immediate_quit.
  4367.  
  4368. 1997-12-31  Richard Stallman  <rms@psilocin.gnu.org>
  4369.  
  4370.     * syntax.c (scan_sexps_forward): Additional arg FROM_BYTE.
  4371.     Calls changed.
  4372.     (find_defun_start): Scan bytes and chars.  Additional arg POS_BYTE.
  4373.     Save final byte pos in find_start_value_byte.
  4374.     (find_start_value_byte): New variable.
  4375.  
  4376.     * charset.c (Fchars_in_string): Update call to CHAR_HEAD_P.
  4377.     (chars_in_text, str_cmpchar_id, Fcompose_string): Likewise.
  4378.  
  4379.     * indent.c (current_column_1, Fmove_to_column):
  4380.     Update call to CHAR_HEAD_P.
  4381.  
  4382.     * fileio.c (Finsert_file_contents): Update call to CHAR_HEAD_P.
  4383.  
  4384.     * editfns.c (Fsref): Update call to CHAR_HEAD_P.
  4385.     (Fcompare_buffer_substrings. Ftranslate_region): Likewise.
  4386.  
  4387.     * doprnt.c (doprnt1): Call to CHAR_HEAD_P fixed.
  4388.  
  4389.     * charset.h (CHAR_HEAD_P): Take char, not pointer, as arg.
  4390.  
  4391.     * window.c (unshow_buffer): Set PT with TEMP_SET_PT_BOTH.
  4392.     
  4393.     * indent.c (indented_beyond_p): Take POS in bytes and chars.
  4394.     Callers changed.
  4395.     (pos_tab_indent): Function moved to xdisp.c.
  4396.  
  4397. 1997-12-30  Richard Stallman  <rms@psilocin.gnu.org>
  4398.  
  4399.     * xdisp.c (redisplay_internal): Use scan_newline.
  4400.     (display_text_line, try_window_id): Use scan_newline.
  4401.  
  4402.     * xdisp.c (pos_tab_indent): Moved from indent,c.  Now static.
  4403.     Take POS in bytes and chars.  Callers changed.
  4404.     
  4405.     * indent.c (Fcurrent_indentation): Use scan_newline and SET_PT_BOTH.
  4406.     (indented_beyond_p, current_column_1): Likewise.
  4407.  
  4408.     * fileio.c (Fwrite_region): Use scan_newline.
  4409.  
  4410.     * buffer.c (Fmake_indirect_buffer): Use set_marker_both.
  4411.     (set_buffer_internal_1): Likewise.
  4412.     (set_buffer_temp): Likewise.
  4413.  
  4414.     * xdisp.c (redisplay_window): Handle byte and char positions.
  4415.     (try_window): Don't move W->start if it's already at right place.
  4416.  
  4417.     * window.c (Fset_window_buffer): Use set_marker_both.
  4418.     (Fselect_window, Fscroll_other_window, save_window_save): Likewise.
  4419.     (Fset_window_configuration): Pass p->mark itself to Fset_marker
  4420.     and set_marker_restricted_both.
  4421.     (temp_output_buffer_show): Use set_marker_restricted_both.
  4422.     (window_scroll): Save and restore both kinds of pointers.
  4423.  
  4424.     * process.c (status_notify): Use byte and char pointers.
  4425.     
  4426.     * callint.c (Fcall_interactively) <'d', 'r'>: Use set_marker_both.
  4427.  
  4428.     * emacs.c (abort): New function.
  4429.  
  4430. 1997-12-29  Richard Stallman  <rms@psilocin.gnu.org>
  4431.  
  4432.     * window.c (Fdelete_other_windows): Rely on vmotion to give bytepos.
  4433.     Use set_marker_both.  Use byte positions.
  4434.     (Frecenter): Likewise.
  4435.     (Fmove_to_window_line): Use set_marker_both and Fgoto_char.
  4436.  
  4437.     * s/sco4.h (LIB_MOTIF): Define, if HAVE_LIBINTL.
  4438.     (LIBX11_SYSTEM): Undo previous change.
  4439.  
  4440.     * cmds.c (forward_point): Function deleted.
  4441.     (Fforward_point): Just add.
  4442.     (Fforward_char): Don't call forward_point, just add.
  4443.     (Fforward_line): Use scan_newline.
  4444.     (Fdelete_char): No need for forward_point, just add.
  4445.     (Fdelete_backward_char): Handle bytes and chars.
  4446.     (internal_self_insert): Handle bytes and chars.
  4447.  
  4448.     * xdisp.c (display_count_lines): Several changes in args.
  4449.     Do the work directly.
  4450.     (display_scan_buffer): Function deleted.
  4451.     (decode_mode_spec): Pass new arg.
  4452.     (message_log_check_duplicate): Take charpos and bytepos args.
  4453.     (message_dolog): Use markers to update old PT, BEGV, ZV.
  4454.     Use scan_newline.  Handle positions in bytes and chars.
  4455.     
  4456. 1997-12-28  Richard Stallman  <rms@psilocin.gnu.org>
  4457.  
  4458.     * xselect.c (Fx_rotate_cut_buffers_internal): Doc fix.
  4459.  
  4460.     * coding.c (code_convert_region): Handle bytepos and charpos.
  4461.     (Fdetect_coding_region): Likewise.
  4462.     
  4463.     * Makefile.in (marker.o): Depend on charset.h.
  4464.  
  4465. 1997-12-27  Richard Stallman  <rms@psilocin.gnu.org>
  4466.  
  4467.     * casefiddle.c (casify_region): Scan in bytes and chars.
  4468.     (casify_object, casify_region): Declare str, workbuf as unsigned char.
  4469.  
  4470.     * insdel.c (move_gap): Use move_gap_both.
  4471.     (move_gap_both): New function.
  4472.     (gap_left, gap_right): Take both charpos and bytepos args.
  4473.     (adjust_markers_gap_motion): Renamed from adjust_markers
  4474.     and simplified.
  4475.     (adjust_markers_for_delete): New function.
  4476.     (adjust_markers_for_insert): Take args in chars and bytes.
  4477.     Also new arg BEFORE_MARKERS.  One call does all marker updating
  4478.     needed for any insert.
  4479.     (adjust_point): Take 2 args and update PT and PT_BYTE.
  4480.     (make_gap): Handle bytes vs chars.
  4481.     (insert, insert_and_inherit): Handle bytes vs chars.
  4482.     Pass new BEFORE_MARKERS arg to insert_1.
  4483.     (insert_before_markers, insert_before_markers_and_inherit): Likewise.
  4484.     (insert_from_string, insert_from_string_before_markers): Likewise.
  4485.     (insert_from_buffer): Likewise.
  4486.     (insert_1): Handle bytes vs chars.  New arg BEFORE_MARKERS.
  4487.     (insert_from_string_1, insert_from_buffer_1): Likewise.
  4488.     (replace_range): Likewise.
  4489.     (del_range_2): New subroutine, taken from del_range_1.
  4490.     (del_range_1): Use del_range_2.
  4491.     (del_range_byte, del_range_both): New functions.
  4492.  
  4493.     * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Call bytepos_to_charpos.
  4494.     Wrap in  if (1) ... else.
  4495.     
  4496.     * minibuf.c (Fminibuffer_complete_word): Handle bytes vs characters
  4497.     when comparing buffer against string.
  4498.     (temp_echo_area_glyphs): Save, update, delete text using
  4499.     byte and char positions.
  4500.     (read_minibuf): BACKUP_N counts bytes.
  4501.  
  4502.     * syntax.c (Fforward_comment): Scan by bytes and chars.
  4503.     (Fbackward_prefix_chars): Scan by bytes and chars.
  4504.     (scan_words, scan_sexps_forward): Scan bytes as well as chars.
  4505.     (skip_chars, scan_lists): Scan by bytes and chars.  Now static.
  4506.  
  4507.     * buffer.h (DECODE_POSITION): New macro.
  4508.     (CHAR_TO_BYTE, BYTE_TO_CHAR): New macros.
  4509.     
  4510.     * buffer.h (BEG_BYTE, BEGV_BYTE, PT_BYTE, GPT_BYTE)
  4511.     (ZV_BYTE, Z_BYTE): New macros.
  4512.     (BUF_BEG_BYTE, BUF_BEGV_BYTE, BUF_PT_BYTE, BUF_GPT_BYTE)
  4513.     (BUF_ZV_BYTE, BUF_Z_BYTE): New macros.
  4514.     (BUF_GAP_END_ADDR): New macro.
  4515.     (BEGV_ADDR, PT_ADDR, GPT_ADDR, GAP_END_ADDR, ZV_ADDR, Z_ADDR): 
  4516.     Use the new ..._byte buffer data.
  4517.     (BUFFER_CEILING_OF, BUFFER_FLOOR_OF): Likewise.
  4518.     (BUF_GPT_ADDR, BUF_Z_ADDR): Likewise.
  4519.     (SET_PT_BOTH, TEMP_SET_PT_BOTH): New macros.
  4520.     (SET_PT, TEMP_SET_PT, BUF_SET_PT, BUF_TEMP_SET_PT):
  4521.     Call functions with new arg order.
  4522.     (SET_BUF_BEGV, SET_BUF_BEGV_BOTH): New macros.
  4523.     (SET_BUF_PT): Macro deleted.
  4524.     (SET_BUF_ZV): Set charpos and bytepos.
  4525.     (SET_BUF_ZV_BOTH, SET_BUF_PT_BOTH): New macros.
  4526.     (BYTE_POS_ADDR): Renamed from POS_ADDR.
  4527.     (CHAR_POS_ADDR): New macro.
  4528.     (FETCH_BYTE): Use BYTE_POS_ADDR.
  4529.     (FETCH_MULTIBYTE_CHAR): Use ..._BYTE macros.
  4530.     (BUF_CHAR_ADDRESS): Convert charpos to bytepos.
  4531.     (BUF_BYTE_ADDRESS): New macro, like the old BUF_CHAR_ADDRESS.
  4532.     (PTR_BYTE_POS): Renamed from PTR_CHAR_POS.
  4533.     (BUF_PTR_BYTE_POS): New macro.
  4534.     (BUF_FETCH_CHAR, BUF_FETCH_BYTE, BUF_FETCH_MULTIBYTE_CHAR): New macros.
  4535.     (struct buffer_text): New fields gpt_byte, z_byte.
  4536.     (struct buffer): New fields pt_byte, begv_byte, zv_byte.
  4537.  
  4538.     * syntax.c (char_quoted): Take charpos and bytepos as args.
  4539.     (back_comment): Likewise.
  4540.     (update_syntax_table): Arg renamed.
  4541.     (inc_bytepos, dec_bytepos): New functions.
  4542.  
  4543.     * abbrev.c (describe_abbrev): Return void.
  4544.     (write_abbrev): Return void.
  4545.     (Fexpand_abbrev): Scan in bytepos along with charpos.
  4546.     (Funexpand_abbrev): Use bytepos to delete the expansion.
  4547.     
  4548.     * charset.h (INC_POS, DEC_POS): Fix because arg is a bufpos.
  4549.     (BUF_INC_POS, BUF_DEC_POS): New macros.
  4550.     (INC_BOTH, DEC_BOTH): New macros.
  4551.  
  4552.     * minibuf.c (Fread_command, Fread_variable): Fix previous change.
  4553.  
  4554.     * intervals.h (set_point, temp_set_point): Swap args in decl.
  4555.     (set_point_both, temp_set_point_both): New decls.
  4556.  
  4557.     * print.c (PRINTDECLARE): Declare old_point_byte and start_point_byte.
  4558.     (PRINTPREPARE): For a marker, set old_point_byte and start_point_byte.
  4559.     Set both kinds of PT from the marker.
  4560.     (PRINTFINISH): For a marker, use set_marker_both.
  4561.     Restore both kinds of PT.
  4562.     (print): For strings and symbols, handle multibyte chars.
  4563.  
  4564. 1997-12-26  Richard Stallman  <rms@psilocin.gnu.org>
  4565.  
  4566.     * lread.c (readchar_backlog): New variable.
  4567.     (readchar): When fetching from buffer or marker,
  4568.     use readchar_backlog to fetch bytes from a character.
  4569.     (unreadchar): Increment readchar_backlog.
  4570.     (readevalloop, Fread): Init readchar_backlog.
  4571.     
  4572.     * charset.c (Fchar_boundary_p): Always return 0.
  4573.     (Fchars_in_region): Just subtract the arguments.
  4574.     (chars_in_text): New function.
  4575.     (Ffind_charset_region): Scan in bytepos as well as charpos.
  4576.  
  4577.     * process.c (Fprocess_send_region): Make bytepos for send_process.
  4578.     (read_process_output): Save, restore, and update both kinds of ptrs.
  4579.     (send_process): OFFSET is now in bytes.
  4580.  
  4581.     * marker.c (marker_byte_position): Renamed from marker_position.
  4582.     (marker_position): New function returns the charpos.
  4583.     (Fbuffer_has_markers_at): Test the marker's charpos.
  4584.     (set_marker_restricted, Fset_marker): Set both kinds of position.
  4585.     Optimize case where POSITION is a marker.
  4586.     (set_marker_both, set_marker_restricted_both): New functions.
  4587.     (Fmarker_position): Use the charpos.
  4588.  
  4589.     * marker.c (charpos_to_bytepos, bytepos_to_charpos): New functions.
  4590.     (buf_charpos_to_bytepos, buf_bytepos_to_charpos): New functions.
  4591.  
  4592.     * textprop.c (Ftext_properties_at): Doc fix.
  4593.  
  4594.     * intervals.c (set_point_both): Renamed from set_point;
  4595.     New arg BYTE; BUFFER is now first arg; use temp_set_point_both.
  4596.     (set_point): New function; uses set_point_both.
  4597.     (temp_set_point_both): New function.
  4598.     (temp_set_point): Update BUF_PT_BYTE.
  4599.     (get_local_map): Save and restore both forms of the buffer bounds.
  4600.  
  4601.     * buffer.c (set_buffer_temp):
  4602.     Update BUF_PT_BYTE, BUF_BEGV_BYTE and BUF_ZV_BYTE.
  4603.     (Fmake_indirect_buffer, set_buffer_internal_1):
  4604.     Set up the pt, begv and zv markers with both kinds of position.
  4605.     Set BUF_PT_BYTE, BUF_BEGV_BYTE, BUF_ZV_BYTE.
  4606.     (Fget_buffer_create): Set BUF_..._BYTE.
  4607.  
  4608.     * indent.c (vmotion, compute_motion): Set up bytepos value
  4609.     to return it.  ??? This is a quick hack and must be redone.
  4610.     (current_column): Handle bytepos and charpos.
  4611.     (position_indentation): Take bytepos as arg, and scan with it.
  4612.     Calls changed.
  4613.     (Fmove_to_column): Scan with bytepos and charpos.
  4614.     (pos_tab_offset): Use bytepos to do FETCH_BYTE.
  4615.     (skip_invisible): Don't worry about position in middle of character.
  4616.     
  4617.     * xdisp.c (try_window): Pass bytepos to and from display_text_line.
  4618.     (try_window_id): Likewise.  Use byte pos as well as charpos.
  4619.     (redisplay_internal): Handle bytepos for tlbufpos.
  4620.  
  4621.     * xdisp.c (message): Cast last arg to doprnt.
  4622.     
  4623.     * indent.h (struct position): New field bytepos.
  4624.  
  4625.     * keyboard.c (command_loop_1): Use PT_BYTE when calling FETCH_BYTE.
  4626.     Instead of Fforward_point, just add.
  4627.     
  4628.     * search.c (looking_at_1): Use bytepos to call re_search_2.
  4629.     Convert search regs to charpos, if search succeeded.
  4630.     (search_buffer): Likewise.  Also convert charpos <-> bytepos
  4631.     in non-regexp case.
  4632.     (scan_buffer): Convert charpos <-> bytepos. 
  4633.     (scan_newline): New function.
  4634.     (find_next_newline): Function deleted.
  4635.     (set_search_regs): Args now in bytes; convert to charpos.
  4636.     (Freplace_match): Convert charpos <-> bytepos when scanning case.
  4637.     
  4638.     * fileio.c (restore_point_unwind): Now static.  Use Fgoto_char.
  4639.     (Funhandled_file_name_directory): Doc fix.
  4640.     (Finsert_file_contents): Handle bytes vs chars.
  4641.     (Fwrite_region): Handle bytes vs chars.
  4642.     (a_write): Take args in bytes; handle annotations labeled in chars.
  4643.     (e_write): Rename args.
  4644.     (Funhandled_file_name_directory): Doc fix.
  4645.     (a_write, e_write): Now static.
  4646.     
  4647.     * editfns.c (Fgoto_char): When arg is a marker, copy char and byte
  4648.     positions from it.  When arg is an integer, no need to worry that it
  4649.     is in middle of a character.
  4650.     (buildmark): Take 2 args (charpos and bytepos).  Callers changed.
  4651.     (Fline_beginning_position): Save and restore both kinds of PT.
  4652.     (Fprevious_char): Use PT_BYTE.
  4653.     (Fbolp, Feolp): Use PT_BYTE.
  4654.     (transpose_markers): Take args in chars and bytes.
  4655.     (Ftranspose_regions): Work with byte and char positions.
  4656.     (Fchar_after, Fchar_before): Use bytepos.
  4657.     (make_buffer_string): Convert charpos to bytepos.
  4658.     (Fcompare_buffer_substrings): Work with charpos and bytepos.
  4659.     (Fsubst_char_in_region): Handle charpos and bytepos.
  4660.     (Fwiden, Fnarrow_to_region): Likewise.
  4661.     (save_restriction_restore): Update PT and PT_BYTES.
  4662.     Cast arg to doprnt_lisp.
  4663.  
  4664. 1997-12-26  Richard Stallman  <rms@sucrose.gnu.org>
  4665.  
  4666.     * keymap.c (Vminor_mode_overriding_map_alist): New variable.
  4667.     (syms_of_keymap): Set up Lisp var.
  4668.     (current_minor_maps): Use Vminor_mode_overriding_map_alist first,
  4669.     then Vminor_mode_map_alist.
  4670.  
  4671.     * config.in (HAVE_STRING_H): Add #undef.
  4672.     [HAVE_STRING_H]: Include string.h.
  4673.  
  4674. 1997-12-24  Richard Stallman  <rms@psilocin.gnu.org>
  4675.  
  4676.     * fileio.c (Finsert_file_contents): Don't use coding.symbol
  4677.     in unusual paths which don't set it up.
  4678.  
  4679.     * xdisp.c: Declare nonascii_insert_offset.
  4680.  
  4681. 1997-12-21  Richard Stallman  <rms@psilocin.gnu.org>
  4682.  
  4683.     * xterm.c (x_display_cursor): Abort if X or Y is out of range.
  4684.  
  4685. 1997-12-20  Richard Stallman  <rms@psilocin.gnu.org>
  4686.  
  4687.     * sysdep.c (sys_signal): Undo previous change.
  4688.  
  4689.     * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): New variables.
  4690.     (syms_of_emacs): Set up Lisp variables.
  4691.     (handle_USR1_signal, handle_USR2_signal): New signal handlers.
  4692.     (main): Set up signal handlers.
  4693.  
  4694.     * s/sco4.h (LIBX11_SYSTEM) [HAVE_LIBINTL and MOTIF]: Add -lintl.
  4695.  
  4696.     * config.in (HAVE_LIBINTL): Add #undef.
  4697.  
  4698. 1997-12-20  Toshiaki Nomura  <dsfrsoft@yk.fujitsu.co.jp>
  4699.  
  4700.         * s/uxpds.h: New file.
  4701.  
  4702. 1997-12-19  Richard Stallman  <rms@sucrose.gnu.org>
  4703.  
  4704.     * minibuf.c (Vread_buffer_function): New var.
  4705.     (syms_of_minibuf): Set up Lisp var.
  4706.     (Fread_buffer): Use Vread_buffer_function.
  4707.  
  4708.     * lisp.h (message2_nolog): Fix arg types.
  4709.  
  4710.     * xdisp.c (message2_nolog): New arg MULTIBYTE.
  4711.     (message2): Pass new arg to message2_nolog.
  4712.     (message1_nolog): Likewise.
  4713.  
  4714.     * keyboard.c (Fexecute_extended_command): 
  4715.     Save message_enable_multibyte and pass it to message2_nolog.
  4716.     
  4717.     * alloc.c (Fgarbage_collect):
  4718.     Save message_enable_multibyte and pass it to message2_nolog.
  4719.  
  4720. 1997-12-17  Richard Stallman  <rms@sucrose.gnu.org>
  4721.  
  4722.     * syntax.c (Fparse_partial_sexp): Return nil for 9th element
  4723.     whenever not inside a string or a comment.
  4724.  
  4725. 1997-12-16  Richard Stallman  <rms@sucrose.gnu.org>
  4726.  
  4727.     * minibuf.c (Fread_variable): If DEFAULT_VALUE is symbol, use its name.
  4728.     (Fread_command): Likewise.
  4729.  
  4730. 1997-12-15  Richard Stallman  <rms@sucrose.gnu.org>
  4731.  
  4732.     * xdisp.c (message_dolog): Update PT and ZV properly when at end of
  4733.     buffer, when we convert between multibyte and single-byte.
  4734.     Properly initialize i.
  4735.  
  4736.     * xdisp.c (message_dolog): Convert between single-byte and multibyte
  4737.     when inserting text into *Messages*.
  4738.     
  4739. 1997-12-11  Richard Stallman  <rms@gnu.org>
  4740.  
  4741.     * sysdep.c (sys_signal): Add two casts.
  4742.  
  4743. 1997-12-09  Richard Stallman  <rms@gnu.org>
  4744.  
  4745.     * callproc.c (Fcall_process): Don't clobber new_argv[0]
  4746.     in the case of no args.    
  4747.  
  4748. 1997-12-09  Kenichi Handa  <handa@etl.go.jp>
  4749.  
  4750.     * charset.c (Fget_unused_iso_final_char): New function.
  4751.     (syms_of_charset): Declare it as a Lisp function.
  4752.  
  4753.     * callproc.c (Fcall_process): Set Vlast_coding_system_used after
  4754.     reading from the process.
  4755.  
  4756.     * process.c (read_process_output): Fix previous change, i.e, if
  4757.     proc_encode_coding_system[p->outfd] is NULL, instead of allocating
  4758.     `struct coding_system' for encoding, just skip setting up coding
  4759.     system for encoding.  Set Vlast_coding_system_used after some text
  4760.     is read.
  4761.     (send_process): Set Vlast_coding_system_used after deciding a
  4762.     coding system to be used for encoding.
  4763.  
  4764.     * fileio.c (Finsert_file_contents): Set Vlast_coding_system_used
  4765.     before calling Vafter_insert_file_functions.
  4766.     (Fwrite_region): Set Vlast_coding_system_used after deciding a
  4767.     coding system to be used for encoding.
  4768.  
  4769.     * coding.c (setup_coding_system): Do not set
  4770.     Vlast_coding_system_used here.
  4771.     (decode_coding_sjis_big5): Decode Big5 text of CR only end-of-line
  4772.     correctly.
  4773.  
  4774. 1997-12-08  Ken'ichi Handa  <handa@delysid.gnu.org>
  4775.  
  4776.     * keyboard.c (Fexecute_extended_command): Fix previous change.
  4777.  
  4778. 1997-12-07  Karl Heuer  <kwzh@gnu.org>
  4779.  
  4780.     * process.c (read_process_output): Allocate for coding system, if
  4781.     not already done.
  4782.  
  4783. 1997-12-03  Richard Stallman  <rms@gnu.org>
  4784.  
  4785.     * emacs.c (main): Fix the stack-limit code to calculate
  4786.     the ratio for re_max_failures accurately and leave some extra slack.
  4787.  
  4788.     * lread.c (Feval_region): Doc correction (point does not move).
  4789.  
  4790. 1997-11-26  Richard Stallman  <rms@sucrose.gnu.org>
  4791.  
  4792.     * alloc.c (malloc_warning, display_malloc_warning): Return void.
  4793.     (memory_full, free_cons, free_marker): Likewise.
  4794.  
  4795.     * xdisp.c (message): Declare a as char *[3].
  4796.  
  4797.     * lisp.h, print.c (internal_with_output_to_temp_buffer):
  4798.     Don't declare arg type taken by 2nd arg.
  4799.  
  4800.     * eval.c (do_autoload): Return void.
  4801.  
  4802.     * sysdep.c (reset_sigio): Return void.
  4803.     
  4804.     * keyboard.c (Fsuspend_emacs): Cast init_sys_modes when calling
  4805.     record_unwind_protect.
  4806.  
  4807.     * keymap.c (describe_map): Fix decl of arg ELT_DESCRIBER.
  4808.  
  4809.     * process.c (create_process, deactivate_process, close_process_descs):
  4810.     (kill_buffer_processes, status_notify): Return void.
  4811.     (Fstart_process): Cast arg to create_process.
  4812.  
  4813.     * undo.c (record_insert, record_delete, record_marker_adjustment):
  4814.     (record_change, record_first_change, record_property_change):
  4815.     Return void.
  4816.  
  4817. 1997-11-27  Ken'ichi Handa  <handa@delysid.gnu.org>
  4818.  
  4819.     * undo.c (record_change, record_first_change,
  4820.     record_property_change): Declare them as void.
  4821.     (record_delete, record_marker_adjustment): Declare them as void.
  4822.     
  4823.     * indent.c (invalidate_current_column): Declare it as void.
  4824.  
  4825.     * fileio.c (report_file_error): Declare it as void.
  4826.  
  4827.     * filelock.c (unlock_buffer): Declare it as void.
  4828.  
  4829.     * buffer.c (nsberror, record_buffer, validate_region,
  4830.     fix_overlay_before): Declare them as void.
  4831.  
  4832.     * sysdep.c (discard_tty_input, init_baud_rate,
  4833.     wait_for_termination, flush_pending_output, child_setup_tty,
  4834.     sys_suspend, sys_subshell, init_sigio, request_sigio,
  4835.     unrequest_sigio, init_sys_modes, get_frame_size, reset_sys_modes,
  4836.     setup_pty): Declare them as void.
  4837.  
  4838.     * keymap.c (describe_vector): Declaration fixed (delete `.' at the
  4839.     tail of type `void'.
  4840.     (fix_submap_inheritance): Declare it as void.
  4841.  
  4842.     * keyboard.c (echo_now, record_auto_save, cmd_error_internal,
  4843.     start_polling, stop_polling, bind_polling_period,
  4844.     timer_start_idle, timer_stop_idle, gobble_input,
  4845.     record_asynch_buffer_change, clear_input_pending,
  4846.     stuff_buffered_input, clear_waiting_for_input,
  4847.     quit_throw_to_read_char): Declare these as void.
  4848.     (Fsuspend_emacs): Delete unnecessary extern declaration for
  4849.     init_sys_mode.
  4850.     (Fexecute_extended_command): Give Voverriding_local_map as the
  4851.     first arg to Faref.
  4852.  
  4853. 1997-11-27  Ken'ichi Handa  <handa@melange.gnu.org>
  4854.  
  4855.     * xterm.c (x_make_frame_visible): Give dummy arg to
  4856.     input_poll_signal.
  4857.  
  4858.     * xdisp.c (redisplay_preserve_echo_area): Declare it as void.
  4859.  
  4860.     * charset.c (strwidth): Remove extra argument to buffer_display_table.
  4861.     
  4862. 1997-11-25  Andreas Schwab  <schwab@delysid.gnu.org>
  4863.  
  4864.     * charset.h (SPLIT_STRING): Remove extra argument to
  4865.     split_non_ascii_string.
  4866.  
  4867.     * window.c: Add prototypes.
  4868.     (delete_window): Fix return type.
  4869.     (set_window_height): Likewise.
  4870.     (set_window_width): Likewise.
  4871.     (change_window_height): Likewise.
  4872.  
  4873.     * xselect.c (Fx_disown_selection_internal): Fix type of EVENT.
  4874.  
  4875.     * window.h: Add prototypes.
  4876.  
  4877.     * systty.h: Add prototypes.
  4878.  
  4879.     * sysdep.c: Add prototypes.
  4880.     (save_signal_handlers): Make static.
  4881.     (restore_signal_handlers): Likewise.
  4882.  
  4883.     * syntax.h: Add prototypes.
  4884.  
  4885.     * search.c: Include "intervals.h" for prototypes.
  4886.  
  4887.     * region-cache.h: Add prototypes.
  4888.  
  4889. 1997-11-24  Paul Eggert  <eggert@twinsun.com>
  4890.  
  4891.     * fontset.c (free_fontset_data): Don't free null pointer.
  4892.  
  4893.     The new GNU C library strftime needs the underlying host's
  4894.     strftime for locale dependent formats.
  4895.  
  4896.     * configure.in (AC_CHECK_FUNCS): Add strftime.
  4897.     * src/config.in (HAVE_STRFTIME): New undef.
  4898.     * src/editfns.c (emacs_strftime): New decl.
  4899.     (Fformat_time_string): Doc fix: %b, %h, %B, %a, %A, and %p depend on
  4900.     locale; don't use actual chars to describe %n and %t.
  4901.  
  4902.     * src/Makefile.in (strftime.o), src/makefile.nt    ($(BLD)\strftime.obj):
  4903.     No need to compile with -Dstrftime=emacs_strftime any more.
  4904.  
  4905. 1997-11-22  Richard Stallman  <rms@gnu.org>
  4906.  
  4907.     * syntax.c (back_comment): Handle 2-char comment starts
  4908.     when reaching the first of the pair.
  4909.  
  4910. 1997-11-21  Andreas Schwab  <schwab@delysid.gnu.org>
  4911.  
  4912.     * keymap.c (copy_keymap_1): Fix return type.
  4913.     (accessible_keymaps_char_table): Likewise.
  4914.     (where_is_internal_2): Likewise.
  4915.     (describe_vector_princ): Likewise.
  4916.     (describe_vector): Likewise.  Protoize parameter.
  4917.     (Ftext_char_description): Fix type of `str'.
  4918.  
  4919.     * keyboard.h: Add prototypes and more function declarations.
  4920.  
  4921.     * intervals.h: Add prototypes and more function declarations.
  4922.  
  4923.     * intervals.c (traverse_intervals): Protoize parameter.
  4924.  
  4925.     * frame.h: Protoize function declarations.
  4926.  
  4927.     * fontset.h: Add prototypes and more function declarations.
  4928.  
  4929.     * fontset.c: Protoize functions declarations.
  4930.  
  4931.     * fns.c (map_char_table): Protoize parameter.
  4932.  
  4933.     * fileio.c (close_file_unwind): Fix return type and return nil.
  4934.     (restore_point_unwind): Likewise.
  4935.  
  4936.     * eval.c (record_unwind_protect): Protoize parameter.
  4937.  
  4938.     * editfns.c (Fchar_to_string): Declare `workbuf' as unsigned char.
  4939.     (general_insert_function): Likewise.  Protoize parameters.  Define
  4940.     as returning nothing.
  4941.  
  4942.     * doprnt.c (doprnt1): Declare `charbuf' as unsigned char.
  4943.  
  4944.     * disptab.h: Add prototypes.  Remove declaration of obsolete
  4945.     functions.
  4946.  
  4947.     * coding.h: Add more prototypes and function declarations.
  4948.  
  4949.     * charset.h: Add more prototypes and function declarations.
  4950.  
  4951.     * ccl.c (setup_ccl_program): Define as returning nothing.
  4952.  
  4953.     * ccl.h: Add declaration of setup_ccl_program and ccl_driver.
  4954.  
  4955.     * category.h: Add declaration of word_boundary_p.
  4956.  
  4957.     * buffer.h: Add more prototypes and function declarations.
  4958.  
  4959.     * print.c (printchar): Declare `work' as unsigned char.
  4960.     (internal_with_output_to_temp_buffer): Protoype parameter
  4961.     FUNCTION.
  4962.     (Ferror_message_string): Remove extra argument of
  4963.     print_error_message.
  4964.     (write_string): Define as returning nothing.
  4965.     (write_string_1): Likewise.
  4966.     (print_error_message): Likewise.
  4967.  
  4968.     * minibuf.c (read_minibuf_unwind): Fix return type and return nil.
  4969.     (temp_echo_area_glyphs): Define as returning nothing.
  4970.     (init_minibuf_once): Likewise.
  4971.     (syms_of_minibuf): Likewise.
  4972.     (keys_of_minibuf): Likewise.
  4973.  
  4974.     * marker.c (unchain_marker): Define as returning nothing.
  4975.     (syms_of_marker): Likewise.
  4976.  
  4977.     * macros.h: Declare finalize_kbd_macro_chars and
  4978.     store_kbd_macro_char.
  4979.  
  4980.     * macros.c (store_kbd_macro_char): Define as returning nothing.
  4981.     (finalize_kbd_macro_chars): Likewise.
  4982.     (init_macros): Likewise.
  4983.     (syms_of_macros): Likewise.
  4984.     (keys_of_macros): Likewise.
  4985.  
  4986.     * lread.c (read1): Declare workbuf as unsigned char.
  4987.     (dir_warning): Define as returning nothing.
  4988.     (init_lread): Likewise.
  4989.     (mapatoms_1): Likewise.
  4990.     (map_obarray): Fix type of parameter FN.
  4991.  
  4992.     * lisp.h: Add more prototypes and declarations.  Forward declare
  4993.     struct window and struct frame so that it can be used in
  4994.     prototypes.
  4995.  
  4996. 1997-11-20  Richard Stallman  <rms@gnu.org>
  4997.  
  4998.     * sysdep.c (init_system_name): Don't use sysinfo.
  4999.  
  5000. 1997-11-20  Dave Love  <d.love@dl.ac.uk>
  5001.  
  5002.     * syntax.c (skip_chars): Check type of `string' before using it.
  5003.  
  5004. 1997-11-20  Abraham Nahum  <miko@uxsrvc.tti.co.il>
  5005.  
  5006.     * sysdep.c: Treat DGUX the same as USG.
  5007.     * s/dgux4.h (LIBS_SYSTEM): Define this.
  5008.  
  5009. 1997-11-20  Eli Zaretskii  <eliz@is.elta.co.il>
  5010.  
  5011.     * frame.c (frame_name_fnn_p, set_term_frame_name): New functions.
  5012.     (store_frame_param): When the property name is "name", set the
  5013.     name of the frame to its value.
  5014.  
  5015. 1997-11-16  Richard Stallman  <rms@gnu.org>
  5016.  
  5017.     * keyboard.c (Fexecute_extended_command): Fix message wording.
  5018.     Don't print a message for a binding for mouse-movement.
  5019.  
  5020. 1997-11-15  Richard Stallman  <rms@gnu.org>
  5021.  
  5022.     * xdisp.c (minibuffer_scroll_overlap): New variable.
  5023.     (syms_of_xdisp): Set up Lisp var.
  5024.     (redisplay_window): Scroll minibuffer in a special way.
  5025.  
  5026.     * xdisp.c (display_text_line): Make decision about which windows
  5027.     highlight the region in just once place.
  5028.     When minibuffer is selected, show the region in the previous window,
  5029.  
  5030.     * charset.h (ASCII_BYTE_P): New macro.
  5031.  
  5032.     * indent.c (position_indentation): Detect non-breaking space,
  5033.     in either single-byte form or multibyte form (using category ' ').
  5034.  
  5035. 1997-11-15  Karl Heuer  <kwzh@gnu.org>
  5036.  
  5037.     * xselect.c (x_handle_selection_request): Use xfree, not free.
  5038.     (unexpect_property_change, x_get_window_property_as_lisp_data): Ditto.
  5039.     (x_handle_property_notify, receive_incremental_selection): Ditto.
  5040.     (selection_data_to_lisp_data, Fx_get_cut_buffer_internal): Ditto.
  5041.  
  5042. 1997-11-10  Eli Zaretskii  <eliz@is.elta.co.il>
  5043.  
  5044.     * msdos.c: Support for Japanese display on DOS/V systems.
  5045.     (screen_old_address, screen_virtual_segment,
  5046.     screen_virtual_offset): New variables.
  5047.     (dosv_refresh_virtual_screen): New function.
  5048.     (dos_direct_output, dos_set_window_size, IT_write_glyphs,
  5049.     IT_clear_end_of_line, IT_clear_screen, IT_display_cursor,
  5050.     IT_reset_terminal_modes, XMenuActivate, abort):  Call
  5051.     dosv_refresh_virtual_screen if under DOS/V.
  5052.     (IT_set_terminal_modes): If under DOS/V, update the address of
  5053.     primary screen buffer.
  5054.     (internal_terminal_init): Zero out screen_old_address, in case
  5055.     Emacs was dumped under DOS/V.
  5056.     (dos_get_saved_screen): Return failure indication if no screen was
  5057.     saved.
  5058.  
  5059. 1997-11-07  Kenichi Handa  <handa@etl.go.jp>
  5060.  
  5061.     * callproc.c (Fcall_process): GCPRO infile, buffer, and
  5062.     current_dir before encoding arguments.
  5063.  
  5064.     * charset.c (find_charset_in_str): Handle the case that STR
  5065.     contains invalid multibyte-form.
  5066.  
  5067.     * coding.c (setup_coding_system): Initialize common_flags member
  5068.     instead of require_flushing member of `*coding'.
  5069.     (code_convert_region): Fix previous change.
  5070.  
  5071.     * coding.h (struct coding_system): Add member common_flags, delete
  5072.     member require_flushing.
  5073.     (CODING_REQUIRE_FLUSHING_MASK, CODING_REQUIRE_DECODING_MASK,
  5074.     CODING_REQUIRE_ENCODING_MASK, CODING_REQUIRE_DETECTION_MASK): New
  5075.     macros.
  5076.     (CODING_REQUIRE_NO_CONVERSION, CODING_MAY_REQUIRE_NO_CONVERSION):
  5077.     These macros deleted.
  5078.     (CODING_REQUIRE_FLUSHING, CODING_REQUIRE_DECODING,
  5079.     CODING_REQUIRE_ENCODING, CODING_REQUIRE_DETECTION): New macros.
  5080.  
  5081.     * editfns.c (Fsref): If IDX points an 8-bit code which is not part
  5082.     of multibyte characters, return it.  Pay attention to
  5083.     enable-multibyte-characters.
  5084.  
  5085.     * fileio.c (Finsert_file_contents): Use new macros defined in
  5086.     coding.h.
  5087.     (Fwrite_region): Likewise.
  5088.  
  5089.     * process.c (create_process): Encode arguments for the process.
  5090.     (read_process_output): Use new macros defined in coding.h.
  5091.     (send_process): Likewise.
  5092.  
  5093.     * term.c (encode_terminal_code): Use new macros defined in
  5094.     coding.h.
  5095.     (write_glyphs): Likewise.
  5096.  
  5097. 1997-10-31  Richard Stallman  <rms@gnu.org>
  5098.  
  5099.     * sysdep.c (init_system_name): If gethostname gives a proper
  5100.     domain name, don't look farther for one.
  5101.  
  5102. 1997-10-29  Paul Eggert  <eggert@twinsun.com>
  5103.  
  5104.     * m/alpha.h (DBL_MIN_REPLACEMENT): New macro.
  5105.  
  5106.     * print.c (DBL_MIN): Use workaround if DBL_MIN_REPLACEMENT is defined.
  5107.  
  5108. 1997-10-27  Kenichi Handa  <handa@etl.go.jp>
  5109.  
  5110.     * charset.c (Fchars_in_string): Pay attention to
  5111.     enable-multibyte-characters.
  5112.     (Fchars_in_region): Likewise.  Avoid error when the region ends in
  5113.     the middle of a multibyte character.
  5114.  
  5115.     * category.c (copy_category_table): Copy also the first extra slot
  5116.     (vector of docstrings).
  5117.     (Fcopy_category_table): Do not give unused second arg to
  5118.     copy_category_table.
  5119.  
  5120. 1997-10-26  Kyle Jones  <kyle_jones@wonderworks.com>
  5121.  
  5122.     * buffer.c (Fkill_buffer): Don't assume buffer is current.
  5123.  
  5124. 1997-10-24  Eirik Fuller  <eirik@netcom.com>
  5125.  
  5126.     * xterm.c (XTread_socket): Check for bogus (0,0) location.
  5127.  
  5128. 1997-10-24  Richard Stallman  <rms@gnu.org>
  5129.  
  5130.     * frame.c (Fmouse_pixel_position, Fmouse_position): 
  5131.     Pass -1 as INSIST arg to mouse_position_hook.
  5132.     * w32term.c (w32_mouse_position): Handle INSIST < 0.
  5133.     * xterm.c (XTmouse_position): Handle INSIST < 0.
  5134.  
  5135. 1997-10-23  Simon Marshall  <simon@gnu.org>
  5136.  
  5137.     * lread.c (Fload): Indicate in messages if source code is being
  5138.      loaded and don't indicate when compiled code is being loaded.
  5139.  
  5140. 1997-10-23  Murata Shuuichirou  <mrt@mickey.ai.kyutech.ac.jp>
  5141.  
  5142.     * coding.c (encode_designation_at_bol): Fix bug of finding graphic
  5143.     registers which should be designated at bol.
  5144.  
  5145. 1997-10-23  Kenichi Handa  <handa@etl.go.jp>
  5146.  
  5147.     * charset.h (CHAR_VALID_P): Renamed from VALID_CHAR_P, new
  5148.     argument GENERICP.  Call char_valid_p for a non-ASCII character.
  5149.  
  5150.     * charset.c (char_valid_p): New function
  5151.     (Fchar_valid_p): New function.
  5152.     (syms_of_charset): Declare it as a Lisp function.
  5153.  
  5154.     * coding.h (struct iso2022_spec): New member
  5155.     charset_revision_number.
  5156.     (CODING_SPEC_ISO_SAFE_CHARSETS): This macro deleted.
  5157.     (CODING_SPEC_ISO_REVISION_NUMBER): New macro.
  5158.     (struct coding_system): Member `safe_charsets' is moved from
  5159.     struct iso2022_spec.
  5160.  
  5161.     * coding.c (Qsafe_charset): New variable.
  5162.     (syms_of_coding): Initialize and staticpro it.
  5163.     (detect_coding_iso2022): Handle SS2 and SS3 correctly.
  5164.     (DECODE_ISO_CHARACTER): Recover from incorrect encoding in less
  5165.     dangerous way.
  5166.     (ENCODE_DESIGNATION): Get charset revision number by
  5167.     CODING_SPEC_ISO_REVISION_NUMBER.
  5168.     (setup_coding_system): Initialize the member safe_charsets from
  5169.     the coding systems's safe-charsets property.  Initialize the
  5170.     member charset_revision_number of struct iso2022_spec.
  5171.     (ENCODE_ISO_CHARACTER_DIMENSION1): Adjusted for the change of
  5172.     `safe_charsets' member.
  5173.     (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
  5174.     (code_convert_region): Restore the current point after calling a
  5175.     function in coding->post_read_conversion.
  5176.  
  5177.     * fns.c (map_char_table): Do not operate on invalid characters.
  5178.     Pay attention to `enable-multibyte-characters'.
  5179.  
  5180. 1997-10-23  Richard Stallman  <rms@gnu.org>
  5181.  
  5182.     * filelock.c (unlock_all_files): Don't call unlock_file;
  5183.     do the work directly, and avoid calling Fexpand_file_name.
  5184.  
  5185.     * xdisp.c (redisplay_window): If clip_changed, always run
  5186.     window-scroll-functions.
  5187.  
  5188. 1997-10-23  Paul Eggert  <eggert@twinsun.com>
  5189.  
  5190.     Don't generate useless digits when converting floating point to string.
  5191.  
  5192.     * print.c (_MAXLDBL, _NMAXLDBL):
  5193.     Define to work around hpux 7 <math.h> problem.
  5194.     (<math.h>): Include.
  5195.     (<float.h>, <stdlib.h>): Include if STDC_HEADERS.
  5196.     (FLT_RADIX, DBL_MANT_DIG, DBL_DIG): Default to IEEE values.
  5197.     (DOUBLE_DIGITS_BOUND): New macro.
  5198.     (float_to_string): By default, generate the fewest number of digits
  5199.     that represent the floating point value exactly.
  5200.  
  5201.     * lisp.h (DBL_DIG): Remove; the default value is now set in print.c.
  5202.     * data.c, floatfns.c: No need to include <float.h> before "lisp.h",
  5203.     as the latter no longer defines DBL_DIG.
  5204.  
  5205. 1997-10-21  Kenichi Handa  <handa@etl.go.jp>
  5206.  
  5207.     * Makefile.in (xselect.o): Depend on buffer.h
  5208.  
  5209.     * coding.c (Qcoding_system_spec): Deleted.
  5210.     (Vcoding_system_list, Vcoding_system_alist): New variables.
  5211.     (setup_coding_system): Adjusted for the change in mule.el.
  5212.     (detect_eol): Likewise.
  5213.     (Fcoding_system_spec): Changed to Lisp function in mule.el.
  5214.     (Fcoding_system_p): Do not call Fcoding_system_spec.
  5215.     (Fread_coding_system): Give Vcoding_system_alist to
  5216.     Fcompleting_read as the arg TABLE.
  5217.     (Fread_non_nil_coding_system): Likewise.  Give
  5218.     Vcoding_system_history to Fcompleting_read as the arg HIST.
  5219.     (syms_of_coding): Deleted codes for Qcoding_system and
  5220.     Fcoding_system_spec.  Set up new Lisp variables.
  5221.  
  5222.     * xselect.c: Include buffer.h.
  5223.     (selection_data_to_lisp_data): Do not perform code conversion if
  5224.     the default value of enable-multibyte-characters is nil.
  5225.     (lisp_data_to_selection_data): Likewise.  Access the array
  5226.     `charsets' in the correct way.
  5227.  
  5228. 1997-10-20  Richard Stallman  <rms@gnu.org>
  5229.  
  5230.     * Makefile.in (LD_SWITCH_MACHINE_TEMACS): New macro (defaults empty).
  5231.     (ALL_LDFLAGS): Use LD_SWITCH_MACHINE_TEMACS here.
  5232.  
  5233.     * m/ibmrs6000.h (LD_SWITCH_MACHINE): Conditionalize this
  5234.     on THIS_IS_MAKEFILE instead of on emacs.
  5235.  
  5236. 1997-10-20  Paul Eggert  <eggert@twinsun.com>
  5237.  
  5238.     * strftime.c:
  5239.      Switch back to GNU C Library version.
  5240.     (__tz_compute): Remove unused decl.
  5241.     (strftime): Use tm_zone even if _LIBC is defined.
  5242.  
  5243. 1997-10-19  Kurt Swanson  <kurt@dna.lth.se>
  5244.  
  5245.     * window.c (syms_of_window): Doc fix.
  5246.  
  5247. 1997-10-16  Richard Stallman  <rms@gnu.org>
  5248.  
  5249.     * buffer.c (init_buffer): Don't add /: to default dir if it's `/'.
  5250.  
  5251.     * keymap.c (Faccessible_keymaps): Avoid alloca for fixed-size array.
  5252.     (Fset_keymap_parent, Fcopy_keymap, Fwhere_is_internal): Likewise.
  5253.  
  5254.     * minibuf.c (read_minibuf): Return DEFALT here, if minibuffer is empty.
  5255.     (Fread_from_minibuffer, Fcompleting_read): Don't do that here.
  5256.  
  5257.     * fileio.c (Fexpand_file_name): Avoid treating // specially
  5258.     even in a relative file name.
  5259.  
  5260.     * keymap.c (Fwhere_is_internal): some minor mode bindings weren't
  5261.     being found.
  5262.  
  5263. 1997-10-15  Richard Stallman  <rms@gnu.org>
  5264.  
  5265.     * window.c (replace_buffer_in_all_windows):
  5266.     Pass 1 as MINI to window_loop.
  5267.  
  5268.     * data.c (Fstring_to_number): Handle NEGATIVE for floats too.
  5269.  
  5270.     * lread.c (read_list): Don't recognize Vload_file_name
  5271.     specially if it is nil.
  5272.  
  5273. 1997-10-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5274.  
  5275.     * alloc.c (gc_sweep): Free memory blocks that contain only unused
  5276.     objects.
  5277.  
  5278.     * window.c (window_scroll): When scrolling forward and point is
  5279.     inside the scroll margin put point at bottom of it, not at window
  5280.     start.
  5281.  
  5282. 1997-10-13  Andrew Innes  <andrewi@harlequin.co.uk>
  5283.  
  5284.     * callproc.c (child_setup) [WINDOWSNT]: Ensure standard handles
  5285.      are reset even if spawnve fails.
  5286.  
  5287.     * w32menu.c (Fx_popup_menu): Pass menu handle by value.
  5288.  
  5289. 1997-10-13  Eli Zaretskii  <eliz@melange.gnu.org>
  5290.  
  5291.     * xdisp.c (decode_mode_spec): Display non-nil title as the frame's
  5292.     name only on FRAME_WINDOW_P frames.
  5293.  
  5294.     * frame.c (set_menu_bar_lines): Make the function external instead
  5295.     of static (MS-DOS needs to call it).
  5296.  
  5297.     * emacs.c (shut_down_emacs): Call `dos_cleanup'.
  5298.  
  5299.     * msdos.c (mouse_get_pos): Remove reduntant call to `int86'.
  5300.     Clear the mouse-moved flag for all frames.  Update last mouse
  5301.     position.
  5302.     (IT_set_menu_bar_lines): Remove.
  5303.     (x_set_menu_bar_lines): Call `set_menu_bar_line' (from frame.c)
  5304.     instead of duplicating its code.
  5305.     (IT_set_frame_parameters): Support the `title' and `reverse'
  5306.     properties.
  5307.  
  5308.     * dosfns.h: Vdos_windows_version: declare.
  5309.  
  5310.     * dosfns.c (__tb): Define.
  5311.     (restore_parent_vm_title): New function.
  5312.     (ms_windows_version): New function.
  5313.     (w95_set_virtual_machine_title): New function
  5314.     (x_set_title): New function.
  5315.     (dos_cleanup): New function
  5316.     (syms_of_dosfns): Define `dos-windows-version' Lisp variable.
  5317.     (init_dosfns): Compute MS-Windows version and save the original
  5318.     title of our DOS box.
  5319.  
  5320. 1997-10-10  Richard Stallman  <rms@gnu.org>
  5321.  
  5322.     * s/netbsd.h (LD_SWITCH_SYSTEM): Use -Wl,-rpath if __ELF__.
  5323.  
  5324. 1997-10-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5325.  
  5326.     * unexelf.c (round_up): Make arguments and return type unsigned.
  5327.  
  5328.     * editfns.c: Repeat the argument list of format-time-string in the
  5329.     comment for make-docstring.
  5330.  
  5331.     * lread.c: Make sure that make-docfile does not see the doc string
  5332.     of the disabled function eval-current-buffer.
  5333.  
  5334.     * print.c (syms_of_print): Fix doc string of print-gensym.
  5335.  
  5336. 1997-10-01  Richard Stallman  <rms@psilocin.gnu.org>
  5337.  
  5338.     * s/aix4-1.h [! HAVE_LIBXMU] (LIBXMU): Define as empty.
  5339.     [! HAVE_LIBXMU] (NO_EDITRES): Defined.
  5340.  
  5341. 1997-09-30  Hrvoje Niksic  <hniksic@srce.hr>
  5342.  
  5343.     * fns.c (Qwidget_type): New variable.
  5344.     (widget-plist-member, widget-put, widget-get, widget-apply): Move
  5345.     here from lisp/wid-edit.el; translated into C for efficiency.
  5346.     (syms_of_fns): Initialize Qwidget_type; defsubr new functions.
  5347.  
  5348. 1997-09-29  Karl Heuer  <kwzh@gnu.org>
  5349.  
  5350.     * s/dgux4.h: Fix name of include file to match 1996-08-24 renaming.
  5351.  
  5352. 1997-09-27  Eirik Fuller  <eirik@netcom.com>
  5353.  
  5354.     * ralloc.c (relinquish): When returning memory to the system,
  5355.     watch out for the original data segment boundary.
  5356.  
  5357. 1997-09-25  Kenichi Handa  <handa@etl.go.jp>
  5358.  
  5359.     * keymap.c (push_key_description): Delete useless `if' statement.
  5360.  
  5361. 1997-09-24  Kenichi Handa  <handa@etl.go.jp>
  5362.  
  5363.     * charset.c (find_charset_in_str): Return also charsets in
  5364.     composite characters.
  5365.  
  5366. 1997-09-24  Dave Love  <d.love@dl.ac.uk>
  5367.  
  5368.     * buffer.c (mode-line-format): Doc fix.
  5369.  
  5370. 1997-09-23  Geoff Voelker  <voelker@cs.washington.edu>
  5371.  
  5372.     * callproc.c (child_setup) [WINDOWSNT]: Change directory of
  5373.     child instead of parent.
  5374.  
  5375. 1997-09-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5376.  
  5377.     * Version 20.2 released.
  5378.  
  5379.     * s/sol2-5.h (SYSTEM_MALLOC): Defined.
  5380.  
  5381. 1997-09-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5382.  
  5383.     * Version 20.1 released.
  5384.  
  5385.     * keyboard.c (command_loop_1): Add nonascii_insert_offset
  5386.     before calling direct_output_for_insert.
  5387.  
  5388. 1997-09-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5389.  
  5390.     * indent.c (compute_motion): Ignore the display table entry for a
  5391.     base leading code when dealing with multibyte characters.
  5392.  
  5393. 1997-09-14  Kenichi Handa  <handa@etl.go.jp>
  5394.  
  5395.     * fileio.c (Finsert_file_contents): If a coding system is
  5396.     specified explicitly on visiting a new file, set
  5397.     buffer-file-coding system of the new buffer to the specified one.
  5398.  
  5399. 1997-09-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5400.  
  5401.     * minibuf.c (syms_of_minibuf): Doc fix.
  5402.  
  5403. 1997-09-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5404.  
  5405.     * xdisp.c: When redisplaying the echo area, use the value
  5406.     of enable-multibyte-characters from when message was called.
  5407.     (message_enable_multibyte): New variable.
  5408.     (message2_nolog): Set the variable.
  5409.     (echo_area_display): Use that variable.
  5410.     (display_string): New arg MULTIBYTE.  Callers changed.
  5411.  
  5412.     * print.c (Fexternal_debugging_output): On Windows, output to debugger.
  5413.  
  5414. 1997-09-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5415.  
  5416.     * msdos.c: Use raw-text as coding system.
  5417.  
  5418. 1997-09-10  Eli Zaretskii  <eliz@is.elta.co.il>
  5419.  
  5420.     * msdos.c (syms_of_msdos): Intern background-color and
  5421.     foreground-color, and staticpro them.
  5422.     (IT_set_frame_parameters): Use Qforeground_color and
  5423.     Qbackground_color.
  5424.  
  5425. 1997-09-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5426.  
  5427.     * xdisp.c (display_menu_bar): Include WINDOW_LEFT_MARGIN in maxendcol.
  5428.  
  5429.     * process.c (create_process): Encode the new current dir.
  5430.  
  5431.     * callproc.c (Fcall_process): Encode the new current dir.
  5432.  
  5433. 1997-09-09  Paul Eggert  <eggert@twinsun.com>
  5434.  
  5435.     * s/sco5.h (BROKEN_MKTIME): Define.
  5436.  
  5437. 1997-09-09  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5438.  
  5439.     * xfns.c (x_screen_planes): Fix type of argument.
  5440.  
  5441.     * syntax.h (UPDATE_SYNTAX_TABLE_FORWARD): Add missing fourth
  5442.     argument of update_syntax_table.
  5443.     (UPDATE_SYNTAX_TABLE_BACKWARD): Likewise.
  5444.     (UPDATE_SYNTAX_TABLE): Likewise.
  5445.  
  5446.     * coding.c (encode_designation_at_bol): Fix type of local vars C1, C2.
  5447.  
  5448. 1997-09-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5449.  
  5450.     * fileio.c (ENCODE_FILE): New macro.
  5451.     (Vfile_name_coding_system): New variable.
  5452.     (syms_of_fileio): Set up Lisp variable.
  5453.     (Fset_visited_file_modtime): Use ENCODE_FILE.
  5454.     (Fcopy_file, Fmake_directory_internal, Fdelete_directory, Fdelete_file)
  5455.     (Frename_file, Fadd_name_to_file, Ffile_exists_p Ffile_executable_p)
  5456.     (Ffile_readable_p, Ffile_writable_p, Faccess_file, Ffile_symlink_p)
  5457.     (Ffile_directory_p, Ffile_accessible_directory_p, Ffile_regular_p)
  5458.     (Ffile_modes, Fset_file_modes, Ffile_newer_than_file_p, Fwrite_region)
  5459.     (Finsert_file_contents, Fverify_visited_file_modtime): Likewise.
  5460.  
  5461.     * fileio.c (Ffile_symlink_p): Decode the file name value.
  5462.  
  5463.     * dired.c (ENCODE_FILE): New macro.
  5464.     (Ffile_attributes): Encode the file names to operate on.
  5465.     (file_name_completion): Do completion on encoded name, then decode.
  5466.     (Fdirectory_files): Encode the argument.
  5467.     Decode all result file names using Vfile_name_coding_system.
  5468.  
  5469.     * coding.c (Fencode_coding_string, Fdecode_coding_string): Doc fixes.
  5470.     
  5471. 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5472.  
  5473.     * lread.c (Feval_buffer): New arg FILENAME.
  5474.  
  5475.     * buffer.c (modify_overlay): Update overlay_modiff of proper buffer.
  5476.  
  5477. 1997-09-07  Geoff Voelker  <voelker@cs.washington.edu>
  5478.  
  5479.     * firstfile.c: New file.
  5480.     
  5481. 1997-09-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5482.  
  5483.     * xdisp.c (display_string): Determine multibyte from current buffer,
  5484.     not from W's buffer.
  5485.  
  5486. 1997-09-07  Kenneth Stailey  <kstailey@elbereth.disclosure.com>
  5487.  
  5488.     * s/openbsd.h: New file.
  5489.  
  5490.     * m/ns32000.h, m/sparc.h, m/alpha.h, m/pmax.h, unexalpha.c:
  5491.     Test __OpenBSD__ along with __NetBSD__.
  5492.  
  5493.     * unexelf.c: Test __OpenBSD__ along with __NetBSD__.
  5494.     [__OpenBSD__]: Include sys/exec_elf.h.
  5495.     
  5496. 1997-09-05  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  5497.  
  5498.     * coding.c (Ffind_operation_coding_system): If a function in
  5499.     XXX-coding-system-alist returns a coding system (instead of cons
  5500.     of coding systems), return cons of it.
  5501.  
  5502. 1997-09-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5503.  
  5504.     * coding.c (Fread_coding_system):
  5505.     New optional arg DEFAULT_CODING_SYSTEM.
  5506.     * lisp.h (Fread_coding_system): Update decl.
  5507.  
  5508.     * callint.c (Fcall_interactively): Pass new arg to Fread_coding_system.
  5509.     
  5510. 1997-09-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5511.  
  5512.     * m/alpha.h (PTY_OPEN): Call sigblock properly.
  5513.  
  5514.     * fileio.c (Fexpand_file_name): If default dir isn't string, use `/'.
  5515.  
  5516.     * callproc.c (Fcall_process_region): Fix previous change:
  5517.     never override Vcoding_system_for_write.
  5518.  
  5519.     * m/alpha.h (PTY_OPEN): Save and restore the SIGCHLD handler.
  5520.  
  5521. 1997-09-04  Erik Naggum  <erik@naggum.no>
  5522.  
  5523.     * emacs.c (main): Update Copyright message.
  5524.  
  5525. 1997-09-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5526.  
  5527.     * data.c (Faset): Simplify a statement in the char-table case.
  5528.     This is to help some compilers.
  5529.  
  5530.     * coding.c (Qcoding_system_history): New variable.
  5531.     (syms_of_coding): Initialize it.
  5532.     (Fread_coding_system): Use Qcoding_system_history.
  5533.  
  5534.     * coding.c (setup_coding_system, Ffind_operation_coding_system)
  5535.     (Fdetect_coding_region, Fread_coding_system):
  5536.     Don't initialize a Lisp_Object.
  5537.  
  5538. 1997-09-03  NIIBE Yutaka  <gniibe@mri.co.jp>
  5539.  
  5540.     * emacs.c (main): Call run_time_remap earlier, before any use of stdio.
  5541.  
  5542. 1997-09-03  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5543.  
  5544.     * minibuf.c (read_minibuf): Fix use of Ffboundp.
  5545.  
  5546. 1997-09-03  Geoff Voelker  <voelker@cs.washington.edu>
  5547.  
  5548.     * lastfile.c (my_endbss) [WINDOWSNT]: New variable.
  5549.  
  5550. 1997-09-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5551.  
  5552.     * coding.c (detect_coding_mask): Re-work previous change.
  5553.     (detect_eol): Fix use of == instead of -.
  5554.  
  5555. 1997-09-03  Kenichi Handa  <handa@etl.go.jp>
  5556.  
  5557.     * coding.c (detect_coding_mask): Cancel previous change.  Always
  5558.     include CODING_CATEGORY_MASK_RAW_TEXT in the return value.
  5559.  
  5560. 1997-09-02  Andrew Innes  <andrewi@harlequin.co.uk>
  5561.  
  5562.     * makefile.nt (TLIB0, TOBJ, OBJ0): New macro.
  5563.     (LINK_FLAGS): Separate debugging info from the executable.
  5564.     (LIBS): Include TLIB0.
  5565.     (TEMACS): Link with TLIB0.
  5566.     (EMACS): Copy temacs map file to emacs map file.
  5567.     Update file dependencies.
  5568.  
  5569.     * unexw32.c: Include config.h and time.h.
  5570.     Declare extern data and functions.
  5571.      (file_data): Move definition from w32heap.c.
  5572.     (_start): Add debug hook for when profiling.
  5573.     Spoof executable name when using profilers.
  5574.     Invoke sbrk immediately when undumped.
  5575.     (unexec): Print error messages when input and output dump files
  5576.     cannot be opened.
  5577.     Reset header checksum.
  5578.     (open_input_file, open_output_file): Return status instead of aborting.
  5579.     (get_section_size): Handle different linkers.
  5580.     (find_section, rva_to_section): New functions.
  5581.     (get_section_info) [SEPARATE_BSS_SECTION]: Make code for using
  5582.     a separate .bss section conditional.
  5583.     Use my_begbss and my_endbss to determine .bss size by default.
  5584.     Look for Emacs data in EMDATA section.
  5585.     
  5586.     * w32.c: Include stddef.h.
  5587.     (getwd): Delete macro.
  5588.     (startup_dir): New variable.
  5589.     (getwd): Return directory in which Emacs started.
  5590.     (init_user_info): Set SHELL environment variable if not set.
  5591.     (parse_root, get_long_basename, w32_get_long_filename): New functions.
  5592.     (init_environment): Look for CMDPROXY.
  5593.     Make sure that PATH and COMSPEC are capitalized in the environment.
  5594.     Record startup directory.
  5595.     (get_emacs_configuration, sys_rename): Use OS_WIN95.
  5596.     (map_w32_filename): Calculate returned string correctly.
  5597.  
  5598.     (sys_fopen): Use _fdopen.
  5599.     (sys_link): Support NTFS links.
  5600.     (sys_rename): Use a long file name for temporary name.
  5601.     (sys_pipe): Make pipes binary and non-inheritable.
  5602.     (sys_read, sys_write): Spoof text mode translation for pipes 
  5603.     and sockets.
  5604.     
  5605.     (hashval): Simplify.
  5606.     (generate_inode_val): Use long file name version of file.
  5607.  
  5608.     (stat): Optimize by using active readdir info.
  5609.     Set fake_inode to 0 for directories.
  5610.     Set fake_inode to xor of file indexes for files.
  5611.     Don't use generate_inode_val to set inode value.
  5612.  
  5613.     (volume_info_data): Renamed from volume_info.
  5614.     (volume_info, fixed_drives, volume_cache): New variables.
  5615.     (DRIVE_INDEX, VOLINFO_STILL_VALID): New macros.
  5616.     (lookup_volume_info, add_volume_info, GetCachedVolumeInformation):
  5617.     New functions.
  5618.     (get_volume_info): Use volume_info_data.
  5619.     Use GetCachedVolumeInformation.    
  5620.  
  5621.     (init_ntproc): No longer restrict to one DOS subprocess.
  5622.     Use CRT _open and _fdopen.
  5623.     Cache fixed drive information.
  5624.     
  5625.     * w32.h: Remove debugging macros.
  5626.     (child_process): Remove is_dos_process field, add hwnd handle field.
  5627.     (FILE_LAST_CR): New macro.
  5628.     (w32_get_long_filename): Declare extern.
  5629.  
  5630.     * w32console.c: (DebPrint, reset_kbd, unset_kbd, take_console): 
  5631.     Delete functions.
  5632.     (keyboard_init_hook): Delete variable.
  5633.     (prev_console_cursor) [! USE_SEPARATE_SCREEN]: New variable.
  5634.     (reset_terminal_modes) [! USE_SEPARATE_SCREEN]: Reset cursor info.
  5635.     (initialize_w32_display) [USE_SEPARATE_SCREEN]: Create separate
  5636.     screen buffer.
  5637.     (ctrl_c_handler): Only ignore interrupts when interactive.
  5638.     (set_terminal_modes): Set input mode.
  5639.     (initialize_w32_display): Record original settings.
  5640.     Don't reset cursor or clear frame.
  5641.  
  5642.     * w32fns.c: Include limits.h and errno.h.
  5643.     Declare externs from other files.
  5644.     (w32_in_use): New variable.    
  5645.     (check_w32, have_menus_p, x_set_title, w32_msg_worker,
  5646.     find_deferred_msg, send_deferred_msg, complete_deferred_msg,
  5647.     Fw32_focus_frame, W32-send-sys-command): New functions.
  5648.     (last_mouse_movement_time): Delete variable.
  5649.  
  5650.     (x_frame_parms): Alphabetize.  Add title parm.
  5651.     (x_set_icon_name): Use title if set.
  5652.     (x_set_menu_bar_lines): Ensure client area remains the same.
  5653.     (x_set_name): Don't update if the name is the same.
  5654.     Use title for name if available.
  5655.     (x_icon): Initial support for creating window iconified.
  5656.     (x_display_info_for_name): Set w32_in_use.
  5657.     (Fx_open_connection): Validate Vwindow_system.  Set w32_in_use.
  5658.     
  5659.     (w32_create_window): Set window size to frame dimensions.
  5660.     Set font width, line height, border, scrollbar indexes.
  5661.     Don't set X and Y units indexes.
  5662.     (w32_msg_pump): Renamed from windows_msg_worker.
  5663.     Make static.  Don't post done message. No longer handle
  5664.     create scrollbar message.  Don't abort on anomalous messages.
  5665.     Return when completion detected.
  5666.     (w32_wnd_proc): Keep track of button state.    
  5667.     For WINDOWPOSCHANGING, force window dimensions to be multiples
  5668.     of character dimensions.
  5669.     Handle CREATESCROLLBAR.
  5670.     Use correct arguments for SHOWWINDOW.
  5671.     For SETWINDOWPOS, use WINDOWPOS structure.
  5672.  
  5673.     (my_create_window): Abort if message post fails.
  5674.     (Fx_create_frame): Use title instead of name.
  5675.     GC protect frame before make_frame_without_minibuffer.
  5676.     Set icon name.
  5677.     Use courier new as default font (has bold and italic).
  5678.     Set BufferPredicate and Title default parameters.
  5679.     
  5680.     (x_to_w32_weight): Support semibold weight.
  5681.     (x_to_w32_charset): Map # to numeric charset identifier.
  5682.     (w32_to_x_charset): Encode unknown charsets as a number.
  5683.     (enum_font_cb2): Don't restrict to ANSI and OEM charsets.
  5684.  
  5685.     (Fx_color_values): Set high and low words of color values.
  5686.  
  5687.     (syms_of_w32fns): Zero w32_in_use.  defsubr new functions.
  5688.  
  5689.     * w32heap.c (os_subtype): New variable.
  5690.     (cache_system_info): Set os_subtype.
  5691.     (recreate_heap): Update system information after loading heap.
  5692.  
  5693.     * w32heap.h: Enumerate operating system types.
  5694.     Declare extern data and functions.
  5695.     Move file_data struct definition here.
  5696.     (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): New macros.
  5697.  
  5698.     * w32inevt.c: Declare externs from other files.
  5699.     (w32_kbd_mods_to_emacs): New parameter KEY.
  5700.     Use w32-capslock-is-shiftlock for old behavior.
  5701.     (key_event): Pass in new parameter to w32_kbd_mods_to_emacs.    
  5702.     
  5703.     * w32menu.c (init_menu_items): Disable code.
  5704.     (x_activate_menubar): New function.
  5705.     (initialize_frame_menubar): Pass in new param to set_frame_menubar.
  5706.     
  5707.     * w32proc.c: Include w32heap.h.
  5708.     (Vw32_start_process_share_console, Vw32_generate_fake_inodes,
  5709.     Vw32_get_true_file_attributes, Qhigh, Qlow, process_dir): 
  5710.     New variables.
  5711.     (find_child_console, set_process_dir, Fw32_short_file_name,
  5712.     Fw32_long_file_name, Fw32_set_process_priority, Fw32_get_locale_info,
  5713.     Fw32_get_current_locale_id, Fw32_get_default_local_id, 
  5714.     Fw32_set_current_locale): New functions.
  5715.     (CORRECT_DIR_SEPS): New macro.
  5716.     (create_child): Create a new console if subprocs don't share parent's.
  5717.     (reap_subprocess): Don't check for dos subprocesses.  
  5718.     Add debug support.
  5719.     (sys_wait): Ignore socket child_procs.
  5720.     Check for quit while waiting.
  5721.     (w32_executable_type): Renamed from w32_is_dos_binary.
  5722.     Check for dos and Cygnus executables.
  5723.     (sys_spawnve): Always use cmdproxy if spawning a dos app.
  5724.     Use quotes to quote arguments for Cygnus apps, backslashes otherwise.
  5725.     Handle escape characters.  Escape quotes at start and end, too.
  5726.     (sys_select): Treat null timeout as infinite.
  5727.     Add handles of child processes.
  5728.     Loop over handles round robin to ensure fairness.
  5729.     (sys_kill): Send ctrl-break and ctrl-c keystrokes to subprocesses
  5730.     on SIGINT if not sharing consoles, otherwise generate ctrl-break event.
  5731.     On other termination signals, send WM_QUIT message to Win95 apps
  5732.     and WM_CLOSE to NT apps.
  5733.     (syms_of_ntproc): Intern new symbols.  defsubr new functions.
  5734.     DEFVAR new variables.
  5735.  
  5736.     * w32term.c (SIF_*): Win95 macros defined for NT.
  5737.     (struct tagSCROLLINFO): Win95 struct defined for NT.
  5738.     (vertical_scroll_bar_min_handle, vertical_scroll_bar_top_border,
  5739.      vertical_scroll_bar_bottom_border, last_scroll_bar_drag_pos,
  5740.      Vw32_gab_focus_on_raise, Vw32_capslock_is_shiftlock): New
  5741.      variables.
  5742.     (w32_frame_up_to_date): Block input.
  5743.     (do_line_dance): Use DC while erasing, release at end.
  5744.     (show_mouse_face): Use column and endcolumn calculated at start of
  5745.      loop.
  5746.     (my_create_scrollbar, my_show_window, my_set_window_pos,
  5747.      my_set_focus) [! ATTACH_THREADS]: Send message to window instead
  5748.      of invoking Windows procedure.
  5749.     (x_scroll_bar_create, x_scroll_bar_move, x_scroll_bar_handle_click,
  5750.     x_scroll_bar_report_motion): Use SCROLLINFO for proportional handle.
  5751.     (x_scroll_bar_set_handle): Create proportional sized scroll handle.
  5752.     (w32_set_vertical_scroll_bar): Size handle according to how much
  5753.     is showing in window.
  5754.     (x_scroll_bar_set_report_motion): Use top_range, calculated above.
  5755.     (x_scroll_bar_clear): Hide scroll bar until ready to repaint.
  5756.     (show_scroll_bars): Pass in frame to my_show_window.
  5757.  
  5758.     (w32_read_socket): Distinguish between invisible and obscured frames
  5759.     when handling PAINT messages.
  5760.     Fixup off-by-one calculation for PAINT and SIZE.
  5761.     Pass in new parameter to w32_kbd_mods_to_emacs.
  5762.      Handle WM_DISPLAYCHANGE, WINDOWPOSCHANGED, ACTIVATE, SHOWWINDOW,
  5763.      INITMENU, and ACTIVATEAPP messages.
  5764.     Explicitly check for visibile and obscured frames, and to see if 
  5765.     any event should cause a redisplay.
  5766.  
  5767.     (x_display_bar_cursor): Don't check whether frame is updating here.
  5768.     (x_display_cursor): Check it here instead.
  5769.     (x_set_offset) [HAVE_NTGUI]: Don't add border widths.
  5770.     Set NOACTIVATE when setting window position.
  5771.     (x_set_window_size): Fixup off-by-one calculation when setting
  5772.     window position.  Mark frame garbaged earlier.  Clear mouse
  5773.     highlighting state.
  5774.     (x_focus_on_frame): Set focus by making frame the foreground window.
  5775.     (x_raise_frame): Support frames to be raised without grabbing focus.
  5776.     (x_lower_frame): Set NOACTIVATE flag when setting window position.
  5777.     (x_make_frame_visible, x_make_frame_invisible): Pass in frame 
  5778.     to my_show_window.
  5779.     (x_iconify_frame): Send a MINIMIZE message to the window.    
  5780.     (x_wm_set_size_hint): Set font width, line height, border,
  5781.     and scroll bar indexes instead of X and Y unit indexes.
  5782.  
  5783.     (w32_initialize): Set input mode.  Use w32_msg_worker instead
  5784.     of windows_msg_worker.  Dynamically link proportional scroll bar
  5785.     functions and intialize proportional scroll bar variables.
  5786.     (syms_of_w32term): DEFVAR new variables.
  5787.  
  5788.     * w32term.h (w32_output): New fields menubar_widget, menubar_active,
  5789.     and pending_menu_activation.
  5790.     (VERTICAL_SCROLL_BAR_*): Use proportional scroll bar variables.    
  5791.     (W32WindowPos): Delete definition.
  5792.     (WM_EMACS_SETFOCUS, WND_*_INDEX): New macros.
  5793.     (deferred_msg): New structure.
  5794.  
  5795.     * w32xfns.c (have_menus_p): Move to w32fns.c.
  5796.  
  5797.     * s/ms-w32.h (INTERRUPT_INPUT): Don't define.
  5798.     (bcopy): Use memmove instead of memcpy.
  5799.     (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE): Define.
  5800.     Undef system calls before redefining.  Emulated calls redefined
  5801.     to sys_*, real calls redefined to _*.
  5802.     (DebPrint): Macro defined.
  5803.     
  5804. 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
  5805.  
  5806.     * w32term.h (WM_MOUSEWHEEL): Define if not already defined.
  5807.     Necessary for pre VC5.0 distribution.
  5808.      (WM_EMACS_TRACKPOPUPMENU): New Macro.
  5809.  
  5810.     * w32term.c (construct_mouse_wheel): New function.  Constructs an
  5811.     input event from a WM_MOUSEWHEEL message.
  5812.     (w32_read_socket): Handle WM_MOUSEWHEEL.
  5813.  
  5814.     * w32fns.c (win32_wnd_proc): Capture and handle WM_MOUSEWHEEL events.
  5815.     Capture and handle WM_EMACS_TRACKPOPUPMENU events.
  5816.     Allow a dragged selection from a popup menu started up 
  5817.     by a mouse down event.
  5818.     (x_to_win32_color): Support for X Windows RGB string specifications.
  5819.  
  5820.       * w32menu.c (get_frame_menubar_event): Check for the possibility
  5821.      of a menu-bar button.  A menu-bar button is a caption on the menu
  5822.      bar with no submenu.
  5823.      (set_frame_menubar): Correctly handle menu-bar buttons.
  5824.      (add_menu_item): Equiv parameter send and paid attention to.
  5825.      (keymap_panes, list_of_panes): Use CreatePopupMenu.
  5826.      (single_keymap_panes): Use CreatePopupMenu.  Send key descriptions
  5827.      to add_menu_item.
  5828.      (list_of_items): Use CreatePopupMenu.  Send nil description to
  5829.      add_menu_item.
  5830.      (get_menu_event): Send keymap instead of menu to get_keymap_event.
  5831.      (Fx_popup_menu): Extra parameter to mouse_position_hook.  Don't
  5832.      send address of menu to win32menu_show.
  5833.      (win32menu_show): Send message to call popup menu rather than
  5834.      trying directly.  get_menu_event should take an address.
  5835.     Call eat_mouse_events in order to get rid of any extraneous 
  5836.     mouse events.
  5837.      (list_of_panes): Only bring up one pane if the length of the list
  5838.      of panes is one.
  5839.  
  5840. 1997-09-02  Nico Francois  <nico.francois@scala.nl>
  5841.   
  5842.       * w32menu.c (single_keymap_panes): Fixed problem with 'descrip'
  5843.      lisp object not being protected properly (GCPRO).
  5844.       (get_single_keymap_event): Fixed problem with 'descrip' lisp
  5845.      object not being protected properly (GCPRO).
  5846.     (name_is_separator): New function.
  5847.     (list_of_panes): If a pane's name is empty ("") items are now
  5848.      placed in the main popup instead of a blank-named submenu.  This
  5849.      seems to be an undocumented feature of x-popup-menu.
  5850.       (list_of_items): New argument HMENU.
  5851.      Use 1 and 0 instead of Qt and Qnil for enable in add_menu_item
  5852.  
  5853. 1997-09-02  Geoff Voelker  <voelker@cs.washington.edu>
  5854.  
  5855.     * w32.c (init_environment): Don't look for INFOPATH.
  5856.  
  5857.      * w32fns.c (w32_wnd_proc): Pass on WM_DISPLAYCHANGE messages.
  5858.  
  5859.     * w32heap.c: Don't use data_seg pragma here.
  5860.     (_heap_init, _heap_term) [_MSC_VER >= 1000]: New functions that
  5861.     override CRT routines.
  5862.  
  5863.     * w32inevt.c (key_event): New parameter isdead. Set isdead if the
  5864.       key press was done using a dead key.
  5865.  
  5866.     * w32term.c (w32_read_socket): Pass in new parameter to key_event.
  5867.     Let key_event determine whether key is dead.
  5868.     For MOVE, use x_real_positions to map to client coords.
  5869.     (x_set_mouse_pixel_position): Offset to use client area as origin.
  5870.  
  5871.     * s/ms-w32.h: Use pragmas to place Emacs initialized data in
  5872.      EMDATA segment, and Emacs uninitialized data in EMBSS segment.
  5873.  
  5874. 1997-09-02  Andrew Innes  <andrewi@harlequin.co.uk>
  5875.  
  5876.     * fileio.c (Fadd_name_to_file) [WINDOWSNT]: Remove conditional.
  5877.  
  5878.     * frame.h (FRAME_OBSCURED_P): New macro.
  5879.     (FRAME_SAMPLE_VISIBILITY): Distinguish between invisible and obscured.
  5880.  
  5881.     * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]: Support
  5882.     menu_bar_activate_event.
  5883.     (set-input-mode) [DOS_NT]: Do not invoke reset and init sys modes.
  5884.  
  5885.     * sysdep.c (sys_subshell) [DOS_NT]: Save and restore parent's
  5886.     working directory.
  5887.     (sys_subshell) [WINDOWSNT]: Share MSDOS code. Don't take console.
  5888.     (init_sys_modes, reset_sys_modes) [WINDOWSNT]: Do it even with 
  5889.     a read_socket_hook.
  5890.  
  5891.     * xdisp.c (redisplay_internal): Check to see if frame is not obscured
  5892.     as well as visible.
  5893.     
  5894. 1997-09-02  Michael Welsh Duggan  <md5i@schenley.com>
  5895.  
  5896.     * lisp.h: Declare discard_mouse_events.
  5897.  
  5898.     * keyboard.c (Qmouse_wheel) [WINDOWSNT]: New variable.
  5899.     (discard_mouse_events): New function.
  5900.     (mouse_wheel_syms) [WINDOWSNT]: New variable.
  5901.     (lispy_mouse_wheel_names) [WINDOWSNT]: New variable.
  5902.     (make_lispy_event) [WINDOWSNT]: Make mouse-wheel events.
  5903.     (syms_of_keyboard) [WINDOWSNT]: Define Qmouse_wheel and
  5904.     mouse_wheel_syms.
  5905.  
  5906.     * termhooks.h (event_kind) [WINDOWSNT]: New event type: mouse_wheel.
  5907.  
  5908. 1997-09-02  Geoff Voelker  <voelker@cs.washington.edu>
  5909.  
  5910.     * fileio.c (Fexpand_file_name) [WINDOWSNT]: When stripping
  5911.     drive letter, be careful not to create a UNC filename.
  5912.  
  5913. 1997-09-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5914.  
  5915.     * coding.c (detect_coding_mask): Add in CODING_CATEGORY_MASK_RAW_TEXT
  5916.     in the detect_coding_iso2022 case.
  5917.  
  5918.     * minibuf.c (Fread_from_minibuffer, Fread_string): Doc fixes.
  5919.     (Fread_no_blanks_input, Fcompleting_read): Doc fixes.    
  5920.  
  5921.     * unexnext.c: Include unistd.h instead of libc.h.
  5922.  
  5923. 1997-09-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5924.  
  5925.     * s/hpux9.h (HAVE_RINT): Add #undef.
  5926.  
  5927.     * floatfns.c (emacs_rint): Define this,
  5928.     either as a function or as a macro for rint.
  5929.     (Fround, Ffround): Use emacs_rint, not rint directly.
  5930.  
  5931.     * window.c (syms_of_window): Doc fix.
  5932.  
  5933.     * fileio.c (Finsert_file_contents): Fix previous change--don't
  5934.     call Fboundp on Vset_auto_coding_function, just check non-nil.
  5935.  
  5936. 1997-09-01  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5937.  
  5938.     * alloc.c (free_float, free_cons): Don't use the same field for
  5939.     chaining as for marking.
  5940.     (make_float, Fcons, gc_sweep): Corresponding changes.
  5941.  
  5942. 1997-09-01  Kenichi Handa  <handa@etl.go.jp>
  5943.  
  5944.     * charset.h (LEADING_CODE_PRIVATE_22): Comment fixed.
  5945.  
  5946.     * process.c (read_process_output): Index for
  5947.     proc_encode_coding_system should be p->outfd (not `channel' which
  5948.     is p->infd).
  5949.  
  5950.     * fileio.c (Vset_auto_coding_function): Name changed from
  5951.     Vauto_file_coding_system.
  5952.     (syms_of_fileio): Adjusted for the above change.  Doc change.
  5953.     (Finsert_file_contents): The argument for Vset_auto_coding is a
  5954.     concatination of the heading 1K-byte and the tailing 3K-byte.
  5955.  
  5956.     * cmds.c (internal_self_insert): Only set TARGET_CLM when C2 is tab.
  5957.     When multibyte characters are disabled,
  5958.     use 1 as the width of the inserted character.
  5959.  
  5960. 1997-08-31  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  5961.  
  5962.     * category.c (describe_category): Handle a sub-chartable.
  5963.  
  5964. 1997-08-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5965.  
  5966.     * sysdep.c (init_system_name): Don't try to use getdomainname.
  5967.  
  5968. 1997-08-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5969.  
  5970.     * dispnew.c (change_frame_size_1): Save current buffer
  5971.     around calling Fset_window_buffer.
  5972.  
  5973.     * lread.c (Fload): Fix doc syntax.
  5974.  
  5975.     * m/intel386.h (HAVE_ALLOCA): Do define this, if SOLARIS2.
  5976.  
  5977. 1997-08-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5978.  
  5979.     * lread.c (Fload): If FILE arg ends in .el or .elc,
  5980.     don't insist on adding a suffix.
  5981.  
  5982. 1997-08-28  Eli Zaretskii  <eliz@is.elta.co.il>
  5983.  
  5984.     * callproc.c (Fcall_process): Set EOL conversion type to LF when
  5985.     binary-process-output is non-nil.
  5986.     (Fcall_process_region): binary-process-XXXput only determines EOL
  5987.     conversion; if it is nil, convert LF <-> CRLF.  Don't bind
  5988.     coding-system-for-read, it is done in Fcall_process.
  5989.  
  5990. 1997-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  5991.  
  5992.     * alloc.c (free_marker): Call unchain_marker.
  5993.  
  5994. 1997-08-28  Kenichi Handa  <handa@etl.go.jp>
  5995.  
  5996.     * coding.c (detect_eol): Do not select no-conversion even if EOL
  5997.     format of raw-text file is inconsistent.  Just read it by
  5998.     raw-text-unix.
  5999.     (Fdetect_coding_region): Do not select no-conversion even if EOL
  6000.     format of raw-text file is inconsistent.
  6001.     
  6002. 1997-08-28  Kenichi Handa  <handa@etl.go.jp>
  6003.  
  6004.     * coding.c (Qno_conversion, Qundecided): New variables.
  6005.     (syms_of_coding): Initialize and staticpro them.
  6006.     (coding_category_name): Include "coding-category-raw-test".
  6007.     (setup_coding_system): Handle coding_type_raw_text.
  6008.     (detect_coding_mask): Include CODING_CATEGORY_MASK_RAW_TEXT in the
  6009.     return value instead of CODING_CATEGORY_MASK_BINARY.
  6010.     (detect_coding): Do not check the case that `mask' is 0, which
  6011.     never happens now.
  6012.     (detect_eol_type): If EOL format is inconsistent, return
  6013.     CODING_EOL_INCONSISTENT.
  6014.     (detect_eol): If EOL format of raw-text file is inconsistent,
  6015.     detect it as no-conversion.
  6016.     (decode_coding): Handle coding_type_raw_text.
  6017.     (encode_coding): Likewise.
  6018.     (Fdetect_coding_region): Ajusted for the above changes.
  6019.     (shrink_conversion_area): Handle coding_type_raw_text.
  6020.  
  6021.     * coding.h (coding_type): New member coding_type_raw_text.
  6022.     (CODING_EOL_INCONSISTENT): New macro.
  6023.     (CODING_REQUIRE_NO_CONVERSION): Check also coding_type_raw_text.
  6024.     (CODING_MAY_REQUIRE_NO_CONVERSION): Likewise.
  6025.     (CODING_CATEGORY_IDX_RAW_TEXT): New macro.
  6026.     (CODING_CATEGORY_MASK_RAW_TEXT): New macro.
  6027.  
  6028. 1997-08-28  Eli Zaretskii  <eliz@psilocin.gnu.ai.mit.edu>
  6029.  
  6030.     * msdos.c: Add coding: tag, to prevent Emacs from interpreting
  6031.     binary strings.
  6032.  
  6033. 1997-08-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6034.  
  6035.     * xmenu.c (free_frame_menubar): Clear menubar_height field.
  6036.  
  6037. 1997-08-26  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6038.  
  6039.     * xdisp.c (redisplay_window): When trying to scroll conservatively,
  6040.     correctly take the scroll margin into account.
  6041.  
  6042.     * buffer.c: Include errno.h.
  6043.     (init_buffer) [HAVE_GETCWD]: Fix error message for getcwd failure.
  6044.  
  6045.     * fileio.c (Finsert_file_contents): Fix use of Fboundp.
  6046.  
  6047.     * fns.c (concat): Fix use of Fchar_bytes.
  6048.  
  6049.     * lisp.h: Declare Fchar_bytes.
  6050.  
  6051. 1997-08-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6052.  
  6053.     * minibuf.c (read_minibuf): Inherit enable-multibyte-characters
  6054.     along with the input method, if requested.
  6055.  
  6056. 1997-08-26  Eli Zaretskii  <eliz@is.elta.co.il>
  6057.  
  6058.     * xdisp.c (decode_mode_spec): For %Z and %z, put keyboard and
  6059.     terminal coding systems into modeline on MSDOS frames as well.
  6060.  
  6061. 1997-08-26  Kenichi Handa  <handa@etl.go.jp>
  6062.  
  6063.     * minibuf.c (Qcurrent_input_method, Qactivate_input_method): New vars.
  6064.     (syms_of_minibuf): Intern and staticpro them.
  6065.     (read_minibuf): New argument INHERIT_INPUT_METHOD.  If it is
  6066.     nonzero, remember the current input method in INPUT_METHOD, and
  6067.     activate it after switching to the minibuffer.
  6068.     (Fread_from_minibuffer): New argument INHERIT_INPUT_METHOD.
  6069.     (Fread_minibuffer): Call read_minibuf with INHERIT_INPUT_METHOD nil.
  6070.     (Fread_string): New argument INHERIT_INPUT_METHOD.
  6071.     (Fread_no_blanks_input): Likewise.
  6072.     (Fread_command): Call Fcompleting_read with INHERIT_INPUT_METHOD nil.
  6073.     (Fread_function, Fread_variable, Fread_buffer): Likewise
  6074.     (Fcompleting_read): New argument INHERIT_INPUT_METHOD.
  6075.  
  6076.     * lisp.h (DEFUN_ARGS_8): New macro.
  6077.     (Fcompleting_read, Fread_from_minibuffer, Fread_string,
  6078.     Fread_no_blanks_input): Number of arguments fixed.
  6079.  
  6080.     * eval.c (Feval): Handle a subr which takes 8 arguments.
  6081.     (Ffuncall): Likewise.
  6082.  
  6083.     * coding.c (Fread_non_nil_coding_system): Supply the arg
  6084.     INHERIT-INPUT-METHOD to Fcompleting_read.
  6085.     (Fread_coding_system): Likewise.
  6086.  
  6087.     * callint.c (Finteractive): Document the code letter `M'.
  6088.     (Fcall_interactively): Call Fcompleting_read,
  6089.     Fread_from_minibuffer, and Fread_string with a proper value for
  6090.     the arg INHERIT-INPUT-METHOD.  Handle the code letter `M'.
  6091.  
  6092.     * fileio.c (Fwrite_region): Convert EOL format even if
  6093.     enable-multibyte-characters is nil.
  6094.     (Fread_file_name): Call Fcompleting_read with INHERIT-INPUT-METHOD
  6095.     nil.
  6096.  
  6097.     * keyboard.c (Fexecute_extended_command): Call Fread_from_minibuffer
  6098.     with INHERIT-INPUT-METHOD nil.
  6099.  
  6100.     * fns.c (Fyes_or_no_p): Likewise.
  6101.  
  6102.     * mocklisp.c (Fml_arg): Call Fread_string with
  6103.     INHERIT-INPUT-METHOD nil.
  6104.  
  6105.     * search.c (Fsearch_backward): Inherit the current input method on
  6106.     reading STRING.
  6107.     (Fsearch_forward): Likewise.
  6108.  
  6109. 1997-08-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6110.  
  6111.     * frame.c (Fframe_pixel_height): Doc fix.
  6112.  
  6113.     * Makefile.in (emacs): Put dash at beginning.
  6114.  
  6115. 1997-08-24  NIIBE Yutaka  <gniibe@mri.co.jp>
  6116.  
  6117.     * Makefile.in (xrdb.o): Depend on paths.h.
  6118.  
  6119. 1997-08-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6120.  
  6121.     * config.in (KERBEROS5, HAVE_LIBKRB4, HAVE_LIBDES425, HAVE_LIBKRB5)
  6122.     (HAVE_LIBCRYPTO, HAVE_LIBCOM_ERR, HAVE_KRB5_H, HAVE_DES_H, HAVE_KRB_H)
  6123.     (HAVE_KERBEROSIV_DES_H, HAVE_KERBEROSIV_KRB_H, HAVE_KERBEROS_DES_H)
  6124.     (HAVE_KERBEROS_KRB_H, HAVE_COM_ERR_H): Add undefs.
  6125.  
  6126.     * callproc.c (init_callproc): Don't warn about missing
  6127.     arch-dep data directory, while preparing to dump.
  6128.  
  6129.     * puresize.h (BASE_PURESIZE): Increased by 10k.
  6130.  
  6131. 1997-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6132.  
  6133.     * Makefile.in (LIB_MOTIF_EXTRA): New variable.
  6134.     (LIBW): Use LIB_MOTIF_EXTRA.
  6135.     * config.in (HAVE_MOTIF_2_1): Add #undef.
  6136.  
  6137.     * fileio.c (Fmake_temp_name): Doc fix.
  6138.  
  6139.     * buffer.c (syms_of_buffer): Doc fixes.
  6140.  
  6141. 1997-08-21  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6142.  
  6143.     * xdisp.c (redisplay_window): Don't try using last_point_x
  6144.     if point is in the left margin of an hscroll'ed window.
  6145.  
  6146. 1997-08-21  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6147.  
  6148.     * fileio.c (syms_of_fileio): Fix previous change.
  6149.  
  6150.     * coding.c (detect_eol): If the coding system is an alias, get
  6151.     eol-type from the base of it.
  6152.  
  6153. 1997-08-21  Kenichi HANDA  <handa@etl.go.jp>
  6154.  
  6155.     * fileio.c (Vauto_file_coding_system_function): New variable.
  6156.     (Finsert_file_contents): Decide coding system after opening a
  6157.     file.  Call functions set in Vauto_file_coding_system_function.
  6158.     (syms_of_fileio): Declare auto-file-coding-system-function as a
  6159.     Lisp variable.
  6160.  
  6161.     * fontset.c (Valternate_fontname_alist): Name changed from
  6162.     Valternative_fontname_alist.
  6163.     (syms_of_fontset): Adjusted for the above change.
  6164.     
  6165.     * fontset.h: Adjusted for the name change of
  6166.     Valternate_fontname_alist.
  6167.  
  6168.     * xterm.c (x_list_fonts): Adjusted for the name change of
  6169.     Valternate_fontname_alist.
  6170.  
  6171. 1997-08-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6172.  
  6173.     * charset.c (Fchars_in_region): Fix gap handling.
  6174.  
  6175.     * editfns.c (NULL): Define, if not defined.
  6176.  
  6177. 1997-08-19  Geoff Voelker  <voelker@cs.washington.edu>
  6178.  
  6179.     * fileio.c (Finsert_file_contents): Fix previous change.
  6180.  
  6181. 1997-08-18  Ken'ichi Handa  <handa@albert.gnu.ai.mit.edu>
  6182.  
  6183.     * charset.c (Fchars_in_region): Renamed form Fcount_chars_region.
  6184.     (syms_of_charset): Define Schars_in_region as a Lisp subroutine
  6185.     instead of Scount_chars_region.
  6186.  
  6187. 1997-08-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6188.  
  6189.     * fileio.c (Fdo_auto_save): If open fails, make lispstream nil.
  6190.  
  6191. 1997-08-16  Geoff Voelker  <voelker@cs.washington.edu>
  6192.  
  6193.     * fileio.c (Finsert_file_contents) [DOS_NT]: Set buffer_file_type
  6194.     according to eol conversion used on file.
  6195.  
  6196. 1997-08-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6197.  
  6198.     * Makefile.in (xselect.o): Fix previous change.
  6199.  
  6200.     * minibuf.c (read_minibuf): New arg disable_multibyte.
  6201.     (Fcompleting_read): Pass 1 for disable_multibyte if
  6202.     the completion table is read-file-name-internal.
  6203.  
  6204.     * xrdb.c: Include paths.h.
  6205.     (get_system_app): Use PATH_X_DEFAULTS.
  6206.  
  6207.     * paths.in (PATH_X_DEFAULTS): New macro.
  6208.  
  6209.     * term.c (term_get_fkeys_1): Use kH as alternate for move-to-last-line.
  6210.  
  6211.     * charset.c: Many doc fixes.
  6212.     (Fcount_chars_region): New function.
  6213.     (min, max): New macros.
  6214.  
  6215.     * fns.c (Flength): Doc fix.
  6216.  
  6217.     * editfns.c (Fchar_before): Do range check before decrement.
  6218.  
  6219. 1997-08-16  Kenichi Handa  <handa@etl.go.jp>
  6220.  
  6221.     * coding.h (CODING_FLAG_ISO_LATIN_EXTRA): New macro.
  6222.  
  6223.     * coding.c (Vmicrosoft_code_table): This variable deleted.
  6224.     (Vlatin_extra_code_table): New variable.
  6225.     (detect_coding_iso2022): Pay attention to Vlatin_extra_code_table.
  6226.     (detect_coding_mask): Likewise.
  6227.     (setup_coding_system): Handle a new FLAGS element
  6228.     ACCEPT-LATIN-EXTRA-CODE.
  6229.     (syms_of_coding): Delete code for Vmicrosoft_code_table.
  6230.     Declare latin-extra-code-table as Lisp variable, and initialize.
  6231.  
  6232. 1997-08-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6233.  
  6234.     * Makefile.in (xselect.o): Depend on coding.h.
  6235.  
  6236.     * s/osf1.h (SOCKLEN_TYPE): New macro definition.
  6237.  
  6238. 1997-08-14  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6239.  
  6240.     * xdisp.c (COERCE_MARKER): Use Fmarker_position instead of
  6241.     marker_position so that it works with a marker that points nowhere.
  6242.     (redisplay_window): Check that Voverlay_arrow_position is a
  6243.     marker before accessing it as such.
  6244.  
  6245. 1997-08-14  Eli Zaretskii  <eliz@is.elta.co.il>
  6246.  
  6247.     * emacs.c (main): Update re_max_failures so regex.c won't overflow
  6248.     the stack, except when dumping.
  6249.  
  6250. 1997-08-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6251.  
  6252.     * xdisp.c (redisplay_window): When handling just cursor motion,
  6253.     do not subtract hscroll when accessing last_point_x.
  6254.     (display_text_line): Add WINDOW_LEFT_MARGIN into hpos
  6255.     later on, after handling hscroll and minibuffer prompt.
  6256.  
  6257. 1997-08-13  Eli Zaretskii  <eliz@psilocin.gnu.ai.mit.edu>
  6258.  
  6259.     * msdos.c (syms_of_msdos): Define and bind x-bitmap-file-path and
  6260.     delete-exited-processes, to prevent cus-start.el from complaining.
  6261.  
  6262. 1997-08-13  Kazushi (Jam) Marukawa  <maru@pdapsun2.trc.rwcp.or.jp>
  6263.  
  6264.     * filelock.c (lock_file): Use %lu instead of %d in sprintf because
  6265.     the variable named pid is unsigned long.
  6266.  
  6267.     * unexalpha.c (unexec): Cast arg to fprintf.
  6268.  
  6269. 1997-08-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6270.  
  6271.     * alloc.c (free_marker): New function.
  6272.  
  6273.     * insdel.c (signal_before_change): Relocate START and END
  6274.     using markers for subsequent functions, when we run a function.
  6275.  
  6276.     * Makefile.in (emacs): Warn about shadowed standard libraries here.
  6277.  
  6278. 1997-08-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6279.  
  6280.     * emacs.c (main): Fix previous change.
  6281.  
  6282. 1997-08-11 +03  Eli Zaretskii  <eliz@is.elta.co.il>
  6283.  
  6284.     * dosfns.c (init_dosfns): Avoid calling DOS memory-allocation
  6285.     service, NT DPMI server will crash Emacs in DOS box, if we do.
  6286.  
  6287.     * msdos.c (IT_set_frame_parameters): Actually store the frame
  6288.     parameters in the frame parameters' alist.
  6289.  
  6290.     * msdos.c (init_environment): Set Emacs root directory properly when
  6291.     the executable is in its `src' subdirectory, as under a debugger.
  6292.     (IT_set_face): If termscript is in use, print the number of the
  6293.     face as well.
  6294.  
  6295. 1997-08-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6296.  
  6297.     * emacs.c (main) [__FreeBSD__ && PROFILING]: Add code for profiling.
  6298.  
  6299. 1997-08-10  Eli Zaretskii  <eliz@is.elta.co.il>
  6300.  
  6301.     * msdos.c (Qbackground_color, Qforeground_color): Define vars.
  6302.  
  6303.     * dosfns.c (Finsert_startup_screen): Call `insert_char' with a
  6304.     single argument.
  6305.  
  6306. 1997-08-10  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6307.  
  6308.     * coding.h (struct iso2022_spec): New member expected_charsets.
  6309.     (CODING_SPEC_ISO_EXPECTED_CHARSETS): New macro.
  6310.  
  6311.     * coding.c (Fset_terminal_coding_system_internal): Set
  6312.     CODING_FLAG_ISO_SAFE in terminal_coding.flags.
  6313.     (ENCODE_ISO_CHARACTER_DIMENSION1): Check
  6314.     CODING_SPEC_ISO_EXPECTED_CHARSETS.
  6315.     (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
  6316.  
  6317. 1997-08-10  Kenichi Handa  <handa@etl.go.jp>
  6318.  
  6319.     * term.c (encode_terminal_code): Use safe_terminal_coding if
  6320.     terminal_coding seems to encode Emacs' internal code as is.
  6321.     (write_glyphs): Likewise.
  6322.  
  6323.     * coding.c (ENCODE_ISO_CHARACTER_DIMENSION1): Pay attention to
  6324.     CODING_FLAG_ISO_SAFE.
  6325.     (ENCODE_ISO_CHARACTER_DIMENSION2): Likewise.
  6326.     (safe_terminal_coding): New variable.
  6327.     (Fset_safe_terminal_coding_system_internal): New function.
  6328.     (init_coding_once): Initilize safe_terminal_coding.
  6329.     (syms_of_coding): Declare set-safe-terminal-coding-system as a
  6330.     Lisp function.
  6331.  
  6332.     * coding.h (CODING_FLAG_ISO_SAFE): New macro.
  6333.     (CODING_INHIBIT_CHARACTER_SUBSTITUTION): New macro.
  6334.     coding.h (safe_terminal_coding): Extern it.
  6335.  
  6336. 1997-08-10  Kenichi Handa  <handa@etl.go.jp>
  6337.  
  6338.     * coding.c (Vmicrosoft_code_table): New variable.
  6339.     (syms_of_coding): Declare it as a Lisp variable and initialize it.
  6340.     (detect_coding_mask): Pay attention to Vmicrosoft_code_table.
  6341.  
  6342.     * xterm.c (dumpglyphs): Pay attention to
  6343.     Vignore_relative_composition.
  6344.  
  6345.     * fontset.h (Vignore_relative_composition): Extern it.
  6346.  
  6347.     * fontset.c (Vignore_relative_composition): New variable.
  6348.     (syms_of_fontset): Doc-string of use-default-ascent modified.
  6349.     Declare ignore-relative-composition as a Lisp variable.
  6350.  
  6351.     * fns.c (concat): Pay attention to multibyte characters when
  6352.     TARGET_TYPE is Lisp_String.
  6353.  
  6354. 1997-08-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6355.  
  6356.     * sysdep.c (init_system_name): If domain is null, don't add a period.
  6357.  
  6358. 1997-08-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6359.  
  6360.     * buffer.c (init_buffer): Use getcwd instead of getwd, if available.
  6361.  
  6362.     * eval.c (do_autoload): Require a suffix for the file.
  6363.  
  6364.     * lread.c (read1): Handle read_escape making a multibyte character.
  6365.  
  6366.     * strftime.c (gmtime_r, localtime_r): Undef before defining.
  6367.  
  6368.     * fns.c (Frequire): Don't insist on a suffix
  6369.     if the file name argument was explicitly specified.
  6370.  
  6371. 1997-08-07  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6372.  
  6373.     * Makefile.in (lisp, shortlisp): Add bindings.el and case-table.elc.
  6374.  
  6375.     * xdisp.c (redisplay_window): Fix access to w->last_point{,_[xy]}.
  6376.  
  6377.     * lisp.h (Flocal_variable_p, Ffind_operation_coding_system): Declared.
  6378.     (find_symbol_value): Fix declaration.
  6379.  
  6380. 1997-08-07  Erik Naggum  <erik@naggum.no>
  6381.  
  6382.     * emacs.c (main): Remove call to init_filelock.
  6383.     * filelock.c (init_filelock): Function deleted.
  6384.     * paths.in (PATH_LOCK): Definition deleted.
  6385.  
  6386. 1997-08-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6387.  
  6388.     * xrdb.c (X_DEFAULT_SEARCH_PATH): Add /usr/X11R6/lib alternatives.
  6389.  
  6390.     * editfns.c (Fwiden, Fnarrow_to_region, save_restriction_restore): 
  6391.     Don't set clip_changed if the new values are the same as the old.
  6392.  
  6393.     * fileio.c (Fwrite_region): Turn off the feature of checking
  6394.     whether another buffer has locked this file.
  6395.  
  6396.     * xdisp.c (COERCE_MARKER): New macro.
  6397.     (redisplay_internal): Coerce Voverlay_arrow_position to a number
  6398.     to record it in last_arrow_position.
  6399.     (mark_window_display_accurate, redisplay_window): Likewise.
  6400.     (redisplay_window): Don't do the "only point has change" optimization
  6401.     if the overlay arrow is in this buffer.
  6402.  
  6403. 1997-08-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6404.  
  6405.     * unexelf.c (unexec): Cast 1st arg in mmap calls.
  6406.  
  6407.     * sysdep.c (init_sys_modes) [mips || HAVE_TCATTR]:
  6408.     Handle flow_control by setting VSTART and VSTOP characters.
  6409.  
  6410.     * filelock.c (lock_file_1, lock_file): Add casts.
  6411.  
  6412.     * xselect.c (syms_of_xselect): Doc syntax fixes.
  6413.  
  6414.     * coding.c (syms_of_coding): Doc syntax fixes.
  6415.  
  6416.     * xdisp.c (redisplay_internal): Count only visible frames at first.
  6417.  
  6418.     * xdisp.c (redisplay_internal): Count all visible frames in new_count.
  6419.  
  6420. 1997-08-05  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6421.  
  6422.     * coding.c (detect_eol_type): Fix previous change.
  6423.  
  6424. 1997-08-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6425.  
  6426.     * fontset.c (syms_of_fontset): Doc fixes.
  6427.  
  6428. 1997-08-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6429.  
  6430.     * indent.c (current_column): Update ptr differently at newline
  6431.     so that current_column_bol_cache is set properly.
  6432.  
  6433. 1997-08-04  Kenichi Handa  <handa@etl.go.jp>
  6434.  
  6435.     * coding.c (detect_eol_type): If EOL representation does not
  6436.     seem consistent, use no conversion.
  6437.  
  6438.     * process.c (Fset_process_coding_system): Doc-string modified.
  6439.     (Fprocess_coding_system): Likewise.
  6440.  
  6441.     * callproc.c (Fcall_process_region): Use cdr part (not car part)
  6442.     of Vdefault_process_coding_system for writing out text.
  6443.  
  6444.     * coding.c (detect_coding_iso2022): Do not exclude posibility of
  6445.     7-bit encoding when designation to G1 occurs.  If CSI, SS2, or SS3
  6446.     is found, return CODING_CATEGORY_MASK_ISO_8_ELSE.
  6447.     (Fdetect_coding_region): Doc-string modified.
  6448.  
  6449. 1997-08-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6450.  
  6451.     * xfaces.c (merge_face_list): New function.
  6452.     (compute_char_face): Use merge_face_list.
  6453.     Allow (foreground-color . COLOR) and (background-color . COLOR)
  6454.     in place of a face.
  6455.  
  6456. 1997-08-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6457.  
  6458.     * m/intel386.h (HAVE_ALLOCA): Don't define this
  6459.     on USG5_4 if not using GNU C.
  6460.  
  6461.     * xdisp.c (redisplay_internal): Count number of visible frames
  6462.     instead of number of frames that were redisplayed.
  6463.  
  6464.     * m/ibmrs6000.h (LD_SWITCH_MACHINE):
  6465.     Add #ifdef emacs around all the definitions of this.
  6466.  
  6467.     * lisp.h (Fload): Update declaration.
  6468.  
  6469. 1997-08-03  Kenichi HANDA  <handa@etl.go.jp>
  6470.  
  6471.     * coding.h (CODING_CATEGORY_MASK_BINARY): New macro.
  6472.  
  6473.     * coding.c (detect_coding_mask): Include
  6474.     CODING_CATEGORY_MASK_BINARY in the return value if any 8-bit code
  6475.     is found.
  6476.  
  6477.     * xfns.c (x_set_frame_parameters): Heading comment fixed.
  6478.     (x_default_parameter): Likewise.
  6479.  
  6480.     * xselect.c (Vclipboard_coding_system): New variable.
  6481.     (selection_data_to_lisp_data): Decode text by
  6482.     Vclipboard_coding_system.
  6483.     (lisp_data_to_selection_data): Encode text by
  6484.     Vclipboard_coding_system.
  6485.     (syms_of_xselect): Declare clipboard-coding-system as Lisp
  6486.     variable and initialize it.
  6487.  
  6488. 1997-08-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6489.  
  6490.     * coding.c: Doc fixes.
  6491.     
  6492.     * lread.c (Fload): New optional arg MUST-SUFFIX.
  6493.     * fns.c (Frequire): Pass t for the MUST-SUFFIX arg to Fload.
  6494.     * eval.c (do_autoload): Pass new arg to Fload.
  6495.  
  6496.     * indent.c (compute_motion): Correct the criterion for when to
  6497.     move back 1 space when we terminate just after continuing the line.
  6498.  
  6499. 1997-07-31  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6500.  
  6501.     * coding.c (encode_coding_iso2022): When source data ends not at
  6502.     character boundardy, set data in coding->carryover correctly, and
  6503.     set SRC to SRC_END.
  6504.     (encode_coding_sjis_big5): Likewise.
  6505.     (encode_coding): Don't set coding->carryover_size to 0.
  6506.  
  6507.     * fileio.c (Fwrite_region): Don't try to flush out a data twice.
  6508.  
  6509. 1997-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6510.  
  6511.     * xdisp.c (redisplay_window): Fix previous change.
  6512.  
  6513.     * dispnew.c (direct_output_for_insert): Set last_point_x properly.
  6514.  
  6515. 1997-07-31  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6516.  
  6517.     * xterm.c (x_list_fonts): Request at least 10 fonts by XListFonts.
  6518.  
  6519.     * coding.c (encode_coding_iso2022): Write out invalid multibyte
  6520.     forms in a buffer as is.
  6521.     (detect_coding_mask): If ISO_CODE_CSI appears in an invalid
  6522.     sequence, ignore it.
  6523.  
  6524. 1997-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6525.  
  6526.     * xdisp.c (redisplay_window): Fix one-off in handling
  6527.     scroll-conservatively for scrolling up.
  6528.  
  6529.     * filelock.c (current_lock_owner): Don't try to delete lock
  6530.     if this or another existing process owns it!
  6531.  
  6532. 1997-07-31  enami tsugutomo  <enami@but-b.or.jp>
  6533.  
  6534.     * process.c (read_process_output): Don't call setup_coding_system
  6535.     for proc_decode_coding_system[channel].  It is already done in
  6536.     detect_coding called via decode_coding.
  6537.  
  6538. 1997-07-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6539.  
  6540.     * filelock.c (lock_if_free): Don't loop; for strange error, return -1.
  6541.  
  6542.     * s/sunos4shr.h (LIBXMU): Alternative definition if CANNOT_DUMP.
  6543.  
  6544.     * Makefile.in (LDFLAGS, CPPFLAGS): Get them from configure like CFLAGS.
  6545.  
  6546. 1997-07-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6547.  
  6548.     * process.c (wait_reading_process_input): Call detect_input_pending
  6549.     whenever read_kbd is 0, not just when wait_for_cell.
  6550.  
  6551.     * xdisp.c (decode_mode_spec_coding): If multibyte chars disabled.
  6552.     display only the eol flag.
  6553.  
  6554. 1997-07-29  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6555.  
  6556.     * xterm.c (x_list_fonts): Reject a font whose min_bounds.width is 0.
  6557.     
  6558. 1997-07-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6559.  
  6560.     * emacs.c (sort_args): Check properly for `--'.
  6561.  
  6562.     * xdisp.c (redisplay_window): Fix previous change.
  6563.  
  6564.     * cm.h, sysdep.c, terminfo.c [HAVE_LIBNCURSES]:
  6565.     Declare ospeed as short, unless NCURSES_OSPEED_T.
  6566.  
  6567.     * xdisp.c (redisplay_window): When text has not changed,
  6568.     call compute_motion starting from the former PT if possible.
  6569.     If PT is unchanged from w->last_point, don't do compute_motion at all.
  6570.  
  6571. 1997-07-28  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6572.  
  6573.     * editfns.c (Fformat_time_string): Don't hang if strftime produces
  6574.     an empty string.  Fix arguments of second call to strftime.
  6575.     Remove check for result being negative, this cannot happen.
  6576.  
  6577.     * xterm.c (x_new_font): Follow the change in
  6578.     x_set_scroll_bar_width and make the scroll bar at least 14 pixels
  6579.     wide.
  6580.  
  6581.     * xfns.c (Fx_create_frame): Initialize fontset in output_data.
  6582.  
  6583. 1997-07-28  Dan Nicolaescu  <done@ece.arizona.edu>
  6584.  
  6585.     * charset.c (non_ascii_char_to_string): Fix typos.
  6586.  
  6587. 1997-07-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6588.  
  6589.     * callproc.c (syms_of_callproc):
  6590.     Don't init Vtemp_file_name_pattern here.
  6591.  
  6592.     * lread.c (map_obarray): Don't crash if something strange
  6593.     is in the obarray.
  6594.  
  6595. 1997-07-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6596.  
  6597.     * xterm.c (x_term_init) [! HAVE_X11R5]: Don't try to use
  6598.     XtCvtStringToFont.
  6599.  
  6600.     * print.c (strout, printchar): Handle minibuffer_auto_raise.
  6601.  
  6602. 1997-07-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6603.  
  6604.     * fileio.c (Fwrite_region): Fix previous change.
  6605.  
  6606. 1997-07-25  NIIBE Yutaka  <gniibe@mri.co.jp>
  6607.  
  6608.     * indent.c (compute_motion): Handle display table correctly for
  6609.     multibyte characters.
  6610.  
  6611. 1997-07-25  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
  6612.  
  6613.     * fontset.c (syms_of_fontset): Set Vhighlight_wrong_size_font to
  6614.     Qnil.
  6615.  
  6616.     * coding.h (CODING_REQUIRE_TEXT_CONVERSION,
  6617.     CODING_REQUIRE_EOL_CONVERSION, CODING_REQUIRE_CONVERSION): Deleted.
  6618.     (CODING_REQUIRE_NO_CONVERSION): New macro.
  6619.     (CODING_MAY_REQUIRE_NO_CONVERSION): New macro.
  6620.  
  6621.     * fileio.c (Finsert_file_contents): Use new macros
  6622.     CODING_MAY_REQUIRE_NO_CONVERSION and
  6623.     CODING_MAY_REQUIRE_NO_CONVERSION.
  6624.     (Fwrite_region): Correct the logic for deciding coding system.
  6625.  
  6626.     * process.c (read_process_output): Use new macro
  6627.     CODING_REQUIRE_NO_CONVERSION
  6628.     (send_process): Use new macro CODING_MAY_REQUIRE_NO_CONVERSION.
  6629.  
  6630.     * xterm.c (dumpglyphs): Check the member `encoding' of *FONTP while
  6631.     setting `byte1' and `byte2' members of *CP.
  6632.  
  6633. 1997-07-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6634.  
  6635.     * Makefile.in (${lispsource}TAGS): Specify ETAGS var in inner make.
  6636.  
  6637.     * print.c (Vprint_gensym_alist): Renamed from printed_gensyms.
  6638.     (Vprint_gensym): Now a Lisp_Object; Renamed from print_gensym.
  6639.     (syms_of_print): Set up both as Lisp vars.
  6640.     (PRINTPREPARE, PRINTFINISH): Don't clear Vprint_gensym_alist
  6641.     if Vprint_gensym is a cons cell.
  6642.  
  6643.     * Makefile.in (../src/$(OLDXMENU)): New target.
  6644.  
  6645.     * xselect.c (selection_data_to_lisp_data):
  6646.     Make the vector the right size, when format is 16.
  6647.  
  6648.     * emacs.c (main): Make --help msg end in newline.
  6649.  
  6650.     * xfns.c (Fx_create_frame): Don't fail to initialize `font'.
  6651.  
  6652.     * syntax.c (Fforward_comment): When count1 is negative,
  6653.     return nil if FROM reaches STOP.
  6654.  
  6655.     * editfns.c (Fcurrent_message): New function.
  6656.     (syms_of_editfns): defsubr it.
  6657.  
  6658. 1997-07-23  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  6659.  
  6660.     * xterm.c (XTread_socket): Trap the BadMatch error that can occur
  6661.     after a XSetInputFocus if window is not visible.
  6662.  
  6663. 1997-07-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6664.  
  6665.     * xterm.c (XTread_socket) <ClientMessage>: Use FRAME_X_WINDOW
  6666.     when calling XSetInputFocus.
  6667.  
  6668.     * buffer.c (syms_of_buffer): Doc fix.
  6669.  
  6670.     * eval.c (syms_of_eval): Doc fix.
  6671.  
  6672. 1997-07-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6673.  
  6674.     * xdisp.c (display_text_line): Don't count minibuf_prompt_width
  6675.     twice in taboffset.
  6676.  
  6677.     * coding.c (syms_of_coding): Doc fix.
  6678.  
  6679. 1997-07-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6680.  
  6681.     * s/sol2.h (LIBS_SYSTEM): Undo previous change.
  6682.     (HAVE_LIBKSTAT): Define it.
  6683.  
  6684.     * minibuf.c (choose_minibuf_frame_1): New function.
  6685.     (read_minibuf): Make an unwind protect to run that.
  6686.     (read_minibuf_unwind): Don't call choose_minibuf_frame here.
  6687.  
  6688.     * keyboard.c (read_char): Delete spurious UNGCPRO.
  6689.     Add UNGCPRO before the longjmps to wrong_kboard_jmpbuf.
  6690.     Initialize c before the GCPRO1.
  6691.     
  6692.     * frame.c (Fdelete_frame): Undo previous change.
  6693.  
  6694.     * s/hpux8.h (LD_SWITCH_SYSTEM_TEMACS): Define this
  6695.     instead of LD_SWITCH_SYSTEM.
  6696.     
  6697.     * window.c (set_window_height): Allow all heights > 0
  6698.     for minibuffer windows.
  6699.     (change_window_height): Fix one-off comparing DELTA with MAXIMUM.
  6700.  
  6701.     * xfns.c (Fx_create_frame): Default vertical-scroll-bars
  6702.     as symbol, not boolean.
  6703.  
  6704. 1997-07-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6705.  
  6706.     * process.c (wait_reading_process_input): Initialize total_read.
  6707.     Check for read_process_output giving back EIO.
  6708.  
  6709.     * keyboard.c (Fcommand_execute): gcpro c.
  6710.  
  6711. 1997-07-20  Geoff Voelker  <voelker@cs.washington.edu>
  6712.  
  6713.     * w32term.c (w32_clear_end_of_line): Include scroll bar width.
  6714.  
  6715. 1997-07-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6716.  
  6717.     * s/irix6-0.h: Undo previous change.
  6718.  
  6719.     * xterm.c (XTread_socket) <ClientMessage>:
  6720.     Don't use FRAME_XIC if it is null, here.
  6721.  
  6722.     * puresize.h (BASE_PURESIZE): Increased to 410000.
  6723.  
  6724.     * xdisp.c (redisplay_internal): Calculate new_count properly
  6725.     for non-window displays.
  6726.  
  6727. 1997-07-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6728.  
  6729.     * minibuf.c (Fcompleting_read): gcpro def.
  6730.  
  6731.     * xterm.c (XTread_socket) <ClientMessage>:
  6732.     For wm_take_focus, use x_any_window_to_frame.
  6733.  
  6734.     * fileio.c (Fread_file_name): If Fcompleting_read return the default
  6735.     because the buffer want empty, replace that with an empty string.
  6736.  
  6737. 1997-07-18  Simon Marshall  <simon@diazepam.gnu.ai.mit.edu>
  6738.  
  6739.     * data.c: Many doc fixes.
  6740.  
  6741. 1997-07-17  Geoff Voelker  <voelker@cs.washington.edu>
  6742.  
  6743.     * coding.c (Ffind_operation_coding_system): Use Ffboundp to
  6744.     check for a function entry.
  6745.  
  6746.     * fileio.c (Finsert_file_contents) [DOS_NT]: Use the coding
  6747.     system to determine buffer_file_type.
  6748.     (Fwrite_region): Only use Qbuffer_file_coding_system
  6749.     before checking file-coding-system-alist if non-nil.
  6750.     (Fwrite_region) [DOS_NT]: Delete conditional code.
  6751.  
  6752. 1997-07-17  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6753.  
  6754.     * dispnew.c (direct_output_forward_char): Reenable check against
  6755.     truncated text at end of line.
  6756.  
  6757.     * xdisp.c (display_string): Ignore W->left if OBEY_WINDOW_WIDTH is
  6758.     zero.
  6759.  
  6760. 1997-07-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6761.  
  6762.     * xterm.c (dumpglyphs): Use 8-bit output to X, rather than 16-bit,
  6763.     if the character values permit that.
  6764.  
  6765.     * .gdbinit (xcar, xcdr): Print with /x.
  6766.  
  6767.     * fileio.c (Fdo_auto_save): Temporarily clear minibuffer_auto_raise.
  6768.  
  6769. 1997-07-17  enami tsugutomo  <enami@but-b.or.jp>
  6770.  
  6771.     * xdisp.c (decode_mode_spec_coding): Fix typo; use `val' instead
  6772.     of `coding-system'.
  6773.  
  6774. 1997-07-15  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6775.  
  6776.     * xdisp.c (display_text_line): Handle the case of point being in
  6777.     the invisible part of the line beyond the left margin.
  6778.  
  6779. 1997-07-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6780.  
  6781.     * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Fix previous change.
  6782.  
  6783. 1997-07-15  Kenichi HANDA  <handa@etl.go.jp>
  6784.  
  6785.     * coding.h (CODING_CATEGORY_IDX_ISO_7_ELSE): This macro is deleted
  6786.     (CODING_CATEGORY_IDX_ISO_7_ELSE): New macro.
  6787.     (CODING_CATEGORY_IDX_ISO_8_ELSE): New macro
  6788.     (CODING_CATEGORY_MASK_ISO_ELSE): This macro is deleted.
  6789.     (CODING_CATEGORY_MASK_ISO_7_ELSE): New macro.
  6790.     (CODING_CATEGORY_MASK_ISO_8_ELSE): New macro.
  6791.     (CODING_CATEGORY_MASK_ANY): Adjusted for the above change.
  6792.  
  6793.     * coding.c (detect_coding_iso2022): Distinguish
  6794.     coding-category-iso-7-else and coding-category-iso-8-else.
  6795.  
  6796. 1997-07-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6797.  
  6798.     * unexalpha.c (unexec):
  6799.     Don't call update_dynamic_symbols if static link.
  6800.  
  6801.     * keyboard.c (read_char): Call timer_stop_idle unconditionally
  6802.     at non_reread.
  6803.  
  6804.     * keyboard.c (make_lispy_event): Distinguish S-SPC from SPC.
  6805.  
  6806.     * cmds.c (internal_self_insert): Use replace_range when
  6807.     number_to_delete is nonzero.
  6808.  
  6809.     * insdel.c (replace_range): New function.
  6810.  
  6811.     * keyboard.c (make_lispy_event): Handle non_ascii_keystroke
  6812.     in the ASCII range.
  6813.  
  6814.     * xterm.c (XTread_socket): Treat SPC as a function key.
  6815.  
  6816. 1997-07-13  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  6817.  
  6818.     * xterm.c (x_draw_box): Use scratch_cursor_gc to draw the cursor
  6819.     box using the color specified by cursor_pixel.
  6820.  
  6821. 1997-07-13  Eli Zaretskii  <eliz@is.elta.co.il>
  6822.  
  6823.     * fileio.c (Fwrite_region) [DOS_NT]: Always use binary mode since
  6824.     coding conversion now takes care of NL -> CRLF.
  6825.  
  6826.     * callproc.c (Fcall_process) [MSDOS]: Request EOL conversion of
  6827.     the process output, unless we were promised it is binary.
  6828.  
  6829.     * coding.c: Substantial comment changes.
  6830.  
  6831.     * lread.c (init_lread): Don't add to load-path lisp subdirectories
  6832.     of the source tree if the parent of the source was moved after
  6833.     dumping Emacs.
  6834.  
  6835. 1997-07-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6836.  
  6837.     * search.c (compile_pattern_1): Don't declare val with CONST.
  6838.  
  6839.     * cmds.c (internal_self_insert): When overwriting, insert first
  6840.     and then delete.
  6841.  
  6842. 1997-07-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6843.  
  6844.     * s/irix4-0.h (XPointer): Define as macro.
  6845.  
  6846.     * emacs.c (main): Use setrlimit only if RLIMIT_STACK.
  6847.  
  6848. 1997-07-11  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  6849.  
  6850.     * xdisp.c (decode_mode_spec): Initialize and use `p' (for the termcap
  6851.     case).
  6852.  
  6853.     * dispnew.c (init_display): Go ahead and prepare for
  6854.     a X configuration in the CANNOT_DUMP case.
  6855.  
  6856. 1997-07-11  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6857.  
  6858.     * editfns.c (get_system_name): Don't crash if Vsystem_name does
  6859.     not contain a string.
  6860.     * filelock.c (lock_file_1): Don't crash if Fuser_login_name or
  6861.     Fsystem_name don't return strings.
  6862.     (current_lock_owner): Likewise.
  6863.  
  6864.     * ralloc.c (r_alloc_reinit): New function.
  6865.     * emacs.c (main) [DOUG_LEA_MALLOC]: Call it when restarting a
  6866.     dumped Emacs.
  6867.  
  6868. 1997-07-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6869.  
  6870.     * m/news-r6.h: Renamed from news-risc6.h.
  6871.  
  6872. 1997-07-10  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  6873.  
  6874.     * xdisp.c (display_text_line): Exit the outer loop immediately
  6875.     when the right margin has been reached.
  6876.  
  6877.     * lisp.h (EXFUN, P_): New definitions.  Use them to declare
  6878.     prototypes for external functions.
  6879.  
  6880.     * xterm.c (dumpglyphs): Declare local variable first_ch as
  6881.     Lisp_Object, not int.
  6882.     * xselect.c (selection_data_to_lisp_data): Convert Fmake_vector
  6883.     and Faset arguments to Lisp_Integer.
  6884.     (clean_local_selection_data): Likewise.
  6885.     * x-list-font.c (Fx_list_fonts): Fix Fnconc argument.
  6886.     * window.c (Fcoordinates_in_window_p): Convert Fcons arguments to
  6887.     Lisp_Integer.
  6888.     (save_window_save): Convert Fset_marker argument to Lisp_Integer.
  6889.     * textprop.c (interval_of): Convert args_out_of_range arguments to
  6890.     Lisp_Integer.
  6891.     * syntax.c (init_syntax_once): Convert Fmake_vector argument to
  6892.     Lisp_Integer.
  6893.     * process.c (Fprocess_send_region): Convert move_gap argument to int.
  6894.     * mocklisp.c (Fml_arg): Add missing Fread_string arguments.
  6895.     * minibuf.c (Fread_from_minibuffer): Remove extra get_keymap argument.
  6896.     (Fminibuffer_complete): Convert Fset_window_start argument to
  6897.     Lisp_Integer.
  6898.     * keyboard.c (command_loop_1): Add missing message2 argument.
  6899.     (menu_bar_items): Add missing get_keyelt argument.
  6900.     (follow_key): Likewise.
  6901.     (read_key_sequence): Likewise.
  6902.     * intervals.c (set_point): Convert call2 arguments to Lisp_Integer.
  6903.     * fileio.c (Fwrite_region): Fix call2 argument.
  6904.     (Fread_file_name): Convert Fcons argument to Lisp_Integer.
  6905.     * editfns.c (Fcurrent_time_zone): Convert Fmake_list argument to
  6906.     Lisp_Integer.
  6907.     (Ftranspose_regions): Convert Fset_text_properties arguments to
  6908.     Lisp_Integer.
  6909.     * doc.c (Fsubstitute_command_keys): Add missing describe_map_tree
  6910.     argument.
  6911.     * coding.c (Ffind_coding_system): Use call1, not call2.
  6912.     * cmds.c (Fdelete_backward_char): Convert Finsert_char argument to
  6913.     Lisp_Integer and add missing argument.
  6914.     (internal_self_insert): Convert Fmove_to_column argument to
  6915.     Lisp_Integer and add missing argument.
  6916.     * ccl.c (Fregister_ccl_program): Convert Fmake_vector argument to
  6917.     Lisp_Integer.
  6918.     (syms_of_ccl): Likewise.
  6919.     * category.h (CATEGORY_DOCSTRING): Convert Fchar_table_extra_slot
  6920.     argument to Lisp_Integer.
  6921.     (CATEGORY_TABLE_VERSION): Likewise.
  6922.     * buffer.c (set_buffer_internal_1): Convert Fset_marker argument
  6923.     to Lisp_Integer.
  6924.     (set_buffer_temp): Likewise.
  6925.     (fix_overlays_in_range): Likewise.
  6926.  
  6927.     * xdisp.c (message2_nolog): Don't call fwrite will null string.
  6928.  
  6929. 1997-07-10  Geoff Voelker  <voelker@cs.washington.edu>
  6930.  
  6931.     * w32.c (sys_shutdown): New function.
  6932.     * s/ms-win32.h: Define HAVE_SHUTDOWN.
  6933.     
  6934. 1997-07-10  Eli Zaretskii  <eliz@pogo.gnu.ai.mit.edu>
  6935.  
  6936.     * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer
  6937.     only if HAVE_X_WINDOWS is defined.
  6938.  
  6939. 1997-07-09  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  6940.  
  6941.     * xdisp.c (echo_area_display): Don't offset using left-side
  6942.     scroll bar width because it is included in the width; clear
  6943.     the entire line.
  6944.  
  6945. 1997-07-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6946.  
  6947.     * process.c (read_process_output): Add cast.
  6948.  
  6949.     * filelock.c (current_lock_owner, lock_file_1): Add casts.
  6950.  
  6951.     * xdisp.c (redisplay_internal): Fix previous change.
  6952.  
  6953.     * s/irix4-0.h (C_SWITCH_SYSTEM): Add -Wf,-XNh option.
  6954.  
  6955.     * s/ms-w32.h: Don't define HAVE_SHUTDOWN.
  6956.  
  6957.     * frame.c (Fdelete_frame): Always err for deleting the only frame.
  6958.  
  6959. 1997-07-09  Kenichi HANDA  <handa@etl.go.jp>
  6960.  
  6961.     * fontset.c (Ffont_info): Make vector of correct size.
  6962.  
  6963.     * xterm.c (x_load_font): Get value of fontp->height from
  6964.     ascent and descent members of structure font->max_bounds.
  6965.     (dumpglyphs): Draw background by FillSolid if a font is too short. 
  6966.  
  6967. 1997-07-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6968.  
  6969.     * xterm.c (x_term_init): Don't use initializer for null_bits.
  6970.  
  6971.     * cm.h, sysdep.c, terminfo.c: Fix previous change.
  6972.  
  6973.     * fns.c (syms_of_fns): Fix previous change.
  6974.  
  6975.     * xdisp.c (decode_mode_spec) <z,Z>: Display buffer coding system
  6976.     last of the three.
  6977.  
  6978.     * doprnt.c: Use #ifdef to test STDC_HEADERS.
  6979.  
  6980.     * Makefile.in (shortlisp): Fix typo.
  6981.  
  6982. 1997-07-08  enami tsugutomo  <enami@but-b.or.jp>
  6983.  
  6984.     * emacs.c (main) [__NetBSD__]: Round up new stack limit to page bdry.
  6985.  
  6986.     * fileio.c (Finsert_file_contents): Give up match-end only if
  6987.     coding requires conversion.  Adjust end of non-matching text area
  6988.     to multibyte character boundary if enable_multibyte_character is
  6989.     non-nil.
  6990.  
  6991. 1997-07-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  6992.  
  6993.     * xdisp.c (decode_mode_spec_coding): Really don't display
  6994.     EOL indicator when eol_flag is 0.
  6995.     (echo_area_display): Use proper width when scroll bars on left.
  6996.  
  6997.     * syntax.h (struct gl_state_s): New field `offset'.
  6998.     (SETUP_SYNTAX_TABLE_FOR_OBJECT): Set offset field.
  6999.     (SETUP_SYNTAX_TABLE): Clear offset field.
  7000.     (UPDATE_SYNTAX_TABLE, UPDATE_SYNTAX_TABLE_FORWARD): 
  7001.     (UPDATE_SYNTAX_TABLE_BACKWARD): Use the offset field.
  7002.  
  7003.     * s/sol2.h (LIBS_SYSTEM): Add -lkvm and -lelf.
  7004.  
  7005. 1997-07-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7006.  
  7007.     * editfns.c (Fuser_full_name): Declare p, q and r as unsigned char *.
  7008.  
  7009.     * xterm.c (XTread_socket) <KeyPress>: Call XFilterEvent.
  7010.  
  7011.     * terminfo.c (ospeed):
  7012.     Define as short, unless HAVE_TERMIOS_H and LINUX.
  7013.  
  7014.     * cm.h (ospeed): Declare as short unless HAVE_TERMIOS_H and LINUX.
  7015.     * sysdep.c (ospeed): Likewise.
  7016.  
  7017.     * window.c: Include blockinput.h.
  7018.     (Fset_window_configuration): Block input around frobbing the frame.
  7019.     Preseve point in the current buffer if we do not switch
  7020.     to a different one.
  7021.  
  7022. 1997-07-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7023.  
  7024.     * xdisp.c (redisplay_internal): Fix previous change.
  7025.     (echo_area_display): Use proper vpos when clearing extra minibuf lines.
  7026.  
  7027. 1997-07-04  Kenichi HANDA  <handa@etl.go.jp>
  7028.  
  7029.     * callproc.c (Fcall_process): If enable-multibyte-characters is
  7030.     nil, do not encode arguments for process, and decode output of
  7031.     process by emacs-mule.
  7032.     (Fcall_process_region): If enable-multibyte-characters is nil, do
  7033.     not encode text to be given to process, and decode output of
  7034.     process by emacs-mule.
  7035.  
  7036.     * process.c (Fstart_process): If enable-multibyte-characters is
  7037.     nil, set coding system for decoding output of process to
  7038.     emacs-mule, and set coding system for encoding to nil.
  7039.     (Fopen_network_stream): If enable-multibyte-characters is nil, set
  7040.     coding systems for decoding and encoding to nil.
  7041.     
  7042.     * fileio.c (Finsert_file_contents): If enable-multibyte-characters
  7043.     is nil, decode character code by emacs-mule.
  7044.     (Fwrite_region): Use buffer-file-coding-system for encoding if
  7045.     enable-multibyte-characters is nil.
  7046.  
  7047.     * coding.c (Qemacs_mule, inhibit_eol_conversion): New variables.
  7048.     (setup_coding_system): If inhibit_eol_conversion is 0, set
  7049.     coding->eol_type to CODING_EOL_LF.
  7050.     (syms_of_coding): Initialize and staticpro Qemacs_mule.  Change
  7051.     error-message property of coding-system-error.  Declare
  7052.     inhibit-eol-conversion as Lisp variable.
  7053.     (system_eol_type): New variable.
  7054.     (init_coding_once): Initialize it.
  7055.     (ENCODE_SJIS_BIG5_CHARACTER): Bug in encoding a BIG5 character
  7056.     fixed.
  7057.  
  7058.     * coding.h (Qemacs_mule): Extern it.
  7059.  
  7060.     * xterm.c (x_list_fonts): Initialize the variable LIST to Qnil.
  7061.  
  7062. 1997-07-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7063.  
  7064.     * xdisp.c (display_menu_bar): Always pass W to display_string.
  7065.  
  7066.     * unexalpha.c (update_dynamic_symbols): Add cast when setting reladdr.
  7067.  
  7068.     * sysdep.c (init_system_name): Don't be fooled if getdomainname
  7069.     string starts with a period.
  7070.  
  7071. 1997-07-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7072.  
  7073.     * xdisp.c (redisplay_internal): At the end, if more frames have
  7074.     become visible, repeat the redisplay.
  7075.     (decode_mode_spec): Don't display subprocess coding systems.
  7076.     Don't display EOL for keyboard and terminal coding systems.
  7077.  
  7078.     * xfns.c (x_set_font): Funcall Qface_set_after_frame_default.
  7079.     (Qface_set_after_frame_default): New variable.
  7080.     (syms_of_xfns): Initialize and staticpro it.
  7081.  
  7082.     * xterm.c (x_make_frame_visible): Don't move the frame
  7083.     if it was iconified--only if it was invisible.
  7084.  
  7085. 1997-07-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7086.  
  7087.     * gmalloc.c: Rename macro __P to PP.
  7088.  
  7089.     * floatfns.c, data.c, doprnt.c: Include float.h before lisp.h.
  7090.  
  7091.     * dired.c (Ffile_attributes): Use cast to avoid warnings.
  7092.  
  7093.     * syntax.h (SETUP_SYNTAX_TABLE_FOR_OBJECT): Treat nil like a buffer.
  7094.  
  7095.     * lread.c (Vpreloaded_file_list): New variable.
  7096.     (syms_of_lread): Set up Lisp variable.
  7097.     (Fload): Add to Vpreloaded_file_list, if dumping.
  7098.  
  7099. 1997-07-04  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  7100.  
  7101.     * editfns.c (Fformat): Add second argument in call to Ftruncate.
  7102.  
  7103.     * alloc.c, buffer.c, casefiddle.c, casetab.c, category.c,
  7104.     category.h, ccl.c, coding.c, editfns.c, fileio.c, fns.c, indent.c,
  7105.     intervals.c, intervals.h, keymap.c, lisp.h, minibuf.c, print.c,
  7106.     syntax.c, syntax.h, sysdep.c, textprop.c, xfns.c: Fix numerous
  7107.     bugs with inappropriate mixing of Lisp_Object with int.
  7108.     * config.in (RE_TRANSLATE): Define to extract integers from
  7109.     array of Lisp_Objects.
  7110.  
  7111. 1997-07-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7112.  
  7113.     * buffer.c (overlay_strings): Finish up previous change.
  7114.  
  7115.     * Makefile.in (lisp, shortlisp): Some files moved to subdirs.
  7116.  
  7117. 1997-07-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7118.  
  7119.     * s/sunos4shr.h (LD_SWITCH_SYSTEM_TEMACS): Add #undef.
  7120.  
  7121.     * syssignal.h [sigmask] (SIGEMPTYMASK): Define to use sigmask.
  7122.  
  7123.     * eval.c (Fsignal, find_handler_clause): If ERROR_SYMBOL
  7124.     is nil, assume it's in the car of DATA.
  7125.     * alloc.c (memory_full): Pass Qnil to Fsignal for ERROR_SYMBOL.
  7126.  
  7127.     * s/sunos4-0.h (LD_SWITCH_SYSTEM_TEMACS): Defined.  Move -e here.
  7128.     (LD_SWITCH_SYSTEM): Don't use -e option here.
  7129.  
  7130.     * Makefile.in (ALL_LDFLAGS): Use LD_SWITCH_SYSTEM_TEMACS.
  7131.  
  7132. 1997-07-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7133.  
  7134.     * process.c (send_process): Make buf and temp_buf  `unsigned char *'.
  7135.  
  7136.     * buffer.c (overlay_strings): Use unsigned char for things
  7137.     that relate to overlay_str_buf.
  7138.  
  7139.     * syssignal.h (sigpause): Don't define if already defined.
  7140.  
  7141.     * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable.
  7142.     
  7143. 1997-07-02  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  7144.  
  7145.     * Makefile.in (lisp, shortlisp): Add widget.elc.
  7146.  
  7147. 1997-07-02  Kenichi Handa  <handa@etl.go.jp>
  7148.  
  7149.     * xselect.c (selection_data_to_lisp_data): Call free instead of
  7150.     xfree.
  7151.  
  7152.     * coding.h (struct coding_system): New members
  7153.     character_unification_table_for_decode and
  7154.     character_unification_table_for_encode.
  7155.  
  7156.     * coding.c (Vstandard_character_unification_table_for_decode):
  7157.     Name changed from Vstandard_character_unification_table_for_read.
  7158.     (Vstandard_character_unification_table_for_encode): Name changed
  7159.     from Vstandard_character_unification_table_for_write.
  7160.     (Qcharacter_unification_table_for_decode): New variable.
  7161.     (Qcharacter_unification_table_for_encode): New variable.
  7162.     (decode_coding_iso2022): Adjusted for the above name change.
  7163.     (encode_coding_iso2022): Likewise.
  7164.     (ENCODE_ISO_CHARACTER): Bug of handling return value of unify_char
  7165.     fixed.
  7166.     (DECODE_SJIS_BIG5_CHARACTER): New macro.
  7167.     (decode_coding_sjis_big5): Handle character unificatoin table.
  7168.     Use macro DECODE_SJIS_BIG5_CHARACTER.
  7169.     (encode_coding_sjis_big5): Handle character unificatoin table.
  7170.     Use macro ENCODE_SJIS_BIG5_CHARACTER.
  7171.     (setup_coding_system): Handle members
  7172.     character_unification_table_for_decode and
  7173.     character_unification_table_for_encode of the variable coding.
  7174.     (Ffind_operation_coding_system): Renamed from Ffind_coding_system.
  7175.     (syms_of_coding): Initialize and staticpro
  7176.     Qcharacter_unification_table_for_decode and
  7177.     Qcharacter_unification_table_for_decode.  Declare
  7178.     Ffind_operation_coding_system as Lisp functions.  Declare
  7179.     Vstandard_character_unification_table_for_decode and
  7180.     Vstandard_character_unification_table_for_encode as Lisp
  7181.     variables.
  7182.  
  7183.     * charset.c (Fchar_width): Check if the current buffer has display
  7184.     table.
  7185.  
  7186.     * fileio.c (Finsert_file_contents): Doc-string fixed.  Call
  7187.     Ffind_operation_coding_system.
  7188.     (Fwrite_region):  Call Ffind_operation_coding_system.
  7189.  
  7190.     * callproc.c: Call Ffind_operation_coding_system.
  7191.  
  7192.     * process.c (Fstart_process): Call Ffind_operation_coding_system.
  7193.     (Fopen_network_stream): Likewise.
  7194.  
  7195.     * fontset.h: Move "#endif /* _FONTSET_H */" at the tail.
  7196.  
  7197. 1997-07-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7198.  
  7199.     * sysdep.c (init_system_name): Don't accept "(none)" as domain.
  7200.  
  7201.     * xterm.c (x_make_frame_visible): Check has_been_visible
  7202.     field before the UNBLOCK_INPUT.
  7203.  
  7204. 1997-07-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7205.  
  7206.     * coding.c (syms_of_coding): Change initial values of
  7207.     eol_mnemonic_... variables.
  7208.  
  7209.     * xdisp.c (decode_mode_spec_coding): Clean up handling of
  7210.     eol conversions.
  7211.  
  7212.     * .gdbinit (xcons): Print car and cdr in hex.
  7213.     (nextcons): New command.
  7214.  
  7215.     * xfns.c (x_set_scroll_bar_width): By default, use enough
  7216.     columns to give 14 or more pixels.
  7217.  
  7218. 1997-06-30  Geoff Voelker  <voelker@cs.washington.edu>
  7219.  
  7220.     * emacs.c (decode_env_path): Ensure path elements use proper
  7221.     directory separator.
  7222.  
  7223.     * keyboard.c (make_lispy_event):
  7224.     Check that ISO_FUNCTION_KEY_OFFSET is defined.
  7225.  
  7226.     * process.c (READ_CHILD_OUTPUT): Deleted.
  7227.     (read_process_output): Use read instead of READ_CHILD_OUTPUT.
  7228.  
  7229.     * makefile.nt (OBJ2): Include new source files.
  7230.     
  7231.     * s/ms-w32.h: Duplicate undefs from config.in to check completeness.
  7232.     (STDC_HEADERS, HAVE_TZNAME, HAVE_MKTIME): Define to have a value.
  7233.     (HAVE_GETPAGESIZE, HAVE_SETLOCALE, HAVE_SHUTDOWN, HAVE_TZSET,
  7234.     HAVE_LIMITS_H, HAVE_STRERROR): Define.
  7235.     [HAVE_NTGUI] (HAVE_MENUS): Define.
  7236.     (SYSTEM_PURESIZE_EXTRA): Increase value.
  7237.  
  7238.     * unexw32.c, w32heap.c: Add pragma to force zero initialized 
  7239.     data into .data segment.
  7240.  
  7241.     * w32console.c, w32term.c: Include charset.h.
  7242.  
  7243.     * w32fns.c (syms_of_w32fns): Delete defsubrs of Sfocus_frame and
  7244.     Sunfocus_frame.
  7245.  
  7246.     * w32heap.c (getpagesize): Define.
  7247.  
  7248. 1997-06-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7249.  
  7250.     * editfns.c (Fformat_time_string): Move doc string outside DEFUN.
  7251.  
  7252.     * buffer.c (overlay_str_buf): Declare as unsigned char *.
  7253.  
  7254.     * fns.c (Fy_or_n_p, Fyes_or_no_p): Obey use_dialog_box.
  7255.     (use_dialog_box): New variable, controls whether to use dialog boxes.
  7256.     (syms_of_fns): Set up Lisp variable.
  7257.  
  7258. 1997-06-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7259.  
  7260.     * buffer.c (syms_of_buffer): enable-multibyte-characters is a user var.
  7261.  
  7262.     * callproc.c (Fcall_process): Fix previous change.
  7263.  
  7264.     * fns.c (concat): Use XCONS rather than Fcar, Fcdr--for known cons.
  7265.     (Fassq, assq_no_quit, Fassoc, Frassq, Frassoc, Fdelq): Likewise.
  7266.     (Fdelete, Fplist_get, mapcar1, Fmember, Fmemq): Likewise.
  7267.  
  7268.     * lread.c (init_lread): Add leim subdir, like lisp subdir.
  7269.  
  7270.     * syntax.c (scan_sexps_forward): Split up a complex if-test.
  7271.  
  7272.     * keyboard.c (read_char): Add a call to swallow_events
  7273.     when deciding whether to redisplay.
  7274.     (swallow_events): Add forward declaration.
  7275.  
  7276.     * sysdep.c [HAVE_TERMIOS_H]: Include termios.h.
  7277.  
  7278.     * callproc.c (Fcall_process): Avoid storing alloca result
  7279.     directly into array element.
  7280.  
  7281.     * process.c (wait_reading_process_input): If wait_for_cell,
  7282.     do check for keyboard input and swallow events, just don't exit.
  7283.     (max): New macro.
  7284.     (wait_reading_process_input): Pass a smaller first arg to select.
  7285.  
  7286.     * buffer.c (Fbury_buffer): Undo previous change.
  7287.  
  7288. 1997-06-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7289.  
  7290.     * window.c (temp_output_buffer_show):
  7291.     Copy default-directory from current buffer.
  7292.  
  7293.     * cm.h (ospeed): Always use `extern' in the declaration.
  7294.  
  7295.     * Makefile.in (lisp, shortlisp): Some files are in international/.
  7296.  
  7297.     * unexelf.c [__NetBSD__]: Add some conditionals for NetBSD.
  7298.  
  7299.     * unexelf1.c: File deleted.
  7300.  
  7301. 1997-06-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7302.  
  7303.     * s/unixware.h: New file.
  7304.  
  7305. 1997-06-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7306.  
  7307.     * fileio.c (Finsert_file_contents):
  7308.     Pass new arg to prepare_to_modify_buffer.
  7309.  
  7310.     * insdel.c (prepare_to_modify_buffer, signal_before_change):
  7311.     New argument PRESERVE_PTR.
  7312.     (del_range_1): Use PRESERVE_PTR to preserve FROM.
  7313.     Save the length of the range separately.
  7314.     (NULL): Define if not defined.
  7315.  
  7316. 1997-06-23  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  7317.  
  7318.     * fileio.c (Ffile_directory_p): Doc fix.
  7319.  
  7320. 1997-06-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7321.  
  7322.     * buffer.c (Fbuffer_list): New optional argument FRAME.
  7323.  
  7324.     * fns.c (Freverse): Simplify.
  7325.  
  7326. 1997-06-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7327.  
  7328.     * s/bsdos3.h: New file.
  7329.     
  7330.     * s/bsdos2.h (KERNEL_FILE): New overriding definition.
  7331.  
  7332.     * keyboard.c (read_avail_input): Check for failure with EIO.
  7333.  
  7334.     * s/gnu-linux.h (LD_SWITCH_SYSTEM) [__mips__]: Alternate definition.
  7335.  
  7336.     * m/mips.h: Test __linux__ along with NEWSOS5.
  7337.     (KERNEL_FILE, UNEXEC): Don't redefine them if __linux__.
  7338.     [__linux__] (TEXT_START, DATA_START, DATA_SEG_BITS):
  7339.     Alternate definitions.
  7340.     
  7341.     * emacs.c (Fdump_emacs): Bind command-line-processed to nil here.
  7342.  
  7343.     * xdisp.c (init_xdisp): Pay attention to FRAME_MENU_BAR_LINES.
  7344.  
  7345.     * emacs.c (Fdump_emacs): Error if not run in batch mode.
  7346.  
  7347.     * s/hpux10.h (LIBS_TERMCAP): Use -ltermcap instead of -lc.
  7348.  
  7349.     * unexelf.c [__sony_news && _SYSTYPE_SYSV]: Include sym.h
  7350.     and sys/elf_mips.h.
  7351.     (unexec): Add __sony_news && _SYSTYPE_SYSV conditionals.
  7352.     Add a _nec_ews_svr4 conditional.
  7353.  
  7354.     * s/newsos6.h: New file.
  7355.  
  7356.     * m/news-risc6.h: New file.
  7357.  
  7358.     * frame.c (Fdelete_frame): Clear echo_area_glyphs if it was
  7359.     in this frame.
  7360.  
  7361.     * process.c (wait_reading_process_input): Don't check for
  7362.     keyboard input if wait_for_cell.
  7363.  
  7364.     * minibuf.c (read_minibuf): New arg allow_props.
  7365.     If it is 0, discard text properties from the result.  Callers changed.
  7366.     (minibuffer_allow_text_properties): New variable.
  7367.     (Fread_from_minibuffer): That variable controls allow_props arg.
  7368.     (syms_of_minibuf): Set up Lisp var.
  7369.  
  7370. 1997-06-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7371.  
  7372.     * insdel.c (del_range_1): Make markers for TO and FROM
  7373.     in case prepare_to_modify_buffer changes the text.
  7374.  
  7375. 1997-06-21  Kenichi Handa  <handa@etl.go.jp>
  7376.  
  7377.     * fontset.h (font_idx_temp): Extern it.
  7378.     (FS_LOAD_FONT): New macro.
  7379.  
  7380.     * fontset.c (font_idx_temp): New temprary variable used in
  7381.     FS_LOAD_FONT.
  7382.  
  7383.     * xfaces.c (Fset_face_attribute_internal): Use FS_LOAD_FONT
  7384.     instead of calling fs_load_font directly.
  7385.  
  7386.     * xterm.c (dumpglyphs): Use FS_LOAD_FONT.
  7387.     (x_new_fontset): If frame F has already using FONTSET, avoid the
  7388.     duplicated work.  Use FS_LOAD_FONT.
  7389.     (x_list_fonts): Call Fassoc to search Valternate_charset_table.
  7390.     (x_load_font): Get around a buf of XListFonts
  7391.  
  7392. 1997-06-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7393.  
  7394.     * print.c (Ferror_message_string): Optimize (error STRING) case.
  7395.  
  7396. 1997-06-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7397.  
  7398.     * process.c (Fprocess_send_eof): Properly conditionalize prev. change.
  7399.  
  7400. 1997-06-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7401.  
  7402.     * process.c (Fprocess_send_eof): Use shutdown, if it's a socket.
  7403.     Don't close the output descriptor if that is also the input descriptor.
  7404.     
  7405.     * config.in (HAVE_SHUTDOWN): Add #undef.
  7406.  
  7407.     * editfns.c (Fchar_before): Validate N after decrementing.
  7408.     Don't use POS as integer.
  7409.  
  7410. 1997-06-18  Kenichi Handa  <handa@etl.go.jp>
  7411.  
  7412.     * coding.c (detect_coding_iso2022): Initilize mask correctly.
  7413.  
  7414.     * fns.c (concat): Pay attention to multibyte characters when
  7415.     TARGET_TYPE is Lisp_String.
  7416.  
  7417. 1997-06-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7418.  
  7419.     * process.c (wait_reading_process_input): Fix previous change.
  7420.  
  7421. 1997-06-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7422.  
  7423.     * fileio.c (Fdo_auto_save): Use stdio to write the save-list file.
  7424.  
  7425.     * fileio.c (Finsert_file_contents): Don't give up on the fast
  7426.     replace method if the coding remains undecided.
  7427.  
  7428. 1997-06-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7429.  
  7430.     * process.c (wait_reading_process_input): When exiting because
  7431.     the process WAIT_PROC has terminated, first read all its output. 
  7432.  
  7433. 1997-06-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7434.  
  7435.     * editfns.c (Fchar_after, Fchar_before): Make arg optional.
  7436.  
  7437. 1997-06-14  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  7438.  
  7439.     * buffer.h (point): Obsolete macro deleted in favor of PT.
  7440.     * editfns.c (Fprevious_char): Use PT, not point.
  7441.     * cmds.c (internal_self_insert): Use PT, not point.
  7442.  
  7443. 1997-06-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7444.  
  7445.     * bytecode.c (Bread_char): Deleted.
  7446.     (Bsave_current_buffer_1): New byte code.
  7447.     (Fbyte_code): Delete handling Bread_char.
  7448.     Handle Bsave_current_buffer_1 like Bsave_current_buffer.
  7449.  
  7450. 1997-06-11  Paul Eggert  <eggert@twinsun.com>
  7451.  
  7452.     * callproc.c (Fcall_process): Use setsid to disconnect child
  7453.     process from controlling terminal.
  7454.  
  7455. 1997-06-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7456.  
  7457.     * unexalpha.c (unexec): Call update_dynamic_symbols unconditionally.
  7458.     (update_dynamic_symbols): Define unconditionally, but do nothing
  7459.     if __linux__or __NetBSD__.
  7460.  
  7461.     * s/netbsd.h (HAVE_TEXT_START, START_FILES, UNEXEC):
  7462.     Don't define these if __ELF__.
  7463.     (RUN_TIME_REMAP, N_PAGSIZ, N_BSSADDR, N_TRELOFF): Likewise.
  7464.  
  7465.     * m/alpha.h (TEXT_END, COFF, DATA_END): 
  7466.     Define them if __NetBSD__ just as if LINUX.
  7467.     (HAVE_TEXT_START): Define, if __NetBSD__ and __ELF__.
  7468.  
  7469. 1997-06-10  Erik Naggum  <erik@naggum.no>
  7470.  
  7471.     * fileio.c (Fwrite_region): Fix previous doc change.
  7472.  
  7473. 1997-06-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7474.  
  7475.     * process.c (wait_reading_process_input): Return if unread events
  7476.     appear.
  7477.  
  7478.     * keyboard.c (kbd_buffer_get_event): When wait_reading_process_input
  7479.     returns, check Vunread_command_events.
  7480.  
  7481. 1997-06-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7482.  
  7483.     * sysdep.c (init_sys_modes): Enable VSTART and VSTOP
  7484.     if flow_control.
  7485.  
  7486.     * editfns.c (Finsert_char): Check QUIT.
  7487.  
  7488.     * fontset.c (list_fontsets, fs_load_font): 
  7489.     fast_c_string_match_ignore_case renamed.
  7490.     
  7491.     * xterm.c (x_list_fonts): fast_c_string_match_ignore_case renamed.
  7492.  
  7493.     * search.c (fast_c_string_match_ignore_case):
  7494.     Renamed from fast_string_match_ignore_case.  Set re_match_object.
  7495.  
  7496. 1997-06-09  Kenichi Handa  <handa@etl.go.jp>
  7497.  
  7498.     * buffer.c (init_buffer_once): Inititialize the member
  7499.     buffer_file_coding_system.
  7500.     (syms_of_buffer): Declare Lisp variables
  7501.     default-buffer-file-coding-system and buffer-file-coding-system.
  7502.  
  7503.     * buffer.h (struct buffer): New member buffer_file_coding_system.
  7504.  
  7505.     * coding.c (Vcoding_system_alist): Deleted.
  7506.     (Qcoding_system_spec): Renamed from Qcoding_system_vector.
  7507.     (Vdefault_process_coding_system, Vfile_coding_system_alist,
  7508.     Vprocess_coding_system_alist, Vnetwork_coding_system_alist): New
  7509.     variables.
  7510.     (Ffind_coding_system): Adjusted for the above change.
  7511.     (syms_of_coding): Declare them as lisp variables.
  7512.     (Fcheck_coding_system): Pass list as DATA argument to Fsignal.
  7513.  
  7514.     * coding.h (Vdefault_process_coding_system): Extern it.
  7515.  
  7516.     * callproc.c (Fcall_process): Pay attention to
  7517.     Vdefault_process_coding_system.
  7518.     (Fcall_process_region): Likewise.
  7519.  
  7520.     * process.c (Fstart_process): Likewise.
  7521.     (Fopen_network_stream): Likewise.
  7522.  
  7523.     * xdisp.c (decode_mode_spec): Access the value of
  7524.     buffer-file-coding-system by b->buffer_file_coding_system.
  7525.  
  7526.     * fileio.c (Fwrite_region): Cancel the 7th argument CODING_SYSTEM
  7527.     added by the previous change.
  7528.     (auto_save_1): Adjusted for the above change.
  7529.  
  7530.     * data.c (Faset): Inherit default value correctly while creating
  7531.     sub char table.
  7532.  
  7533.     * xselect.c (selection_data_to_lisp_data): Change coding system
  7534.     name to iso-latin-1.
  7535.     (lisp_data_to_selection_data): Likewise.
  7536.  
  7537.     * xterm.c (dumpglyph): Shift baseline for such a font that is
  7538.     shorter but ascent or descent exceed the line height.
  7539.     For a larger font, draw a small hook at right-bottom edge instead
  7540.     of a rectangle.
  7541.  
  7542. 1997-06-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7543.  
  7544.     * keymap.c (Fcopy_keymap): After copying a sub-char-table,
  7545.     do store the copy.
  7546.  
  7547. 1997-06-04  Kenichi Handa  <handa@etl.go.jp>
  7548.  
  7549.     * casefiddle.c (casify_object): Fix bug on handling a character
  7550.     argument.
  7551.  
  7552. 1997-06-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7553.  
  7554.     * s/netbsd.h (NO_SHARED_LIBS): Test __alpha__ && ! __ELF__.
  7555.  
  7556.     * keyboard.c (syms_of_keyboard): Doc fix.
  7557.  
  7558.     * search.c (Freplace_match): If opoint is 0, that's relative to ZV.
  7559.  
  7560.     * intervals.c (find_interval): No longer inline.
  7561.  
  7562. 1997-06-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7563.  
  7564.     * lisp.h (VALMASK, GCTYPEMASK, MARKBIT, ARRAY_MARK_FLAG)
  7565.     (PSEUDOVECTOR_FLAG, enum pvec_type, PSEUDOVECTOR_SIZE_MASK): 
  7566.     Define regardless of NO_UNION_TYPE.
  7567.     
  7568.     * xfns.c (Fx_create_frame): Use XINT to access parent.
  7569.  
  7570.     * syntax.c (Fsyntax_table_p, check_syntax_table): Use EQ.
  7571.     (Fmodify_syntax_entry): Use XINT to access c.
  7572.     (describe_syntax): Use XINT to access first.
  7573.  
  7574.     * search.c (search_buffer): Use XINT around refs to trt.
  7575.  
  7576.     * lisp.h (concat3, get_truename_buffer): Declare them.
  7577.  
  7578.     * keyboard.c (read_key_sequence): Change some locals to `int'.
  7579.  
  7580.     * indent.c (compute_motion): Use XFASTINT on width_table elts.
  7581.  
  7582.     * fns.c (map_char_table): Use XSETFASTINT.
  7583.  
  7584.     * fileio.c (Fwrite_region, build_annotations):
  7585.     Set start and end using XSETFASTINT.
  7586.  
  7587.     * editfns.c (Fcompare_buffer_substrings): trt contains Lisp_Objects.
  7588.     (transpose_markers): Use marker_position, not Fmarker_position.
  7589.  
  7590.     * buffer.c (Fmove_overlay): Clean up setting o_beg and o_end.
  7591.  
  7592.     * alloc.c (Fmake_byte_code): Set val from p, not from val.
  7593.     (make_event_array): Convert nargs to Lisp_Object.
  7594.  
  7595.     * m/powerpcle.h: New file.
  7596.  
  7597.     * unexalpha.c [__NetBSD__]: Don't include filehdr.h, aouthdr.h
  7598.     scnhdr.h or syms.h.  Add many other conditionalized definitions.
  7599.  
  7600.     * m/alpha.h [__NetBSD__]: Include stdlib.h, not alloca.h.
  7601.     (ORDINARY_LINK): Defined (if __NetBSD__).
  7602.  
  7603.     * s/netbsd.h [__alpha__] (NO_SHARED_LIBS): Defined.
  7604.     
  7605. 1997-05-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7606.  
  7607.     * lread.c (init_lread): Sometimes add to load-path
  7608.     the lisp and site-lisp dirs under the source directory.
  7609.  
  7610.     * xfaces.c: Include frame.h unconditionally.
  7611.  
  7612.     * Makefile.in (stamp-oldxmenu): Always define this
  7613.     one way or another.
  7614.  
  7615.     * search.c (Freplace_match): Fix previous change.
  7616.  
  7617.     * syntax.c (back_comment): Detect 2-char comment starts properly.
  7618.     New arg COMSTYLE; callers changed.
  7619.     (Fforward_comment): Handle unmatched two-character comment starters.
  7620.  
  7621.     * intervals.c (move_if_not_intangible): Fix previous change.
  7622.  
  7623.     * Makefile.in (XOBJ, MSDOS_OBJ, SOME_MACHINE_OBJECTS): Delete xfaces.o.
  7624.     (obj): Add xfaces.o.
  7625.     (FACE_SUPPORT, SOME_MACHINE_LISP): Delete faces.elc.
  7626.     (shortlisp, lisp): Add faces.elc
  7627.  
  7628.     * emacs.c (main): Call syms_of_xfaces whenever ! HAVE_NTGUI.
  7629.  
  7630.     * xfaces.c (Fframe_face_alist, Fset_frame_face_alist):
  7631.     Define unconditionally.
  7632.     (Finternal_next_face_id, next_face_id): Likewise.
  7633.     (syms_of_xfaces): Define unconditionally,
  7634.     but conditionalize some of the contents.
  7635.  
  7636. 1997-06-01  Roderick Schertler  <roderick@ibcinc.com>
  7637.  
  7638.     * sysdep.c (init_baud_rate): Use INIT_BAUD_RATE if it's defined.
  7639.     (sys_signal): Lose DGUX special case.
  7640.  
  7641.     * s/dgux.h (signal): Define only if not NO_DGUX_SIGNAL_REDEF.
  7642.     * s/dgux4.h: New file.
  7643.  
  7644. 1997-05-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7645.  
  7646.     * xterm.c (process_expose_from_menu, XTread_socket): 
  7647.     Set has_been_visible field.
  7648.     (x_make_frame_visible): Don't do XMoveWindow unles has_been_visible.
  7649.  
  7650.     * xterm.h (struct x_output): New field has_been_visible.
  7651.  
  7652.     * lread.c (intern): Don't make a pure string here,
  7653.     since Fintern does that.
  7654.  
  7655.     * Makefile.in (lisp, shortlisp): Use cus-start.el, not .elc.
  7656.  
  7657.     * data.c (Farrayp): Accept bool-vectors and char-tables.
  7658.  
  7659.     * fns.c (Fchar_table_range, Fset_char_table_range):
  7660.     Make one-element vector work for RANGE.
  7661.  
  7662. 1997-05-30  NIIBE Yutaka  <gniibe@mri.co.jp>
  7663.  
  7664.     * term.c (insert_glyphs): Use &, not &&.
  7665.  
  7666. 1997-05-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7667.  
  7668.     * search.c (Freplace_match): Use move_if_not_intangible
  7669.     to handle intangible text better.
  7670.  
  7671.     * intervals.c (move_if_not_intangible): New function.
  7672.  
  7673.     * editfns.c (Fcurrent_time_string): Doc fix.
  7674.  
  7675.     * eval.c (Fsignal): Use call2 to call Vsignal_hook_function.
  7676.  
  7677. 1997-05-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7678.  
  7679.     * dispnew.c (scrolling): If a line is not enabled,
  7680.     give it an infinite draw_cost.
  7681.  
  7682.     * data.c (Faset): Doc fix.
  7683.  
  7684.     * alloc.c (Fmake_bool_vector): Doc fix.
  7685.  
  7686.     * buffer.c (syms_of_buffer): Doc fix.
  7687.  
  7688. 1997-05-27  Kenichi Handa  <handa@etl.go.jp>
  7689.  
  7690.     * fontset.h (FONT_ENCODING_NOT_DECIDED): New macro.
  7691.  
  7692.     * fontset.c (fs_load_font): Before using a fontset, be sure to
  7693.     load the ASCII font of the fontset.  Size and height of a fontset
  7694.     is set to the same as those of the ASCII font of the fontset.  Use
  7695.     macro FONT_ENCODING_NOT_DECIDED.
  7696.  
  7697.     * xterm.c (x_load_font): Use macro FONT_ENCODING_NOT_DECIDED.
  7698.  
  7699.     * fns.c (map_char_table): For sub char-table, index should be
  7700.     start from 0 (not from 32) considering a composite character.
  7701.     (Fmap_char_table): Doc-string adjusted.  The variable indices is
  7702.     declared as an array of Lisp_Object.
  7703.  
  7704.     * coding.h (struct iso2022_spec): Member requested_designation is
  7705.     changed to array of `unsigned char'.
  7706.     (CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION): New macro.
  7707.  
  7708.     * coding.c (encode_invocation_designation): Use macro
  7709.     CODING_SPEC_ISO_NO_REQUESTED_DESIGNATION.
  7710.     (encode_designation_at_bol, setup_coding_system): Likewise.
  7711.     (Fset_terminal_coding_system_internal): Renamed from
  7712.     Fset_terminal_coding_system.  Make it non-interactive.
  7713.     Do not call Fredraw_display.
  7714.     (Fset_keyboard_coding_system_internal): Renamed from
  7715.     Fset_keyboard_coding_system.  Make it non-interactive.
  7716.  
  7717.     * charset.c (Ffind_charset_string): The variable CHARSETS is
  7718.     changed to (int *).
  7719.  
  7720.     * casetab.c (case_temp1, case_temp2): New variables temporarily
  7721.     used in macros DOWNCASE and UPCASE1.
  7722.     (set_case_table): Setup canonical table correctly.  Use
  7723.     map_char_table instead of compute_trt_inverse.
  7724.     (set_canon, set_identity, shuffle): New functions given to
  7725.     map_char_table.
  7726.     (compute_trt_identity, compute_trt_shuffle, compute_trt_inverse):
  7727.     Deleted.
  7728.  
  7729.     * casefiddle.c (casify_object): Handle multibyte characters.
  7730.     (casify_region): Change the way of handling multibyte characters.
  7731.  
  7732.     * lisp.h (CHAR_TABLE_REF): Do not check validity of CT.
  7733.     (CHAR_TABLE_SET): Likewise.
  7734.     (DOWNCASE_TABLE): Return case-table instead of the `contents' field.
  7735.     (UPCASE_TABLE): Likewise.
  7736.     (DOWNCASE): Use CHAR_TABLE_REF.
  7737.     (NOCASEP): Use UPCASE1.
  7738.     (UPCASE1): Use CHAR_TABLE_REF.
  7739.  
  7740.     * search.c (looking_at_1): Change using DOWNCASE_TABLE.
  7741.     (string_match_1): Likewise.
  7742.  
  7743.     * editfns.c (Fchar_equal): Make it handle case of multibyte
  7744.     characters.
  7745.  
  7746. 1997-05-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7747.  
  7748.     * window.c (Fsplit_window): Ignore FRAME_NO_SPLIT_P here.
  7749.     (inhibit_frame_unsplittable): Variable deleted.
  7750.     (syms_of_window): Don't set up Lisp variable.
  7751.  
  7752.     * xterm.c (XTread_socket) <ConfigureNotify>: Don't call
  7753.     x_wm_set_size_hint if window has no parent yet.
  7754.     Simplify the call to x_real_positions.
  7755.     (x_make_frame_visible): Use win_gravity to decide whether to
  7756.     call XMoveWindow.  Also, don't do it if frame already visible.
  7757.     
  7758.     * xfns.c (x_real_positions): Subtract border width from results.
  7759.  
  7760. 1997-05-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7761.  
  7762.     * window.c (syms_of_window): Initialize inhibit_frame_unsplittable.
  7763.  
  7764.     * w16select.c (Fwin16_set_clipboard_data): Pass new arg to sit_for.
  7765.  
  7766.     * fileio.c (Fdo_auto_save): Pass new arg to sit_for.
  7767.  
  7768.     * callint.c (Fcall_interactively): Pass new arg to sit_for.
  7769.  
  7770.     * keyboard.c (command_loop_1): Pass 1 as new arg to sit_for.
  7771.     (read_char): Likewise, pass 0 for it.
  7772.  
  7773.     * dispnew.c (sit_for): New arg initial_display.
  7774.     (Fsit_for): Pass new arg.
  7775.  
  7776.     * indent.c (compute_motion): Return correctly if skip_invisible
  7777.     takes us past TO.
  7778.  
  7779.     * xterm.c (XTread_socket) <UnmapNotify>: Don't make an iconify_event
  7780.     when frame was made invisible.
  7781.     (x_make_frame_visible): Put the call to x_set_offset back as it was.
  7782.     Near the end, instead call XMoveWindow, but only if original
  7783.     positions were not negative.
  7784.  
  7785. 1997-05-26  Simon Marshall  <simon@diazepam.gnu.ai.mit.edu>
  7786.  
  7787.     * window.c (syms_of_window): Change frame_override_unsplittable to
  7788.     inhibit_frame_unsplittable.
  7789.     (Fsplit_window): Check inhibit_frame_unsplittable.
  7790.  
  7791. 1997-05-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7792.  
  7793.     * window.c (Fdisplay_buffer): Use B not b for interactive argument.
  7794.  
  7795.     * xfns.c (x_real_positions): Directly compare the frame's window
  7796.     or parent with the root window.
  7797.  
  7798.     * xterm.c (x_make_frame_visible): Call x_set_offset only after
  7799.     mapping the window and accepting input.
  7800.     (x_calc_absolute_position): Do nothing if current position
  7801.     is already for the top-left corner.
  7802.     Handle errors in XTranslateCoordinates.
  7803.     (XTread_socket): Simplify handling of ConfigureNotify events.
  7804.     Always call x_wm_set_size_hint for them.
  7805.     No need to call XTranslateCoordinates here.
  7806.     (x_clear_errors): New function.
  7807.     
  7808. 1997-05-20  Erik Naggum  <erik@naggum.no>
  7809.  
  7810.     * editfns.c (Fformat_time_string): Doc update.
  7811.     
  7812. 1997-05-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7813.  
  7814.     * editfns.c (Fformat_time_string): Doc update.
  7815.     Handle emacs_strftime returning -1.
  7816.     If it returns 0, compute actual buffer size needed.
  7817.  
  7818.     * Makefile.in (shortlisp): Add custom.elc and cus-start.elc.
  7819.  
  7820.     * fns.c (internal_equal): When comparing strings, ignore text props.
  7821.     Friedman offers to fix anything that has trouble due to this.
  7822.  
  7823.     * dispnew.c (sit_for): Delete #if 0.
  7824.  
  7825.     * keymap.c (access_keymap, store_in_keymap): Don't look in a char-table
  7826.     for a character that has modifier bits.
  7827.  
  7828. 1997-05-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7829.  
  7830.     * keymap.c (access_keymap): For a char-table,
  7831.     look only for chars with no modifier bits.
  7832.  
  7833. 1997-05-19  Kenichi Handa  <handa@etl.go.jp>
  7834.  
  7835.     * s/osf1.h (HAVE_TERMIOS): Define it.
  7836.  
  7837.     * m/alpha.h (PTY_OPEN): Call sigblock instead of sigblockx.
  7838.  
  7839.     * Makefile.in (xdisp.o): Add coding.h in dependency list.
  7840.  
  7841.     * fontset.h (struct font_info): Change the declaration of encoding
  7842.     from `char' to `unsigned char'.
  7843.  
  7844.     * xterm.c (x_load_font): Set 4 instead of -1 in fontp->encoding[1]
  7845.     for the meaning of `can not be decided'.
  7846.  
  7847.     * fontset.c (fs_load_font): Modified to cope with the above
  7848.     change.
  7849.  
  7850.     * charset.c (Ffind_charset_region): Change the declaration of
  7851.     charsets from `char' to `int'.
  7852.     (find_charset_in_str): Likewise.
  7853.  
  7854.     * xselect.c (lisp_data_to_selection_data): Likewise.
  7855.  
  7856.     * coding.h (struct iso2022_spec): Change the declaration of
  7857.     requested_designation from `char' to `int'.
  7858.  
  7859. 1997-05-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7860.  
  7861.     * callint.c (Fcall_interactively): Use num_input_events.
  7862.  
  7863.     * keyboard.h (num_input_events, num_nonmacro_input_events):
  7864.     Renamed from ..._input_chars.
  7865.  
  7866.     * eval.c (num_nonmacro_input_events):
  7867.     Renamed from num_nonmacro_input_chars.
  7868.  
  7869.     * keyboard.c (num_nonmacro_input_events):
  7870.     Renamed from num_nonmacro_input_chars.
  7871.     (syms_of_keyboard): Rename Lisp variable.
  7872.  
  7873. 1997-05-18  Erik Naggum  <erik@naggum.no>
  7874.  
  7875.     * lisp.h (Vtty_erase_char): Declared.
  7876.     * keyboard.c (Vtty_erase_char): Variable defined
  7877.     (syms_of_keyboard): Set up Lisp variable.
  7878.     Also set up `num-nonmacro-input-chars' to report actual keystrokes.
  7879.     * sysdep.c (init_sys_modes): Initialize Vtty_erase_char if
  7880.     possible from the stty settings, otherwise to nil.
  7881.  
  7882.     * lread.c (Fintern): Give keywords a value when interned.
  7883.  
  7884.     * dired.c (Ffile_attributes): Return inode number as a cons
  7885.     only if necessary.
  7886.  
  7887. 1997-05-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7888.  
  7889.     * keymap.c (copy_keymap_1): Do nothing if ELT isn't a keymap.
  7890.  
  7891. 1997-05-17  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7892.  
  7893.     * frame.c (make_terminal_frame): Don't add `Emacs' to frame name.
  7894.  
  7895. 1997-05-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7896.  
  7897.     * sysselect.h (SELECT_TYPE): Don't define if already defined.
  7898.  
  7899.     * cmds.c (nonascii_insert_offset): New variable.
  7900.     (Fself_insert_command, internal_self_insert):
  7901.     Add nonascii_insert_offset to what we insert, when appropriate.
  7902.     (syms_of_cmds): Set up Lisp variable.
  7903.  
  7904.     * xdisp.c (display_text_line): Move the code to fill out the line
  7905.     with the newline's face to the end of the newline code.
  7906.     Add changes (commented out) to record ellipsis positions in charstarts.
  7907.  
  7908.     * charset.c (strwidth): Fix previous change.
  7909.  
  7910.     * ralloc.c (mallopt): Declare, if appropriate.
  7911.     (r_alloc_init) [DOUG_LEA_MALLOC]: Call mallopt,
  7912.     instead of setting __malloc_extra_blocks.
  7913.  
  7914. Thu May 15 22:21:18 1997  Ken'ichi Handa  <handa@diazepam.gnu.ai.mit.edu>
  7915.  
  7916.     * Makefile.in (charset.o): Add disptab.h in dependency list.
  7917.  
  7918.     * charset.c: Include disptab.h.
  7919.  
  7920. 1997-05-16  Kenichi Handa  <handa@etl.go.jp>
  7921.  
  7922.     * xterm.c (dumpglyphs): Draw glyphs one by one if the font for
  7923.     them is narrower than required.
  7924.  
  7925.     * fns.c (copy_sub_char_table): Declare the argument ARG as
  7926.     Lisp_Object.
  7927.  
  7928.     * fontset.c (fontset_pattern_regexp): Cast to (char *) before
  7929.     assigning to P0.
  7930.  
  7931.     * ccl.c (struct ccl_prog_stack): Declear the member ccl_prog as
  7932.     Lisp_Object *.
  7933.  
  7934.     * editfns.c: Declare Fuser_full_name as Lisp_Object in advance to
  7935.     avoid compiler error.
  7936.  
  7937.     * data.c: Declare set_internal as Lisp_Object in advance to avoid
  7938.     compiler error.
  7939.  
  7940.     * alloc.c (BYTES_USED): Put # at the beginning of line.
  7941.     (emacs_blocked_malloc): Likewise.
  7942.  
  7943.     * xterm.c (x_connection_closed): Likewise.
  7944.     (x_load_font): Cast to (char *) before assigning to FONTNAME.
  7945.  
  7946.     * keymap.c: Declare Fcopy_keymap as Lisp_Object in advance to
  7947.     avoid compiler error.
  7948.  
  7949. 1997-05-16  Kenichi Handa  <handa@etl.go.jp>
  7950.  
  7951.     * charset.h (VALID_CHAR_P): New macro.
  7952.  
  7953.     * fns.c (Fset_char_table_default): New function.
  7954.  
  7955. 1997-05-15  Kenichi Handa  <handa@etl.go.jp>
  7956.  
  7957.     * charset.c (non_ascii_char_to_string): Signal error if the
  7958.     argument C is an invalid character code.
  7959.     (Fconcat_chars): Use alloca instead of malloc.
  7960.  
  7961.     * charset.h (CHAR_STRING):  Comment reflect the above change.
  7962.  
  7963.     * coding.h: Name change through the code:
  7964.     coding-category-internal => coding-category-emacs-mule,
  7965.     XXX_coding_internal => XXX_coding_emacs_mule,
  7966.     coding_type_internal => coding_type_emacs_mule,
  7967.     coding_type_automatic => coding_type_undecided,
  7968.     CODING_CATEGORY_MASK_INTERNAL => CODING_CATEGORY_MASK_EMACS_MULE,
  7969.     CODING_CATEGORY_IDX_INTERNAL => CODING_CATEGORY_IDX_EMACS_MULE,
  7970.     CODING_EOL_AUTOMATIC => CODING_EOL_UNDECIDED.
  7971.     * coding.c: Likewise.
  7972.     * fileio.c: Likewise.
  7973.     
  7974.     * xfns.c (Fx_create_frame): Delete unnecessary code.
  7975.  
  7976. 1997-05-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7977.  
  7978.     * fileio.c (Finsert_file_contents): Use xmalloc. not malloc.
  7979.     Check correctly for whether no code translation is needed.
  7980.     (Finsert_file_contents): Use xrealloc too.
  7981.  
  7982.     * charset.c (strwidth, Fchar_width): Handle display table.
  7983.  
  7984. 1997-05-15  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  7985.  
  7986.     * casefiddle.c: Include charset.h.
  7987.     (Qidentity): Define this variable.
  7988.     (syms_of_casefiddle): Initialize and staticpro it.
  7989.     (casify_object, casify_region): Handle multibyte.
  7990.  
  7991. 1997-05-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  7992.  
  7993.     * casetab.c (compute_trt_identity): Use make_sub_char_table.
  7994.     (compute_trt_identity, compute_trt_shuffle):
  7995.     Set up bytes[0] with the charset code.
  7996.     Check for a sub-char-table when deciding to recurse.
  7997.     Terminate the loop properly for a sub-char-table.
  7998.  
  7999.     * callint.c (Fcall_interactively): Pass extra arg to Fread_string.
  8000.  
  8001.     * minibuf.c (Fread_from_minibuffer): Add gcpro.
  8002.  
  8003.     * fns.c (Fcopy_sequence): Correctly copy the char-table contents.
  8004.  
  8005.     * keymap.c (describe_vector): Identify charset row numbers clearly.
  8006.  
  8007.     * casetab.c: Include charset.h.
  8008.     (compute_trt_inverse): Totally rewritten.
  8009.     Args are now Lisp_Object.  Callers changed.
  8010.     (compute_trt_identity, compute_trt_shuffle): New subroutines.
  8011.     (init_casetab_once): Use XSETFASTINT to store into case table;
  8012.     use CHAR_TABLE_SINGLE_BYTE_SLOTS to end the loop.
  8013.     
  8014. 1997-05-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8015.  
  8016.     * syntax.c (describe_syntax_1): Pass new args to describe_vector.
  8017.  
  8018.     * category.c (describe_category_1): Pass new args to describe_vector.
  8019.  
  8020. 1997-05-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8021.  
  8022.     * keymap.c (get_keyelt): Handle an indirect entry with meta char.
  8023.     (describe_vector): Rewrite char-table handling.
  8024.  
  8025.     * data.c (wrong_type_argument): Pass new arg to Fstring_to_number.
  8026.  
  8027. 1997-05-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8028.  
  8029.     * xfns.c (Fx_create_frame): Get X resources from the display
  8030.     we are making the frame on.
  8031.     (x_get_arg): New arg DPYINFO.  Callers changed.
  8032.     (display_x_get_resource): New function.
  8033.  
  8034. 1997-05-11  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
  8035.  
  8036.     * data.c (Fstring_to_number): Handle bases 2...16.
  8037.     (digit_to_number): New subroutine.
  8038.  
  8039. 1997-05-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8040.  
  8041.     * fns.c (map_char_table): New arg SUBTABLE.  Callers changed.
  8042.     Pass the whole chartable to C_FUNCTION.
  8043.     Pass index character as a Lisp_Object.
  8044.  
  8045.     * keymap.c (Fmake_keymap): Make a char-table.
  8046.     (access_keymap, store_in_keymap): Likewise,
  8047.     (describe_map, Fset_keymap_parent, Faccessible_keymaps): Likewise.
  8048.     (Fwhere_is_internal, Fcopy_keymap): Handle a char-table.
  8049.     (copy_keymap_1, accessible_keymaps_char_table): New subroutines.
  8050.     (where_is_internal_1, where_is_internal_2): New functions.
  8051.     (syms_of_keymap): Set up Qchar_table_extra_slots prop on Qkeymap.
  8052.     
  8053. 1997-05-10  Ken'ichi Handa  <handa@etl.go.jp>
  8054.  
  8055.     * callproc.c (Fcall_process_region): Supply 7th new arg
  8056.     CODING_SYSTEM as Qnil to Fwrite_region.
  8057.  
  8058.     * ccl.c (Fccl_execute_on_string): Add 4th optional arg
  8059.     CONTINUE.
  8060.  
  8061.     * charset.c (unify_char): New function.
  8062.     (Fdefine_charset): Doc-string modified.
  8063.     (find_charset_in_str): Add 4th arg TABLE which is a character
  8064.     unification table.
  8065.     (Ffind_charset_region): Add optional arg TABLE which is a
  8066.     character unification table.
  8067.     (Ffind_charset_string): Likewise.
  8068.  
  8069.     * charset.h (unify_char): Extern it.
  8070.  
  8071.     * coding.c (Valternate_charset_table): The valiable deleted.
  8072.     (Venable_character_unification,
  8073.     Vstandard_character_unification_table_for_read,
  8074.     Vstandard_character_unification_table_for_write,
  8075.     Qcharacter_unification_table): New variables.
  8076.     (syms_of_coding): Initialize and declare them.
  8077.     (DECODE_ISO_CHARACTER): Modified to handle a character unification
  8078.     table instead of Valternate_charset_table.
  8079.     (DECODE_DESIGNATION): Delete handling of Valternate_charset_table.
  8080.     (decode_coding_iso2022): Handle a character unification table.
  8081.     (ENCODE_ISO_CHARACTER): New macro.
  8082.     (encode_designation_at_bol): Handle a character unification table.
  8083.     Do not return -1 even if end-of-line is not in the current run.
  8084.     (encode_coding_iso2022): Handle a character unification table.
  8085.     Call macro ENCODE_ISO_CHARACTER instead of calling
  8086.     ENCODE_ISO_CHARACTER_DIMENSION1 and
  8087.     ENCODE_ISO_CHARACTER_DIMENSION2 directly.  Check the size of
  8088.     carryover before copying it to destination.
  8089.     (setup_coding_system): Initialize the member
  8090.     character_unification_table of the struct coding system to Qnil.
  8091.     (Fset_keyboard_coding_system): Doc string augmented.
  8092.  
  8093.     * coding.h (CODING_SPEC_ISO_PLANE_CHARSET): Return -1 if no
  8094.     character set is invoked to PLANE.
  8095.     (struct coding_system): New member character_unification_table.
  8096.  
  8097.     * fileio.c (Fwrite_region): Add 7th optional arg
  8098.     CODING_SYSTEM.  Move gap after a newline code if we are encoding
  8099.     in a coding system which requires designation sequences to be put
  8100.     at beginning of line.  Set coding.last_block to 1 before calling
  8101.     a_write for an empty file.
  8102.     (build_annotations): Code tuned up for handling
  8103.     pre_write_conversion of a coding system.
  8104.     (e_write): Delete code for handling carryover of code conversion.
  8105.     It is now handled in encode_coding.
  8106.     (auto_save_1): Supply 7th new arg CODING_SYSTEM as Qnil to
  8107.     Fwrite_region.
  8108.  
  8109.     * fontset.c (Vfontset_alias_alist): New variable.
  8110.     (fontset_pattern_regexp): Delete code for handling nickname of a
  8111.     fonset.  It is now handled in Fquery_fontset by consulting
  8112.     Vfontset_alias_alist.
  8113.     (Fquery_fontset): Handle Vfontset_alias_alist.
  8114.     (syms_of_fontset): Terminate each line by `\n\' in doc-string of
  8115.     alternate-fontname-alist.  Declare Lisp valiable
  8116.     fontset-alias-alist.  Doc-string of highlight-wrong-size-font
  8117.     and clip-large-size-font modified.
  8118.  
  8119.     * xfns.c (Fx_create_frame): Delete code for handling the X
  8120.     resouce "Fontset".
  8121.  
  8122.     * xselect.c (selection_data_to_lisp_data): If TYPE is `STRING'
  8123.     and DATA contains 8-bit codes, decode them as Latin-1 characters.
  8124.     (lisp_data_to_selection_data): Supply 4th arg TABLE as Qnil to
  8125.     find_charset_in_str.
  8126.  
  8127.     * xterm.c (dumpglyphs): Even if font (not fontset) is used,
  8128.     display Latin1 characters correctly if the font contains glyphs
  8129.     for them.  Fix bug of displaying cursor on a composite character.
  8130.  
  8131. 1997-05-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8132.  
  8133.     * keyboard.c (Fexecute_extended_command):
  8134.     Pass new arg to Fcompleting_read.
  8135.     (command_loop_1): Use an int for last_command_char.
  8136.  
  8137.     * lisp.h (read_minibuf): Declaration deleted.
  8138.  
  8139.     * callint.c (Fcall_interactively): Pass new arg to
  8140.     Fread_from_minibuffer and Fread_variable.
  8141.  
  8142.     * fns.c (Fyes_or_no_p): Pass new arg to Fread_from_minibuffer.
  8143.  
  8144.     * minibuf.c (Fread_command): New optional arg DEFAULT-VALUE.
  8145.     Callers changed.
  8146.     (Fread_variable, Fread_string, Fread_from_minibuffer): Likewise.
  8147.     (read_minibuf): Now static.  New arg DEFALT.  Callers changed.
  8148.     Bind minibuffer-default here.
  8149.     (read_minibuf_unwind): Now static.
  8150.     (Fcompleting_read): Past DEF to Fread_from_minibuffer;
  8151.     no need to use it directly here.
  8152.  
  8153.     * fileio.c (Fread_file_name): Finish previous change.
  8154.  
  8155.     * coding.c (Fread_coding_system, Fread_non_nil_coding_system): 
  8156.     Pass new arg to Fcompleting_read.
  8157.  
  8158.     * callint.c (Fcall_interactively): Pass new arg to Fcompleting_read.
  8159.  
  8160.     * xmenu.c (Fx_popup_menu): Doc fix.
  8161.  
  8162. 1997-05-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8163.  
  8164.     * Makefile.in (TAGS): Fix typo.
  8165.  
  8166.     * xdisp.c (mark_window_display_accurate, redisplay_internal):
  8167.     Test highlight_nonselected_windows.
  8168.     (display_text_line): Likewise (in more places).
  8169.     (syms_of_xdisp): Initialize highlight_nonselected_windows to 0.
  8170.  
  8171.     * keyboard.c (Qtimer_event): Variable deleted.
  8172.     (Qtimer_event_handler): New variable.
  8173.     (syms_of_keyboard): Don't initialize Qtimer_event.
  8174.     Do initialize Qtimer_event_handler.
  8175.     (read_char): Don't check for timer event.
  8176.     (swallow_events): Don't handle timer events.
  8177.     (timer_check): Likewise.
  8178.     (make_lispy_event): Likewise.
  8179.  
  8180. 1997-05-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8181.  
  8182.     * s/bsd386.h: Delete the code that was trying to define BSD "right"
  8183.     now that Emacs doesn't use the symbol BSD this way.
  8184.  
  8185. 1997-05-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8186.  
  8187.     * Makefile.in (MOUSE_SUPPORT): Delete menu-bar.elc.
  8188.     (lisp): Move menu-bar.elc here.
  8189.     Add custom.elc and cus-start.elc.
  8190.  
  8191.     * m/intel386.h (LIBS_MACHINE): Add -lelf.
  8192.  
  8193. 1997-05-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8194.  
  8195.     * xdisp.c (display_text_line): Clear region_showing to Qnil if the
  8196.     window should not show a region.
  8197.     (redisplay_internal): Do update region_showing when ! all_windows.
  8198.  
  8199.     * window.c (Fset_window_configuration): Set last_selected_window
  8200.     in the new selected window's new buffer.
  8201.  
  8202.     * xdisp.c (display_text_line): Set w->region_showing to the mark
  8203.     position if there's a mark; to nil, otherwise.
  8204.  
  8205.     * w32fns.c (x_set_mouse_color): Fix previous change.
  8206.  
  8207.     * xselect.c (x_reply_selection_request): Delete the inner
  8208.     unbind_to call, since x_uncatch_errors does the job.
  8209.  
  8210. 1997-05-04  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8211.  
  8212.     * minibuf.c (Fcompleting_read): New arg DEF.
  8213.     Callers changed.
  8214.     (Qminibuffer_default): New variable.
  8215.     (syms_of_minibuf): Initialize it.
  8216.  
  8217.     * fileio.c (Fread_file_name): Pass default to Fcompleting_read.
  8218.  
  8219. 1997-05-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8220.  
  8221.     * w32fns.c (x_set_mouse_color): Update calls to x_catch_errors
  8222.     and x_uncatch_errors.
  8223.  
  8224.     * xfns.c (x_set_scroll_bar_width): If arg is too small, round it up.
  8225.  
  8226.     * window.c (Fdisplay_buffer): If we give up and try other frames,
  8227.     look again for a window in those frames already showing BUFFER.
  8228.  
  8229. 1997-05-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8230.  
  8231.     * xselect.c (x_reply_selection_request): Fix previous change.
  8232.  
  8233. 1997-04-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8234.  
  8235.     * xterm.c (XTmouse_position, x_term_init): 
  8236.     Save value from x_catch_errors and pass to x_uncatch_errors.
  8237.  
  8238.     * xselect.c (x_own_selection, x_reply_selection_request)
  8239.     (x_get_foreign_selection):
  8240.     Save value from x_catch_errors and pass to x_uncatch_errors.
  8241.  
  8242.     * xfns.c (x_real_positions, x_set_mouse_color, Fx_list_fonts):
  8243.     Save value from x_catch_errors and pass to x_uncatch_errors.
  8244.  
  8245.     * xterm.c (x_catch_errors): Use specpdl so can be nested.
  8246.     Use a Lisp string to as the buffer for the X message.
  8247.     (x_uncatch_errors, x_had_errors_p, x_check_errors): Related changes.
  8248.     (x_catch_errors_unwind): New function.
  8249.     (x_error_quitter): Call x_error_catcher if appropriate.
  8250.     (x_error_message_string): New variable.
  8251.     (syms_of_xterm): Defvar it.
  8252.     (x_caught_error_message): Variable deleted.
  8253.     (X_ERROR_MESSAGE_SIZE): Renamed from X_CAUGHT_ERROR_MESSAGE_SIZE.
  8254.     (x_error_handler): New function, calls x_error_quitter or ..._checker.
  8255.     (x_initialize): Use x_error_handler as error handler for X.
  8256.  
  8257. 1997-04-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8258.  
  8259.     * fileio.c (Fexpand_file_name): Check length > 0 when necessary.
  8260.  
  8261. 1997-04-27  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8262.  
  8263.     * syntax.c (skip_chars): Fix previous change in syntax/backward case.
  8264.  
  8265.     * lread.c (init_lread): Don't add ../lisp to the dump-time load path.
  8266.  
  8267.     * buffer.c (Fbury_buffer): If buffer is in selected window, remove it.
  8268.     Otherwise, remove it from other windows.
  8269.  
  8270.     * fileio.c (Fsubstitute_in_file_name): Use xnm uniformly, never nm,
  8271.     when handling /~ and // at the end.
  8272.  
  8273.     * process.c (read_process_output): Update opoint, old_begv and old_zv
  8274.     based on actual buffer change rather than size of string.
  8275.     old_begv and old_zv are now ints.
  8276.     (status_notify): Likewise for opoint.
  8277.  
  8278. 1997-04-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8279.  
  8280.     * xterm.c (x_destroy_window): Free saved_menu_event, if any.
  8281.  
  8282.     * frame.c (Fdelete_frame): Free FRAME_MESSAGE_BUF.
  8283.  
  8284.     * xrdb.c (get_user_app): Free the gethomedir value.
  8285.  
  8286.     * buffer.c (reset_buffer): Initialize clip_changed field.
  8287.  
  8288. 1997-04-25  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8289.  
  8290.     * emacs.c (sort_args): Free the malloc'd memory.
  8291.  
  8292.     * fileio.c (Fwrite_region): GCPRO `start' near the beginning.
  8293.  
  8294.     * xfns.c (x_set_menu_bar_lines): Increment windows_or_buffers_changed.
  8295.  
  8296. 1997-04-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8297.  
  8298.     * syntax.c (skip_chars): Merge mule changes back in.
  8299.  
  8300. 1997-04-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8301.  
  8302.     * window.c (frame_override_unsplittable): New variable.
  8303.     (Fsplit_window): Ignore `unsplittable' if frame_override_unsplittable.
  8304.     (syms_of_window): Set up Lisp var.
  8305.  
  8306.     * xmenu.c (set_frame_menubar): When widget is new,
  8307.     forget records of old contents.
  8308.  
  8309. 1997-04-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8310.  
  8311.     * xterm.c (x_set_offset): Turn off the code that added the border_width
  8312.     to modified_left and modified_top; it seems incorrect to do that.
  8313.  
  8314. 1997-04-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8315.  
  8316.     * keymap.c (Faccessible_keymaps): Convert PREFIX to a vector
  8317.     at the beginning, if it has any definition.
  8318.  
  8319. 1997-04-19  Erik Naggum  <erik@naggum.no>
  8320.  
  8321.     * keymap.c (describe_vector): Test for suppressed commands in
  8322.     all cases.  Call get_keyelt with two arguments.
  8323.  
  8324. 1997-04-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8325.  
  8326.     * print.c (print): Symbols like e2 and 2e are not confusing.
  8327.  
  8328. 1997-04-17  Andrew Innes  <andrewi@harlequin.co.uk>
  8329.  
  8330.     * fileio.c (Fexpand_file_name): Fix expansion of "/foo/../".
  8331.  
  8332. 1997-04-15  Ken'ichi Handa  <handa@etl.go.jp>
  8333.  
  8334.     * coding.c (setup_coding_system): Setup coding->eol_type as LF
  8335.     for a invalid coding system.
  8336.  
  8337. 1997-04-14  Ilya Zakharevich  <ilya@math.ohio-state.edu>
  8338.  
  8339.     * dired.c (Fdirectory_files): Set re_match_object.
  8340.  
  8341.     * intervals.c (update_interval): New function.
  8342.  
  8343.     * intervals.h (update_interval): New function declaration.
  8344.  
  8345.     * regex.c (PTR_TO_OFFSET): New macro.
  8346.     (POS_AS_IN_BUFFER): New macro.
  8347.     (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table' text
  8348.     property into account when doing SYNTAX (c).
  8349.     (re_compile_fastmap): disable fastmap if any of wordbound
  8350.     notwordbound wordbeg wordend notsyntaxspec syntaxspec are seen.
  8351.     (re_search_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start.
  8352.     (re_match_object): New variable.
  8353.     (re_match_2): SETUP_SYNTAX_TABLE_FOR_OBJECT at the start.
  8354.     (re_match_2_internal): For any of wordbound notwordbound wordbeg
  8355.     wordend notsyntaxspec syntaxspec call UPDATE_SYNTAX_TABLE before
  8356.     doing SYNTAX (c).
  8357.  
  8358.     * regex.h (re_match_object): New variable.
  8359.  
  8360.     * search.c (looking_at_1): Set re_match_object.
  8361.     (string_match_1): Set re_match_object.
  8362.     (fast_string_match): Set re_match_object.
  8363.     (Fskip_chars_forward): Move to syntax.c.
  8364.     (Fskip_chars_backward): Move to syntax.c.
  8365.     (Fskip_syntax_forward): Move to syntax.c.
  8366.     (Fskip_syntax_backward): Move to syntax.c.
  8367.     (skip_chars): Move to syntax.c.
  8368.     (search_buffer): Set re_match_object.
  8369.     (syms_of_search): Move initialization of skip* to syntax.c.
  8370.  
  8371.     * syntax.c (SYNTAX_ENTRY_VIA_PROPERTY): Set to take `syntax-table'
  8372.     text property into account when doing SYNTAX (c).
  8373.     (ST_COMMENT_STYLE, ST_STRING_STYLE): New codes to denote
  8374.     delimiters for new types of strings and comments.
  8375.     (Vparse_sexp_lookup_properties): New variable.
  8376.     (struct lisp_parse_state): Comment updated.
  8377.     (gl_state): New global variable.
  8378.     (update_syntax_table): New function.
  8379.     (char_quoted): Move earlier, update gl_state when needed.
  8380.     (find_defun_start): Update gl_state when needed.
  8381.     (back_comment): New function.
  8382.     (Scomment_fence, Sstring_fence): New delimeter char classes
  8383.     denoted by `!' and `|'.
  8384.     (Fchar_syntax, Fmatching_paren): Update gl_state to whole-buffer state.
  8385.     (scan_words): Update gl_state when needed.
  8386.     (Fskip_chars_forward): Move from search.c.
  8387.     (Fskip_chars_backward): Move from search.c.
  8388.     (Fskip_syntax_forward): Move from search.c.
  8389.     (Fskip_syntax_backward): Move from search.c.
  8390.     (skip_chars): Move from search.c.
  8391.     (Fforward_comment, scan_lists): Update gl_state when needed.
  8392.     Handle Scomment_fence, Sstring_fence.
  8393.     (Fbackward_prefix_chars) update gl_state when needed.
  8394.     (scan_sexps_forward): update gl_state when needed.
  8395.     Handle Scomment_fence, Sstring_fence.
  8396.     If comment_stop==-1, stop at start or end of comment or string.
  8397.     (Fparse-partial-sexp): Doc fix.
  8398.     (syms_of_syntax): Move initialization of skip* from search.c.
  8399.  
  8400.     * syntax.h (enum syntaxcode):
  8401.     New members Scomment_fence, Sstring_fence.
  8402.     (SYNTAX_ENTRY): Depending on the value of SYNTAX_ENTRY_VIA_PROPERTY
  8403.     may do a lookup for syntax table in gl_state.
  8404.     (UPDATE_SYNTAX_TABLE_FORWARD, UPDATE_SYNTAX_TABLE_BACKWARD,
  8405.     UPDATE_SYNTAX_TABLE, SETUP_SYNTAX_TABLE,
  8406.     SETUP_SYNTAX_TABLE_FOR_OBJECT): New macros.
  8407.     (struct gl_state_s): New struct.
  8408.  
  8409.     * textprop.c: Style of comments corrected. 
  8410.     (interval_of): New function.
  8411.  
  8412. 1997-04-14  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
  8413.  
  8414.     * w16select.c: New file, MS-Windows clipboard support from
  8415.     Emacs running as MSDOS application.
  8416.     
  8417.     * s/msdos.h (SYMS_SYSTEM): Add `syms_of_win16select'.
  8418.  
  8419.     * Makefile.in (MSDOS_OBJ): Add w16select.o.
  8420.     (dependencies): Add dependencies for w16select.o.
  8421.  
  8422. 1997-04-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8423.  
  8424.     * undo.c (Fprimitive_undo): When inserting, always insert
  8425.     after markers (the ordinary kind of insertion).
  8426.  
  8427.     * insdel.c (adjust_markers): Don't be confused by the gap
  8428.     when computing the arg to record_marker_adjustment.
  8429.  
  8430. 1997-04-11  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  8431.  
  8432.     * category.c (Fmodify_category_entry): Delete second arg in call
  8433.     to make_sub_char_table.
  8434.  
  8435.     * lisp.h (DOWNCASE): Return int, not Lisp_Object.
  8436.     (UPPERCASEP): Use DOWNCASE.
  8437.     (UPCASE_TABLE): New macro.
  8438.     (NOCASEP, UPCASE1): Use UPCASE_TABLE.
  8439.     [!NO_UNION_TYPE] (make_number): Declare.
  8440.  
  8441. 1997-04-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8442.  
  8443.     * minibuf.c (read_minibuf): Get the string from the minibuffer
  8444.     even if the user has selected a different buffer.
  8445.  
  8446.     * fileio.c (Finsert_file_contents): Do call signal_after_change
  8447.     when REPLACE is handled by reading directly from the file.
  8448.     Use insert_1 to insert replacement text, to avoid
  8449.     query about whether to modify the buffer.
  8450.     
  8451. 1997-04-10  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  8452.  
  8453.     * Makefile.in (mallocobj): Make non-REL_ALLOC configuration work
  8454.     with glibc's malloc--do use vm-limit.o.
  8455.  
  8456. 1997-04-10  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  8457.  
  8458.     * cmds.c (internal_self_insert): Fix return value.
  8459.     * category.c (Fmake_category_set): Use XSETFASTINT.
  8460.     * minibuf.c (scmp): Fix Lisp_Object/integer confusion.
  8461.     (Fdisplay_completion_list): Likewise.
  8462.     * insdel.c (Fcombine_after_change_execute): Likewise.
  8463.     * xselect.c (expect_property_change): Likewise.
  8464.     * xterm.c (construct_menu_click, note_mouse_highlight): Likewise.
  8465.     (fast_find_position): Likewise.
  8466.     * ccl.c (ccl_driver): Likewise.
  8467.     * coding.c (Ffind_coding_system): Likewise.
  8468.     * charset.c (Fconcat_chars, ONE_BYTE_CHAR_WIDTH): Likewise.
  8469.     * xmenu.c (Fx_popup_menu, set_frame_menubar): Likewise.
  8470.     * disptab.h (DISP_TABLE_P): Likewise.
  8471.     * xdisp.c (display_text_line): Likewise.
  8472.     * dispnew.c (Fframe_or_buffer_changed_p): Likewise.
  8473.     * window.c (Fset_window_buffer, Fdisplay_buffer): Likewise.
  8474.     (delete_window): Don't return value from void function.
  8475.  
  8476. 1997-04-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8477.  
  8478.     * s/freebsd.h (BSD_SYSTEM): Alternate definition for FreeBSD v3.
  8479.  
  8480.     * systty.h (GETPGRP_NO_ARG): If Glibc 2.1 or later,
  8481.     don't define this if _BSD_SOURCE is defined.
  8482.  
  8483. 1997-04-08  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
  8484.  
  8485.     * emacs.c (malloc_get_state, malloc_set_state): New declarations.
  8486.     (main): Restore internal malloc state when loading from dumped image.
  8487.     (Fdump_emacs): Copy internal malloc state for dumping, then free it.
  8488.  
  8489.     * alloc.c: For glibc's malloc, include <malloc.h> for mallinfo,
  8490.     mallopt, struct mallinfo, and mallopt constants.
  8491.     (BYTES_USED): New macro.
  8492.     (memory_full, emacs_blocked_free): Replace _bytes_used with BYTES_USED.
  8493.     (emacs_blocked_malloc): Set sbrk padding value for glibc, as is
  8494.     done with gmalloc.
  8495.     (allocate_vectorlike, make_uninit_string):
  8496.     Prevent using mmap for possible large chunks.
  8497.     (init_alloc_once): Set trim and mmap malloc parms, when using glibc.
  8498.  
  8499.     * config.in (DOUG_LEA_MALLOC): Add #undef.
  8500.     
  8501.     * Makefile.in (mallocobj): Don't add gmalloc if using glibc.
  8502.     Drop check for `old malloc'; it isn't distributed with Emacs.
  8503.  
  8504. 1997-04-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8505.  
  8506.     * casetab.c (init_casetab_once): Initialize the purpose slot.
  8507.  
  8508. 1997-04-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8509.  
  8510.     * keyboard.c (read_key_sequence): New argument FIX_CURRENT_BUFFER.
  8511.     Restore the current buffer from selected window on occasion.
  8512.     All callers changed.
  8513.  
  8514. 1997-04-07  Kenichi HANDA  <handa@etl.go.jp>
  8515.  
  8516.     * Makefile.in (lisp, shortlisp): Include english.elc and
  8517.     tibetan.elc.
  8518.  
  8519.     * alloc.c (Fmake_char_table): Adjusted for the new structure of
  8520.     Lisp_Char_Table.
  8521.     (make_sub_char_table): New function.
  8522.  
  8523.     * category.c (category-table-p): Check only type and purpose.
  8524.     (copy_category_table, Fmodify_category_entry): Adjusted for the
  8525.     new structure of Lisp_Char_Table.
  8526.  
  8527.     * ccl.c: (ccl_driver): Fix bug of the case CCL_WriteArrayReadJump.
  8528.  
  8529.     * charset.h (CHARSET_TABLE_ENTRY): Handle ASCII charset correctly.
  8530.     (SPLIT_NON_ASCII_CHAR, SPLIT_CHAR): Return -1 in C2 for DIMENSION1
  8531.     characters.
  8532.  
  8533.     * charset.c (non_ascii_char_to_string, update_charset_table,
  8534.     Fsplit_char): Adjusted for the above change.
  8535.  
  8536.     * coding.c (detect_coding_iso2022, detect_coding_mask): Ignore
  8537.     invalid ESC sequence for ISO 2022.
  8538.     (Fencode_sjis_char, Fencode_big5_char): Adjusted for the change of
  8539.     SPLIT_CHAR.
  8540.  
  8541.     * data.c (Faref, Faset): Adjusted for the new structure of
  8542.     Lisp_Char_Table.
  8543.  
  8544.     * disptab.c (disp_char_vector): Extern it.
  8545.     (DISP_CHAR_VECTOR): Handle multibyte characters.
  8546.  
  8547.     * fns.c (copy_sub_char_table): New function.
  8548.     (Fcopy_sequence): Call copy_sub_char_table for copying a sub char
  8549.     table.
  8550.     (Fchar_table_range, Fset_char_table_range, map_char_table,
  8551.     Fmap_char_table): Handle multibyte characters correctly.
  8552.  
  8553.     * fontset.c (Vhighlight_wrong_size_font, Vclip_large_size_font):
  8554.     New variables.
  8555.     (syms_of_fontset): Declare them as Lisp variables.
  8556.  
  8557.     * fontset.h (Vhighlight_wrong_size_font, Vclip_large_size_font):
  8558.     Extern them.
  8559.  
  8560.     * keymap.c (describe_vector): Adjusted for the new structure of
  8561.     Lisp_Char_Table.
  8562.  
  8563.     * lisp.h (CHAR_TABLE_STANDARD_SLOTS): Now 4 more slots than
  8564.     CHAR_TABLE_ORDINARY_SLOTS for top, defalt, parent, and purpose.
  8565.     (SUB_CHAR_TABLE_ORDINARY_SLOTS, SUB_CHAR_TABLE_STANDARD_SLOTS):
  8566.     New macros.
  8567.     (CHAR_TABLE_REF, CHAR_TABLE_SET): Enclose args by parenthesis.
  8568.     (struct Lisp_Char_Table): New member `top'.  The member `defalt'
  8569.     is moved before `contents' so that XCHAT_TABLE (val)->defalt can
  8570.     also be used for a sub char table.
  8571.     (SUB_CHAR_TABLE_P): New macro.
  8572.     (make_sub_char_table): Extern it.
  8573.  
  8574.     * lread.c (read1): Adjusted for the new structure of
  8575.     Lisp_Char_Table.
  8576.  
  8577.     * print.c (print): Likewise.
  8578.  
  8579.     * xdisp.c (disp_char_vector): New function to be used from the
  8580.     macro DISP_CHAR_VECTOR for multibyte characters.
  8581.  
  8582.     * xterm.c (dumpglyphs): Clip and highlight glyphs displayed with
  8583.     fonts of wrong size.
  8584.  
  8585. Sun Apr  6 10:26:53 1997  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
  8586.  
  8587.     * emacs.c (init_cmdargs) [MSDOS]: Make the change that sets
  8588.     `installation-directory' if `info' is found as its subdirectory or
  8589.     sibling, be conditioned on MSDOS (it makes trouble on Unix).
  8590.  
  8591.  
  8592. 1997-04-05  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8593.  
  8594.     * coding.c (Ffind_coding_system): Doc fix.
  8595.  
  8596. 1997-04-03  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  8597.  
  8598.     * fns.c (Fcopy_sequence): Delete unused variable.
  8599.     (Fchar_table_extra_slot, Fset_char_table_extra_slot): Doc fix.
  8600.     (map_char_table): When expanding indices, don't increase depth;
  8601.     that's amount used, not amount allocated.
  8602.  
  8603.     * category.h [!__GNUC__] (CATEGORY_SET): Fix syntax error.
  8604.  
  8605.     * lisp.h (CHAR_TABLE_REF): Fix syntax error.
  8606.     (LOWERCASEP): Use NOCASEP instead of its expansion.
  8607.     (UPCASE): Use UPPERCASEP instead of its expansion.
  8608.  
  8609. 1997-04-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8610.  
  8611.     * fileio.c (Finsert_file_contents): When handling REPLACE,
  8612.     first try comparing block by block; if we discover a need for
  8613.     nontrivial code conversion, give up and try convert-whole-file method.
  8614.  
  8615.     * fileio.c (Fcopy_file): Fix error message.
  8616.  
  8617.     * fileio.c (Finsert_file_contents): Handle non-regular files.
  8618.  
  8619. 1997-04-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8620.  
  8621.     * search.c (skip_chars): Make `c' an unsigned int.
  8622.  
  8623. 1997-04-01  Erik Naggum  <erik@naggum.no>
  8624.  
  8625.     * eval.c (Fuser_variable_p): If not a symbol, return nil.
  8626.  
  8627. 1997-03-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8628.  
  8629.     * fileio.c (Fcopy_file): Use Qfile_date_error if can't set file date.
  8630.     (Qfile_date_error): New variable.
  8631.     (syms_of_fileio): Set it up.
  8632.     (Fcopy_file): Fix previous change.
  8633.     (Finsert_file_contents): Determine the character coding
  8634.     before we see if REPLACE can be handled.
  8635.     Do handle REPLACE even if code conversion is needed. 
  8636.  
  8637. 1997-03-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8638.  
  8639.     * keymap.c (Faccessible_keymaps): When metizing, convert a
  8640.     string to a vector.  But don't metize a character that is
  8641.     part of PREFIX.
  8642.  
  8643.     * window.c (Qwindow_configuration_change_hook): New variable.
  8644.     (Vwindow_configuration_change_hook): New variable.
  8645.      (syms_of_window): Initialize; set up Lisp var.
  8646.     (delete_window): New subroutine, from Fdelete_window.
  8647.     Most callers changed.
  8648.     (Fdelete_window): Call Vwindow_configuration_change_functions.
  8649.     (Fset_window_buffer, Fenlarge_window, Fshrink_window):
  8650.     Call the Vwindow_configuration_change_functions.
  8651.     (Fset_window_configuration): Likewise.
  8652.  
  8653.     * dispnew.c (change_frame_size_1): Call Fset_window_buffer,
  8654.     so that Vwindow_configuration_change_hook gets run.
  8655.  
  8656. 1997-03-25  Erik Naggum  <erik@naggum.no>
  8657.  
  8658.     * process.c (Fopen_network_stream): Use same socket for in and out.
  8659.  
  8660. 1997-03-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  8661.  
  8662.     * frame.c (frames_bury_buffer): New function.
  8663.     * buffer.c (Fbury_buffer): Call frames_bury_buffer.
  8664.  
  8665. 1997-03-22  Mark W. Eichin  <eichin@kitten.gen.ma.us>
  8666.  
  8667.     * keyboard.c (make_lispy_event): Use iso_lispy_function_keys for
  8668.     XK_ISO_* keys found in XFree86. 
  8669.     (ISO_FUNCTION_KEY_OFFSET): New macro.
  8670.     (iso_lispy_function_keys): New table.
  8671.     
  8672.     * xterm.c (XTread_socket): Accept XK_ISO_* keys.
  8673.  
  8674. 1997-03-19  Kenichi Handa  <handa@etl.go.jp>
  8675.  
  8676.     * xterm.c (dumpglyphs): Set a clipping region when we draw glyphs
  8677.     with a font of inappropriate size.
  8678.     (x_list_fonts): Try alternative fonts if we can't find a font of an
  8679.     appropriate size.
  8680.  
  8681.     * fontset.c (Valternative_fontname_alist): New variable.
  8682.     (syms_of_fontset): Declare Lisp variable alternative-fontname-alist.
  8683.  
  8684.     * fontset.h (Valternative_fontname_alist): Extern it.
  8685.  
  8686.     * term.c (insert_glyphs): Fix a bug which turns up when
  8687.     TS_ins_multi_chars is 0.
  8688.  
  8689. 1997-03-18  Kenichi Handa  <handa@etl.go.jp>
  8690.  
  8691.     * xterm.c (x_list_fonts): Comment about cached font list added.
  8692.  
  8693.     * fns.c (map_char_table): Handle multibyte characters.
  8694.  
  8695.     * lisp.h (CHAR_TABLE_ORDINARY_SLOTS): Change to 384 (== 256 + 128).
  8696.     (CHAR_TABLE_STANDARD_SLOTS): Adjusted for the above change.
  8697.     (CHAR_TABLE_SINGLE_BYTE_SLOTS): New macro.
  8698.     (CHAR_TABLE_REF, CHAR_TABLE_SET): New macros.
  8699.  
  8700.     * data.c (Faref, Faset): Adjusted for the above change.
  8701.  
  8702.     * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Likewise.
  8703.  
  8704.     * category.h (CATEGORY_SET): Likewise.
  8705.  
  8706.     * category.c (Fmodify_category_entry): Likewise.
  8707.  
  8708.     * keymap.c (describe_vector): Likewise.
  8709.     (push_key_description): A key code less than 512 is printed with 3
  8710.     octal numbers.  Print only entries of valid charsets.
  8711.  
  8712.     * disptab.h (GLYPH_FOLLOW_ALIASES): Assure that the resulting G
  8713.     contains valid character code.
  8714.  
  8715.     * xdisp.c (copy_part_of_rope): Declare glyph as type GLYPH.  For a
  8716.     invalid character code, use ' ' (space).
  8717.     (display_string, display_text_line): Check validity of character
  8718.     code before calling fix_glyph.
  8719.  
  8720.     * term.c (encode_terminal_code): Check validity of character code.
  8721.  
  8722.     * charset.h (MAX_CHARSET): Definition changed to the actual
  8723.     maximum valid charset.
  8724.     (MAX_CHAR): New macro.
  8725.  
  8726.     * charset.c, coding.h, coding.c, fontset.h, fontset.c, xselect.c:
  8727.     Adjusted for the above change.
  8728.  
  8729.     * charset.c (str_cmpchar_id): Return -1 if we have no more room
  8730.     for a new composite character.
  8731.     (Fmake_char_internal): Docstring is moved to lisp/mule.el.
  8732.  
  8733.     * fontset.h (struct font_info): Typo in comment of
  8734.     `relative_compose' fixed.
  8735.  
  8736. 1997-03-14  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  8737.  
  8738.     * window.c (change_window_height): Handle shrink as well as enlarge.
  8739.  
  8740. 1997-03-13  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  8741.  
  8742.     * buffer.c (reset_buffer): Initialize display_count slot.
  8743.  
  8744.     * search.c (Freplace_match): Give error if
  8745.     NEWTEXT uses backslash in an invalid way.
  8746.  
  8747. 1997-03-10  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  8748.  
  8749.     * lisp.h (FAST_MAKE_GLYPH): Don't cast CHAR arg; character codes
  8750.     are now wider than C chars.
  8751.  
  8752. 1997-03-09  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  8753.  
  8754.     * buffer.c (Fkill_buffer): Call frames_discard_buffer.
  8755.     (record_buffer): Move buffer to front of frame_buffer_list.
  8756.     (Fother_buffer): Use frame_buffer_list.
  8757.  
  8758.     * frame.h (struct frame): New field buffer_list.
  8759.  
  8760.     * frame.c (frame_buffer_list, set_frame_buffer_list): New functions.
  8761.     (store_frame_param): Handle buffer-list parameter.
  8762.     (Qbuffer_list): New variable.
  8763.     (syms_of_frame_1): Initialize it.
  8764.     (make_frame): Initialize buffer_list field.
  8765.     (Fframe_parameters): Handle buffer-list parameter.
  8766.     (frames_discard_buffer): New function.
  8767.     (make_frame): Initialize buffer_list.
  8768.  
  8769.     * alloc.c (mark_object): Mark the buffer_list field.
  8770.  
  8771. 1997-03-05  Ken'ichi Handa  <handa@etl.go.jp>
  8772.  
  8773.     * coding.c (decode_eol): Fix bug of converting CRLF to LF.
  8774.  
  8775. 1997-03-05  NIIBE Yutaka  <gniibe@mri.co.jp>
  8776.  
  8777.     * indent.c: (compute_motion): When POS >= TO, don't call
  8778.     find_before_next_newline as it assumes POS < TO.
  8779.  
  8780. 1997-03-02  Ken'ichi Handa  <handa@etl.go.jp>
  8781.  
  8782.     * category.h (CATEGORY_SET): Cast arg C to
  8783.     `unsigned char' before indexing category table directly.
  8784.  
  8785. 1997-03-01  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  8786.  
  8787.     * process.c (wait_reading_process_input): If wait_for_cell,
  8788.     ignore subprocess input and respond only to keyboard.
  8789.     (non_process_wait_mask): New variable.
  8790.     (add_keyboard_wait_descriptor): Update it.
  8791.     (delete_keyboard_wait_descriptor): Update it.
  8792.     (init_process): Initialize it.
  8793.  
  8794. 1997-03-01  NIIBE Yutaka  <gniibe@mri.co.jp>
  8795.  
  8796.     * gmalloc.c [__GLIBC__ >= 2]: Don't declare __getpagesize.
  8797.  
  8798. 1997-02-28  Tomohiko MORIOKA  <morioka@jaist.ac.jp>
  8799.  
  8800.     * coding.c (create_process, Fopen_network_stream): Typo in indexes
  8801.     of array proc_encode_coding_system fixed.
  8802.  
  8803. 1997-02-28  Kenichi HANDA  <handa@etl.go.jp>
  8804.  
  8805.     * Makefile.in (lisp, shortlisp): Add lao.elc.
  8806.  
  8807.     * buffer.c (init_buffer_once): Make member
  8808.     enable_multibyte_characters of struct buffer not always local.
  8809.     (reset_buffer): Do not reset b->enable_multibyte_characters.
  8810.     (syms_of_buffer): Declare default-enable-multibyte-characters.
  8811.  
  8812.     * category.h (CATEGORY_SET): For a composite character, return
  8813.     category set of the first component.
  8814.  
  8815.     * ccl.c (Fregister_ccl_program): Escape newlines in docstring.
  8816.  
  8817.     * coding.h (struct iso2022_spec): Member requested_designation is
  8818.     changed to array of `char' just for saving memory.
  8819.     (CODING_FLAG_ISO_INIT_AT_BOL, CODING_FLAG_ISO_DESIGNATE_AT_BOL):
  8820.     New macros.
  8821.  
  8822.     * coding.c (setup_coding_system): Now, flags of ISO2022 coding
  8823.     systems contains charsets instead of charset IDs.  Correct setting
  8824.     coding->symbol and coding->eol_type.  The performance improved.
  8825.     (encode_coding) : Fix typo ("=" -> "==").
  8826.     (detect_coding_iso2022, decode_coding_iso2022): Make the code
  8827.     robust against invalid SI and SO.
  8828.     (ENCODE_RESET_PLANE_AND_REGISTER): Argument `eol' is deleted.
  8829.      Don't call ENCODE_DESIGNATION if nothing designated initially.
  8830.     (encode_designation_at_bol) New function.
  8831.     (encode_coding_iso2022): Handle CODING_FLAG_ISO_INIT_AT_BOL and
  8832.     CODING_FLAG_ISO_DESIGNATE_AT_BOL.
  8833.     (detect_coding_iso2022): Detect coding-category-iso-8-2 more
  8834.     precisely.
  8835.     (Ffind_coding_system, syms_of_coding): Escape newlines in
  8836.     docstring.
  8837.     
  8838.     * charset.h (INC_POS, DEC_POS): Don't increase or decrease too
  8839.     much if there's binary code (invalid character code).
  8840.  
  8841.     * data.c (Faref, Faset): Handle a composite char correctly in
  8842.     char-table.
  8843.  
  8844.     * disptab.h (DISP_CHAR_VECTOR): Allow bare 8-bit in display-table.
  8845.  
  8846.     * charset.c (Fcmpchar_cmp_rule): Escape newlines in docstring.
  8847.  
  8848.     * editfns.c (Fuser_full_name): Likewise.
  8849.  
  8850.     * fileio.c (Finsert_file_contents, Fwrite_region): Do not perform
  8851.     character code conversion if enable-multibyte-characters is nil.
  8852.  
  8853.     * fontset.h (Vuse_default_ascent): Extern.
  8854.  
  8855.     * fontset.c (syms_of_fontset): Intern Qfontset.  Declare new lisp
  8856.     variable use-default-ascent.
  8857.     (Vuse_default_ascent): New variable.
  8858.     (Ffont_info): Return also the value of default-ascent of a font.
  8859.     (fs_load_font): Disable updating fontsetp->height by non-ASCII
  8860.     character sets.  This should be enabled when Emacs supports
  8861.     variable height lines.
  8862.     (fs_load_font, Fset_fontset_font): Bug fix to cope
  8863.     with the change of charsets to symbols.
  8864.  
  8865.     * keymap.c (describe_vector): Do not describe deeper char-table if
  8866.     enable-multibyte-characters is nil.
  8867.  
  8868.     * process.c (proc_decode_coding_system,
  8869.     proc_encode_coding_system): Changed to array of pointers to struct
  8870.     coding_system to reduce the size of dumped Emacs.
  8871.     (create_process, Fopen_network_stream): Allocate them dynamically.
  8872.     (init_process): Initialize these pointers to NULL.
  8873.     (Fstart_process, Fopen_network_stream): Do not perform character
  8874.     code conversion if enable-multibyte-characters is nil.
  8875.  
  8876.     * search.c (skip_chars): If enable-multibyte-characters is nil,
  8877.     don't handle multibyte characters.
  8878.  
  8879.     * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY): Cast arg C to
  8880.     `unsigned char' before indexing syntax table directly.
  8881.  
  8882.     * syntax.c (init_syntax_once): Add trick to avoid compiler warning
  8883.     of "comparison is always 1 ...".
  8884.     (describe_syntax): Handle the case that the argument VALUE is
  8885.     char-table.
  8886.  
  8887.     * xdisp.c (display_mode_line): Avoid error while compiling with
  8888.     --with-x=no.
  8889.  
  8890.     * xfns.c (syms_of_xfns): Documentation of
  8891.     x-pixel-size-width-font-regexp modified.
  8892.  
  8893.     * xselect.c (lisp_data_to_selection_data, selection_data_to_lisp_data):
  8894.     Remove prefix "coding-system-" from coding system symbol names.
  8895.  
  8896.     * xterm.h (struct x_display_info): New member
  8897.     Xatom_MULE_DEFAULT_ASCENT.
  8898.  
  8899.     * xterm.c (dumpglyphs): Pay attention to characters registered in
  8900.     use-default-ascent.  Fill background in advance if font has
  8901.     non-zero _MULE_BASELINE_OFFSET property.
  8902.     (x_load_font, x_term_init): Handle font property
  8903.     _MULE_DEFAULT_ASCENT.
  8904.  
  8905. 1997-02-28  NIIBE Yutaka  <gniibe@mri.co.jp>
  8906.  
  8907.     * sysdep.c: `ospeed' should be short if not HAVE_TERMIO_H.
  8908.  
  8909.     * xdisp.c (display_text_line): Correct displaying multi-column
  8910.     binary data.
  8911.     (try_window_id): Display blank lines from the next line, when
  8912.     xp.bufpos == ZV.  (This bug is introduced by changes of Mule).
  8913.      Compare height against xp.vpos instead of xp.bufpos.
  8914.  
  8915. 1997-02-27  Erik Naggum  <erik@naggum.no>
  8916.  
  8917.     * lread.c (Fload): Call Vload_source_file_function with 4 args.
  8918.  
  8919. 1997-02-22 Tsugutomo ENAMI  <enami@ba2.so-net.or.jp>
  8920.  
  8921.     * regex.c: Include charset.h and category.h
  8922.  
  8923.     [!emacs] (BASE_LEADING_CODE_P, WORD_BOUNDARY_P,    CHAR_HEAD_P,
  8924.     SINGLE_BYTE_CHAR_P, SAME_CHARSET_P, MULTIBYTE_FORM_LENGTH,
  8925.      STRING_CHAR_AND_LENGTH, GET_CHAR_AFTER_2, GET_CHAR_BEFORE_2):
  8926.     New dummy macros.
  8927.  
  8928.     (enum re_opcode_t): New member categoryspec and
  8929.     notcategoryspec.
  8930.  
  8931.     (STORE_CHARACTER_AND_INCR, EXTRACT_CHARACTER,
  8932.     CHARSET_LOOKUP_RANGE_TABLE_WITH_COUNT,
  8933.     CHARSET_LOOKUP_RANGE_TABLE, CHARSET_BITMAP_SIZE,
  8934.     CHARSET_RANGE_TABLE_EXISTS_P, CHARSET_RANGE_TABLE
  8935.     CHARSET_PAST_RANGE_TABLE): New macros.
  8936.  
  8937.     (TRANSLATE): Cast return value to unsigned char, not char.
  8938.  
  8939.     (struct range_table_work_area): New structure.
  8940.  
  8941.     (EXTEND_RANGE_TABLE_WORK_AREA, SET_RANGE_TABLE_WORK_AREA,
  8942.     FREE_RANGE_TABLE_WORK_AREA, CLEAR_RANGE_TABLE_WORK_USED,
  8943.     RANGE_TABLE_WORK_USED, RANGE_TABLE_WORK_ELT): New macros.
  8944.     (FREE_STACK_RETURN): Call FREE_RANGE_TABLE_WORK_AREA.
  8945.  
  8946.     (regex_compile): Declare `c' and `c1' as int to store
  8947.     multibyte characters.
  8948.     Declare range_table_work and initialize    it.
  8949.     Initialize bufp->multibyte to 0 if not emacs.
  8950.     For case '[' and `default', code re-written to handle
  8951.     multibyte characters.
  8952.     Add code for case 'c' and 'C' to handle category spec.
  8953.  
  8954.     (re_compile_fastmap): New local variables k, simple_char_max,
  8955.     and match_any_multibyte_characters.
  8956.     Use macro CHARSET_BITMAP_SIZE.
  8957.     Handle multibyte characters in cases charset, charset_not,
  8958.     wordchar, notwordchar, anychar, syntaxspec, notsyntaxspec,
  8959.     categoryspec, notcategoryspec.
  8960.  
  8961.     (STOP_ADDR_VSTRING, POS_ADDR_VSTRING): New macros.
  8962.  
  8963.     (re_search_2): Code re-written to handle multibyte characters.
  8964.  
  8965.     (AT_WORD_BOUNDARY): Macro disabled.
  8966.  
  8967.     (re_match_2_internal): New local variable multibyte.  `d' is
  8968.     incremented while paying attention to multibyte characters if
  8969.     necessary.
  8970.     For case charset, charsetnot, wordbound, notwordbound,
  8971.     wordbeg, wordend, matchsyntax, and matchnotsyntax, code
  8972.     re-written to handle multibyte characters.
  8973.     Add code for case categoryspec and notcategoryspec.
  8974.      
  8975.     * regex.h (struct re_pattern_buffer): New member multibyte.
  8976.  
  8977. 1997-02-21  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  8978.  
  8979.     * window.c (Fset_window_buffer): Increment display_count
  8980.     if it is an integer.
  8981.  
  8982.     * buffer.c (init_buffer_once): Set up display_count.
  8983.     (syms_of_buffer): Set up Lisp variable.
  8984.  
  8985.     * buffer.h (struct buffer): New field display_count.
  8986.  
  8987. 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
  8988.  
  8989.     * dispnew.c (direct_output_forward_char): #if-0-out redundant
  8990.      check against truncated text at end of line.
  8991.     Add giving-up for buffers with reverse direction.
  8992.     (remake_frame_glyphs): Use FRAME_MESSAGE_BUF_SIZE
  8993.      instead of FRAME_WIDTH, as the message may include multi-byte
  8994.      character and the length may be longer than width.
  8995.     (width_run_cache_on_off): Disable width-run-cache when
  8996.      multi-byte characters are enabled.
  8997.     (skip_invisible): Don't put the boundary in the middle of
  8998.      multibyte characters.
  8999.  
  9000.     * indent.c (current_column_bol_cache): New variable.  This makes
  9001.      move_to_column faster.
  9002.     (current_column): Set current_column_bol_cache.
  9003.     (current_column_1): Likewise.
  9004.     (Fmove_to_column): Use current_column_bol_cache.
  9005.  
  9006.     * xdisp.c (display_text_line): Introduce new local variable
  9007.     rev_dir_bit to display right to left characters (not yet used).
  9008.     * xdisp.c (message): Use FRAME_MESSAGE_BUF_SIZE.
  9009.     (redisplay_internal): Add canceling code for continuation at
  9010.      wide-column.
  9011.     (display_text_line): Don't just decrement left_edge->bufpos,
  9012.     it may be multi-byte character, use DEC_POS instead.
  9013.  
  9014. 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
  9015.  
  9016.     Handle multi-byte and wide-column character in computing columns.
  9017.      Note that we will find the continuation (linebreak) _AFTER_ it
  9018.      occurs.
  9019.  
  9020.     * indent.c (current_column): When the buffer may have multi-byte
  9021.      characters, call current_column_1.
  9022.     (compute_motion): Handle multi-byte characters.
  9023.     (current_column_1): Likewise.
  9024.     (Fmove_to_column): Likewise.
  9025.  
  9026. 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
  9027.  
  9028.     Tab offset calculation changes.  We need this change because the
  9029.      line may be less than WIDTH columns because of wide-character
  9030.      continuation.
  9031.  
  9032.     * indent.h (struct position): New member tab_offset to accumulate
  9033.     tab offset.
  9034.  
  9035.     * xdisp.c (try_window): Change the way of calculation of tab
  9036.      offset.  We now use val.tab_offset to maintain tab offset.
  9037.       Removed local variable tab_offset.
  9038.     (try_window_id): Likewise.
  9039.  
  9040.     * indent.c: Include "charset.h".
  9041.     (compute_motion): Remove the variable PREV_VPOS.
  9042.     Introduce new local variables (multibyte, wide_column, prev_pos,
  9043.      contin_hpos, prev_tab_offset) to handle multi-byte characters and
  9044.      wide-column characters.
  9045.  
  9046.     (pos_tab_offset): Return COL (Modulo is no longer valid).
  9047.     Add the line to set tab_offset member.
  9048.     Use pos.tab_offset.
  9049.  
  9050. 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
  9051.  
  9052.     * window.c (Fpos_visible_in_window_p): Bug fix.  Specify big
  9053.      negative number for the argument TOHPOS of compute_motion.
  9054.     We don't need to calculate to (HPOS==0), but can stop immediately
  9055.     when VPOS pasts HEIGHT.
  9056.     * xdisp.c (redisplay_window): Likewise.
  9057.     (try_window_id): Likewise.
  9058.  
  9059.     * indent.c (pos_tab_offset): Specify "- (1 << (BITS_PER_SHORT - 1))"
  9060.      to express big negative number (for consistency with xdisp.c).
  9061.  
  9062. 1997-02-20  NIIBE Yutaka  <gniibe@mri.co.jp>
  9063.  
  9064.     * indent.c (vmotion): Specify "1 << (BITS_PER_SHORT - 1)" to
  9065.      express "Don't care".
  9066.     * xdisp.c (tri_window_id): Likewise.
  9067.  
  9068.     * dispnew.c (direct_output_forward_char): Bug fix.  Add
  9069.     XFASTINT (w->left) for losing cursor check.
  9070.  
  9071. 1997-02-20  Kenichi HANDA  <handa@etl.go.jp>
  9072.  
  9073.     * Makefile.in: The following changes are for new source codes
  9074.     related to Mule.
  9075.      (XOBJ): Include fontset.o.
  9076.     (obj): Include charset.o, coding.o, category.o, and ccl.o.
  9077.     (lisp, shortlisp): Include Mule related elc files.
  9078.     (buffer.o, cmds.o, dispnew.o, doprnt.o): Depend on charset.h.
  9079.     (editfns.o, indent.o, insdel.o, keymap.o): Depend on charset.h.
  9080.     (minibuf.o, xdisp.o, xfaces.o, xselect.o): Depend on charset.h.
  9081.     (data.o, print.o, lread.o): Depend on charset.h.
  9082.     (callproc.o, fileio.o, process.o, term.o): Depend on charset.h and
  9083.     coding.h.
  9084.     (regex.o, search.o, syntax.o): Depend on charset.h and category.h.
  9085.     (fontset.o): Depend on charset.h and fontset.h.
  9086.     (xterm.o): Depend on charset.h, ccl.h, and fontset.h.
  9087.     (category.o, ccl.o, charset.o, coding.o, fontset.o): New targets.
  9088.  
  9089.     * alloc.c (Fmake_char_table): Typo in doc-string fixed.     Handle
  9090.     the case that PURPOSE is nil (in a deeper char-table).
  9091.     (Fmake_bool_vector): Make correct size of Lisp_Object for
  9092.     bool-vector.
  9093.  
  9094.     * buffer.c: Include charset.h.
  9095.     (Fget_buffer_create): Allocate an extra byte for a buffer, and
  9096.     make it always 0 for anchoring.
  9097.     (reset_buffer): Handle a new member `enable_multibyte_characters'
  9098.     in the struct buffer.
  9099.     (fix_overlay_before): New function.
  9100.     (init_buffer_once): Handle new members in the struct buffer.
  9101.     (syms_of_buffer): Declare new buffer local variables
  9102.     `enable-multibyte-characters' and `direction-reserved'.
  9103.  
  9104.     * buffer.h (BEGV_ADDR, PT_ADDR, ZV_ADDR): Use macro POS_ADDR.
  9105.     (Z_ADDR, BUF_GPT_ADDR, BUF_Z_ADDR): New macros.
  9106.     (struct buffer): New members `category_table',
  9107.     `direction_reserved', and `enable-multibyte-characters'.
  9108.     (POS_ADDR): New macro used at all places instead of &FETCH_CHAR.
  9109.     (FETCH_BYTE): New macro used at any places to check the argument
  9110.     against an ASCII character.
  9111.     (FETCH_MULTIBYTE_CHAR): New macro used at any places to get a
  9112.     character code of the argument when it is known to be a multibyte
  9113.     character.
  9114.     (_fetch_multibyte_char_p, _fetch_multibyte_char_len): New
  9115.     variables.
  9116.     (FETCH_CHAR): Use macros FETCH_MULTIBYTE_CHAR and FETCH_BYTE.
  9117.  
  9118.     * callint.c (doc-string of `interactive'): Describe new code
  9119.     letters `i', `z', and `Z'.
  9120.     (Fcall_interactively): Handle them.
  9121.  
  9122.     * callproc.c: Include charset.h and coding.h.
  9123.     (Fcall_process): Perform character code conversion of a process
  9124.     arguments and the process output.
  9125.     (Fcall_process_region): Encode coding of a text given to a
  9126.     process.
  9127.  
  9128.     * cmds.c: Include charset.h.
  9129.     (forward_point, Fforward_point): New functions.
  9130.     (Fforward_char, Fdelete_char): Handle multibyte characters by
  9131.     calling forward_point.
  9132.     (Fdelete_backward_char): Pay attention to multibyte characters
  9133.     in overwrite-mode.
  9134.     (internal_self_insert): Handle self inserting a multibyte
  9135.     character.
  9136.     (syms_of_cmds): Handle the new function Fforward_point.
  9137.  
  9138.     * data.c: Include charset.h.
  9139.     (Qprocess): Now extern, not static.
  9140.     (Faref, Faset): Enable indexing a char table by a multibyte
  9141.     character.
  9142.  
  9143.     * dispextern.h (struct face): New members `non_ascii_gc' and
  9144.     `fontset'.
  9145.     [HAVE_FACES]: New macros FACE_NON_ASCII_GC and FACE_FONTSET.
  9146.  
  9147.     * dispnew.c: Include charset.h.
  9148.     (update_line): Handle wide-column characters.
  9149.  
  9150.     * disptab.h (DISP_CHAR_VECTOR): Always return nil for multibyte
  9151.     characters.
  9152.  
  9153.     * doprnt.c: Include charset.h.
  9154.     (doprn1): Handle multibyte characters.
  9155.  
  9156.     * editfns.c: Include charset.h.
  9157.     (Fchar_to_string, Fstring_to_char): Handle multibyte characters.
  9158.     (Fsref): New function.
  9159.     (Fgoto_char): Force point to be at a character boundary.
  9160.     (Ffollowing_char, Fpreceding_char): Handle multibyte characters.
  9161.     (Fchar_after): Handle multibyte characters.
  9162.     (Fchar_before): New function.
  9163.     (general_insert_function): New function.
  9164.     (Finsert, Finsert_and_inherit, Finsert_before_markers): Use it.
  9165.     (Finsert_char): Doc-string refer to markers of
  9166.     before-insertion-type. Handle multibyte characters.
  9167.     (Fsubst_char_in_region): Handle multibyte characters.
  9168.     (Fchar_equal): Don't consider `case' of multibyte characters.
  9169.     (syms_of_editfns): Handle the new function `char-before'.
  9170.  
  9171.     * emacs.c (main): Call several initialization function introduced
  9172.     by Mule.
  9173.  
  9174.     * eval.c (init_eval_once): Increase max_lisp_eval_depth to 300.
  9175.  
  9176.     * fileio.c: Include charset.h and coding.h.
  9177.     (READ_BUF_SIZE): New macro.
  9178.     (Finsert_file_contents): Refer to a coding system in the docstring.
  9179.     Perform character code conversion of a text read in.
  9180.     (Fwrite_region): Refer to a coding system in the docstring.
  9181.     Setup a coding system for character code conversion.
  9182.     Pass a new arg `pre_write_conversion' (Lisp function) to
  9183.     build_annotations.
  9184.     Pass a new arg `coding' to a_write.
  9185.     (build_annotations): Handle the new arg.
  9186.     (a_write): Handle the new arg `coding' by passing it to e_write.
  9187.     (WRITE_BUF_SIZE): New macro.
  9188.     (e_write): Perform character code conversion of a text to write
  9189.     out according to the new arg `coding'.
  9190.  
  9191.     * fns.c (Fcopy_sequence, concat, internal_equal, Ffillarray):
  9192.     Fix a bug of miscalculation of `size_in_chars' of a bool vector.
  9193.     (Fset_char_table_range): When range is vector, make the original
  9194.     char table deeper if necessary.
  9195.  
  9196.     * frame.c: Include "charset.h"
  9197.     [HAVE_WINDOW_SYSTEM]: Include fontset.h.
  9198.     (make_frame): Allocate member `fontset_data' of the struct frame.
  9199.     (Fdelete_frame): Free the area for the member.
  9200.  
  9201.     * frame.h (struct frame): New member `fontset_data'.
  9202.     (FRAME_MESSAGE_BUF_SIZE): New macro.
  9203.  
  9204.     * insdel.c: Include charset.h.
  9205.     (gap_left, gap_right): Put an anchor `\0' at the end of GAP.
  9206.     (adjust_markers_for_insert): If any markers are adjusted, check
  9207.     and fix the order of overlays in overlays_before.
  9208.     (make_gap): Allocate an extra byte and set to `\0' for anchoring.
  9209.     (insert1, insert_from_buffer_1): Put an anchor `\0' at the head of
  9210.     GAP.
  9211.  
  9212.     * keyboard.c (command_loop_1): Pay attention to a multibyte
  9213.     character while handling forward-char and backward-char.
  9214.     [!HAVE_NTGUI && XK_kana_A] (lispy_kana_keys): New variable.
  9215.     [!HAVE_NTGUI] (lispy_function_keys): New variable.
  9216.     (make_lispy_event) [XK_kana_A]: Handle kana keys.
  9217.  
  9218.     * keymap.c: Include charset.h.
  9219.     (push_key_description): If enable-multibyte-characters is t, use
  9220.     octal representation for a code of range 128..255 as binary.
  9221.     (Ftext_char_description): Handle multibyte characters.
  9222.     (describe_vector): Provide prettier description of a char table
  9223.     which contains multibyte characters.
  9224.  
  9225.     * lisp.h (CHARACTERBITS, GLYPH_MASK_REV_DIR): New macros.
  9226.     (GLYPH_MASK_PADDING, GLYPH_MASK_FACE, GLYPH_MASK_CHAR): New macros.
  9227.     [HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE):
  9228.     Use CHARACTERBITS.
  9229.     [!HAVE_FACES] (FAST_MAKE_GLYPH, FAST_GLYPH_CHAR, FAST_GLYPH_FACE):
  9230.     New macros.
  9231.     [!HAVE_FACES] (GLYPH_CHAR, GLYPH_FACE): Mask appropriate bits.
  9232.     (Fcoding_system_p, Fcheck_coding_system): Declare external.
  9233.     (Fread_coding_system, Fread_non_nil_coding_system): Likewise.
  9234.  
  9235.     * lread.c: Include charset.h.
  9236.     (Vload_source_file_function): New variable.
  9237.     (Fload): Call Vload_source_file_function if defined while loading
  9238.     an Emacs Lisp source file.  */
  9239.     (read_multibyte): New function.
  9240.     (read_escape): Handle multibyte characters.
  9241.     (read1): Correct the value of size_in_chars of a bool vector.
  9242.     Handle the case `?' is followed by a multibyte character.
  9243.     (Vload_source_file_function): New variable.
  9244.  
  9245.     * minibuf.c: Include charset.h.
  9246.     (read_minibuf): Pay attention to multibyte characters in the arg
  9247.     INITIAL while handling the arg BACKUP_N.
  9248.     (scmp, Fminibuffer_complete_word): Handle multibyte characters.
  9249.  
  9250.     * print.c: Include charset.h.
  9251.     (printchar, strout): Handle multibyte characters.
  9252.     (print): Correct the value of size_in_chars of a bool vector.
  9253.  
  9254.     * process.c: Include charset.h and coding.h.
  9255.     (proc_decode_coding_system, proc_encode_coding_system): New
  9256.     variables.
  9257.     (Fstart_process, create_process, Fopen_network_stream): Setup
  9258.     coding systems for character code conversion.
  9259.     (READ_CHILD_OUTPUT): New macro.
  9260.     (read_process_output): Perform character code conversion of a
  9261.     process output.
  9262.     (send_process): Perform character code conversion of a text sent
  9263.     to a process.
  9264.     (Fset_process_coding_system, Fprocess_coding_system): New
  9265.     functions.
  9266.     (syms_of_process): Handle them.
  9267.  
  9268.     * process.h (struct Lisp_Process): New members
  9269.     decode_coding_system, decoding_buf, encode_coding_system, and
  9270.     encoding_buf.
  9271.  
  9272.     * puresize.h (BASE_PURESIZE): Increase.
  9273.  
  9274.     * search.c: Include category.h and charset.h.
  9275.     (compile_pattern_1): Handle new argument `multibyte'.
  9276.     (compile_pattern): Handle the flag `enable-multibyte-characters'.
  9277.     (Vascii_downcase_table): Declare external.
  9278.     (fast_string_match_ignore_case): New function.
  9279.     (skip_chars): Handle multibyte characters.
  9280.     (trivial_regexp_p): Handle regular expression "\\Cc" and "\\CC"
  9281.     for category.
  9282.  
  9283.     * syntax.c: Include charset.h and category.h.
  9284.     (Vsyntax_code_object): New variable.
  9285.     (Fmodify_syntax_entry): Handle multibyte characters.  A multibyte
  9286.     character in matching parenthesis is also handled correctly.  Use
  9287.     shared object in the vector Vsyntax_code_object for an ASCII
  9288.     character.
  9289.     (describe_syntax): Handle a multibyte character in matching
  9290.     parenthesis.
  9291.     (describe_syntax_1): Describe also parent syntax tables.
  9292.     (scan_words, Fforward_comment): Handle multibyte characters.
  9293.     (scan_lists, char_quoted, Fbackward_prefix_chars): Likewise.
  9294.     (scan_sexps_forward): Likewise.
  9295.     (init_syntax_once): Initialize Vsyntax_code_object.
  9296.     Initialize Vstandard_syntax_table by share objects in
  9297.     Vsyntax_code_object.
  9298.     (syms_of_syntax): Staticpro Vsyntax_code_object.
  9299.  
  9300.     * syntax.h (SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
  9301.     characters.
  9302.     (SYNTAX_ENTRY_FOLLOW_PARENT): New macro.
  9303.     (SYNTAX_ENTRY): Handle syntax of multibyte characters.
  9304.     (SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Don't signal error even
  9305.     if a syntax entry is not cons.
  9306.  
  9307.     * term.c: Include charset.h and coding.h.
  9308.     (TS_end_italic_mode, TS_italic_mode, TS_bold_mode): New variables.
  9309.     (TS_end_bold_mode, TS_end_underscore_mode): New variables.
  9310.     (TS_underscore_mode): New variable.
  9311.     (encode_terminal_code): New function.
  9312.     (write_glyphs, insert_glyphs): Perform character code conversion
  9313.     on output to a terminal.
  9314.     (term_init): Initialize TS_bold_mode, TS_end_bold_mode,
  9315.     TS_end_underscore_mode, and TS_underscore_mode.
  9316.  
  9317.     * xdisp.c: Include charset.h, coding.h, and process.h.
  9318.     (display_text_line): Handle multibyte characters.
  9319.     (display_mode_line): Pay attention to wide-column characters.
  9320.     (decode_mode_spec_coding): New function.
  9321.     (decode_mode_spec): Handle %-constructs `%z' and `%Z' to print
  9322.     coding system mnemonics.
  9323.     (display_string): Handle multibyte characters.
  9324.  
  9325.     * xfaces.c: Include charset.h.
  9326.     (allocate_face, copy_face, face_eq1): Handle member `fontset' of
  9327.     struct face, i.e. initialize, copy, and check it.
  9328.     (intern_face, clear_face_cache): Handle member `non_ascii_gc' of
  9329.     struct face, i.e. initialize and free it.
  9330.     (free_frame_faces): Unload font only when fontset is not used.
  9331.     Free non_ascii_gc.
  9332.     (frame_update_line_height, merge_faces, compute_base_face): Handle
  9333.     fontset.
  9334.     (recompute_base_faces): Free non_ascii_gc.
  9335.     (Fset_face_attribute_internal): Handle fontset.
  9336.  
  9337.     * xfns.c: Include charset.h and fontset.h.
  9338.     (Vx_pixel_size_width_font_regexp): New variable.
  9339.     (x_set_font): Handle fontset.
  9340.     (Fx_create_frame): Create fontsets in Vglobal_fontset_alist.
  9341.     (Fx_list_fonts): Handle fontset.
  9342.     (syms_of_xfns): Initialize Vx_pixel_size_width_font_regexp.
  9343.     Setting callback functions for fontset handler.
  9344.  
  9345.     * xselect.c: Include charset.h and coding.h.
  9346.     (QCOMPOUND_TEXT): New variable.
  9347.     (symbol_to_x_atom): Handle it.
  9348.     (selection_data_to_lisp_data): Decode a selection data if
  9349.     selection type is TEXT or COMPOUND_TEXT.
  9350.     (lisp_data_to_selection_data): Encode a text to COMPOUND_TEXT if
  9351.     it contains multibyte characters.
  9352.     (syms_of_xselect): Initialize and staticpro QCOMPOUND_TEXT.
  9353.  
  9354.     * xterm.c: Include charset.h, ccl.h, and fontset.h.
  9355.     (PER_CHAR_METRIC): New macro.
  9356.     (dumpglyphs): New argument CMPCHARP.  Handle multibyte characters.
  9357.     (XTwrite_glyphs, redraw_previous_char, redraw_following_char):
  9358.     Supply argument CMPCHARP to dumpglyphs.
  9359.     (dumprectangle): Display whole glyph of wide-column characters.
  9360.     Supply argument CMPCHARP to dumpglyphs.
  9361.     (show_mouse_face): Supply argument CMPCHARP to dumpglyphs.
  9362.     (x_draw_box): Pay attention to wide-column characters.
  9363.     (x_draw_single_glyph): Supply argument CMPCHARP to dumpglyphs.
  9364.     (x_new_font): Call fs_load_font for actual font loading work.
  9365.     (x_new_fontset): New function.
  9366.     (x_get_font_info, x_list_fonts, x_load_font, x_query_font): New
  9367.     functions providing API to fontset handler.
  9368.     (x_term_init): Initialize several new members of struct x_display_info.
  9369.  
  9370.     * xterm.h (struct font_info): This definition is moved to
  9371.     fontset.h.
  9372.     (struct x_display_info): New members Xatom_PIXEL_SIZE,
  9373.     Xatom_MULE_BASELINE_OFFSET, Xatom_RELATIVE_COMPOSE, and null_pixel.
  9374.     (x_list_fonts, x_get_font_info, x_load_font, x_query_font):
  9375.     Declare external.
  9376.     (struct x_output): New members font_baseline and fontset.
  9377.     (FRAME_FONTSET, FRAME_X_FONT_TABLE): New macros.
  9378.  
  9379.     * category.h, category.c, ccl.h, ccl.c, charset.h: New files.
  9380.     * charset.c, coding.h, coding.c, fontset.h, fontset.c: New files.
  9381.  
  9382. 1997-02-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9383.  
  9384.     * print.c (print): Generate a backslash in \2e10.
  9385.     
  9386. 1997-02-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9387.  
  9388.     * window.c (change_window_height): Take size from multiple siblings,
  9389.     nearest ones first, when that can be done without deleting any of them.
  9390.  
  9391. 1997-02-07  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9392.  
  9393.     * minibuf.c (Fminibuffer_message): New function.
  9394.     (syms_of_minibuf): Set up Lisp function.
  9395.  
  9396.     * syntax.c (scan_lists): Signal errors using scan-error.
  9397.      (syms_of_syntax): Set up Qscan_error.
  9398.  
  9399. 1997-02-06  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9400.  
  9401.     * lread.c (Feval_buffer): Doc fix.
  9402.  
  9403. 1997-02-03  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9404.  
  9405.     * window.c (scroll_preserve_screen_position): New variable.
  9406.     (keys_of_window): Set up Lisp var.
  9407.     (window_scroll): If scroll_preserve_screen_position is 0,
  9408.     behave the old way (advancing point the minimum distance).
  9409.  
  9410. 1997-02-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9411.  
  9412.     * emacs.c (main): Don't extend stack limit too far.
  9413.  
  9414. Sun Feb  2 10:36:26 1997  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
  9415.  
  9416.     * msdos.c (dos_rawgetc): When international keyboard doesn't have
  9417.      to be supported, recognize Alt-key combinations even if the Alt
  9418.     key is no longer pressed.
  9419.  
  9420. 1997-01-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9421.  
  9422.     * xfns.c (Vx_resource_class): New variable.
  9423.     (syms_of_xfns): Set up Lisp variable.
  9424.     (Fx_get_resource, x_window): Use Vx_resource_class.
  9425.     (validate_x_resource_name): Ensure Vx_resource_class is a string.
  9426.  
  9427. 1997-01-27  Paul Eggert  <eggert@twinsun.com>
  9428.  
  9429.     * data.c (isnan): Define even if LISP_FLOAT_TYPE is not defined,
  9430.      since fmod might need it.
  9431.     (fmod): Ensure that the magnitude of the result does not exceed that
  9432.     of the divisor, and that the sign of the result does not disagree with
  9433.     that of the dividend.  This does not yield a
  9434.     particularly accurate result, but at least it will be in the
  9435.     range promised by fmod.
  9436.     
  9437.     * doprnt.c: Include <float.h> if STDC_HEADERS.
  9438.     (DBL_MAX_10_EXP): Define if not defined; default is IEEE double.
  9439.     (doprnt1): Allocate enough buffer space to handle very large floating
  9440.     point numbers, or very large field widths or precisions.
  9441.     Detect overflow in field widths or precisions.
  9442.  
  9443. 1997-01-26  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  9444.  
  9445.     * config.in (HAVE_RINT, HAVE_CBRT): Add undefs.
  9446.  
  9447. 1997-01-26  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9448.  
  9449.     * lread.c (openp): Handle remote file names in path.
  9450.     Don't use the path for an absolute name.
  9451.     (Fload): Handle openp finding a remote file name.
  9452.  
  9453. 1997-01-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  9454.  
  9455.     * floatfns.c [!HAVE_RINT] (rint): Convert macro to an actual
  9456.     function, so we can take its address.
  9457.  
  9458. 1997-01-22  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
  9459.  
  9460.     * indent.c (pos_tab_offset): Take the width of the minibuffer
  9461.     prompt into account.
  9462.     (vmotion): In calls to compute_motion use a value for tab_offset
  9463.     that is corrected by the minibuffer prompt width.
  9464.  
  9465.     * xdisp.c (try_window): Remove frobnication of tab_offset in a
  9466.      minibuffer window.
  9467.     (display_text_line): Likewise, for the taboffset parameter.
  9468.  
  9469. 1997-01-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9470.  
  9471.     * lread.c (Qinhibit_file_name_operation): New variable.
  9472.     (syms_of_lread): Initialize and staticpro.
  9473.     (Fload): Bind inhibit-file-name-operation to nil.
  9474.  
  9475. 1997-01-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9476.  
  9477.     * eval.c (unbind_to, specbind): Use set_internal.
  9478.  
  9479.     * data.c (set_internal): New subroutine.  New arg BINDFLAG.
  9480.     Don't make a new buffer-local binding if BINDFLAG is 0.
  9481.     (Fset): Use set_internal.
  9482.  
  9483. 1997-01-21  Paul Eggert  <eggert@twinsun.com>
  9484.  
  9485.     * editfns.c (set_time_zone_rule_tz1, set_time_zone_rule_tz2):
  9486.     Put "+" in value; needed if we are a Solaris 1 executable
  9487.     running under Solaris 2.
  9488.     Define these variables only if LOCALTIME_CACHE is defined.
  9489.  
  9490. 1997-01-21  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
  9491.         
  9492.     * msdos.c (run_msdos_command): Remove unused variables.
  9493.     (crlf_to_lf): Remove unused variables.
  9494.     (Fmsdos_downcase_filename): Remove unused variable.
  9495.     (IT_set_frame_parameters): Declare prototypes for external functions.
  9496.     (IT_set_frame_parameters): Correct format specifier.
  9497.     (IT_set_terminal_modes): Remove unused variable.
  9498.     (top level): Add header files which declare used functions.
  9499.  
  9500. 1997-01-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9501.  
  9502.     * Makefile.in (stamp-oldxmenu): New target.
  9503.     (temacs): Depend on stamp-oldxmenu, not on ${OLDXMENU}.
  9504.  
  9505. 1997-01-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9506.  
  9507.     * lisp.h (FAST_MAKE_GLYPH): Rename args to CHAR and FACE.
  9508.     Cast CHAR to unsigned char before using it.
  9509.  
  9510.     * xterm.c (dumpglyphs): Declare g as GLYPH.
  9511.  
  9512. 1997-01-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9513.  
  9514.     * term.c (fatal): Print a newline at the end.
  9515.     (term_init): Calls to fatal changed.
  9516.  
  9517.     * eval.c (Fsignal): Call fatal if no error handlers and no catch.
  9518.  
  9519.     * dispnew.c (init_display): Check for overflow in screen size.
  9520.     Use `fatal'.
  9521.     
  9522. 1997-01-19  Geoff Voelker  <voelker@cs.washington.edu>
  9523.  
  9524.     * w32.c (init_environment): Rebuild Vsystem_configuration at startup.
  9525.  
  9526.     * w32gui.h: Update include conditionals to use new name.
  9527.  
  9528.     * w32gui.h: Renamed from win32.h.
  9529.     * dispextern.h, w32term.h, makefile.nt: Use new name w32gui.h.
  9530.     * makefile.nt: Update header comment.
  9531.     
  9532.     * w32console.c (initialize_w32_display): Renamed from 
  9533.     initialize_win_nt_display.
  9534.     * term.c (term_init): Use new name initialize_w32_display.
  9535.     
  9536.     * w32.c, w32console.c, w32faces.c, w32fns.c, w32heap.c,
  9537.     w32inevt.c, w32menu.c, w32proc.c, w32select.c, w32term.c,
  9538.     w32xfns.c, win32.h, w32inevt.h, w32term.h: Change all uses of win95,
  9539.     winnt, and win32 into Windows 95, Windows NT, and W32, respectively.
  9540.     Expand "win" substring in variables referring to Microsoft Windows 
  9541.     constructs into "windows".
  9542.     Canonicalize header comments to use same terminology.
  9543.  
  9544. 1997-01-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9545.  
  9546.     * search.c (skip_chars): Optimize by not calling SET_PT in the loop.
  9547.  
  9548. 1997-01-16  Erik Naggum  <erik@naggum.no>
  9549.  
  9550.     * keymap.c (push_key_description): Print C-j, not LFD.
  9551.  
  9552. 1997-01-16  Eli Zaretskii  <eliz@wombat.gnu.ai.mit.edu>
  9553.  
  9554.     * msdos.c (XMenuActivate): Don't allow non-positive menu
  9555.     coordinates.
  9556.  
  9557. 1997-01-15  Eli Zaretskii  <eliz@is.elta.co.il>
  9558.  
  9559.     * keyboard.c (interrupt_signal): Make emergency exit work on MSDOS
  9560.     frames.  Block further SIGINTs while `interrupt_signal'    runs.
  9561.  
  9562.     * msdos.c (sigprocmask, sig_suspender): New functions, implement
  9563.     signal blocking on MSDOS.
  9564.  
  9565. 1997-01-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9566.  
  9567.     * s/hpux9.h (HAVE_PSTAT_GETDYNAMIC): New definition.
  9568.  
  9569. 1997-01-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9570.  
  9571.     * w32.c (get_emacs_configuration): Return windows95 instead of win95.
  9572.  
  9573. 1997-01-13  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9574.  
  9575.     * dispnew.c (change_frame_size_1): Reject new sizes if they cause
  9576.     overflow.
  9577.  
  9578. 1997-01-13  Eli Zaretskii  <eliz@is.elta.co.il>
  9579.  
  9580.     * emacs.c (init_cmdargs) [MSDOS]: Allow `installation-directory'
  9581.     to be set if either `lib-src' or `info' are found as its
  9582.     subdirectories or siblings.
  9583.  
  9584. 1997-01-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9585.  
  9586.     * fns.c (concat): Take modulus of thisindex before shifting.
  9587.     Declare thisindex as unsigned.
  9588.  
  9589. 1997-01-12  Geoff Voelker  <voelker@cs.washington.edu>
  9590.  
  9591.     * w32menu.c (x-popup-menu): Pass in insist flag to mouse_position_hook.
  9592.  
  9593. 1997-01-11  Paul Eggert  <eggert@twinsun.com>
  9594.  
  9595.     * floatfns.c (rounding_driver): New function for systematic support of
  9596.     2-argument rounding functions, so that `floor' isn't the only one
  9597.     that supports 2 arguments.
  9598.     (Fceiling, Ffloor, Fround, Ftruncate): Use it.
  9599.     (ceiling2, floor2, round2, truncate2, double_identity): New functions.
  9600.     (syms_of_floatfns): Define ceiling, round, and truncate even if
  9601.     LISP_FLOAT_TYPE is not defined.
  9602.  
  9603. 1997-01-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9604.  
  9605.     * lread.c (read1): Round size of bool-vector properly.
  9606.  
  9607.     * print.c (print): Round size of bool-vector properly.
  9608.  
  9609.     * lread.c (read1): Fix error messages.
  9610.  
  9611. 1997-01-09  Steve Nygard  <nygard@telusplanet.net>
  9612.  
  9613.     * unexnext.c: Include <mach-o/reloc.h>.
  9614.     (fgrowth): Initialize to zero.
  9615.     (vmaddr_growth, dataseg_vmaddr, dataseg_vmend): New variables.
  9616.     [NS_TARGET] (extreloff, nextrel, dysymtab, reloc_info): New variables.
  9617.     (unexec_doit): Adjust file offsets of segments that follow the
  9618.     enlarged data segment.  Adjust vmaddr of the SEG_LINKEDIT segment that
  9619.     follows the data segment.
  9620.     [NS_TARGET] (unexec_doit): Adjust file offsets in the LC_DYSYMTAB load
  9621.     command that follows the data segment.  Zero out relocation entries
  9622.     that fall within the data segment.
  9623.  
  9624. 1997-01-07  Karl Berry  <karl@cs.umb.edu>
  9625.  
  9626.     * filelock.c (LOCK_PID_MAX): Use sizeof (unsigned long) instead
  9627.     of hardwiring 21.
  9628.     (lock_file_1): Use LOCK_PID_MAX when allocating lock_info_str
  9629.     instead of hardwiring 21.
  9630.  
  9631. 1997-01-06  Eli Zaretskii  <eliz@is.elta.co.il>
  9632.  
  9633.     * msdos.c (bright_bg): Save the original state of video blink bit.
  9634.     (maybe_enable_blinking): New function, restores the original state
  9635.     of the blink bit.
  9636.     (IT_reset_terminal_modes): Restore the original state of the blink
  9637.     bit when suspending/exiting.
  9638.     (run_msdos_command): Make sure bright background colors are again
  9639.     enabled after subsidiary program returns.
  9640.  
  9641. 1997-01-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9642.  
  9643.     * data.c (Fset_default): For a BUFFER_OBJFWD, store into
  9644.     buffer_defaults even if mask < 0.
  9645.  
  9646. 1997-01-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9647.  
  9648.     * keyboard.c (command_loop_1, read_char):
  9649.     Run Qecho_area_clear_hook when clearing echo area.
  9650.     (Qecho_area_clear_hook): New variable.
  9651.     (syms_of_keyboard): Initialize it.
  9652.  
  9653.     * buffer.c (Fpop_to_buffer): New arg NORECORD.
  9654.  
  9655. 1997-01-04  Geoff Voelker  <voelker@cs.washington.edu>
  9656.  
  9657.     * w32proc.c (compare_env, merge_and_sort_env): New functions.
  9658.     (sys_spawnve): Sort environment variables for subprocess.
  9659.     (ppid_env_var_buffer): Variable deleted.
  9660.  
  9661. 1997-01-02  Karl Berry  <karl@cs.umb.edu>
  9662.  
  9663.     * filelock.c (lock_info_type): Declare pid as unsigned long
  9664.     instead of int.
  9665.     (lock_file_1): Use %lu instead of %d in printf.
  9666.  
  9667. 1997-01-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9668.  
  9669.     * cmds.c (internal_self_insert): Check the property
  9670.     on the hook, not on the abbrev symbol.
  9671.  
  9672.     * dispnew.c (update_frame): Call detect_input_pending
  9673.     for X as well as for termcap frames.
  9674.  
  9675. 1996-12-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9676.  
  9677.     * bytecode.c (HANDLE_RELOCATION): New macro.
  9678.     (MAYBE_GC): Call HANDLE_RELOCATION.  Swallow following semicolon.
  9679.     (Fbyte_code): Use HANDLE_RELOCATION.
  9680.  
  9681. 1996-12-31  Paul Eggert  <eggert@twinsun.com>
  9682.  
  9683.     * s/nextstep.h, s/sco4.h (BROKEN_MKTIME): New macro.
  9684.     * Makefile.in (MKTIME_OBJ), config.in (mktime):
  9685.     Use BROKEN_MKTIME to determine whether mktime is broken.
  9686.  
  9687. 1996-12-30  Paul Eggert  <eggert@twinsun.com>
  9688.     
  9689.     * data.c, floatfns.c: <float.h>: Include if STDC_HEADERS.
  9690.     (IEEE_FLOATING_POINT): New symbol.
  9691.     * data.c (float_arith_driver, Fmod), floatfns.c (Ffloor):
  9692.     Test for division by 0 only if ! IEEE_FLOATING_POINT.
  9693.     * floatfns.c (fmod_float): New function.
  9694.  
  9695.     * Makefile.in (MKTIME_OBJ): Use our mktime instead of SCO
  9696.      3.2v4.2's, since SCO's botches time arithmetic as used by display-time.
  9697.  
  9698. 1996-12-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9699.  
  9700.     * bytecode.c (Fbyte_code): Add error check for jumping out of range.
  9701.  
  9702.     * s/hiuxmpp.h, m/sr2k.h: New files.
  9703.  
  9704. 1996-12-29  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9705.  
  9706.     * Makefile.in (process.o): Depend on blockinput.h.
  9707.  
  9708.     * process.c: Include blockinput.h.
  9709.     (create_process): Block input around the fork.
  9710.  
  9711. 1996-12-27  Karl Berry  <karl@owl.HQ.Ileaf.COM>
  9712.  
  9713.     * filelock.c: Total rewrite.
  9714.  
  9715. 1996-12-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9716.  
  9717.     * data.c (Ffset): Change argument name and doc string.
  9718.     (Fdefalias): Likewise.
  9719.  
  9720. 1996-12-26  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  9721.  
  9722.     * xterm.c (x_iconify_frame): Clear visible when we set iconified.
  9723.  
  9724. 1996-12-25  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  9725.  
  9726.     * window.c (window_scroll): Preserve vpos of point
  9727.     if we cannot preserve the actual position of it.
  9728.     Make it static.  New arg WHOLE; callers changed.
  9729.     
  9730.     * keyboard.c (read_char_x_menu_prompt): Unread and record all the
  9731.     input events from here.
  9732.     (record_menu_key): New subroutine.
  9733.  
  9734.     * xmenu.c (single_keymap_panes): New arg DEPTH.
  9735.     Cut off recursion at that depth.  Callers changed.
  9736.  
  9737. 1996-12-23 +02  Eli Zaretskii  <eliz@is.elta.co.il>
  9738.  
  9739.     * msdos.c (dos_set_keyboard): Test whether KEYB.COM is installed
  9740.     for international keyboard support.
  9741.     (dos_get_modifiers): If international keyboard support is NOT
  9742.     required, make both Right and Left Alt key behave like Meta key.
  9743.  
  9744. 1996-12-22  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  9745.  
  9746.     * emacs.c (standard_args): Add -find-file and -visit.
  9747.  
  9748.     * cmds.c (internal_self_insert): If the abbrev has no expansion,
  9749.     just a hook, inhibit the insertion of the character.
  9750.  
  9751.     * abbrev.c (Fexpand_abbrev): Return the abbrev symbol,
  9752.     or nil if no expansion.
  9753.  
  9754. 1996-12-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9755.  
  9756.     * xdisp.c (try_window): Add error check for POS.
  9757.  
  9758. 1996-12-19  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9759.  
  9760.     * s/nextstep.h (LD_SWITCH_SYSTEM): Use just -X.
  9761.     (LIB_STANDARD): Alternate definition if NS_TARGET.
  9762.  
  9763.     * xfns.c (x_set_title): Check data type of NAME.
  9764.  
  9765.     * search.c (Fmatch_data): Doc fix.
  9766.  
  9767. 1996-12-19  Werner Benger  <werner@ast1.uibk.ac.at>
  9768.  
  9769.     * keyboard.c (modify_event_symbol):
  9770.     Don't index thru name_table if it is null.
  9771.  
  9772. 1996-12-19  Erik Naggum  <erik@naggum.no>
  9773.  
  9774.     * process.c (read_process_output, exec_sentinel):
  9775.     * w32menu.c (set_frame_menubar):
  9776.     * xdisp.c (prepare_menu_bars, update_menu_bar):
  9777.     * xmenu.c (set_frame_menubar):
  9778.     Call Fmatch_data with new explicit arguments.
  9779.  
  9780. 1996-12-18  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9781.  
  9782.     * search.c (Fmatch_data): New args INTEGERS and REUSE.
  9783.  
  9784.     * process.c (send_process) [EMACS_HAS_USECS]:
  9785.     When we wait for the buffer to clear, wait just .02 second.
  9786.  
  9787.     * intervals.c (adjust_intervals_for_insertion):
  9788.     Be smarter about when to split an interval
  9789.     for properties that are not sticky on either side.
  9790.  
  9791.     * intervals.h (FRONT_NONSTICKY_P): New macro.
  9792.  
  9793.     * intervals.c (set_point): Use virtual bounds, not real bounds,
  9794.     in the abort test for POSITION.
  9795.     Skip the intangibility test if POSITION is at either end of buffer.
  9796.  
  9797. 1996-12-18  Jonathan I. Kamens  <jik@annex-1-slip-jik.cam.ov.com>
  9798.  
  9799.     * config.in (HAVE_LIBMAIL, HAVE_MAILLOCK_H, HAVE_TOUCHLOCK):
  9800.     Add #undefs.
  9801.  
  9802. 1996-12-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9803.  
  9804.     * fileio.c (Finsert_file_contents): Handle BEG and END non-nil
  9805.     when REPLACE is non-nil.
  9806.  
  9807. 1996-12-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9808.  
  9809.     * intervals.c (merge_properties_sticky): Don't discard explicit nil
  9810.     properties.  Don't put on a front-sticky property if we inherit
  9811.     one from the category that does the job.
  9812.  
  9813.     * config.in (HAVE_LIMITS_H): Add #undef.
  9814.  
  9815. 1996-12-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9816.  
  9817.     * intervals.c (set_point): Check for intangible properties
  9818.     on overlays.
  9819.  
  9820.     * textprop.c (Fnext_char_property_change): New function.
  9821.     (Fprevious_char_property_change): New function.
  9822.     (syms_of_textprop): defsubr them.
  9823.  
  9824. 1996-12-14  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
  9825.  
  9826.     * editfns.c (Fuser_full_name): Return nil if the specified user
  9827.     doesn't exist.
  9828.     (init_editfns): Set Vuser_full_name to "unknown" if the user name
  9829.     can't be resolved.
  9830.  
  9831. 1996-12-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9832.  
  9833.     * strftime.c: Replace this with the version from libc.
  9834.  
  9835. 1996-12-12  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9836.  
  9837.     * xfns.c (x_set_scroll_bar_width): Reject a width that's too small.
  9838.  
  9839. 1006-12-10  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9840.  
  9841.     * buffer.c (syms_of_buffer): Doc fix (transient-mark-mode).
  9842.  
  9843. 1996-12-10  Andrew Innes  <andrewi@harlequin.co.uk>
  9844.  
  9845.     * fileio.c (Fwrite_region): Be careful not to destroy contents of
  9846.     existing file when appending.
  9847.  
  9848. 1996-12-09  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9849.  
  9850.     * fileio.c (Fread_file_name_internal): Verify STRING is a string.
  9851.     (Fread_file_name): Don't insert DIR or INITIAL if it isn't a string.
  9852.  
  9853. 1996-12-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9854.  
  9855.     * s/aix4-2.h: New file.
  9856.  
  9857. 1995-12-08  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
  9858.  
  9859.     * editfns.c (Fuser_full_name): Use build_string instead of make_string.
  9860.  
  9861. 1996-12-08  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  9862.  
  9863.     * callproc.c (Fcall_process_region): Define missing local `count'.
  9864.  
  9865.     * xdisp.c (message2_nolog): Handle minibuffer_auto_raise.
  9866.  
  9867.     * minibuf.c (syms_of_minibuf): Doc fix.
  9868.  
  9869. 1996-12-07  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
  9870.  
  9871.     * editfns.c (Fuser_full_name): Accept a string (the login name) as
  9872.     a parameter.  Do ampersand expansion, if required.
  9873.     (init_editfns): Use it.
  9874.  
  9875. 1996-12-06  Eli Zaretskii  <eliz@is.elta.co.il>
  9876.  
  9877.     * msdos.c (IT_cmgoto): Don't update FRAME_CURSOR_X when the cursor
  9878.     is in echo area.
  9879.  
  9880. 1996-12-05  Erik Naggum <erik@naggum.no>
  9881.  
  9882.     * keyboard.c (syms_of_keyboard): Doc fix.
  9883.  
  9884. 1996-11-28  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  9885.  
  9886.     * callproc.c (Vtemp_file_name_pattern): New variable.
  9887.     (syms_of_callproc): Set up Lisp variable.
  9888.     (init_callproc): Initialize it.
  9889.     (Fcall_process_region): Use it.
  9890.  
  9891.     * bytecode.c (MAYBE_GC): New macro.
  9892.     (Fbyte_code): Use MAYBE_GC in every goto opcode.
  9893.  
  9894. 1996-11-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  9895.  
  9896.     * editfns.c (Fline_beginning_position, Fline_end_position): New fns.
  9897.     * cmds.c (Fend_of_line, Fbeginning_of_line):
  9898.     Use Fline_beginning_position, Fline_end_position.
  9899.     * lisp.h  (Fend_of_line, Fbeginning_of_line): Declared.
  9900.  
  9901. 1996-11-23  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  9902.  
  9903.     * window.c (window_scroll): Don't set w->start or w->force_start
  9904.      if signaling an error.
  9905.  
  9906.     * xmenu.c (Vmenu_updating_frame): New variable.
  9907.     (syms_of_xmenu): Set up Lisp var.
  9908.     (Fx_popup_menu, set_frame_menubar): Initialize it.
  9909.  
  9910. 1996-11-23  Erik Naggum  <erik@naggum.no>
  9911.  
  9912.     * keyboard.c (syms_of_keyboard): Doc fix for num-input-keys.
  9913.  
  9914. 1996-11-22  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
  9915.  
  9916.     * editfns.c (Fuser_full_name): Accept an optional UID and return
  9917.     the full name of that user instead.
  9918.  
  9919. 1996-11-20  Andrew Innes  <andrewi@harlequin.co.uk>
  9920.  
  9921.     * w32fns.c (w32_wnd_proc): Use dummy message to wake up thread on
  9922.      quit_char.
  9923.  
  9924. 1996-11-19  Eli Zaretskii  <eliz@is.elta.co.il>
  9925.  
  9926.     * msdos.c [__DJGPP__ >= 2] (dos_direct_output): Faster method of
  9927.     writing characters to the screen.
  9928.     (SCREEN_SET_CURSOR): Remove.
  9929.     (IT_display_cursor): New function, to turn the cursor on and off.
  9930.     (IT_cmgoto): New function, sets the cursor to its final position
  9931.     whenever frame update is complete.
  9932.     (internal_terminal_init): Set IT_cmgoto as the hook to be called
  9933.     when frame is up to date.
  9934.     (dos_rawgetc): Call IT_cmgoto instead of the SCREEN_SET_CURSOR
  9935.     macro (which is gone now).
  9936.     (XMenuActivate): Turn off the cursor while the menu is displayed,
  9937.     to prevent it from showing through the menu panes.
  9938.  
  9939. 1996-11-19  Geoff Voelker  <voelker@cs.washington.edu>
  9940.  
  9941.     * w32.c, w32.h: Renamed from nt.c, nt.h.
  9942.     * w32heap.c, w32heap.h: Renamed from ntheap.c, ntheap.h.
  9943.     * w32inevt.c, w32inevt.h: Renamed from ntinevt.c, ntinevt.h.
  9944.     * w32proc.c: Renamed from ntproc.c.
  9945.     * w32console.c: Renamed from w32term.c.
  9946.     * unexw32.c: Renamed from unexnt.c.
  9947.     * s/ms-w32.h: Renamed from s/windowsnt.h.
  9948.     
  9949.     * dispnew.c (init_display) [HAVE_NTGUI]: Use w32 for window-system.
  9950.  
  9951.     * Makefile.in, callproc.c, makefile.nt: Use new names for w32 files.
  9952.  
  9953. 1996-11-18  Geoff Voelker  <voelker@cs.washington.edu>
  9954.  
  9955.     * emacs.c, frame.c, frame.h, keyboard.c, nt.c, nt.h,
  9956.      ntheap.c, ntheap.h, ntinevt.c, ntinevt.h, ntproc.c, ntterm.c,
  9957.      termhooks.h, unexnt.c, w32faces.c, w32fns.c, w32menu.c, w32reg.c,
  9958.      w32select.c, w32term.c, w32term.h, w32xfns.c, s/windowsnt.h:
  9959.     Change identifiers of the form win32* to w32*.
  9960.  
  9961.     * window.c (special-display-p, same-window-p): Add missing
  9962.     newlines and backslashes in help strings.
  9963.  
  9964. 1996-11-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9965.  
  9966.     * xdisp.c (redisplay_window): When handling scroll_conservatively,
  9967.     scroll a little farther for the sake of scroll_margin.
  9968.  
  9969. 1996-11-11  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9970.  
  9971.     * abbrev.c (Fexpand_abbrev): If the abbrev's expansion is nil,
  9972.     don't expand it, but do still call the hook.
  9973.     (Fdefine_abbrev): Allow anything for EXPANSION.
  9974.  
  9975.     * frame.c (Fmodify_frame_parameters): Use alist in reverse order.
  9976.  
  9977. 1996-11-10  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9978.  
  9979.     * process.c (status_notify): Test p->infd > 0
  9980.     before each call to read_process_output.
  9981.     (read_process_output): Handle match data properly in recursive calls.
  9982.     (exec_sentinel): Likewise.
  9983.  
  9984.     * window.c (window_scroll): Handle scroll_margin
  9985.     by putting point at a place that won't force recentering.
  9986.  
  9987.     * xdisp.c (scroll_margin): New variable.
  9988.     (init_xdisp): Set up Lisp variable.
  9989.     (redisplay_window): Implement scroll_margin; don't use old start pos
  9990.     if point is inside the margin.
  9991.  
  9992. 1996-11-09  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  9993.  
  9994.     * window.h (struct window): New field optional_new_start.
  9995.     * xdisp.c (redisplay_window): Handle optional_new_start.
  9996.     * window.c (Fdelete_other_windows): Set optional_new_start
  9997.     instead of force_start.
  9998.  
  9999.     * insdel.c (signal_after_change): If Vcombine_after_change_calls,
  10000.     save up changes in combine_after_change_list.
  10001.      (Fcombine_after_change_execute)
  10002.     (Fcombine_after_change_execute_1): New subroutines.
  10003.     (syms_of_insdel): New function.
  10004.  
  10005.     * emacs.c (main): Call syms_of_insdel.
  10006.  
  10007.     * fns.c: Include frame.h and window.h.
  10008.     (Fy_or_n_p): Handle minibuffer_auto_raise here.
  10009.  
  10010.     * Makefile.in (fns.o): Depend on frame.h and window.h.
  10011.  
  10012. 1996-11-08  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10013.  
  10014.     * macros.c (Fcall_last_kbd_macro): Set this_command from last_command
  10015.     on entry and again on exit.
  10016.  
  10017. 1996-11-07  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10018.  
  10019.     * frame.c (Fmodify_frame_parameters): Doc fix.
  10020.  
  10021.     * fileio.c (USG5 or BSD_SYSTEM or LINUX): Include fcntl.h.
  10022.     (Ffile_readable_p): Return immediately if stat fails.
  10023.     Call S_ISFIFO correctly.
  10024.  
  10025. 1996-11-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10026.  
  10027.     * editfns.c (Fencode_time): Doc fix.
  10028.  
  10029. 1996-11-06  John F. Carr  <carrj@polaroid.com>
  10030.  
  10031.     * dired.c (Ffile_attributes): Represent inode number as a pair of
  10032.     integers in case inode numbers do not fit in a Lisp integer.
  10033.  
  10034. 1996-11-06  Eli Zaretskii  <eliz@is.elta.co.il>
  10035.  
  10036.     * msdos.c [__DJGPP_MINOR__ == 0] (_rename): New function, a
  10037.     substitute for library low-level file-renaming function which
  10038.     works around Windows 95 bug.
  10039.  
  10040. 1996-11-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10041.  
  10042.     * window.c (window_loop, case GET_BUFFER_WINDOW):
  10043.     Don't find any minibuffer window
  10044.     except the one that is currently in use.
  10045.  
  10046. 1996-11-05  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10047.  
  10048.     * fileio.c (S_ISFIFO): Default definition (if S_IFIFO is defined).
  10049.  
  10050.     * editfns.c (Fencode_time): Use xfree, not free.
  10051.  
  10052.     * print.c (PRINTFINISH): Use xfree, not free.
  10053.  
  10054. 1996-11-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10055.  
  10056.     * xfns.c (Fx_create_frame): Look for X-resource for minibuffer.
  10057.  
  10058.     * alloc.c (Fgarbage_collect): Use Vhistory_length
  10059.     for truncating Vcommand_history.
  10060.  
  10061.     * print.c (PRINTPREPARE): Really do set free_print_buffer.
  10062.  
  10063.     * xdisp.c (scroll_conservatively): New variable.
  10064.     (redisplay_window): Obey it.
  10065.     (syms_of_xdisp): Set up Lisp var.
  10066.  
  10067. 1996-11-02  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10068.  
  10069.     * minibuf.c (choose_minibuf_frame): Don't change selected_frame's
  10070.     selected window even if it is a minibuffer window,
  10071.     if it is active.
  10072.  
  10073. 1996-11-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10074.  
  10075.     * print.c (PRINTDECLARE): Declare specpdl_count and free_print_buffer.
  10076.     (PRINTPREPARE): If print_buffer is nonzero,
  10077.     save its contents in a string using record_unwind_protect.
  10078.     (PRINTFINISH): Restore old print_buffer contents.
  10079.     Free it only if this PRINTPREPARE malloc'd it.
  10080.     (print): Don't call PRINTFULLP after all.
  10081.     (print_unwind): New function.
  10082.  
  10083.     * print.c (printchar, strout): Do QUIT for echo area output.
  10084.     (PRINTFULLP): New macro.
  10085.     (print): Exit if PRINTFULLP.
  10086.     When printing a symbol, don't save a pointer to the name.
  10087.     (PRINTFINISH): Null out print_buffer after freeing it.
  10088.  
  10089. 1996-10-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10090.  
  10091.     * xterm.c (cancel_mouse_face): New function.  Code copied from
  10092.     x_set_window_size, fixing a bug.
  10093.     (x_set_window_size): Use cancel_mouse_face.
  10094.     (XTread_socket): When frame size has changed, call cancel_mouse_face.
  10095.  
  10096.     * widget.c (EmacsFrameResize): Use cancel_mouse_face.
  10097.  
  10098. 1996-10-31  Erik Naggum  <erik@naggum.no>
  10099.  
  10100.     Reorganize function definitions so etags finds them.
  10101.     * abbrev.c (Finsert_abbrev_table_description).
  10102.     * editfns.c (Finsert_and_inherit_before_markers).
  10103.     * eval.c (Frun_hook_with_args, Frun_hook_with_args_until_success,
  10104.      Frun_hook_with_args_until_failure).
  10105.     * window.c (Fcurrent_window_configuration).
  10106.     * xselect.c (Fx_own_selection_internal, Fx_get_selection_internal,
  10107.      Fx_disown_selection_internal).
  10108.  
  10109. 1996-10-30  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10110.  
  10111.     * emacs.c (main): Clear out *Messages* before init_callproc.
  10112.  
  10113.     * keyboard.c (command_loop_1): Update selected buffer again
  10114.     after read_key_sequence.
  10115.  
  10116. 1996-10-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10117.  
  10118.     * callproc.c (init_callproc): Use dir_warning.
  10119.  
  10120.     * lread.c (dir_warning): New function.
  10121.     (init_lread): Use dir_warning.
  10122.  
  10123. 1996-10-28  Erik Naggum  <erik@naggum.no>
  10124.  
  10125.     * alloc.c (Fmake_char_table): Doc fix.
  10126.  
  10127. 1996-10-25  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  10128.  
  10129.     * keymap.c (describe_buffer_bindings): Pass 1 for PARTIAL
  10130.     in some calls to describe_map_tree.
  10131.  
  10132. 1996-10-24  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  10133.  
  10134.     * process.c (status_notify): Update p->tick again
  10135.     just before running the sentinel, in case it dies.
  10136.  
  10137. 1996-10-23  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  10138.  
  10139.     * xdisp.c (decode_mode_spec): In the `L' case,
  10140.     remove a buffer from base_line_pos if window has switched buffers.
  10141.  
  10142. 1996-10-15  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10143.  
  10144.     * minibuf.c (read_minibuf_unwind): Don't restore minibuf_window;
  10145.     instead call choose_minibuf_frame.
  10146.     (choose_minibuf_frame): Don't let any other frame keep its minibuf
  10147.     window selected.
  10148.  
  10149.     * xterm.c (XTread_socket, KeyPress case): Clear compose_status
  10150.     if the key has the meta modifier.
  10151.  
  10152. 1996-10-14  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10153.  
  10154.     * eval.c (Vdebug_on_signal): Renamed from Vdebug_force.
  10155.  
  10156. 1996-10-13  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10157.  
  10158.     * m/pmax.h (BROKEN_O_NONBLOCK): Define only if Ultrix.
  10159.     (LIBS_MACHINE, KERNEL_FILE): Don't define if __NetBSD__.
  10160.     (C_SWITCH_X_MACHINE): Define only if Ultrix.
  10161.     [__NetBSD__] (START_FILES, CANNOT_DUMP): New definitions.
  10162.     [__NetBSD__] (RUN_TIME_REMAP, UNEXEC): Undef them.
  10163.  
  10164.     * m/mips.h (UNEXEC): Undef before defining.
  10165.  
  10166.     * fileio.c (Fexpand_file_name):
  10167.     No longer discard .../ before another / or ~.
  10168.     That is now only in Fsubstitute_in_file_name.
  10169.  
  10170. 1996-10-12  Simon Marshall  <simon@duality.gnu.ai.mit.edu>
  10171.  
  10172.     * data.c (Fdefine_function): Function definition deleted.
  10173.      (syms_of_data): Don't call defsubr for it.
  10174.  
  10175. 1996-10-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10176.  
  10177.     * xterm.c (XTwrite_glyphs, XTclear_end_of_line, XTclear_frame)
  10178.     (clear_cursor, x_display_bar_cursor, x_display_box_cursor)
  10179.     (x_set_window_size): Use phys_cursor_on field in frame.
  10180.     (x_update_cursor): Negative phys_cursor_x no longer means anything.
  10181.  
  10182.     * frame.h (struct frame): New field phys_cursor_on.
  10183.  
  10184. 1996-10-08  David Kσgedal  <davidk@lysator.liu.se>
  10185.  
  10186.     * xmenu.c (Fx_popup_menu): Give the menu a title when the menu is
  10187.      a single keymap.
  10188.  
  10189. 1996-10-07  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10190.  
  10191.     * s/ptx.h (POSIX_SIGNALS): New definition.
  10192.  
  10193.     * dispnew.c (init_display): If not yet initialized,
  10194.     we can't really use X, so we must do the real work.
  10195.  
  10196. 1996-10-06  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10197.  
  10198.     * xdisp.c (display_text_line): New arg ovstr_done.  (Callers changed).
  10199.     Ignore that many chars from start of overlay strings.
  10200.     Return updated value in ovstring_chars_done field.
  10201.  
  10202.     * indent.c (vmotion, compute_motion): Fill in ovstring_chars_done
  10203.     in the return value.
  10204.  
  10205.     * indent.h (struct position): New field ovstring_chars_done.
  10206.  
  10207. 1996-10-06  Erik Naggum  <erik@naggum.no>
  10208.  
  10209.     * window.c (Fspecial_display_p, Fsame_window_p): New functions.
  10210.     (Fdisplay_buffer): Use them, instead of doing the work here.
  10211.     (syms_of_window): Defsubr them.
  10212.  
  10213. 1996-10-05  Marcus G. Daniels  <marcus@coulee.tdb.com>
  10214.  
  10215.     * xfns.c (x_set_internal_border_width):  Only change
  10216.      an edit_widget's internal_border_width for the toolkit case.
  10217.  
  10218. 1996-10-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10219.  
  10220.     * lread.c (openp): Omit /: from start of file name.
  10221.  
  10222. 1996-10-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10223.  
  10224.     * buffer.c (init_buffer): Add /: to dir names that could be magic.
  10225.     * emacs.c (decode_env_path): Add /: to dir names that could be magic.
  10226.     (init_cmdargs): Add /: to argv[0] if it could be magic.
  10227.  
  10228. 1996-10-02  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10229.  
  10230.     * xfns.c (syms_of_xfns): For x-sensitive-text-pointer-shape, use
  10231.     DEFVAR_LISP.
  10232.  
  10233. 1996-10-01  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  10234.  
  10235.     * frame.c (store_frame_param): Allow setting a frame's minibuffer
  10236.     to the value that it already has.
  10237.  
  10238. 1996-10-01  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10239.  
  10240.     * buffer.c (syms_of_buffer): Doc fix.
  10241.  
  10242. 1996-09-28  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10243.  
  10244.     * xterm.c (show_mouse_face): Undo 1996-08-30 change.
  10245.  
  10246.     * s/irix5-0.h (ospeed): New definition.
  10247.     * s/irix6-0.h (ospeed): New #undef to counteract that definition.
  10248.  
  10249. 1996-09-27  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10250.  
  10251.     * xterm.c (XTflash): Don't flash in the internal borders.
  10252.     or between a scroll bar and the edge.
  10253.  
  10254.     * eval.c (Vdebug_force): New variable.
  10255.     (syms_of_eval): Set up Lisp var.
  10256.     (find_handler_clause): If Vdebug_force, call debugger
  10257.     even if there are handlers.
  10258.  
  10259. 1996-09-26  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
  10260.  
  10261.     * xfns.c (x_set_scroll_bar_width): Move cursor to the 
  10262.     left margin, past a scroll bar, if any.
  10263.  
  10264. 1996-09-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10265.  
  10266.     * lread.c (isfloat_string): Accept E like e.
  10267.  
  10268.     * callint.c (Fcall_interactively): Bind cursor-in-echo-area to t
  10269.     for `k' and `K'.
  10270.  
  10271.     * s/hpux10.h (KERNEL_FILE): Redefine it here.
  10272.  
  10273. 1996-09-25  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10274.  
  10275.     * textprop.c (Fset_text_properties, Fadd_text_properties)
  10276.     (Fremove_text_properties): Call modify_region and signal_after_change
  10277.     only for buffers, not for strings.
  10278.  
  10279.     * xterm.c (XTflash): Flash just top and bottom screen line.
  10280.  
  10281.     * window.c (syms_of_window): Doc fixes.
  10282.  
  10283. 1996-09-25  Marcus Daniels  <marcus@sysc.pdx.edu>
  10284.  
  10285.     * s/irix5-0.h (sigsetmask, _longjmp, _setjmp): #undef them.
  10286.     (_BSD_SIGNALS): Definition deleted.
  10287.  
  10288. 1996-09-25  Eli Zaretskii  <eliz@is.elta.co.il>
  10289.  
  10290.     * dosfns.c (init_dosfns): When setting `__opendir_flags' value,
  10291.     override the bits recorded when dumping.
  10292.  
  10293. 1996-09-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10294.  
  10295.     * w32term.c (w32_read_socket): Delete WAITP arg.
  10296.  
  10297.     * keyboard.c (read_avail_input): Don't pass WAITP to read_socket_hook.
  10298.  
  10299.     * xterm.c (XTread_socket): Delete WAITP arg.
  10300.  
  10301.     * config.in (HAVE_GETCWD): Add #undef.
  10302.  
  10303.     * fileio.c (Vuser_login_name): Declared extern.
  10304.     (minibuf_level): extern decl moved to top level.
  10305.     (Fwrite_region): Query before writing to a file that is locked,
  10306.     even if it is locked by the same user.
  10307.  
  10308.     * textprop.c (set_properties, add_properties, remove_properties):
  10309.     Don't call modify_region or signal_after_change here.
  10310.     (Fset_text_properties, Fadd_text_properties, Fremove_text_properties):
  10311.     Call them here when appropriate.
  10312.  
  10313.     * Makefile.in (LIBES): Add LOADLIBES and LDLIBS.
  10314.  
  10315. 1996-09-24  Eli Zaretskii  <eliz@is.elta.co.il>
  10316.  
  10317.     * msdos.c (run_msdos_command): When testing whether a shell
  10318.     belongs to the MSDOS family, convert its name to lower-case.
  10319.  
  10320. 1996-09-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10321.  
  10322.     * eval.c (Vsignal_hook_function): New variable.
  10323.     (syms_of_eval): Set up Lisp variable.
  10324.     (Fsignal): Call that function.
  10325.  
  10326.     * xfns.c (x_set_internal_border_width, Fx_create_frame):
  10327.     Call widget_store_internal_border.
  10328.     (Fx_create_frame): Don't use a superclass when
  10329.     checking for an internalBorder resource.
  10330.  
  10331.     * widget.c (widget_store_internal_border): New function.
  10332.     (EmacsFrameSetValues): Undo previous change.
  10333.  
  10334. 1996-09-23  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10335.  
  10336.     * xfns.c (x_window): With Motif, double extra_borders.
  10337.     Use a preprocessor conditional to test for Motif.
  10338.  
  10339.     * frame.h (struct frame): New field window_width.
  10340.     (FRAME_WINDOW_WIDTH): Refer to window_width field.
  10341.     (SET_FRAME_WIDTH): Set window_width field as well as width field.
  10342.  
  10343. 1996-09-22  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10344.  
  10345.     * eval.c (syms_of_eval): Initialize Vrun_hooks here.
  10346.     Don't make it a Lisp variable.
  10347.  
  10348.     * frame.c (Fdelete_frame): Set update_mode_lines.
  10349.  
  10350.     * emacs.c (main): Add copyright etc. to --version output.
  10351.  
  10352. 1996-09-21  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10353.  
  10354.     * bytecode.c (Bsave_current_buffer): New macro.
  10355.     (Fbyte_code): Handle Bsave_current_buffer.
  10356.  
  10357.     * editfns.c (Fsave_current_buffer): New function.
  10358.     (syms_of_editfns): defsubr it.
  10359.  
  10360.     * search.c (REGEXP_CACHE_SIZE): Increase to 20.
  10361.     (compile_pattern): Check for size match before calling Fstring_equal.
  10362.  
  10363. 1996-09-21  Paul Eggert  <eggert@twinsun.com>
  10364.  
  10365.     * editfns.c: For time zone difference calculations, use the same
  10366.      code as the GNU C Library; this fixes a bug with large negative years.
  10367.     (tm_diff): Renamed from difftm.  Yield int, not long.
  10368.     (TM_YEAR_BASE): Renamed from TM_YEAR_ORIGIN.
  10369.  
  10370. 1996-09-21  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10371.  
  10372.     * xdisp.c (echo_area_display): Clear the left-side scroll bar columns.
  10373.  
  10374. 1996-09-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10375.  
  10376.     * xterm.c (x_scroll_bar_create, x_scroll_bar_move): 
  10377.     (x_scroll_bar_expose): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
  10378.  
  10379.     * xterm.h (VERTICAL_SCROLL_BAR_WIDTH_TRIM): Renamed from
  10380.     LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM.
  10381.     (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Use VERTICAL_SCROLL_BAR_WIDTH_TRIM.
  10382.  
  10383.     * widget.c (EmacsFrameSetValues): Copy internal_border_width
  10384.     from the Emacs frame if caller isn't changing it.
  10385.  
  10386.     * xfns.c (Fx_create_frame): Default Qinternal_border_width to 1.
  10387.  
  10388.     * xterm.c (XTchange_line_highlight, dumpglyphs, XTclear_end_of_line)
  10389.     (do_line_dance, pixel_to_glyph_coords): Use FRAME_WINDOW_WIDTH.
  10390.  
  10391.     * xfns.c (x_set_scroll_bar_width): Default the width to 3 cols.
  10392.     Call change_frame_size.
  10393.  
  10394.     * xterm.c (x_scroll_bar_move, x_scroll_bar_create):
  10395.     Add a border around the actual window.
  10396.  
  10397.     * dispnew.c (make_frame_glyphs, update_line, update_frame)
  10398.     (scroll_frame_lines, char_ins_del_cost): Use FRAME_WINDOW_WIDTH.
  10399.  
  10400.     * minibuf.c (read_minibuf): Use FRAME_LEFT_SCROLL_BAR_WIDTH
  10401.     to set the cursor position at the end.
  10402.  
  10403.     * xterm.c (x_scroll_bar_expose): Don't trim the width here.
  10404.  
  10405.     * xdisp.c (display_mode_line): Use faces for inverse video mode line
  10406.     whenever that possible.
  10407.  
  10408.     * xfns.c (Fx_create_frame): Default Qvertical_scroll_bars to `left'.
  10409.  
  10410. Fri Sep 20 02:37:37 1996  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
  10411.  
  10412.     * xterm.c (XTclear_end_of_line): Shift end-of-line when there is a
  10413.      left-side scroll bar by FRAME_LEFT_SCROLL_BAR_WIDTH.
  10414.     (do_line_dance): Take into account the width of a left-side scroll bar.
  10415.     (dumprectangle): Trim at FRAME_WINDOW_WIDTH instead of FRAME_WIDTH.
  10416.     (fast_find_position): Use new macro WINDOW_LEFT_MARGIN.
  10417.     (show_mouse_face): Likewise.
  10418.     (x_scroll_bar_set_handle): VERTICAL_SCROLL_BAR_INSIDE_WIDTH now
  10419.      requires the frame as an argument.
  10420.     (x_scroll_bar_expose): Narrow the box slightly for a left-side
  10421.      scroll bar.
  10422.  
  10423.     * xfns.c:  Add the symbol `right'; this symbol is used to indicate
  10424.     that a right-side scroll bar is wanted.
  10425.     (x_set_vertical_scroll_bars): Check for left<->right<->none 
  10426.     scroll bar changes, and modify the vertical scroll bar type
  10427.     as appropriate.
  10428.     (x_figure_window_size): Use new SET_FRAME_WIDTH macro.
  10429.     (Fx_create_frame): Likewise.
  10430.     (Fx_horizontal_line): Use new macro WINDOW_LEFT_MARGIN.
  10431.  
  10432.     * xdisp.c (echo_area_display): Shift display_string past a
  10433.      left-side scroll bar.
  10434.     (redisplay_window): Likewise.
  10435.     (redisplay_internal): Shift cursor past a left-side scroll bar.
  10436.     (redisplay_window): Likewise.
  10437.     (try_window_id): Likewise.
  10438.     (display_text_line): Likewise.
  10439.     (redisplay_internal): Shift charstarts past a left-side scroll bar.
  10440.     (display_text_line): Likewise.
  10441.     (redisplay_internal): Use new macro WINDOW_FULL_WIDTH_P.
  10442.     (redisplay_window): Likewise.
  10443.     (display_text_line): Likewise.
  10444.     (display_text_line): Shift output past left-side scroll bar.
  10445.     (display_text_line): Use new WINDOW_RIGHTMOST_P macro.
  10446.     (display_text_line): Don't pad right columns unless using
  10447.      a right-side scroll bar.  Don't draw vertical bars unless there
  10448.      isn't any kind of scroll bar.
  10449.     (display_string): Likewise.
  10450.     (display_mode_line): Use new macros WINDOW_LEFT_MARGIN,
  10451.      WINDOW_RIGHT_MARGIN, and WINDOW_FULL_WIDTH_P.
  10452.     (display_string): Use new macro WINDOW_RIGHTMOST_P.
  10453.  
  10454.     * window.c (Fwindow_edges): Use new WINDOW_RIGHT_EDGE macro.
  10455.     (coordinates_in_window): Use WINDOW_LEFT_MARGIN, WINDOW_RIGHT_MARGIN,
  10456.     and WINDOW_RIGHT_EDGE.  Adjust for left-side scroll bar margin.
  10457.     (window_loop, Fdisplay_buffer): Use new WINDOW_FULL_WIDTH_P macro.
  10458.     (window_internal_width): Window width now always includes the
  10459.      scroll bar, if any.  Use WINDOW_RIGHTMOST_P and WINDOW_FULL_WIDTH_P.
  10460.  
  10461.     * w32term.c (fast_find_position, show_macro_face): Use new
  10462.      WINDOW_LEFT_MARGIN macro.
  10463.  
  10464.     * w32fns.c (Qright): New variable.
  10465.     (syms_of_win32fns): Initialize and staticpro Qright.
  10466.     (x_set_vertical_scroll_bars): Check for left<->right<->none 
  10467.     scroll bar changes, and modify the vertical scroll bar type
  10468.     as appropriate.
  10469.     (x_figure_window_size): Use new SET_FRAME_WIDTH macro.
  10470.     (Fx_create_frame): Likewise.
  10471.  
  10472.     * term.c (term_init): Use new vertical scroll bar enumerated type.
  10473.     (term_init): Use new macro SET_FRAME_WIDTH.
  10474.  
  10475.     * sunfns.c (Fsun_menu_internal): Use new WINDOW_LEFT_MARGIN macro.
  10476.  
  10477.     * ntterm.c (initialize_win_nt_display): Use SET_FRAME_WIDTH.
  10478.  
  10479.     * keyboard.c (make_lispy_event): When converting from pixel to
  10480.      glyph coordinates, offset by WINDOW_LEFT_MARGIN instead of XINT
  10481.      (XWINDOW (window)->left; this is necessary when there are
  10482.      left-side scrollbars.
  10483.  
  10484.     * frame.c (make_frame): Switch from boolean
  10485.      `has_vertical_scrollbars' integer to an enumerated type.
  10486.     Use new macro SET_FRAME_WIDTH.
  10487.  
  10488.     * dispnew.c (preserve_other_columns, preserve_my_columns): Use new
  10489.     macros WINDOW_LEFT_MARGIN and WINDOW_RIGHT_EDGE.
  10490.     (adjust_window_charstarts, verify_charstarts, cancel_my_columns):
  10491.     Use new macro WINDOW_LEFT_MARGIN instead of w->left.
  10492.     (direct_output_for_insert, direct_output_forward_char): Likewise.
  10493.     (buffer_posn_from_coords): Likewise.
  10494.     (verify_charstarts): Use new macro WINDOW_FULL_WIDTH_P.
  10495.     (update_frame): For determining when to wrap the cursor, use the
  10496.     new macro FRAME_WINDOW_WIDTH instead of FRAME_WIDTH; they aren't
  10497.     necessarily the same any more.
  10498.     (change_frame_size_1): Use FRAME_WINDOW_WIDTH to check for changes.
  10499.     Give `set_window_width' the window width value.
  10500.       Use new macro SET_FRAME_WIDTH.
  10501.     
  10502.     * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_WIDTH): Add frame as an
  10503.      argument, and use it to decrease the width in the case of a
  10504.      left-side scroll bar; this prevents the bar and adjacent text
  10505.      from scrunching together.
  10506.     (LEFT_VERTICAL_SCROLL_BAR_WIDTH_TRIM): Add constant.
  10507.  
  10508.     * frame.h (vertical_scroll_bar_type): Add enumerated
  10509.      none/left/right type for identifying vertical scroll bars.
  10510.     (struct frame): Use vertical_scroll_bar_type.
  10511.     (FRAME_HAS_VERTICAL_SCROLL_BARS): Use vertical scroll bar type.
  10512.     (FRAME_VERTICAL_SCROLL_BAR_TYPE): New macro.
  10513.     (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT): New macros.
  10514.     (FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT): New macros.
  10515.     (FRAME_SCROLL_BAR_WIDTH, FRAME_LEFT_SCROLL_BAR_WIDTH): New macros.
  10516.     (FRAME_WINDOW_WIDTH, FRAME_WINDOW_WIDTH_ARG): New macros.
  10517.     (SET_FRAME_WIDTH): New macro for assigning to both
  10518.      `external_width' and `width'.
  10519.     (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Modify to handle left-side
  10520.      scroll bars too.
  10521.       
  10522.     * window.h (WINDOW_LEFT_MARGIN): New macro.
  10523.     (WINDOW_RIGHT_EDGE, WINDOW_RIGHT_MARGIN): New macros.
  10524.     (WINDOW_FULL_WIDTH_P, WINDOW_RIGHTMOST_P): New macros.
  10525.  
  10526. 1996-09-20  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10527.  
  10528.     * xterm.h (VERTICAL_SCROLL_BAR_INSIDE_HEIGHT): New arg F (not used).
  10529.     (VERTICAL_SCROLL_BAR_TOP_RANGE): New arg F (not used).
  10530.     * xterm.c: Pass frame arg in calls to VERTICAL_SCROLL_BAR_INSIDE_HEIGHT
  10531.     and VERTICAL_SCROLL_BAR_TOP_RANGE.
  10532.     
  10533.     * sysdep.c (init_system_name): Retry gethostbyname only 5 times
  10534.     and don't sleep after the last time.
  10535.  
  10536. 1996-09-19  Eli Zaretskii  <eliz@is.elta.co.il>
  10537.  
  10538.     * dired.c (file_name_completion): Remove code which sets and
  10539.     restores the `stat' control flags (they might not be restored if
  10540.     C-g is pressed during completion).
  10541.     (file_name_completion_stat): Set and restore flags that make
  10542.     `stat' faster here instead of in `file_name_completion'.
  10543.  
  10544. 1996-09-18  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10545.  
  10546.     * buffer.c (overlay_strings): Declare pstr using unsigned char.
  10547.  
  10548.     * xdisp.c (display_text_line): Declare ovstr as unsigned char *.
  10549.  
  10550.     * minibuf.c (Fcompleting_read): Doc fix.
  10551.  
  10552. 1996-09-17  Erik Naggum  <erik@naggum.no>
  10553.  
  10554.     * lisp.h: Declare make_symbol.
  10555.  
  10556.     * lread.c (init_obarray): staticpro Qvariable_documentation.
  10557.  
  10558.     * keymap.c (syms_of_keymap): staticpro global_map.
  10559.  
  10560.     * keyboard.c (syms_of_keyboard): Initialize and staticpro
  10561.     internal_last_event_frame and read_key_sequence_cmd.
  10562.  
  10563.     * fileio.c (syms_of_fileio): staticpro Qset_visited_file_modtime.
  10564.  
  10565.     * dired.c (syms_of_dired): staticpro Qdirectory_files,
  10566.     Qfile_name_completion, Qfile_name_all_completions, and Qfile_attributes.
  10567.  
  10568.     * casetab.c (syms_of_casetab): staticpro Vascii_canontable,
  10569.     Vascii_eqv_table, and Vascii_upcase_table.
  10570.  
  10571.     * alloc.c (Fmake_symbol): Initialize `obarray' field.
  10572.  
  10573. 1996-09-16  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  10574.  
  10575.     * Makefile.in: Replaced symbol BSD with BSD_SYSTEM.
  10576.     * emacs.c, floatfns.c, keyboard.c, mem-limits.h, process.c: Likewise.
  10577.     * sysdep.c, syssignal.h, syswait.h, xterm.c: Likewise.
  10578.     * s/bsd386.h, s/bsd4-1.h, s/bsd4-2.h, s/bsd4-3.h, s/dgux.h: Likewise.
  10579.     * s/freebsd.h, s/msdos.h, s/rtu.h, s/umax.h, s/umips.h: Likewise.
  10580.     * m/intel386.h, m/mips.h, m/mips4.h, m/vax.h: Likewise.
  10581.  
  10582. 1996-09-16  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10583.  
  10584.     * buffer.c (Fget_buffer_create): Initialize BUF_OVERLAY_MODIFF.
  10585.  
  10586.     * minibuf.c (read_minibuf_unwind): Clear last_overlay_modified field.
  10587.  
  10588.     * msdos.c (IT_set_menu_bar_lines): Clear last_overlay_modified field.
  10589.  
  10590.     * w32term.c (note_mouse_highlight): Test last_overlay_modified field.
  10591.  
  10592.     * xterm.c (note_mouse_highlight): Test last_overlay_modified field.
  10593.  
  10594.     * window.c (Fset_window_start): Clear last_overlay_modified field.
  10595.     (set_window_height, set_window_width, Fset_window_buffer)
  10596.     (change_window_height, window_scroll, Fset_window_configuration): 
  10597.     Clear last_overlay_modified field.
  10598.     (Fpos_visible_in_window_p): Test last_overlay_modified field.
  10599.  
  10600.     * Makefile.in (frame.o, textprop.o, abbrev.o): Depend on window.h.
  10601.  
  10602.     * process.c (stream_process): Variable deleted.
  10603.     (syms_of_process): staticpro deleted.
  10604.  
  10605. 1996-09-15  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10606.  
  10607.     * sysdep.c: Don't explicitly Include termios.h.
  10608.     (ospeed): Use HAVE_TERMIOS to decide whether to use speed_t.
  10609.  
  10610.     * s/hpux9.h (C_SWITCH_X_SYSTEM): Add -I/usr/contrib/X11R5/include.
  10611.     (LD_SWITCH_X_DEFAULT): Add -L/usr/contrib/X11R5/lib.
  10612.  
  10613. 1996-09-14  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10614.  
  10615.     * buffer.h (struct buffer): New field overlay_modiff.
  10616.     (MODIFF, BUF_OVERLAY_MODIFF): New macros.
  10617.     * window.h (struct window): New field last_overlay_modified.
  10618.  
  10619.     * xdisp.c (redisplay_internal, mark_window_display_accurate)
  10620.     (redisplay_window): Test and update last_overlay_modified field
  10621.     along with last_modified.
  10622.  
  10623.     * dispnew.c (direct_output_for_insert): Set last_overlay_modified
  10624.     field in window.
  10625.  
  10626.     * keyboard.c (command_loop_1): Test last_overlay_modified
  10627.     along with last_modified.
  10628.  
  10629.     * xdisp.c (overlay_unchanged_modified): New variable.
  10630.      (redisplay_internal): Set overlay_unchanged_modified.
  10631.     * insdel.c (gap_left, gap_right, modify_region): 
  10632.     Compare overlay_unchanged_modified with OVERLAY_MODIFF.
  10633.  
  10634.     * buffer.c (modify_overlay): Renamed from redisplay_region
  10635.     moved here from xdisp.c, and made static.  Callers changed.
  10636.     Update OVERLAY_MODIFF instead of MODIFF.
  10637.     * xdisp.c (redisplay_region): Renamed and moved to buffer.c.
  10638.     
  10639.     * s/sco5.h (C_SWITCH_SYSTEM, LD_SWITCH_SYSTEM): 
  10640.     Don't define them if using GCC.
  10641.  
  10642. 1996-09-13  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10643.  
  10644.     * keyboard.c (recursive_edit_1): Handle a string as the
  10645.     throw value.
  10646.  
  10647.     * minibuf.c (read_minibuf): If not in minibuffer window,
  10648.     cancel the active minibuffer.
  10649.  
  10650. 1996-09-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10651.  
  10652.     * frame.c (Fmake_terminal_frame): Use Vdefault_frame_alist.
  10653.  
  10654.     * s/hpux9.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT):
  10655.     Don't specify dirs for X, only for Motif.
  10656.  
  10657. 1996-09-11  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10658.  
  10659.     * lread.c (Fload): Move ... to ends of messages.
  10660.  
  10661.     * puresize.h (BASE_PURESIZE): Increased.
  10662.  
  10663.     * s/sco5.h (LIBX11_SYSTEM): Don't use ..._s libraries.
  10664.  
  10665. 1996-09-10  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10666.  
  10667.     * insdel.c (signal_before_change): Fix previous change.
  10668.  
  10669.     * lisp.h (struct Lisp_Symbol): New field `obarray'.
  10670.  
  10671.     * xterm.c (x_connection_closed): Call XtCloseDisplay.
  10672.  
  10673. 1996-09-09  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10674.  
  10675.     * keyboard.c (Fexecute_extended_command): Delete junk lines.
  10676.     Print the key bindings after the command, temporarily;
  10677.     then bring back the previous message.
  10678.     
  10679.     * buffer.c (syms_of_buffer): Doc fixes.
  10680.  
  10681.     * filelock.c (lock_superlock): Delete superlock file if it stayed
  10682.     locked for 20 seconds.
  10683.  
  10684. 1996-09-08  Erik Naggum  <erik@naggum.no>
  10685.  
  10686.     * lread.c: Add #n=object, #n#, and #:symbol constructs to reader.
  10687.     (readevalloop, read, Fread_from_string): Empty list of read objects
  10688.     before read0 call.
  10689.     (read1): New variable `uninterned_symbol', which controls how to
  10690.     make symbols.  Support #:, #n=object and #n#.
  10691.     (make_symbol): New function, used in read1 to make uninterned symbols
  10692.     (Fintern): Set `obarray' field of interned symbols.
  10693.     (init_obarray): Explicit set `obarray' field of symbol `nil'.
  10694.     (syms_of_lread): staticpro read_objects, the list of read objects.
  10695.  
  10696.     * print.c: Add #n=object, #n#, and #:symbol constructs to printer.
  10697.     (PRINTDECLARE): New macro to declare required variables.
  10698.     (PRINTPREPARE, PRINTFINISH): Set printed_genyms to nil.
  10699.     (Fwrite_char, write_string, write_string_1, Fterpri, Fprin1,
  10700.     Fprin1_to_string, Fprinc, Fprint): Use new macro PRINTDECLARE.
  10701.     (print): Print uninterned symbols readable.
  10702.     (syms_of_print): Defvar `print-gensym', staticpro printed_gensyms.
  10703.  
  10704. 1996-09-05  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  10705.  
  10706.     * editfns.c (Finsert_buffer_substring): Check for deleted buffer.
  10707.     (Fcompare_buffer_substrings): Likewise.
  10708.  
  10709. 1996-09-04  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10710.  
  10711.     * lisp.h: Add many declarations.
  10712.     
  10713.     * lisp.h (BITS_PER_EMACS_INT): New macro.
  10714.     (XMARKBIT): Test BITS_PER_EMACS_INT to conditionalize fast definition.
  10715.     * m/alpha.h (BITS_PER_EMACS_INT): New definition.
  10716.  
  10717.     * s/sol2.h (LIBS_SYSTEM): Use -lkstat instead of -lelf -lkvm
  10718.  
  10719.     * process.c (create_process): Test HAVE_SETPGID for using setpgid.
  10720.  
  10721.     * config.in (HAVE_SETPGID): Add #undef.
  10722.  
  10723.     * keymap.c (syms_of_keymap): staticpro current_global_map;
  10724.  
  10725.     * intervals.c (get_local_map): Call indirect-function.
  10726.  
  10727.     * m/alpha.h (UNEXEC): Use unexelf.c.
  10728.  
  10729.     * unexelf.c: unexelf1.c merged into this file.
  10730.  
  10731.     * terminfo.c: Include config.h.
  10732.     [HAVE_TERMIOS_H]: Include termios.h.
  10733.     (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t.
  10734.  
  10735.     * process.c (create_process_1, sigchld_handler) [POSIX_SIGNALS]:
  10736.     Don't reestablish handler.
  10737.  
  10738.     * keyboard.c (input_available_signal) [POSIX_SIGNALS]:
  10739.     Don't reestablish handler.
  10740.     (interrupt_signal) [POSIX_SIGNALS]: Likewise.
  10741.  
  10742.     * data.c (arith_error) [POSIX_SIGNALS]: Don't reestablish handler.
  10743.  
  10744.     * config.in (HAVE_TERMIOS_H): Add #undef.
  10745.  
  10746.     * cm.h, sysdep.c [HAVE_TERMIOS_H]: Include termios.h.
  10747.     (ospeed) [HAVE_TERMIOS_H]: Use ospeed_t.
  10748.  
  10749.     * eval.c (Fmacroexpand): Don't declare `form' as register.
  10750.  
  10751.     * frame.c (Fredirect_frame_focus): Don't call Ffocus_frame.
  10752.  
  10753.     * keyboard.c (Fexecute_extended_command): Fix previous change.
  10754.  
  10755.     * intervals.c (copy_intervals_to_string): Take arg as buffer.
  10756.  
  10757.     * keyboard.c (Fcommand_execute): gcpro cmd and prefixarg
  10758.     while calling do_autoload.
  10759.  
  10760.     * eval.c (Fmacroexpand): gcpro form while calling do_autoload.
  10761.     (do_autoload): gcpro fun, funname, fundef.
  10762.  
  10763. 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10764.  
  10765.     * keyboard.c (Fexecute_extended_command): gcpro prefixarg.
  10766.  
  10767.     * xfns.c, w32fns.c (x_set_frame_parameters):
  10768.     Make height and width ints.
  10769.  
  10770.     * fns.c (map_char_table): Declare depth as int.
  10771.  
  10772.     * xterm.c (note_mouse_highlight):
  10773.     Pass POS argument to fast_find_position as int.
  10774.  
  10775.     * textprop.c (set_properties, add_properties, remove_properties): 
  10776.     Call modify_region with ints.
  10777.  
  10778.     * insdel.c (prepare_to_modify_buffer): Take integer arguments.
  10779.     (signal_before_change): Take integer arguments.
  10780.  
  10781.     * alloc.c (Fmake_byte_code): Call make_pure_vector using nargs.
  10782.  
  10783.     * alloc.c (Fpurecopy): Cast arg to make_pure_vector.
  10784.     (Fmake_byte_code): Use XFASTINT when calling make_pure_vector.
  10785.  
  10786.     * doprnt.c (doprnt1): If lispstrings, accept a string
  10787.     as a `struct Lisp_String *'.
  10788.  
  10789.     * editfns.c (Fformat): Pass a string using XSTRING.
  10790.  
  10791.     * xdisp.c (message): Cast size arg to doprnt.
  10792.  
  10793.     * term.c (term_init): Avoid type-mismatch calling get_frame_size.
  10794.     (OUTPUT_IF, OUTPUT): Cast frame height to int.
  10795.  
  10796.     * search.c (search_buffer): Use EMACS_UINT.
  10797.  
  10798. 1996-09-03  Richard Stallman  <rms@whiz-bang.gnu.ai.mit.edu>
  10799.  
  10800.     * emacs.c (sort_args): Don't rearrange any args that follow "--".
  10801.  
  10802. 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10803.  
  10804.     * xfns.c, w32fns.c (Ffocus_frame, Funfocus_frame): Functions deleted.
  10805.  
  10806.     * xfns.c (x_get_and_record_arg): New function.
  10807.     (x_icon): Use that, for Qicon_top and Qicon_left.
  10808.     (x_report_frame_params): Report the Qparent_id parameter.
  10809.     
  10810. 1996-09-03  Paul Eggert  <eggert@twinsun.com>
  10811.  
  10812.     * config.in (mktime): Define to emacs_mktime if we are using our own
  10813.     mktime, since Nextstep doesn't let Emacs redefine the builtin mktime.
  10814.     * Makefile.in (MKTIME_OBJ):  Use our mktime instead of NEXTSTEP's,
  10815.     since NEXTSTEP's wrongly ignores TZ.
  10816.     (mktime): #undef, to avoid messing up the file name mktime.c.
  10817.     * editfns.c (Fencode_time):  Remove NEXTSTEP workaround;
  10818.     we now use our mktime instead.
  10819.  
  10820. 1996-09-03  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10821.  
  10822.     * process.c (create_process): Undo previous change.
  10823.  
  10824. 1996-09-02  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10825.  
  10826.     * editfns.c (Fencode_time) [_NEXT_SOURCE]: Use ZONE, not ABSZONE.
  10827.  
  10828.     * Make region highlighting show in just one window.
  10829.     * xdisp.c (redisplay_internal): Test last_selected_window slot.
  10830.     (mark_window_display_accurate, display_text_line): Likewise.
  10831.     * window.c (unshow_buffer): Clear last_selected_window slot, maybe.
  10832.     (Fset_window_buffer): Set last_selected_window slot.
  10833.     (Fselect_window): Set last_selected_window slot.
  10834.     (delete_all_subwindows): Maybe call unshow_buffer.
  10835.     * buffer.c (reset_buffer): Initialize last_selected_window slot.
  10836.     * buffer.h (strict buffer): New slot last_selected_window.
  10837.  
  10838. 1996-09-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10839.  
  10840.     * process.c (Fprocess_contact): New function.
  10841.      (NETCONN_P): Use GC_CONSP.
  10842.     (list_processes_1): Use new childp format.
  10843.     (Fopen_network_stream): Store a cons cell in childp.
  10844.  
  10845.     * keyboard.c (record_asynch_buffer_change, gobble_input):
  10846.     Use sigblock instead of sigblockx.
  10847.  
  10848.     * syssignal.h (sigunblockx): Definitions deleted.
  10849.     (sigpausex, sigblockx, sigholdx): Definitions deleted.
  10850.  
  10851.     * process.c (create_process): Test defined (TIOCSCTTY)
  10852.     and defined (HAVE_SETSID) instead of DONT_REOPEN_PTY.
  10853.  
  10854.     * fileio.c (Faccess_file): New function.
  10855.     (Qaccess_file): New variable.
  10856.     (syms_of_fileio): defsubr function; init and staticpro Qaccess_file.
  10857.  
  10858. 1996-09-01  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  10859.  
  10860.     * config.in (MULTI_FRAME): Obsolete macro deleted.
  10861.     * Makefile.in: Removed support for !MULTI_FRAME.
  10862.     * dispextern.h, frame.h, keyboard.h, lisp.h, puresize.h: Likewise.
  10863.     * alloc.c, buffer.c, data.c, dispnew.c, frame.c: Likewise.
  10864.     * keyboard.c, minibuf.c, print.c, sysdep.c, w32faces.c: Likewise.
  10865.     * window.c, xdisp.c, xfaces.c: Likewise.
  10866.  
  10867.     * abbrev.c, bytecode.c: Change all references from point to PT.
  10868.     * callint.c, casefiddle.c, cmds.c, dispnew.c, editfns.c: Likewise.
  10869.     * fileio.c, indent.c, lread.c, print.c, process.c: Likewise.
  10870.     * search.c, syntax.c, undo.c, window.c: Likewise.
  10871.  
  10872. 1996-09-01  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10873.  
  10874.     * Makefile.in (TAGS): Use $(srcdir) in deps.
  10875.  
  10876. 1996-08-31  Boris Goldowsky  <boris@gnu.ai.mit.edu>
  10877.  
  10878.     * fileio.c (build_annotations): Remember original buffer that the
  10879.     region came from; pass this to `format-annotate-function'.
  10880.  
  10881. 1996-08-31  Geoff Voelker  <voelker@cs.washington.edu>
  10882.  
  10883.     * Makefile.in (MSDOS_SUPPORT, WINNT_SUPPORT, SOME_MACHINE_LISP): 
  10884.     Include dos-nt.elc.
  10885.  
  10886. 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10887.  
  10888.     * keyboard.c (requeued_events_pending_p): New function.
  10889.  
  10890.     * config.in (HAVE_SETRLIMIT): Add #undef.
  10891.  
  10892.     * emacs.c [HAVE_SETRLIMIT]: Include time.h and resource.h.
  10893.     (main) [HAVE_SETRLIMIT]: Call setrlimit to extend the stack limit.
  10894.      New local `rlim'.
  10895.  
  10896.     * lread.c (Fload): Add "source is newer" info to the "loading" and
  10897.      "done" messages.
  10898.  
  10899. 1996-08-31  Paul Eggert  <eggert@twinsun.com>
  10900.  
  10901.     * config.in (HAVE_SYS_SYSTEMINFO_H, HAVE_GETDOMAINNAME, HAVE_SYSINFO):
  10902.     New macros.
  10903.     * sysdep.c (<sys/systeminfo.h>):
  10904.     Include if HAVE_SYS_SYSTEMINFO_H is defined.
  10905.     (init_system_name): Use sysinfo or getdomainname to append domain name
  10906.     if host name is not already fully qualified.
  10907.  
  10908. 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10909.  
  10910.     * xfns.c (Fx_list_fonts): New optional arg MAXIMUM.
  10911.  
  10912. 1996-08-31  Erik Naggum  <erik@naggum.no>
  10913.  
  10914.     * alloc.c (Fgarbage_collect): Report used and free intervals.
  10915.  
  10916. 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10917.  
  10918.     * xterm.h (struct x_display_info): Add element Xatom_FONT.
  10919.     * xterm.c (x_term_init): Initialize Xatom_FONT member.
  10920.     (x_new_font): Use Xatom_FONT member.
  10921.  
  10922. 1996-08-31  Kevin Layer  <layer@Franz.COM>
  10923.  
  10924.     * ntproc.c (Vwin32_start_process_show_window): New variable.
  10925.     (create_child): Conditionally force subprocess to hide window.
  10926.     (syms_of_ntproc): DEFVAR it.
  10927.  
  10928. 1996-08-31  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10929.  
  10930.     * s/nextstep.h (LD_SWITCH_SYSTEM): Add alternate definition if
  10931.     not __NeXT.
  10932.  
  10933. 1996-08-30  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10934.  
  10935.     * xfaces.c (Fset_face_attribute_internal): Set mouse_face_defer flag.
  10936.     * xterm.c (XTupdate_end): Always clear mouse_face_defer flag.
  10937.  
  10938.     * xterm.c (do_line_dance, dumprectangle): Use x_update_cursor.
  10939.     (show_mouse_face, clear_cursor): Likewise.
  10940.     (x_display_cursor): New args X and Y.
  10941.     (XTupdate_end, XTcursor_to, XTwrite_glyphs): Pass new args.
  10942.     (XTupdate_begin): Initialize curs_x, curs_y here.
  10943.  
  10944.     * xfns.c (x_set_cursor_color): Use x_update_cursor.
  10945.  
  10946. 1996-08-29  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10947.  
  10948.     * xterm.c (XTread_socket): Fix previous change.
  10949.  
  10950.     * keyboard.c (cmd_error): Clear executing_macro.
  10951.  
  10952. 1996-08-29  David Byers  <byers@lysator.liu.se>
  10953.  
  10954.     * minibuf.c (Fminibuffer_complete_word): Check for
  10955.     unexpected data type returned by Ftry_completion.
  10956.  
  10957. 1996-08-29  Erik Naggum  <erik@psilocin.gnu.ai.mit.edu>
  10958.  
  10959.     * macros.c (init_macros): Initialize executing_macro, too.
  10960.  
  10961. 1996-08-29  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10962.  
  10963.     * xterm.c (XTread_socket): Call XFilterEvent on all events,
  10964.     if HAVE_X_I18N and FRAME_XIC nonzero.
  10965.  
  10966.     * keyboard.c (cmd_error): Add number of kbd macro iterations
  10967.     to the error message.
  10968.  
  10969.     * macros.h (executing_macro_iterations, executing_macro): Declared.
  10970.     
  10971.     * macros.c (executing_macro_iterations, executing_macro): New vars.
  10972.     (Fexecute_kbd_macro): Set them.
  10973.  
  10974. 1996-08-28  Morten Welinder  <terra@diku.dk>
  10975.  
  10976.     * minibuf.c (Vhistory_length, Qhistory_length): New variables.
  10977.     (syms_of_minibuf): Register and initialise these.
  10978.     (read_minibuf): Truncate history list if needed.
  10979.  
  10980. 1996-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10981.  
  10982.     * fns.c (Fsubstring): Handle vectors as well as strings.
  10983.  
  10984.     * callint.c (Fcall_interactively): For `N' and `n',
  10985.     if we don't get a number, try again.
  10986.  
  10987. 1996-08-28  Lars Magne Ingebrigtsen  <larsi@dain.ifi.uio.no>
  10988.  
  10989.     * alloc.c (syms_of_alloc): Set up Lisp variables ...-consed,
  10990.     such as Vcons-cells-consed.
  10991.  
  10992. 1996-08-28  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  10993.  
  10994.     * emacs.c (main): Add bug report info in --help message.
  10995.  
  10996. 1996-08-26  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  10997.  
  10998.     * term.c (Vring_bell_function): New variable.
  10999.     (syms_of_term): Set up Lisp variable.
  11000.     (ring_bell): Use Vring_bell_function.
  11001.  
  11002. 1996-08-25  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  11003.  
  11004.     * xterm.c (fast_find_position): Fix previous change.
  11005.  
  11006.     * keyboard.c (command_loop_1): Cancel echoing etc.
  11007.     before running post-command-hook and such.
  11008.  
  11009.     * xterm.c (fast_find_position): Minor fix in handling maybe_next_line.
  11010.  
  11011.     * config.in (HAVE_LIBKRB, HAVE_LIBDES): Add #undefs.
  11012.  
  11013. 1996-08-24  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
  11014.  
  11015.     * Renamings to avoid conflicting names on MSDOS.
  11016.     * s/riscix12.h: Renamed from s/riscix12.h.
  11017.     * s/sunos413.h: Renamed from s/sunos4-1-3.h.
  11018.     * s/dgux5-4-3.h: Renamed from s/dgux5-4r3.h.
  11019.     * s/sunos4-1-2.h: File deleted.
  11020.     
  11021.     * xmenu.c (set_frame_menubar): Don't add ibw to menubar_size.
  11022.  
  11023.     * xfns.c (x_window): Don't add ibw to menubar_size.
  11024.  
  11025. 1996-08-24  Paul Eggert  <eggert@twinsun.com>
  11026.  
  11027.     * editfns.c (Fencode_time, Fset_time_zone_rule):
  11028.     Use UTC if the zone is t.
  11029.  
  11030. 1996-08-24  Erik Naggum  <erik@naggum.no>
  11031.  
  11032.     * print.c (print-quoted): New variable.
  11033.     (print): Print certain expressions more compactly when set.
  11034.     Also use XCAR and XCDR directly -- we know we have conses.
  11035.  
  11036. 1996-08-23  Marcus Daniels  <marcus@sayre.sysc.pdx.edu>
  11037.  
  11038.     * xterm.c (x_term_init): If the default Xt font does not exist on
  11039.      the X server, add a resource so that dialog boxes use a common font.
  11040.  
  11041. 1996-08-23  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11042.  
  11043.     * window.c (Fsplit_window): Treat width just like height;
  11044.     no special handling for scroll bars.
  11045.  
  11046. 1996-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11047.  
  11048.     * Makefile.in (paths.h, config.h): Targets deleted.
  11049.     (../config.status): Add two new rules to check need for reconfigure.
  11050.  
  11051.     * keyboard.c (command_loop_1): Check column_number_displayed
  11052.     in the selected window, not Vcolumn_number_mode.
  11053.     (Vcolumn_number_mode): Variable deleted.
  11054.     (syms_of_keyboard): Delete Lisp variable column-number-mode.
  11055.  
  11056. 1996-08-22  Erik Naggum  <erik@psilocin.gnu.ai.mit.edu>
  11057.  
  11058.     * dispnew.c (change_frame_size_1): Clean up conditional.
  11059.  
  11060. 1996-08-22  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11061.  
  11062.     * xmenu.c (xdialog_show): Don't allow 9 buttons.
  11063.  
  11064. 1996-08-21  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11065.  
  11066.     * process.c (send_process): GCPRO object.
  11067.  
  11068.     * unexalpha.c: Conditionalize previous changes on not __linux__.
  11069.  
  11070.     * xfns.c (x_set_scroll_bar_width): Call x_set_window_size
  11071.     when arg is nil.
  11072.  
  11073. 1996-08-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11074.  
  11075.     * unexalpha.c: Include reloc.h and elf_abi.h.
  11076.     (rel_dyn_section, dynstr_section, dynsym_section): New variables.
  11077.     (old_data_scnhdr): New variable.
  11078.     (CHECK_SCNHDR): Compare just 8 chars of section name.
  11079.     (unexec): Check for rel_dyn_section, dynsym_section, dynstr_section.
  11080.     Do call update_dynamic_symbols.
  11081.     (update_dynamic_symbols): Finish it up and take away #if 0.
  11082.  
  11083. 1996-08-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11084.  
  11085.     * unexalpha.c (unexec): Copy the .got section.
  11086.  
  11087. 1996-08-16  Karl Heuer  <kwzh@gnu.ai.mit.edu>
  11088.  
  11089.     * cmds.c (Fdelete_backward_char): Fix off-by-one error.
  11090.     Treat deleted newline specially.
  11091.  
  11092. 1996-08-16  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11093.  
  11094.     * bytecode.c (Fbyte_code): For relative gotos, force signed arithmetic.
  11095.  
  11096. 1996-08-14  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
  11097.  
  11098.     * xfns.c (Fx_open_connection): Don't set Vx_resource_name.
  11099.  
  11100. See ChangeLog.6 for earlier changes.
  11101.