[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] scratch/line-numbers a9be5a7: Fix relative-number display
From: |
Eli Zaretskii |
Subject: |
[Emacs-diffs] scratch/line-numbers a9be5a7: Fix relative-number display with non-nil display-line-number-width |
Date: |
Fri, 30 Jun 2017 15:49:54 -0400 (EDT) |
branch: scratch/line-numbers
commit a9be5a768b6c06e74a386c474aba8125dfc8ed86
Author: Eli Zaretskii <address@hidden>
Commit: Eli Zaretskii <address@hidden>
Fix relative-number display with non-nil display-line-number-width
* src/xdisp.c (maybe_produce_line_number): Don't treat a zero
value of display-line-number-width as acceptable.
Handle the case of 'relative' with display-line-number-width
non-nil and smaller than the absolute line number requires.
Reported by Alex <address@hidden>.
---
src/xdisp.c | 35 ++++++++++++++++-------------------
1 file changed, 16 insertions(+), 19 deletions(-)
diff --git a/src/xdisp.c b/src/xdisp.c
index bcd7d33..aeccac2 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -20867,26 +20867,23 @@ maybe_produce_line_number (struct it *it)
{
if (NATNUMP (Vdisplay_line_number_width))
it->lnum_width = XFASTINT (Vdisplay_line_number_width);
+
+ /* Max line number to be displayed cannot be more than the one
+ corresponding to the last row of the desired matrix. */
+ ptrdiff_t max_lnum;
+
+ if (NILP (Vdisplay_line_numbers_current_absolute)
+ && (EQ (Vdisplay_line_numbers, Qrelative)
+ || EQ (Vdisplay_line_numbers, Qvisual)))
+ /* We subtract one more because the current line is always
+ zero in this mode. */
+ max_lnum = it->w->desired_matrix->nrows - 2;
+ else if (EQ (Vdisplay_line_numbers, Qvisual))
+ max_lnum = it->pt_lnum + it->w->desired_matrix->nrows - 1;
else
- {
- /* Max line number to be displayed cannot be more than
- the one corresponding to the last row of the desired
- matrix. */
- ptrdiff_t max_lnum;
-
- if (NILP (Vdisplay_line_numbers_current_absolute)
- && (EQ (Vdisplay_line_numbers, Qrelative)
- || EQ (Vdisplay_line_numbers, Qvisual)))
- /* We subtract one more because the current line is always
- zero in this mode. */
- max_lnum = it->w->desired_matrix->nrows - 2;
- else if (EQ (Vdisplay_line_numbers, Qvisual))
- max_lnum = it->pt_lnum + it->w->desired_matrix->nrows - 1;
- else
- max_lnum = this_line + it->w->desired_matrix->nrows - 1 - it->vpos;
- max_lnum = max (1, max_lnum);
- it->lnum_width = log10 (max_lnum) + 1;
- }
+ max_lnum = this_line + it->w->desired_matrix->nrows - 1 - it->vpos;
+ max_lnum = max (1, max_lnum);
+ it->lnum_width = max (it->lnum_width, log10 (max_lnum) + 1);
eassert (it->lnum_width > 0);
}
if (EQ (Vdisplay_line_numbers, Qrelative))
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] scratch/line-numbers a9be5a7: Fix relative-number display with non-nil display-line-number-width,
Eli Zaretskii <=