diff options
author | Glenn Morris <rgm@gnu.org> | 2020-07-07 07:50:39 -0700 |
---|---|---|
committer | Glenn Morris <rgm@gnu.org> | 2020-07-07 07:50:39 -0700 |
commit | 3b36b38713aefb3aba40b3c094246782e8893f80 (patch) | |
tree | 07fa2065252c6cfbe9dc266cfd043071921e321f /src | |
parent | 6b80ff3c465f87a31ccaaf41b2b521075f43632d (diff) | |
parent | 59e768d64ad97782249fda9e53b6adc94c6d0130 (diff) | |
download | emacs-3b36b38713aefb3aba40b3c094246782e8893f80.tar.gz |
Merge from origin/emacs-27
59e768d64a Fix undefined behavior in json.c (Bug#42113)
cce00bef03 Fix ACTION argument of 'display-buffer' call in gud.el
0121db2702 * src/keyboard.c (Fclear_this_command_keys): Doc fix.
b9abf5ceb2 Improve do string of 'man'
b87fc938a0 ; * src/xdisp.c (pos_visible_p): Yet another minor fix for...
Diffstat (limited to 'src')
-rw-r--r-- | src/json.c | 2 | ||||
-rw-r--r-- | src/keyboard.c | 2 | ||||
-rw-r--r-- | src/xdisp.c | 11 |
3 files changed, 10 insertions, 5 deletions
diff --git a/src/json.c b/src/json.c index 30027675580..814afc6d741 100644 --- a/src/json.c +++ b/src/json.c @@ -365,6 +365,7 @@ lisp_to_json_toplevel_1 (Lisp_Object lisp, Lisp_Object key = HASH_KEY (h, i); if (!EQ (key, Qunbound)) { + CHECK_STRING (key); Lisp_Object ekey = json_encode (key); /* We can't specify the length, so the string must be NUL-terminated. */ @@ -975,6 +976,7 @@ usage: (json-parse-string STRING &rest ARGS) */) #endif Lisp_Object string = args[0]; + CHECK_STRING (string); Lisp_Object encoded = json_encode (string); check_string_without_embedded_nuls (encoded); struct json_configuration conf = diff --git a/src/keyboard.c b/src/keyboard.c index f9b9399d502..5fa58abce1d 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -10531,7 +10531,7 @@ The value is always a vector. */) DEFUN ("clear-this-command-keys", Fclear_this_command_keys, Sclear_this_command_keys, 0, 1, 0, doc: /* Clear out the vector that `this-command-keys' returns. -Also clear the record of the last 100 events, unless optional arg +Also clear the record of the last 300 input events, unless optional arg KEEP-RECORD is non-nil. */) (Lisp_Object keep_record) { diff --git a/src/xdisp.c b/src/xdisp.c index e454fd7b83f..92afcccd388 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -1872,10 +1872,13 @@ pos_visible_p (struct window *w, ptrdiff_t charpos, int *x, int *y, /* Account for line-number display, if IT3 still didn't. This can happen if START - 1 is the first or the last character on its display line. */ - if (it3.lnum_pixel_width > 0) - top_x += it3.lnum_pixel_width; - else if (it.line_number_produced_p) - top_x += it.lnum_pixel_width; + if (!it3.line_number_produced_p) + { + if (it3.lnum_pixel_width > 0) + top_x += it3.lnum_pixel_width; + else if (it.line_number_produced_p) + top_x += it.lnum_pixel_width; + } /* Normally, we would exit the above loop because we found the display element whose character position is CHARPOS. For the contingency that we |