summaryrefslogtreecommitdiffstats
path: root/format-draw.c
diff options
context:
space:
mode:
authornicm <nicm>2020-12-01 08:12:58 +0000
committernicm <nicm>2020-12-01 08:12:58 +0000
commit9a74bba007a60b93d1fdf68772e5cfb61b3558ff (patch)
tree5fb726f069c0e148a3d782542c748554d33b9609 /format-draw.c
parent33046ecee2090a7ff733097d1c05d377936b3e5f (diff)
Make replacement of ##s consistent when drawing formats, whether
followed by [ or not. Add a flag (e) to the q: format modifier to double up #s and use it for the window_flags format variable so it doesn't end up escaping any following text. GitHub issue 2485.
Diffstat (limited to 'format-draw.c')
-rw-r--r--format-draw.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/format-draw.c b/format-draw.c
index e73c5df4..67b961d9 100644
--- a/format-draw.c
+++ b/format-draw.c
@@ -563,13 +563,17 @@ format_draw(struct screen_write_ctx *octx, const struct grid_cell *base,
if (cp[0] == '#' && cp[1] != '[' && cp[1] != '\0') {
for (n = 1; cp[n] == '#'; n++)
/* nothing */;
+ even = ((n % 2) == 0);
if (cp[n] != '[') {
- width[current] += n;
cp += n;
+ if (even)
+ n = (n / 2);
+ else
+ n = (n / 2) + 1;
+ width[current] += n;
format_draw_many(&ctx[current], &sy, '#', n);
continue;
}
- even = ((n % 2) == 0);
if (even)
cp += (n + 1);
else