aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGlenn Morris2020-07-07 07:50:39 -0700
committerGlenn Morris2020-07-07 07:50:39 -0700
commit3b36b38713aefb3aba40b3c094246782e8893f80 (patch)
tree07fa2065252c6cfbe9dc266cfd043071921e321f /src
parent6b80ff3c465f87a31ccaaf41b2b521075f43632d (diff)
parent59e768d64ad97782249fda9e53b6adc94c6d0130 (diff)
downloademacs-3b36b38713aefb3aba40b3c094246782e8893f80.tar.gz
emacs-3b36b38713aefb3aba40b3c094246782e8893f80.zip
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.c2
-rw-r--r--src/keyboard.c2
-rw-r--r--src/xdisp.c11
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,
365 Lisp_Object key = HASH_KEY (h, i); 365 Lisp_Object key = HASH_KEY (h, i);
366 if (!EQ (key, Qunbound)) 366 if (!EQ (key, Qunbound))
367 { 367 {
368 CHECK_STRING (key);
368 Lisp_Object ekey = json_encode (key); 369 Lisp_Object ekey = json_encode (key);
369 /* We can't specify the length, so the string must be 370 /* We can't specify the length, so the string must be
370 NUL-terminated. */ 371 NUL-terminated. */
@@ -975,6 +976,7 @@ usage: (json-parse-string STRING &rest ARGS) */)
975#endif 976#endif
976 977
977 Lisp_Object string = args[0]; 978 Lisp_Object string = args[0];
979 CHECK_STRING (string);
978 Lisp_Object encoded = json_encode (string); 980 Lisp_Object encoded = json_encode (string);
979 check_string_without_embedded_nuls (encoded); 981 check_string_without_embedded_nuls (encoded);
980 struct json_configuration conf = 982 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. */)
10531DEFUN ("clear-this-command-keys", Fclear_this_command_keys, 10531DEFUN ("clear-this-command-keys", Fclear_this_command_keys,
10532 Sclear_this_command_keys, 0, 1, 0, 10532 Sclear_this_command_keys, 0, 1, 0,
10533 doc: /* Clear out the vector that `this-command-keys' returns. 10533 doc: /* Clear out the vector that `this-command-keys' returns.
10534Also clear the record of the last 100 events, unless optional arg 10534Also clear the record of the last 300 input events, unless optional arg
10535KEEP-RECORD is non-nil. */) 10535KEEP-RECORD is non-nil. */)
10536 (Lisp_Object keep_record) 10536 (Lisp_Object keep_record)
10537{ 10537{
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,
1872 /* Account for line-number display, if IT3 still 1872 /* Account for line-number display, if IT3 still
1873 didn't. This can happen if START - 1 is the 1873 didn't. This can happen if START - 1 is the
1874 first or the last character on its display line. */ 1874 first or the last character on its display line. */
1875 if (it3.lnum_pixel_width > 0) 1875 if (!it3.line_number_produced_p)
1876 top_x += it3.lnum_pixel_width; 1876 {
1877 else if (it.line_number_produced_p) 1877 if (it3.lnum_pixel_width > 0)
1878 top_x += it.lnum_pixel_width; 1878 top_x += it3.lnum_pixel_width;
1879 else if (it.line_number_produced_p)
1880 top_x += it.lnum_pixel_width;
1881 }
1879 /* Normally, we would exit the above loop because we 1882 /* Normally, we would exit the above loop because we
1880 found the display element whose character 1883 found the display element whose character
1881 position is CHARPOS. For the contingency that we 1884 position is CHARPOS. For the contingency that we