1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-03-06 05:52:32 -08:00

Merged in changes from CVS trunk.

Patches applied:

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-473
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-474
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-475
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-476
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-477
   Update from CVS

 * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-478
   Update from CVS


git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-225
This commit is contained in:
Karoly Lorentey 2004-08-03 12:45:59 +00:00
commit 4fce8dfae6
24 changed files with 249 additions and 100 deletions

View file

@ -1,3 +1,7 @@
2004-07-31 Eli Zaretskii <eliz@gnu.org>
* config.bat: Update URLs in the comments.
2004-07-05 Andreas Schwab <schwab@suse.de>
* Makefile.in (install-arch-indep): Remove .arch-inventory files.

View file

@ -24,17 +24,15 @@ rem ----------------------------------------------------------------------
rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
rem
rem + msdos version 3 or better.
rem + djgpp version 1.12maint1 or later (version 2.0 or later recommended).
rem + DJGPP version 1.12maint1 or later (version 2.03 or later recommended).
rem + make utility that allows breaking of the 128 chars limit on
rem command lines. ndmake (as of version 4.5) won't work due to a
rem line length limit. The make that comes with djgpp does work.
rem line length limit. The make that comes with DJGPP does work.
rem + rm and mv (from GNU file utilities).
rem + sed (you can use the port that comes with DJGPP).
rem
rem You should be able to get all the above utilities from any SimTel
rem repository, e.g. ftp.simtel.net, in the directory
rem "pub/simtelnet/gnu/djgpp/v2gnu". As usual, please use your local
rem mirroring site to reduce trans-Atlantic traffic.
rem You should be able to get all the above utilities from the DJGPP FTP
rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu".
rem ----------------------------------------------------------------------
set X11=
set nodebug=

View file

@ -2187,6 +2187,10 @@ configuration files.
* Lisp Changes in Emacs 21.4
** Function `compute-motion' now calculates the usable window
width if the WIDTH argument is nil. If the TOPOS argument is nil,
the usable window height and width is used.
+++
** `visited-file-modtime' and `calendar-time-from-absolute' now return
a list of two integers, instead of a cons.

View file

@ -1,3 +1,48 @@
2004-08-02 Kim F. Storm <storm@cua.dk>
* avoid.el (mouse-avoidance-point-position): Use window-inside-edges
and call compute-motion with nil for topos and width to get proper
usable width and height for both window and non-window systems.
* windmove.el (windmove-coordinates-of-position): Let compute-motion
calculate usable window width and height.
* window.el (window-buffer-height): Call compute-motion with nil width.
2004-08-01 David Kastrup <dak@gnu.org>
* replace.el (query-replace-read-from): Use
`query-replace-compile-replacement'.
(query-replace-compile-replacement): New function.
(query-replace-read-to): Use `query-replace-compile-replacement'
for repeating the last command.
2004-08-01 John Paul Wallington <jpw@gnu.org>
* printing.el (toplevel, pr-ps-fast-fire, pr-ps-set-utility)
(pr-ps-set-printer, pr-txt-set-printer, pr-eval-setting-alist)
(pr-switches): Remove period from end of error messages.
* help-mode.el (help-go-back): Likewise.
* abbrev.el (only-global-abbrevs): Doc fix.
(edit-abbrevs-map): Define within defvar.
(quietly-read-abbrev-file): Doc fix.
2004-07-31 Luc Teirlinck <teirllm@auburn.edu>
* novice.el (enable-command, disable-command): Doc fixes.
* subr.el (event-modifiers, event-basic-type): Doc fixes.
2004-07-30 Richard M. Stallman <rms@gnu.org>
* subr.el (with-local-quit): Doc fix.
2004-07-30 Luc Teirlinck <teirllm@auburn.edu>
* international/utf-8.el (utf-translate-cjk-mode): Doc fix.
2004-07-28 Luc Teirlinck <teirllm@auburn.edu>
* custom.el (defcustom): Doc fix.

View file

@ -29,7 +29,7 @@
;;; Code:
(defcustom only-global-abbrevs nil
"*t means user plans to use global abbrevs only.
"Non-nil means user plans to use global abbrevs only.
This makes the commands that normally define mode-specific abbrevs
define global abbrevs instead."
:type 'boolean
@ -59,13 +59,12 @@ to enable or disable Abbrev mode in the current buffer."
:group 'abbrev-mode)
(defvar edit-abbrevs-map nil
(defvar edit-abbrevs-map
(let ((map (make-sparse-keymap)))
(define-key map "\C-x\C-s" 'edit-abbrevs-redefine)
(define-key map "\C-c\C-c" 'edit-abbrevs-redefine)
map)
"Keymap used in `edit-abbrevs'.")
(if edit-abbrevs-map
nil
(setq edit-abbrevs-map (make-sparse-keymap))
(define-key edit-abbrevs-map "\C-x\C-s" 'edit-abbrevs-redefine)
(define-key edit-abbrevs-map "\C-c\C-c" 'edit-abbrevs-redefine))
(defun kill-all-abbrevs ()
"Undefine all defined abbrevs."
@ -195,7 +194,7 @@ Optional second argument QUIETLY non-nil means don't display a message."
(setq abbrevs-changed nil))
(defun quietly-read-abbrev-file (&optional file)
"Read abbrev definitions from file written with write-abbrev-file.
"Read abbrev definitions from file written with `write-abbrev-file'.
Optional argument FILE is the name of the file to read;
it defaults to the value of `abbrev-file-name'.
Does not display any message."

View file

@ -139,15 +139,15 @@ Only applies in mouse-avoidance-modes `animate' and `jump'."
"Return the position of point as (FRAME X . Y).
Analogous to mouse-position."
(let* ((w (selected-window))
(edges (window-edges w))
(edges (window-inside-edges w))
(list
(compute-motion (max (window-start w) (point-min)) ; start pos
;; window-start can be < point-min if the
;; latter has changed since the last redisplay
'(0 . 0) ; start XY
(point) ; stop pos
(cons (window-width) (window-height)); stop XY: none
(1- (window-width)) ; width
nil ; stop XY: none
nil ; width
(cons (window-hscroll w) 0) ; 0 may not be right?
(selected-window))))
;; compute-motion returns (pos HPOS VPOS prevhpos contin)

View file

@ -581,7 +581,7 @@ help buffer."
(interactive)
(if help-xref-stack
(help-xref-go-back (current-buffer))
(error "No previous help buffer.")))
(error "No previous help buffer")))
(defun help-do-xref (pos function args)
"Call the help cross-reference function FUNCTION with args ARGS.

View file

@ -273,7 +273,7 @@ The value nil means that the tables are not yet loaded.")
(utf-translate-cjk-load-tables))
(gethash code-point
(get 'utf-subst-table-for-decode 'translation-hash-table)))
(defun utf-lookup-subst-table-for-encode (char)
(if (and utf-translate-cjk-mode
@ -282,9 +282,11 @@ The value nil means that the tables are not yet loaded.")
(utf-translate-cjk-load-tables))
(gethash char
(get 'utf-subst-table-for-encode 'translation-hash-table)))
(define-minor-mode utf-translate-cjk-mode
"Whether the UTF based coding systems should decode/encode CJK characters.
"Toggle whether UTF based coding systems de/encode CJK characters.
If ARG is an integer, enable if ARG is positive and disable if
zero or negative. This is a minor mode.
Enabling this allows the coding systems mule-utf-8,
mule-utf-16le and mule-utf-16be to encode characters in the charsets
`korean-ksc5601', `chinese-gb2312', `chinese-big5-1',
@ -296,9 +298,10 @@ according to the language environment in effect when this option is
turned on: ksc5601 for Korean, gb2312 for Chinese-GB, big5 for
Chinese-Big5 and jisx for other environments.
This option is on by default. If you are not interested in CJK
This mode is on by default. If you are not interested in CJK
characters and want to avoid some overhead on encoding/decoding
by the above coding systems, you can customize this option to nil."
by the above coding systems, you can customize the user option
`utf-translate-cjk-mode' to nil."
:init-value t
:version "21.4"
:type 'boolean
@ -605,7 +608,7 @@ eight-bit-control and eight-bit-graphic characters.")
;; UTF-8 decoder generates an UTF-8 sequence represented by a
;; sequence eight-bit-control/graphic chars for an untranslatable
;; character and an invalid byte.
;;
;;
;; This CCL parses that sequence (the first byte is already in r1),
;; writes out the original bytes of that sequence, and sets r5 to
;; -1.
@ -624,7 +627,7 @@ eight-bit-control and eight-bit-graphic characters.")
(read-multibyte-character r5 r6)
(r0 = (r5 != ,(charset-id 'eight-bit-control)))
(if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
((write r1) ; invalid UTF-8
((write r1) ; invalid UTF-8
(r1 = -1)
(end)))
@ -641,7 +644,7 @@ eight-bit-control and eight-bit-graphic characters.")
(r1 = -1)
;; Read the 3rd byte.
(read-multibyte-character r5 r6)
(r0 = (r5 != ,(charset-id 'eight-bit-control)))
(r0 = (r5 != ,(charset-id 'eight-bit-control)))
(if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
(end)) ; invalid UTF-8
(write r6)
@ -651,7 +654,7 @@ eight-bit-control and eight-bit-graphic characters.")
(end)))
;; Read the 4th byte.
(read-multibyte-character r5 r6)
(r0 = (r5 != ,(charset-id 'eight-bit-control)))
(r0 = (r5 != ,(charset-id 'eight-bit-control)))
(if ((r5 != ,(charset-id 'eight-bit-graphic)) & r0)
(end)) ; invalid UTF-8
;; 4-byte sequence for an untranslated character.

View file

@ -104,7 +104,8 @@ SPC to try the command just this once, but leave it disabled.
;;;###autoload
(defun enable-command (command)
"Allow COMMAND to be executed without special confirmation from now on.
The user's .emacs file is altered so that this will apply
COMMAND must be a symbol.
This command alters the user's .emacs file so that this will apply
to future sessions."
(interactive "CEnable command: ")
(put command 'disabled nil)
@ -141,7 +142,8 @@ to future sessions."
;;;###autoload
(defun disable-command (command)
"Require special confirmation to execute COMMAND from now on.
The user's .emacs file is altered so that this will apply
COMMAND must be a symbol.
This command alters the user's .emacs file so that this will apply
to future sessions."
(interactive "CDisable command: ")
(if (not (commandp command))

View file

@ -974,7 +974,7 @@ Please send all bug fixes and enhancements to
(and (string< ps-print-version "6.6.4")
(error "`printing' requires `ps-print' package version 6.6.4 or later."))
(error "`printing' requires `ps-print' package version 6.6.4 or later"))
(eval-and-compile
@ -4254,7 +4254,7 @@ are both set to t."
(pr-ps-buffer-ps-print
(if (integerp n-up)
(min (max n-up 1) 100)
(error "n-up must be an integer greater than zero."))
(error "n-up must be an integer greater than zero"))
filename)))
@ -5031,7 +5031,7 @@ non-nil."
(let ((item (cdr (assq value pr-ps-utility-alist))))
(or item
(error
"Invalid PostScript utility name `%s' for variable `pr-ps-utility'."
"Invalid PostScript utility name `%s' for variable `pr-ps-utility'"
value))
(setq pr-ps-utility value)
(pr-eval-alist (nthcdr 9 item)))
@ -5042,7 +5042,7 @@ non-nil."
(let ((ps (cdr (assq value pr-ps-printer-alist))))
(or ps
(error
"Invalid PostScript printer name `%s' for variable `pr-ps-name'."
"Invalid PostScript printer name `%s' for variable `pr-ps-name'"
value))
(setq pr-ps-name value
pr-ps-command (pr-dosify-file-name (nth 0 ps))
@ -5068,7 +5068,7 @@ non-nil."
(defun pr-txt-set-printer (value)
(let ((txt (cdr (assq value pr-txt-printer-alist))))
(or txt
(error "Invalid text printer name `%s' for variable `pr-txt-name'."
(error "Invalid text printer name `%s' for variable `pr-txt-name'"
value))
(setq pr-txt-name value
pr-txt-command (pr-dosify-file-name (nth 0 txt))
@ -5121,7 +5121,7 @@ non-nil."
(setq global nil)))
(and inherits
(if (memq inherits old)
(error "Circular inheritance for `%S'." inherits)
(error "Circular inheritance for `%S'" inherits)
(setq local-list
(pr-eval-setting-alist inherits global
(cons inherits old)))))
@ -5349,7 +5349,7 @@ non-nil."
(defun pr-switches (switches mess)
(or (listp switches)
(error "%S should have a list of strings." mess))
(error "%S should have a list of strings" mess))
(ps-flatten-list ; dynamic evaluation
(mapcar 'ps-eval-switch switches)))

View file

@ -94,7 +94,8 @@ wants to replace FROM with TO."
query-replace-from-history-variable
nil t))))
(if (and (zerop (length from)) lastto lastfrom)
(cons lastfrom lastto)
(cons lastfrom
(query-replace-compile-replacement lastto regexp-flag))
;; Warn if user types \n or \t, but don't reject the input.
(and regexp-flag
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\(\\\\[nt]\\)" from)
@ -107,15 +108,12 @@ wants to replace FROM with TO."
(sit-for 2)))
from))))
(defun query-replace-read-to (from string regexp-flag)
"Query and return the `from' argument of a query-replace operation."
(let ((to (save-excursion
(read-from-minibuffer
(format "%s %s with: " string (query-replace-descr from))
nil nil nil
query-replace-to-history-variable from t))))
(when (and regexp-flag
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
(defun query-replace-compile-replacement (to regexp-flag)
"Maybe convert a regexp replacement TO to Lisp.
Returns a list suitable for `perform-replace' if necessary,
the original string if not."
(if (and regexp-flag
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to))
(let (pos list char)
(while
(progn
@ -142,14 +140,25 @@ wants to replace FROM with TO."
(cdr pos))))
(setq to (substring to end)))))
(string-match "\\(\\`\\|[^\\]\\)\\(\\\\\\\\\\)*\\\\[,#]" to)))
(setq to (nreverse (delete "" (cons to list)))))
(replace-match-string-symbols to)
(setq to (cons 'replace-eval-replacement
(if (> (length to) 1)
(cons 'concat to)
(car to)))))
(setq to (nreverse (delete "" (cons to list))))
(replace-match-string-symbols to)
(cons 'replace-eval-replacement
(if (cdr to)
(cons 'concat to)
(car to))))
to))
(defun query-replace-read-to (from string regexp-flag)
"Query and return the `to' argument of a query-replace operation."
(query-replace-compile-replacement
(save-excursion
(read-from-minibuffer
(format "%s %s with: " string (query-replace-descr from))
nil nil nil
query-replace-to-history-variable from t))
regexp-flag))
(defun query-replace-read-args (string regexp-flag &optional noerror)
(unless noerror
(barf-if-buffer-read-only))

View file

@ -644,7 +644,11 @@ The normal global definition of the character C-x indirects to this keymap.")
"Return a list of symbols representing the modifier keys in event EVENT.
The elements of the list may include `meta', `control',
`shift', `hyper', `super', `alt', `click', `double', `triple', `drag',
and `down'."
and `down'.
EVENT may be an event or an event type. If EVENT is a symbol
that has never been used in an event that has been read as input
in the current Emacs session, then this function can return nil,
even when EVENT actually has modifiers."
(let ((type event))
(if (listp type)
(setq type (car type)))
@ -671,7 +675,10 @@ and `down'."
(defun event-basic-type (event)
"Return the basic type of the given event (all modifiers removed).
The value is a printing character (not upper case) or a symbol."
The value is a printing character (not upper case) or a symbol.
EVENT may be an event or an event type. If EVENT is a symbol
that has never been used in an event that has been read as input
in the current Emacs session, then this function may return nil."
(if (consp event)
(setq event (car event)))
(if (symbolp event)
@ -1906,7 +1913,10 @@ See also `with-temp-file' and `with-output-to-string'."
(kill-buffer nil)))))
(defmacro with-local-quit (&rest body)
"Execute BODY with `inhibit-quit' temporarily bound to nil."
"Execute BODY, allowing quits to terminate BODY but not escape further.
When a quit terminates BODY, `with-local-quit' requests another quit when
it finishes. That quit will be processed in turn, the next time quitting
is again allowed."
(declare (debug t) (indent 0))
`(condition-case nil
(let ((inhibit-quit nil))

View file

@ -429,14 +429,12 @@ the return value from `windmove-coordinates-of-position' is (0 . 0)
regardless of the where point is in the buffer and where the window
is placed in the frame."
(let* ((wind (if (null window) (selected-window) window))
(usable-width (1- (window-width wind))) ; 1- for cont. column
(usable-height (1- (window-height wind))) ; 1- for mode line
(big-hairy-result (compute-motion
(window-start)
'(0 . 0)
pos
(cons usable-width usable-height)
usable-width
nil ; (window-width window-height)
nil ; window-width
(cons (window-hscroll)
0) ; why zero?
wind)))

View file

@ -408,7 +408,7 @@ lines than are actually needed in the case where some error may be present."
'(0 . 0)
(- (point-max) (if ignore-final-newline 1 0))
(cons 0 100000000)
(window-width window)
nil
nil
window))))))

View file

@ -1,3 +1,42 @@
2004-08-03 Kim F. Storm <storm@cua.dk>
* indent.c (compute_motion): Fix check for full width window
in non-window case. Do not count left truncation glyph on
window systems.
2004-08-02 Luc Teirlinck <teirllm@auburn.edu>
* data.c (Finteractive_form): Doc fix.
2004-08-02 Kim F. Storm <storm@cua.dk>
* indent.c (compute_motion): Use actual window width if WIDTH is -1,
properly accounting for continuation glyph on non-window systems.
(Fcompute_motion): Use actual window width if WIDTH is nil, and
actual window width/height if TOPOS is nil, properly accounting for
continuation glyphs on non-window systems, and optional header lines.
(vmotion): Let compute_motion calculate actual window width.
* window.c (window_scroll_line_based): Let compute_motion
calculate actual window width.
2004-08-02 Kim F. Storm <storm@cua.dk>
* process.c (read_process_output): Use whole read buffer.
Don't trigger adaptive read buffering on errors.
2004-07-31 Luc Teirlinck <teirllm@auburn.edu>
* keymap.c (Fset_keymap_parent, Fdefine_prefix_command): Doc fixes.
* keyboard.c (syms_of_keyboard) <disable-point-adjustment>: Doc fix.
* callint.c (Fcall_interactively): Doc fix.
2004-07-30 Kim F. Storm <storm@cua.dk>
* editfns.c (Fformat): Allocate extra (dummy) element in info.
2004-07-28 Luc Teirlinck <teirllm@auburn.edu>
* eval.c (Fdefvar, Fdefconst): Doc fixes.

View file

@ -248,6 +248,8 @@ Returns the abbrev symbol, if expansion took place. */)
value = Qnil;
Frun_hooks (1, &Qpre_abbrev_expand_hook);
wordstart = 0;
if (!(BUFFERP (Vabbrev_start_location_buffer)
&& XBUFFER (Vabbrev_start_location_buffer) == current_buffer))
@ -324,8 +326,6 @@ Returns the abbrev symbol, if expansion took place. */)
if (INTEGERP (sym) || NILP (SYMBOL_VALUE (sym)))
return value;
Frun_hooks (1, &Qpre_abbrev_expand_hook);
if (INTERACTIVE && !EQ (minibuf_window, selected_window))
{
/* Add an undo boundary, in case we are doing this for

View file

@ -256,7 +256,8 @@ Optional second arg RECORD-FLAG non-nil
means unconditionally put this command in the command-history.
Otherwise, this is done only if an arg is read using the minibuffer.
Optional third arg KEYS, if given, specifies the sequence of events to
supply if the command inquires which events were used to invoke it. */)
supply if the command inquires which events were used to invoke it.
If KEYS is omitted or nil, the return value of `this-command-keys' is used. */)
(function, record_flag, keys)
Lisp_Object function, record_flag, keys;
{

View file

@ -776,8 +776,8 @@ SUBR must be a built-in function. */)
DEFUN ("interactive-form", Finteractive_form, Sinteractive_form, 1, 1, 0,
doc: /* Return the interactive form of CMD or nil if none.
CMD must be a command. Value, if non-nil, is a list
\(interactive SPEC). */)
If CMD is not a command, the return value is nil.
Value, if non-nil, is a list \(interactive SPEC). */)
(cmd)
Lisp_Object cmd;
{

View file

@ -3254,6 +3254,7 @@ usage: (format STRING &rest OBJECTS) */)
/* Piggyback on this loop to initialize precision[N]. */
precision[n] = -1;
}
precision[nargs] = -1;
CHECK_STRING (args[0]);
/* We may have to change "%S" to "%s". */
@ -3277,11 +3278,11 @@ usage: (format STRING &rest OBJECTS) */)
/* Allocate the info and discarded tables. */
{
int nbytes = nargs * sizeof *info;
int nbytes = (nargs+1) * sizeof *info;
int i;
info = (struct info *) alloca (nbytes);
bzero (info, nbytes);
for (i = 0; i < nargs; i++)
for (i = 0; i <= nargs; i++)
info[i].start = -1;
discarded = (char *) alloca (SBYTES (args[0]));
bzero (discarded, SBYTES (args[0]));

View file

@ -1133,6 +1133,9 @@ struct position val_compute_motion;
WIDTH is the number of columns available to display text;
compute_motion uses this to handle continuation lines and such.
If WIDTH is -1, use width of window's text area adjusted for
continuation glyph when needed.
HSCROLL is the number of columns not being displayed at the left
margin; this is usually taken from a window's hscroll member.
TAB_OFFSET is the number of columns of the first tab that aren't
@ -1230,6 +1233,7 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
int prev_vpos = 0;
int contin_hpos; /* HPOS of last column of continued line. */
int prev_tab_offset; /* Previous tab offset. */
int continuation_glyph_width;
XSETBUFFER (buffer, current_buffer);
XSETWINDOW (window, win);
@ -1247,6 +1251,23 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
if (tab_width <= 0 || tab_width > 1000)
tab_width = 8;
/* Negative width means use all available text columns. */
if (width < 0)
{
width = window_box_text_cols (win);
/* We must make room for continuation marks if we don't have fringes. */
#ifdef HAVE_WINDOW_SYSTEM
if (!FRAME_WINDOW_P (XFRAME (win->frame)))
#endif
width -= 1;
}
continuation_glyph_width = 0;
#ifdef HAVE_WINDOW_SYSTEM
if (!FRAME_WINDOW_P (XFRAME (win->frame)))
continuation_glyph_width = 1;
#endif
immediate_quit = 1;
QUIT;
@ -1370,7 +1391,8 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
{
if (hscroll
|| (truncate_partial_width_windows
&& width + 1 < FRAME_COLS (XFRAME (WINDOW_FRAME (win))))
&& ((width + continuation_glyph_width)
< FRAME_COLS (XFRAME (WINDOW_FRAME (win)))))
|| !NILP (current_buffer->truncate_lines))
{
/* Truncating: skip to newline, unless we are already past
@ -1654,7 +1676,7 @@ compute_motion (from, fromvpos, fromhpos, did_motion, to, tovpos, tohpos, width,
hpos -= hscroll;
/* Count the truncation glyph on column 0 */
if (hscroll > 0)
hpos++;
hpos += continuation_glyph_width;
tab_offset = 0;
}
contin_hpos = 0;
@ -1739,12 +1761,14 @@ assuming it is at position FROMPOS--a cons of the form (HPOS . VPOS)--
to position TO or position TOPOS--another cons of the form (HPOS . VPOS)--
and return the ending buffer position and screen location.
If TOPOS is nil, the actual width and height of the window's
text area are used.
There are three additional arguments:
WIDTH is the number of columns available to display text;
this affects handling of continuation lines.
This is usually the value returned by `window-width', less one (to allow
for the continuation glyph).
this affects handling of continuation lines. A value of nil
corresponds to the actual number of available text columns.
OFFSETS is either nil or a cons cell (HSCROLL . TAB-OFFSET).
HSCROLL is the number of columns not being displayed at the left
@ -1776,6 +1800,7 @@ visible section of the buffer, and pass LINE and COL as TOPOS. */)
Lisp_Object from, frompos, to, topos;
Lisp_Object width, offsets, window;
{
struct window *w;
Lisp_Object bufpos, hpos, vpos, prevhpos;
struct position *pos;
int hscroll, tab_offset;
@ -1785,10 +1810,15 @@ visible section of the buffer, and pass LINE and COL as TOPOS. */)
CHECK_NUMBER_CAR (frompos);
CHECK_NUMBER_CDR (frompos);
CHECK_NUMBER_COERCE_MARKER (to);
CHECK_CONS (topos);
CHECK_NUMBER_CAR (topos);
CHECK_NUMBER_CDR (topos);
CHECK_NUMBER (width);
if (!NILP (topos))
{
CHECK_CONS (topos);
CHECK_NUMBER_CAR (topos);
CHECK_NUMBER_CDR (topos);
}
if (!NILP (width))
CHECK_NUMBER (width);
if (!NILP (offsets))
{
CHECK_CONS (offsets);
@ -1804,6 +1834,7 @@ visible section of the buffer, and pass LINE and COL as TOPOS. */)
window = Fselected_window ();
else
CHECK_LIVE_WINDOW (window);
w = XWINDOW (window);
if (XINT (from) < BEGV || XINT (from) > ZV)
args_out_of_range_3 (from, make_number (BEGV), make_number (ZV));
@ -1812,9 +1843,20 @@ visible section of the buffer, and pass LINE and COL as TOPOS. */)
pos = compute_motion (XINT (from), XINT (XCDR (frompos)),
XINT (XCAR (frompos)), 0,
XINT (to), XINT (XCDR (topos)),
XINT (XCAR (topos)),
XINT (width), hscroll, tab_offset,
XINT (to),
(NILP (topos)
? window_internal_height (w)
: XINT (XCDR (topos))),
(NILP (topos)
? (window_box_text_cols (w)
- (
#ifdef HAVE_WINDOW_SYSTEM
FRAME_WINDOW_P (XFRAME (w->frame)) ? 0 :
#endif
1))
: XINT (XCAR (topos))),
(NILP (width) ? -1 : XINT (width)),
hscroll, tab_offset,
XWINDOW (window));
XSETFASTINT (bufpos, pos->bufpos);
@ -1839,7 +1881,6 @@ vmotion (from, vtarget, w)
register int from, vtarget;
struct window *w;
{
int width = window_box_text_cols (w);
int hscroll = XINT (w->hscroll);
struct position pos;
/* vpos is cumulative vertical position, changed as from is changed */
@ -1860,12 +1901,6 @@ vmotion (from, vtarget, w)
XSETWINDOW (window, w);
/* We must make room for continuation marks if we don't have fringes. */
#ifdef HAVE_WINDOW_SYSTEM
if (!FRAME_WINDOW_P (XFRAME (w->frame)))
#endif
width -= 1;
/* If the window contains this buffer, use it for getting text properties.
Otherwise use the current buffer as arg for doing that. */
if (EQ (w->buffer, Fcurrent_buffer ()))
@ -1907,7 +1942,7 @@ vmotion (from, vtarget, w)
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
width, hscroll,
-1, hscroll,
/* This compensates for start_hpos
so that a tab as first character
still occupies 8 columns. */
@ -1966,7 +2001,7 @@ vmotion (from, vtarget, w)
1 << (BITS_PER_SHORT - 1),
/* ... nor HPOS. */
1 << (BITS_PER_SHORT - 1),
width, hscroll,
-1, hscroll,
(XFASTINT (prevline) == BEG ? -start_hpos : 0),
w);
did_motion = 1;
@ -1980,7 +2015,7 @@ vmotion (from, vtarget, w)
}
return compute_motion (from, vpos, pos.hpos, did_motion,
ZV, vtarget, - (1 << (BITS_PER_SHORT - 1)),
width, hscroll,
-1, hscroll,
pos.tab_offset - (from == BEG ? start_hpos : 0),
w);
}

View file

@ -11505,8 +11505,8 @@ It's called with one argument, the help string to display. */);
After a command is executed, if point is moved into a region that has
special properties (e.g. composition, display), we adjust point to
the boundary of the region. But, several special commands sets this
variable to non-nil, then we suppress the point adjustment.
the boundary of the region. But, when a command sets this variable to
non-nil, we suppress the point adjustment.
This variable is set to nil before reading a command, and is checked
just after executing the command. */);

View file

@ -343,7 +343,7 @@ keymap_memberp (map, maps)
DEFUN ("set-keymap-parent", Fset_keymap_parent, Sset_keymap_parent, 2, 2, 0,
doc: /* Modify KEYMAP to set its parent map to PARENT.
PARENT should be nil or another keymap. */)
Return PARENT. PARENT should be nil or another keymap. */)
(keymap, parent)
Lisp_Object keymap, parent;
{
@ -1687,7 +1687,8 @@ If a second optional argument MAPVAR is given, the map is stored as
its value instead of as COMMAND's value; but COMMAND is still defined
as a function.
The third optional argument NAME, if given, supplies a menu name
string for the map. This is required to use the keymap as a menu. */)
string for the map. This is required to use the keymap as a menu.
This function returns COMMAND. */)
(command, mapvar, name)
Lisp_Object command, mapvar, name;
{

View file

@ -4195,7 +4195,7 @@ wait_reading_process_input (time_limit, microsecs, read_kbd, do_display)
present (for reading) at stdin, even when none is. This
causes the call to SELECT below to return 1 and
status_notify not to be called. As a result output of
subprocesses are incorrectly discarded.
subprocesses are incorrectly discarded.
*/
FD_CLR (0, &Atemp);
#endif
@ -4762,16 +4762,16 @@ read_process_output (proc, channel)
if (DATAGRAM_CHAN_P (channel))
{
int len = datagram_address[channel].len;
nbytes = recvfrom (channel, chars + carryover, readmax - carryover,
nbytes = recvfrom (channel, chars + carryover, readmax,
0, datagram_address[channel].sa, &len);
}
else
#endif
if (proc_buffered_char[channel] < 0)
{
nbytes = emacs_read (channel, chars + carryover, readmax - carryover);
nbytes = emacs_read (channel, chars + carryover, readmax);
#ifdef ADAPTIVE_READ_BUFFERING
if (!NILP (p->adaptive_read_buffering))
if (nbytes > 0 && !NILP (p->adaptive_read_buffering))
{
int delay = XINT (p->read_output_delay);
if (nbytes < 256)
@ -4783,7 +4783,7 @@ read_process_output (proc, channel)
delay += READ_OUTPUT_DELAY_INCREMENT * 2;
}
}
else if (delay > 0 && (nbytes == readmax - carryover))
else if (delay > 0 && (nbytes == readmax))
{
delay -= READ_OUTPUT_DELAY_INCREMENT;
if (delay == 0)
@ -4802,7 +4802,7 @@ read_process_output (proc, channel)
{
chars[carryover] = proc_buffered_char[channel];
proc_buffered_char[channel] = -1;
nbytes = emacs_read (channel, chars + carryover + 1, readmax - 1 - carryover);
nbytes = emacs_read (channel, chars + carryover + 1, readmax - 1);
if (nbytes < 0)
nbytes = 1;
else

View file

@ -4709,7 +4709,7 @@ window_scroll_line_based (window, n, whole, noerror)
posit = *compute_motion (startpos, 0, 0, 0,
PT, ht, 0,
window_box_text_cols (w), XINT (w->hscroll),
-1, XINT (w->hscroll),
0, w);
original_vpos = posit.vpos;