summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--term_ascii.c8
-rw-r--r--term_ps.c8
2 files changed, 10 insertions, 6 deletions
diff --git a/term_ascii.c b/term_ascii.c
index 9b5921ff..94be3597 100644
--- a/term_ascii.c
+++ b/term_ascii.c
@@ -159,12 +159,14 @@ ascii_setwidth(struct termp *p, int iop, size_t width)
{
p->rmargin = p->defrmargin;
- if (0 < iop)
+ if (iop > 0)
p->defrmargin += width;
- else if (0 > iop)
+ else if (iop == 0)
+ p->defrmargin = width ? width : p->lastrmargin;
+ else if (p->defrmargin > width)
p->defrmargin -= width;
else
- p->defrmargin = width ? width : p->lastrmargin;
+ p->defrmargin = 0;
p->lastrmargin = p->rmargin;
p->rmargin = p->maxrmargin = p->defrmargin;
}
diff --git a/term_ps.c b/term_ps.c
index f1129c2d..344db82f 100644
--- a/term_ps.c
+++ b/term_ps.c
@@ -635,12 +635,14 @@ ps_setwidth(struct termp *p, int iop, size_t width)
size_t lastwidth;
lastwidth = p->ps->width;
- if (0 < iop)
+ if (iop > 0)
p->ps->width += width;
- else if (0 > iop)
+ else if (iop == 0)
+ p->ps->width = width ? width : p->ps->lastwidth;
+ else if (p->ps->width > width)
p->ps->width -= width;
else
- p->ps->width = width ? width : p->ps->lastwidth;
+ p->ps->width = 0;
p->ps->lastwidth = lastwidth;
}