From: Glenn Morris Date: Wed, 9 Dec 2020 16:50:12 +0000 (-0800) Subject: Merge from origin/emacs-27 X-Git-Tag: emacs-28.0.90~4817 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=3721cc58865673e3dd66a9d7a23d3b629432f077;p=emacs.git Merge from origin/emacs-27 32090a3de4 Improve documentation of streams in batch mode 34feded008 Support ks_c_5601-1987 encoding da00a6f317 Fix Xaw widget text disappearing when built with cairo (bu... 6916e7954a Improve documentation of 'ps-print-color-p' 6663b2f211 ; * lisp/simple.el (move-beginning-of-line): Doc fix. a4dd03ebe9 ; * src/charset.c (Fmap_charset_chars): Doc fix. d86cc3ffcb ; * src/chartab.c, src/lisp.h: Fix typos in comments. --- 3721cc58865673e3dd66a9d7a23d3b629432f077 diff --cc lisp/simple.el index dd271b0b5dd,2286279ec01..6059c23a14e --- a/lisp/simple.el +++ b/lisp/simple.el @@@ -7199,9 -6862,16 +7199,15 @@@ rests. (setq done t))))))) (defun move-beginning-of-line (arg) - "Move point to beginning of current line as displayed. -\(If there's an image in the line, this disregards newlines -that are part of the text that the image rests on.) + "Move point to visible beginning of current logical line. +This disregards any invisible newline characters. + When moving from position that has no `field' property, this + command doesn't enter text which has non-nil `field' property. + In particular, when invoked in the minibuffer, the command will + stop short of entering the text of the minibuffer prompt. + See `inhibit-field-text-motion' for how to inhibit this. + With argument ARG not nil or 1, move forward ARG - 1 lines first. If point reaches the beginning or end of buffer, it stops there. \(But if the buffer doesn't end in a newline, it stops at the diff --cc src/lisp.h index 416c9b0cac1,39fbf12f95e..e83304462fa --- a/src/lisp.h +++ b/src/lisp.h @@@ -1890,23 -1914,30 +1890,24 @@@ memclear (void *p, ptrdiff_t nbytes (offsetof (type, lastlispfield) + word_size < header_size \ ? 0 : (offsetof (type, lastlispfield) + word_size - header_size) / word_size) -/* Compute A OP B, using the unsigned comparison operator OP. A and B - should be integer expressions. This is not the same as - mathematical comparison; for example, UNSIGNED_CMP (0, <, -1) - returns true. For efficiency, prefer plain unsigned comparison if A - and B's sizes both fit (after integer promotion). */ -#define UNSIGNED_CMP(a, op, b) \ - (max (sizeof ((a) + 0), sizeof ((b) + 0)) <= sizeof (unsigned) \ - ? ((a) + (unsigned) 0) op ((b) + (unsigned) 0) \ - : ((a) + (uintmax_t) 0) op ((b) + (uintmax_t) 0)) - /* True iff C is an ASCII character. */ -#define ASCII_CHAR_P(c) UNSIGNED_CMP (c, <, 0x80) +INLINE bool +ASCII_CHAR_P (intmax_t c) +{ + return 0 <= c && c < 0x80; +} - /* A char-table is a kind of vectorlike, with contents are like a - vector but with a few other slots. For some purposes, it makes - sense to handle a char-table with type struct Lisp_Vector. An - element of a char table can be any Lisp objects, but if it is a sub - char-table, we treat it a table that contains information of a - specific range of characters. A sub char-table is like a vector but - with two integer fields between the header and Lisp data, which means + /* A char-table is a kind of vectorlike, with contents like a vector, + but with a few additional slots. For some purposes, it makes sense + to handle a char-table as type 'struct Lisp_Vector'. An element of + a char-table can be any Lisp object, but if it is a sub-char-table, + we treat it as a table that contains information of a specific + range of characters. A sub-char-table is like a vector, but with + two integer fields between the header and Lisp data, which means that it has to be marked with some precautions (see mark_char_table - in alloc.c). A sub char-table appears only in an element of a char-table, - and there's no way to access it directly from Emacs Lisp program. */ + in alloc.c). A sub-char-table appears only in an element of a + char-table, and there's no way to access it directly from a Lisp + program. */ enum CHARTAB_SIZE_BITS {