summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2020-12-09 08:50:12 -0800
committerGlenn Morris <rgm@gnu.org>2020-12-09 08:50:12 -0800
commit3721cc58865673e3dd66a9d7a23d3b629432f077 (patch)
treeb5c7c6f37860f8ad847e7f9c45276b85b81db946
parent05dfbd0667bea8102a8daa7ea8894848178307ea (diff)
parent32090a3de4a32867aafeb905e5b134c72ec74175 (diff)
downloademacs-3721cc58865673e3dd66a9d7a23d3b629432f077.tar.gz
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.
-rw-r--r--doc/emacs/misc.texi19
-rw-r--r--doc/lispref/os.texi16
-rw-r--r--doc/lispref/streams.texi18
-rw-r--r--lisp/language/korean.el1
-rw-r--r--lisp/simple.el6
-rw-r--r--lwlib/lwlib-utils.c15
-rw-r--r--src/charset.c4
-rw-r--r--src/chartab.c6
-rw-r--r--src/lisp.h33
9 files changed, 71 insertions, 47 deletions
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index e0341a49913..c2c382ead0b 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -2261,13 +2261,18 @@ off.
@vindex ps-print-color-p
If your printer doesn't support colors, you should turn off color
processing by setting @code{ps-print-color-p} to @code{nil}. By
-default, if the display supports colors, Emacs produces hardcopy output
-with color information; on black-and-white printers, colors are emulated
-with shades of gray. This might produce illegible output, even if your
-screen colors only use shades of gray.
-
- Alternatively, you can set @code{ps-print-color-p} to @code{black-white} to
-print colors on black/white printers.
+default, if the display supports colors, Emacs produces hardcopy
+output with color information; on black-and-white printers, colors are
+emulated with shades of gray. This might produce barely-readable or
+even illegible output, even if your screen colors only use shades of
+gray.
+
+@vindex ps-black-white-faces
+ Alternatively, you can set @code{ps-print-color-p} to @code{black-white}
+to have colors display better on black/white printers. This works by
+using information in @code{ps-black-white-faces} to express colors by
+customizable list of shades of gray, augmented by bold and italic
+face attributes.
@vindex ps-use-face-background
By default, PostScript printing ignores the background colors of the
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index f897cfa4eab..bc602205f5d 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -2633,14 +2633,14 @@ calls @var{function} with no arguments, or @samp{--eval=@var{form}}.
Any Lisp program output that would normally go to the echo area,
either using @code{message}, or using @code{prin1}, etc., with
-@code{t} as the stream, goes instead to Emacs's standard descriptors
-when in batch mode: @code{message} writes to the standard error
-descriptor, while @code{prin1} and other print functions write to the
-standard output. Similarly, input that would normally come from the
-minibuffer is read from the standard input descriptor. Thus, Emacs
-behaves much like a noninteractive application program. (The echo
-area output that Emacs itself normally generates, such as command
-echoing, is suppressed entirely.)
+@code{t} as the stream (@pxref{Output Streams}), goes instead to
+Emacs's standard descriptors when in batch mode: @code{message} writes
+to the standard error descriptor, while @code{prin1} and other print
+functions write to the standard output. Similarly, input that would
+normally come from the minibuffer is read from the standard input
+descriptor. Thus, Emacs behaves much like a noninteractive
+application program. (The echo area output that Emacs itself normally
+generates, such as command echoing, is suppressed entirely.)
Non-ASCII text written to the standard output or error descriptors is
by default encoded using @code{locale-coding-system} (@pxref{Locales})
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 0534afb67fa..5b4be832507 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -123,13 +123,13 @@ came from. In this case, it makes no difference what value
@code{t} used as a stream means that the input is read from the
minibuffer. In fact, the minibuffer is invoked once and the text
given by the user is made into a string that is then used as the
-input stream. If Emacs is running in batch mode, standard input is used
-instead of the minibuffer. For example,
+input stream. If Emacs is running in batch mode (@pxref{Batch Mode}),
+standard input is used instead of the minibuffer. For example,
@example
(message "%s" (read t))
@end example
-will read a Lisp expression from standard input and print the result
-to standard output.
+will in batch mode read a Lisp expression from standard input and
+print the result to standard output.
@item @code{nil}
@cindex @code{nil} input stream
@@ -392,13 +392,15 @@ is responsible for storing the characters wherever you want to put them.
@item @code{t}
@cindex @code{t} output stream
-The output characters are displayed in the echo area.
+The output characters are displayed in the echo area. If Emacs is
+running in batch mode (@pxref{Batch Mode}), the output is written to
+the standard output descriptor instead.
@item @code{nil}
@cindex @code{nil} output stream
-@code{nil} specified as an output stream means to use the value of
-@code{standard-output} instead; that value is the @dfn{default output
-stream}, and must not be @code{nil}.
+@code{nil} specified as an output stream means to use the value of the
+@code{standard-output} variable instead; that value is the
+@dfn{default output stream}, and must not be @code{nil}.
@item @var{symbol}
A symbol as output stream is equivalent to the symbol's function
diff --git a/lisp/language/korean.el b/lisp/language/korean.el
index 7e758159a48..9bd11b9b9ea 100644
--- a/lisp/language/korean.el
+++ b/lisp/language/korean.el
@@ -42,6 +42,7 @@
(define-coding-system-alias 'euc-kr 'korean-iso-8bit)
(define-coding-system-alias 'euc-korea 'korean-iso-8bit)
+(define-coding-system-alias 'ks_c_5601-1987 'korean-iso-8bit)
(define-coding-system 'iso-2022-kr
"ISO 2022 based 7-bit encoding for Korean KSC5601 (MIME:ISO-2022-KR)."
diff --git a/lisp/simple.el b/lisp/simple.el
index dd271b0b5dd..6059c23a14e 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -7202,6 +7202,12 @@ rests."
"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 --git a/lwlib/lwlib-utils.c b/lwlib/lwlib-utils.c
index f15cb603a80..2b3aa55c3e6 100644
--- a/lwlib/lwlib-utils.c
+++ b/lwlib/lwlib-utils.c
@@ -148,6 +148,7 @@ XftFont *
crxft_font_open_name (Display *dpy, int screen, const char *name)
{
XftFont *pub = NULL;
+ FcPattern *match = NULL;
FcPattern *pattern = FcNameParse ((FcChar8 *) name);
if (pattern)
{
@@ -162,12 +163,18 @@ crxft_font_open_name (Display *dpy, int screen, const char *name)
FcPatternAddDouble (pattern, FC_DPI, dpi);
}
FcDefaultSubstitute (pattern);
+ FcResult result;
+ match = FcFontMatch (NULL, pattern, &result);
+ FcPatternDestroy (pattern);
+ }
+ if (match)
+ {
cairo_font_face_t *font_face
- = cairo_ft_font_face_create_for_pattern (pattern);
+ = cairo_ft_font_face_create_for_pattern (match);
if (font_face)
{
double pixel_size;
- if ((FcPatternGetDouble (pattern, FC_PIXEL_SIZE, 0, &pixel_size)
+ if ((FcPatternGetDouble (match, FC_PIXEL_SIZE, 0, &pixel_size)
!= FcResultMatch)
|| pixel_size < 1)
pixel_size = 10;
@@ -177,7 +184,7 @@ crxft_font_open_name (Display *dpy, int screen, const char *name)
cairo_matrix_init_scale (&font_matrix, pixel_size, pixel_size);
cairo_matrix_init_identity (&ctm);
cairo_font_options_t *options = cairo_font_options_create ();
- cairo_ft_font_options_substitute (options, pattern);
+ cairo_ft_font_options_substitute (options, match);
pub->scaled_font = cairo_scaled_font_create (font_face, &font_matrix,
&ctm, options);
cairo_font_face_destroy (font_face);
@@ -190,7 +197,7 @@ crxft_font_open_name (Display *dpy, int screen, const char *name)
pub->height = lround (extents.height);
pub->max_advance_width = lround (extents.max_x_advance);
}
- FcPatternDestroy (pattern);
+ FcPatternDestroy (match);
}
if (pub && pub->height <= 0)
{
diff --git a/src/charset.c b/src/charset.c
index 520dd3a9605..f6b5173fad4 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -800,7 +800,9 @@ RANGE is a cons (FROM . TO), where FROM and TO indicate a range of
characters contained in CHARSET.
The optional 4th and 5th arguments FROM-CODE and TO-CODE specify the
-range of code points (in CHARSET) of target characters. */)
+range of code points (in CHARSET) of target characters. Note that
+these are not character codes, but code points in CHARSET; for the
+difference see `decode-char' and `list-charset-chars'. */)
(Lisp_Object function, Lisp_Object charset, Lisp_Object arg, Lisp_Object from_code, Lisp_Object to_code)
{
struct charset *cs;
diff --git a/src/chartab.c b/src/chartab.c
index cb2ced568d9..331e8595ebe 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -1000,10 +1000,10 @@ map_sub_char_table_for_charset (void (*c_function) (Lisp_Object, Lisp_Object),
"mapping table" or a "deunifier table" of a certain charset.
If CHARSET is not NULL (this is the case that `map-charset-chars'
- is called with non-nil FROM-CODE and TO-CODE), it is a charset who
- owns TABLE, and the function is called only on a character in the
+ is called with non-nil FROM-CODE and TO-CODE), it is a charset that
+ owns TABLE, and the function is called only for characters in the
range FROM and TO. FROM and TO are not character codes, but code
- points of a character in CHARSET.
+ points of characters in CHARSET (see 'decode-char').
This function is called in these two cases:
diff --git a/src/lisp.h b/src/lisp.h
index 416c9b0cac1..e83304462fa 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -1897,16 +1897,17 @@ 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
{
@@ -1926,11 +1927,11 @@ struct Lisp_Char_Table
contents, and extras slots. */
union vectorlike_header header;
- /* This holds a default value,
- which is used whenever the value for a specific character is nil. */
+ /* This holds the default value, which is used whenever the value
+ for a specific character is nil. */
Lisp_Object defalt;
- /* This points to another char table, which we inherit from when the
+ /* This points to another char table, from which we inherit when the
value for a specific character is nil. The `defalt' slot takes
precedence over this. */
Lisp_Object parent;
@@ -1939,8 +1940,8 @@ struct Lisp_Char_Table
meant for. */
Lisp_Object purpose;
- /* The bottom sub char-table for characters of the range 0..127. It
- is nil if none of ASCII character has a specific value. */
+ /* The bottom sub char-table for characters in the range 0..127. It
+ is nil if no ASCII character has a specific value. */
Lisp_Object ascii;
Lisp_Object contents[(1 << CHARTAB_SIZE_BITS_0)];
@@ -2015,7 +2016,7 @@ CHAR_TABLE_REF_ASCII (Lisp_Object ct, ptrdiff_t idx)
}
/* Almost equivalent to Faref (CT, IDX) with optimization for ASCII
- characters. Do not check validity of CT. */
+ characters. Does not check validity of CT. */
INLINE Lisp_Object
CHAR_TABLE_REF (Lisp_Object ct, int idx)
{
@@ -2025,7 +2026,7 @@ CHAR_TABLE_REF (Lisp_Object ct, int idx)
}
/* Equivalent to Faset (CT, IDX, VAL) with optimization for ASCII and
- 8-bit European characters. Do not check validity of CT. */
+ 8-bit European characters. Does not check validity of CT. */
INLINE void
CHAR_TABLE_SET (Lisp_Object ct, int idx, Lisp_Object val)
{