diff options
author | Alan Mackenzie <acm@muc.de> | 2017-05-30 17:42:52 +0000 |
---|---|---|
committer | Alan Mackenzie <acm@muc.de> | 2017-05-30 17:42:52 +0000 |
commit | f8f58fe37ee932996f61b4c568512cc5dfc4e3fa (patch) | |
tree | 5c4b97029ba6791ce1b6772ccbf7449d50933c6e | |
parent | 90e8d65118e1059ea6552c9e5eb59128af390200 (diff) | |
download | emacs-f8f58fe37ee932996f61b4c568512cc5dfc4e3fa.tar.gz |
Mode line "%q" construct: Just use one number when both would be the same.
* src/xdisp (decode_mode_spec): recode the "%q" bit appropriately.
-rw-r--r-- | src/xdisp.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/xdisp.c b/src/xdisp.c index ddb26b8defd..c03689bf616 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -23992,21 +23992,18 @@ decode_mode_spec (struct window *w, register int c, int field_width, ptrdiff_t botpos = BUF_Z (b) - w->window_end_pos; ptrdiff_t begv = BUF_BEGV (b); ptrdiff_t zv = BUF_ZV (b); + int top_perc, bot_perc; if ((toppos <= begv) && (zv <= botpos)) return "All "; - if (toppos <= begv) - strcpy (decode_mode_spec_buf, "0-"); - else - sprintf (decode_mode_spec_buf, "%d-", - percent99 (toppos - begv, zv - begv)); + top_perc = toppos <= begv ? 0 : percent99 (toppos - begv, zv - begv); + bot_perc = zv <= botpos ? 100 : percent99 (botpos - begv, zv - begv); - if (zv <= botpos) - strcat (decode_mode_spec_buf, "100%"); + if (top_perc == bot_perc) + sprintf (decode_mode_spec_buf, "%d%%", top_perc); else - sprintf (&decode_mode_spec_buf [strlen (decode_mode_spec_buf)], - "%d%%", percent99 (botpos - begv, zv - begv)); + sprintf (decode_mode_spec_buf, "%d-%d%%", top_perc, bot_perc); return decode_mode_spec_buf; } |