From 237c0b583c96acc516190a1d8b93f6e0bfa83633 Mon Sep 17 00:00:00 2001 From: Laurence Warne Date: Sat, 22 Jul 2023 14:35:15 +0100 Subject: [PATCH 1/4] Fix Proced Start column alignment for different locales * lisp/proced.el (proced-grammar-alist): Change the justify value of the start attribute to 'left' instead of a fixed value of 6. (Bug#64752) (proced-format-start): Adjust the doc string. --- lisp/proced.el | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lisp/proced.el b/lisp/proced.el index b3d581a49d1..47de74b0ecb 100644 --- a/lisp/proced.el +++ b/lisp/proced.el @@ -152,7 +152,7 @@ the external command (usually \"kill\")." (pri "Pr" "%d" right proced-< t (pri pid) (nil t t)) (nice "Ni" "%3d" 3 proced-< t (nice pid) (t t nil)) (thcount "THCount" "%d" right proced-< t (thcount pid) (nil t t)) - (start "Start" proced-format-start 6 proced-time-lessp nil (start pid) + (start "Start" proced-format-start left proced-time-lessp nil (start pid) (t t nil)) (vsize "VSize" proced-format-memory right proced-< t (vsize pid) (nil t t)) @@ -1599,8 +1599,7 @@ Prefix ARG controls sort order, see `proced-sort-interactive'." (format "%02d%s%02d" minutes colon seconds))))) (defun proced-format-start (start) - "Format time START. -The return string is always 6 characters wide." + "Format time START." (let ((d-start (decode-time start)) (d-current (decode-time)) (colon (if proced-enable-color-flag From 865817633f6e4b548c9d138fdf792394d021e2f5 Mon Sep 17 00:00:00 2001 From: "Basil L. Contovounesios" Date: Sun, 23 Jul 2023 08:39:17 +0100 Subject: [PATCH 2/4] ; * src/pdumper.c (dump_overlay): Update hash. This follows commit 7ac947f34c745c61f8acc1fe2452a2c720d57a0d of 2023-07-13 "; * src/lisp.h (struct Lisp_Overlay): Update commentary (bug#64580)." --- src/pdumper.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pdumper.c b/src/pdumper.c index 34998549cc8..5a3d58ee841 100644 --- a/src/pdumper.c +++ b/src/pdumper.c @@ -2178,7 +2178,7 @@ dump_interval_node (struct dump_context *ctx, struct itree_node *node, static dump_off dump_overlay (struct dump_context *ctx, const struct Lisp_Overlay *overlay) { -#if CHECK_STRUCTS && !defined (HASH_Lisp_Overlay_EB4C05D8D2) +#if CHECK_STRUCTS && !defined (HASH_Lisp_Overlay_5F9D7E02FC) # error "Lisp_Overlay changed. See CHECK_STRUCTS comment in config.h." #endif START_DUMP_PVEC (ctx, &overlay->header, struct Lisp_Overlay, out); From bbd91a05fa83b7b2a651d5386f4592db405bbcda Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 23 Jul 2023 13:44:40 -0400 Subject: [PATCH 3/4] Fix rare aborts in CHECK_WINDOW_END Those aborts happen because a window's window_end_vpos value is inconsistent with the current matrix's number of rows, which happens after resizing the mini-window. * src/xdisp.c (mark_window_display_accurate_1): Don't validate the window_end_valid flag if window_end_vpos is inconsistent with the current_matrix's number of rows. This happens, e.g., when Edebug wants to show a value in the mini-window that causes it to resize, as the window above the mini-window was usually already redisplayed, and we think its display is accurate. --- src/xdisp.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index 540fdbb0b07..8a6e2b0f6d6 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -17498,7 +17498,8 @@ mark_window_display_accurate_1 (struct window *w, bool accurate_p) else w->last_point = marker_position (w->pointm); - w->window_end_valid = true; + if (w->window_end_vpos < w->current_matrix->nrows) + w->window_end_valid = true; w->update_mode_line = false; w->preserve_vscroll_p = false; } From acebaa793f1b18ad54bccffe7ad07fef8e1cebe1 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sun, 23 Jul 2023 14:49:18 -0400 Subject: [PATCH 4/4] ; * src/xdisp.c (mark_window_display_accurate_1): Avoid more aborts. --- src/xdisp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/xdisp.c b/src/xdisp.c index 8a6e2b0f6d6..e061b602e0d 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -17498,7 +17498,13 @@ mark_window_display_accurate_1 (struct window *w, bool accurate_p) else w->last_point = marker_position (w->pointm); - if (w->window_end_vpos < w->current_matrix->nrows) + struct glyph_row *row; + /* These conditions should be consistent with CHECK_WINDOW_END. */ + if (w->window_end_vpos < w->current_matrix->nrows + && ((row = MATRIX_ROW (w->current_matrix, w->window_end_vpos), + !row->enabled_p + || MATRIX_ROW_DISPLAYS_TEXT_P (row) + || MATRIX_ROW_VPOS (row, w->current_matrix) == 0))) w->window_end_valid = true; w->update_mode_line = false; w->preserve_vscroll_p = false;