Karl Heuer [Thu, 20 Feb 1997 06:57:02 +0000 (06:57 +0000)]
(SET_RAW_SYNTAX_ENTRY): Handle syntax of multibyte
characters.
(SYNTAX_ENTRY_FOLLOW_PARENT): New macro.
(SYNTAX_ENTRY): Handle syntax of multibyte characters.
(SYNTAX, SYNTAX_WITH_FLAGS, SYNTAX_MATCH): Don't signal error even
if a syntax entry is not cons.
Karl Heuer [Thu, 20 Feb 1997 06:56:29 +0000 (06:56 +0000)]
Include charset.h and category.h.
(Vsyntax_code_object): New variable.
(Fmodify_syntax_entry): Handle multibyte characters. A multibyte
character in matching parenthesis is also handled correctly. Use
shared object in the vector Vsyntax_code_object for an ASCII
character.
(describe_syntax): Handle a multibyte character in matching
parenthesis.
(describe_syntax_1): Describe also parent syntax tables.
(scan_words, Fforward_comment): Handle multibyte characters.
(scan_lists, char_quoted, Fbackward_prefix_chars): Likewise.
(scan_sexps_forward): Likewise.
(init_syntax_once): Initialize Vsyntax_code_object.
Initialize Vstandard_syntax_table by share objects in
Vsyntax_code_object.
(syms_of_syntax): Staticpro Vsyntax_code_object.
Karl Heuer [Thu, 20 Feb 1997 06:53:55 +0000 (06:53 +0000)]
Include charset.h and coding.h.
(proc_decode_coding_system, proc_encode_coding_system): New
variables.
(Fstart_process, create_process, Fopen_network_stream): Setup
coding systems for character code conversion.
(READ_CHILD_OUTPUT): New macro.
(read_process_output): Perform character code conversion of a
process output.
(send_process): Perform character code conversion of a text sent
to a process.
(Fset_process_coding_system, Fprocess_coding_system): New
functions.
(syms_of_process): Handle them.
Karl Heuer [Thu, 20 Feb 1997 06:52:47 +0000 (06:52 +0000)]
Include charset.h.
(read_minibuf): Pay attention to multibyte characters in the arg
INITIAL while handling the arg BACKUP_N.
(scmp, Fminibuffer_complete_word): Handle multibyte characters.
Karl Heuer [Thu, 20 Feb 1997 06:52:14 +0000 (06:52 +0000)]
Include charset.h.
(Vload_source_file_function): New variable.
(Fload): Call Vload_source_file_function if defined while loading
an Emacs Lisp source file. */
(read_multibyte): New function.
(read_escape): Handle multibyte characters.
(read1): Correct the value of size_in_chars of a bool vector.
Handle the case `?' is followed by a multibyte character.
(Vload_source_file_function): New variable.
Karl Heuer [Thu, 20 Feb 1997 06:51:14 +0000 (06:51 +0000)]
Include charset.h.
(push_key_description): If enable-multibyte-characters is t, use
octal representation for a code of range 128..255 as binary.
(Ftext_char_description): Handle multibyte characters.
(describe_vector): Provide prettier description of a char table
which contains multibyte characters.
Karl Heuer [Thu, 20 Feb 1997 06:50:30 +0000 (06:50 +0000)]
(command_loop_1): Pay attention to a multibyte
character while handling forward-char and backward-char.
[!HAVE_NTGUI && XK_kana_A] (lispy_kana_keys): New variable.
[!HAVE_NTGUI] (lispy_function_keys): New variable.
(make_lispy_event) [XK_kana_A]: Handle kana keys.
Karl Heuer [Thu, 20 Feb 1997 06:50:03 +0000 (06:50 +0000)]
Include charset.h.
(gap_left, gap_right): Put an anchor `\0' at the end of GAP.
(adjust_markers_for_insert): If any markers are adjusted, check
and fix the order of overlays in overlays_before.
(make_gap): Allocate an extra byte and set to `\0' for anchoring.
(insert1, insert_from_buffer_1): Put an anchor `\0' at the head of
GAP.
Karl Heuer [Thu, 20 Feb 1997 06:49:05 +0000 (06:49 +0000)]
Include "charset.h"
[HAVE_WINDOW_SYSTEM]: Include fontset.h.
(make_frame): Allocate member `fontset_data' of the struct frame.
(Fdelete_frame): Free the area for the member.
Karl Heuer [Thu, 20 Feb 1997 06:48:37 +0000 (06:48 +0000)]
Include charset.h.
(Fchar_to_string, Fstring_to_char): Handle multibyte characters.
(Fsref): New function.
(Fgoto_char): Force point to be at a character boundary.
(Ffollowing_char, Fpreceding_char): Handle multibyte characters.
(Fchar_after): Handle multibyte characters.
(Fchar_before): New function.
(general_insert_function): New function.
(Finsert, Finsert_and_inherit, Finsert_before_markers): Use it.
(Finsert_char): Doc-string refer to markers of
before-insertion-type. Handle multibyte characters.
(Fsubst_char_in_region): Handle multibyte characters.
(Fchar_equal): Don't consider `case' of multibyte characters.
(syms_of_editfns): Handle the new function `char-before'.
Karl Heuer [Thu, 20 Feb 1997 06:46:40 +0000 (06:46 +0000)]
Include charset.h.
(forward_point, Fforward_point): New functions.
(Fforward_char, Fdelete_char): Handle multibyte characters by
calling forward_point.
(Fdelete_backward_char): Pay attention to multibyte characters
in overwrite-mode.
(internal_self_insert): Handle self inserting a multibyte
character.
(syms_of_cmds): Handle the new function Fforward_point.
Karl Heuer [Thu, 20 Feb 1997 06:46:14 +0000 (06:46 +0000)]
Include charset.h and coding.h.
(Fcall_process): Perform character code conversion of a process
arguments and the process output.
(Fcall_process_region): Encode coding of a text given to a
process.
Karl Heuer [Thu, 20 Feb 1997 06:45:13 +0000 (06:45 +0000)]
(BEGV_ADDR, PT_ADDR, ZV_ADDR): Use macro POS_ADDR.
(Z_ADDR, BUF_GPT_ADDR, BUF_Z_ADDR): New macros.
(struct buffer): New members `category_table',
`direction_reserved', and `enable-multibyte-characters'.
(POS_ADDR): New macro used at all places instead of &FETCH_CHAR.
(FETCH_BYTE): New macro used at any places to check the argument
against an ASCII character.
(FETCH_MULTIBYTE_CHAR): New macro used at any places to get a
character code of the argument when it is known to be a multibyte
character.
(_fetch_multibyte_char_p, _fetch_multibyte_char_len): New
variables.
(FETCH_CHAR): Use macros FETCH_MULTIBYTE_CHAR and FETCH_BYTE.
Karl Heuer [Thu, 20 Feb 1997 06:44:32 +0000 (06:44 +0000)]
Include charset.h.
(Fget_buffer_create): Allocate an extra byte for a buffer, and
make it always 0 for anchoring.
(reset_buffer): Handle a new member `enable_multibyte_characters'
in the struct buffer.
(fix_overlay_before): New function.
(init_buffer_once): Handle new members in the struct buffer.
(syms_of_buffer): Declare new buffer local variables
`enable-multibyte-characters' and `direction-reserved'.
Karl Heuer [Thu, 20 Feb 1997 06:43:51 +0000 (06:43 +0000)]
(Fmake_char_table): Typo in doc-string fixed. Handle
the case that PURPOSE is nil (in a deeper char-table).
(Fmake_bool_vector): Make correct size of Lisp_Object for
bool-vector.
Karl Heuer [Thu, 20 Feb 1997 06:43:16 +0000 (06:43 +0000)]
The following changes are for new source codes related to Mule.
(XOBJ): Include fontset.o.
(obj): Include charset.o, coding.o, category.o, and ccl.o.
(lisp, shortlisp): Include Mule related elc files.
(buffer.o, cmds.o, dispnew.o, doprnt.o): Depend on charset.h.
(editfns.o, indent.o, insdel.o, keymap.o): Depend on charset.h.
(minibuf.o, xdips.o, xfaces.o, xselect.o): Depend on charset.h.
(data.o, print.o, lread.o): Depend on charset.h.
(callproc.o, fileio.o, process.o, term.o): Depend on charset.h and
coding.h.
(regex.o, search.o, syntax.o): Depend on charset.h and category.h.
(fontset.o): Depend on charset.h and fontset.h.
(xterm.o): Depend on charset.h, ccl.h, and fontset.h.
(category.o, ccl.o, charset.o, coding.o, fontset.o): New targets.
Karl Heuer [Thu, 20 Feb 1997 06:42:13 +0000 (06:42 +0000)]
(Fpos_visible_in_window_p): Bug fix. Specify big
negative number for the argument TOHPOS of compute_motion().
We don't need to calculate to (HPOS==0), but can stop immediately
when VPOS pasts HEIGHT.
Karl Heuer [Thu, 20 Feb 1997 06:40:53 +0000 (06:40 +0000)]
(display_text_line): Introduce new local variable
rev_dir_bit to display right to left characters (not yet used).
(message): Use FRAME_MESSAGE_BUF_SIZE().
(redisplay_internal): Add canceling code for continuation at
wide-column.
(display_text_line): Don't just decrement left_edge->bufpos,
it may be multi-byte character, use DEC_POS instead.
(try_window): Change the way of calculation of tab
offset. We now use val.tab_offset to maintain tab offset.
Removed local variable tab_offset.
(try_window_id): Likewise.
(pos_tab_offset): Return COL (Modulo is no longer valid).
Add the line to set tab_offset member.
Use pos.tab_offset.
(redisplay_window): Specify big negative number for TOHPOS
of compute_motion().
(try_window_id): Likewise.
Include charset.h, coding.h, and process.h.
(display_text_line): Handle multibyte characters.
(display_mode_line): Pay attention to wide-column characters.
(decode_mode_spec_coding): New function.
(decode_mode_spec): Handle %-constructs `%z' and `%Z' to print
coding system mnemonics.
(display_string): Handle multibyte characters.
Karl Heuer [Thu, 20 Feb 1997 06:39:27 +0000 (06:39 +0000)]
(current_column_bol_cache): New variable. This makes
move_to_column faster.
(current_column): Set current_column_bol_cache.
(current_column_1): Likewise.
(Fmove_to_column): Use current_column_bol_cache.
(current_column): When the buffer may have multi-byte
characters, call current_column_1.
(compute_motion): Handle multi-byte characters.
(current_column_1): Likewise.
(Fmove_to_column): Likewise.
Include "charset.h".
(compute_motion): Remove the variable PREV_VPOS.
Introduce new local variables (multibyte, wide_column, prev_pos,
contin_hpos, prev_tab_offset) to handle multi-byte characters and
wide-column characters.
(pos_tab_offset): Specify "- (1 << (BITS_PER_SHORT - 1))"
to express big negative number (for consistency with xdisp.c).
Karl Heuer [Thu, 20 Feb 1997 06:35:00 +0000 (06:35 +0000)]
(direct_output_forward_char): #if-0-out redundant
check against truncated text at end of line.
Add giving-up for buffers with reverse direction.
(remake_frame_glyphs): Use FRAME_MESSAGE_BUF_SIZE()
instead of FRAME_WIDTH, as the message may include multi-byte
character and the length may be longer than width.
(width_run_cache_on_off): Disable width-run-cache when
multi-byte characters are enabled.
(skip_invisible): Don't put the boundary in the middle of
multibyte characters.
(direct_output_forward_char): Bug fix. Add
XFASTINT (w->left) for losing cursor check.
Include charset.h.
(update_line): Handle wide-column characters.
Karl Heuer [Thu, 20 Feb 1997 05:49:08 +0000 (05:49 +0000)]
(rmail-file-coding-system): New variable.
(rmail-insert-inbox-text): Perform character code conversion
according to rmail-file-coding-system.
(rmail-only-expunge): Pay attention to multibyte characters.
Karl Heuer [Thu, 20 Feb 1997 05:46:22 +0000 (05:46 +0000)]
(isearch-mode-map): Define
isearch-toggle-input-method and
isearch-toggle-specified-input-method in the map.
(isearch-multibyte-characters-flag): New variable.
(isearch-mode): Initialize it to nil.
(isearch-printing-char): Handle multibyte characters.
(isearch-message-prefix): Include title of input method if
necessary in the prefix of message.
Karl Heuer [Thu, 20 Feb 1997 05:44:24 +0000 (05:44 +0000)]
(find-file, find-file-other-window,
find-file-read-only, find-file-read-only-other-window,
find-file-read-only-other-frame, find-alternate-file-other-window,
find-alternate-file): With a prefix argument, enable users to
specify a coding system interactively.
(find-file-noselect): Describe optional arguments NOWARN and
RAWFILE in the doc-string.
(write-file, insert-file, append-to-file): Accept a prefix
argument to enable users to specify a coding system interactively.
(revert-buffer): Read an auto-saved file without any code
conversion.
Karl Heuer [Thu, 20 Feb 1997 05:35:12 +0000 (05:35 +0000)]
(kill-forward-chars, kill-backward-chars): Pay
attention to multibyte characters.
(what-cursor-position): With a prefix argument, print detailed
info of a character on cursor position.
(transpose-subr-1): Pay attention to multibyte characters.
Noah Friedman [Wed, 19 Feb 1997 10:24:26 +0000 (10:24 +0000)]
(eldoc-message-commands): Doc fixes.
(eldoc-message): Make function, not macro.
(eldoc-last-message): New internal variable.
(eldoc-mode): Initialize it to nil.
(eldoc-message): Use it.
(eldoc-print-current-symbol-info): Use it.
(eldoc-pre-command-refresh-echo-area): New function.
(eldoc-mode): Put it on pre-command-hook if in XEmacs or using idle timers
in Emacs.
(eldoc-message-commands-table-size): New constant.
(eldoc-add-command): Use it to initialize eldoc-message-commands.
(eldoc-display-message-no-interference-p): New function.
(eldoc-display-message-p): Use it.
(eldoc-print-fnsym-args, eldoc-print-var-docstring): Arg sym no longer
optional.
Do not initialize arg if nil.
(eldoc-forward-sexp-safe): Function deleted.
(eldoc-beginning-of-sexp): New function.
(eldoc-fnsym-in-current-sexp): Use eldoc-beginning-of-sexp.
Use eldoc-current-symbol to get symbol at point.
(eldoc-function-argstring-from-docstring-method-table): Forge docstrings
for `and', `or', `list', `+', and `-'.
(eldoc-add-command-completions): New function.
(eldoc-add-command): Take list of args.
No longer interactive.
(eldoc-remove-command-completions): New function.
(eldoc-remove-command): Take list of args.
No longer interactive.
top level: Initialize eldoc-message-commands using
eldoc-add-command-completions.
(mouse-buffer-menu): Group buffers by major modes if that seems to be useful.
(mouse-buffer-menu-mode-groups): New variable.
(mouse-buffer-menu-alist, mouse-buffer-menu-split): New subroutines
broken out of mouse-buffer-menu.
Eli Zaretskii [Sun, 9 Feb 1997 15:57:11 +0000 (15:57 +0000)]
* (diff-process-setup): New function, sets up the
compilation-exit-message-function so that it works with both
asynchronous and synchronous sub-processes.
(diff): Bind compilation-exit-message-function. Run
compilation-finish-function when compile-internal returns if async
processes aren't supported.
Handle multiple Info buffers.
(Info-tag-table-marker): Initialize to nil.
(Info-tag-table-buffer): New variable.
(Info-find-node): Don't switch buffers if already in Info mode.
Use Info-tag-table-buffer to support multiple Info buffers.
(Info-read-subfile): Don't switch to *info* buffer.
(Info-build-node-completions): Handle buffer local bindings for
Info-tag-table-marker.
(Info-search): Add a save-excursion.
(Info-mode): Make Info-tag-table-buffer buffer-local.
Make a different marker in Info-tag-table-marker for each buffer.
(Info-kill-buffer): New function, on kill-buffer-hook.
(scroll_preserve_screen_position): New variable.
(keys_of_window): Set up Lisp var.
(window_scroll): If scroll_preserve_screen_position is 0,
behave the old way (advancing point the minimum distance).
Eli Zaretskii [Mon, 3 Feb 1997 18:02:26 +0000 (18:02 +0000)]
(Man-build-man-command): When async processes aren't
supported, don't redirect stderr via the shell.
(Man-getpage-in-background, Man-bgproc-sentinel): Support for
systems where async processes don't work.
Noah Friedman [Mon, 3 Feb 1997 06:13:34 +0000 (06:13 +0000)]
Update copyright notice to reflect assignment to FSF and incorporation
into Emacs.
Attempt to load `timer'.
(eldoc-idle-delay): Make defconst.
(eldoc-minor-mode-string): Make defconst.
(eldoc-argument-case): Make defconst.
(eldoc-message-commands): Renamed from eldoc-mode-message-commands.
All callers changed.
Add `mouse-set-point' as a default candidate.
(eldoc-use-idle-timer-p): New constant.
(eldoc-timer): New variable.
(eldoc-current-idle-delay): New variable.
(eldoc-schedule-timer): New function.
(eldoc-mode): Use idle timers if supported.
(eldoc-add-command): Provide completion on interactive commands only, not
all bound functions.
(eldoc-print-current-symbol-info): Renamed from
eldoc-mode-print-current-symbol-info. All callers changed.
Check whether using idle timers or being run from post-command hooks.
Use `executing-kbd-macro' instead of `executing-macro'.
(eldoc-print-fnsym-args): Don't make interactive.
Cache current symbol name in eldoc-last-data; it was forgetting to do this
previously.
If subr args cannot be determined, show single-line docstring for it instead.
(eldoc-docstring-message): New function.
(eldoc-print-docstring): New function.
(eldoc-print-var-docstring): Use them.
(eldoc-function-argstring-from-docstring-method-table): New constant.
(eldoc-function-argstring-from-docstring): Use it.
(Vx_resource_class): New variable.
(syms_of_xfns): Set up Lisp variable.
(Fx_get_resource, x_window): Use Vx_resource_class.
(validate_x_resource_name): Ensure Vx_resource_class is a string.
(dirtrack-debug-message): Put output at end of buffer.
(dirtrack): Check that directory exists before trying to cd to it.
Go to point-max (not comint-last-output-start) before looking for
the prompt.
(compilation-error-regexp-alist): Undo 1/21 change.
In the GNU message with program name alternative,
allow digits in the program name after the first character.
Paul Eggert [Tue, 28 Jan 1997 04:51:45 +0000 (04:51 +0000)]
(isnan): Define even if LISP_FLOAT_TYPE is not defined, since fmod
might need it.
(fmod): Ensure that the magnitude of the result does not exceed that
of the divisor, and that the sign of the result does not disagree with
that of the dividend. This does not yield a
particularly accurate result, but at least it will be in the
range promised by fmod.