diff options
-rw-r--r-- | regress/roff/esc/h.in | 2 | ||||
-rw-r--r-- | regress/roff/esc/h.out_ascii | 1 | ||||
-rw-r--r-- | regress/roff/esc/h.out_lint | 2 | ||||
-rw-r--r-- | roff.7 | 7 | ||||
-rw-r--r-- | term.c | 7 |
5 files changed, 15 insertions, 4 deletions
diff --git a/regress/roff/esc/h.in b/regress/roff/esc/h.in index 56e4275c..8fa23e7b 100644 --- a/regress/roff/esc/h.in +++ b/regress/roff/esc/h.in @@ -9,6 +9,8 @@ simple: >\h'0'< .br rounding: >\h'0.16i'< .br +absolute: >\h'|12n'< +.br escape only: >\h'\w'\&'M'< .br escape at the end: >\h'0+\w'\&''< diff --git a/regress/roff/esc/h.out_ascii b/regress/roff/esc/h.out_ascii index ae378a45..ddfac195 100644 --- a/regress/roff/esc/h.out_ascii +++ b/regress/roff/esc/h.out_ascii @@ -6,6 +6,7 @@ NNAAMMEE DDEESSCCRRIIPPTTIIOONN simple: >< rounding: > < + absolute: > < escape only: >< escape at the end: >< escape at the beginning: >< diff --git a/regress/roff/esc/h.out_lint b/regress/roff/esc/h.out_lint index b7facfb1..23ff9ce8 100644 --- a/regress/roff/esc/h.out_lint +++ b/regress/roff/esc/h.out_lint @@ -1,2 +1,2 @@ -mandoc: h.in:20:21: WARNING: invalid escape sequence: \h- +mandoc: h.in:22:21: WARNING: invalid escape sequence: \h- mandoc: h.in:1:5: STYLE: Mdocdate missing: Dd May @@ -1956,8 +1956,11 @@ and .Ss \eH\(aq Ns Oo +|- Oc Ns Ar number Ns \(aq Set the height of the current font; ignored by .Xr mandoc 1 . -.Ss \eh\(aq Ns Ar width Ns \(aq -Horizontal motion relative to the current position. +.Ss \eh\(aq Ns Oo Cm \&| Oc Ns Ar width Ns \(aq +Horizontal motion. +If the vertical bar is given, the motion is relative to the current +indentation. +Otherwise, it is relative to the current position. The default scaling unit is .Cm m . .Ss \ek[ Ns Ar name ] @@ -526,9 +526,14 @@ term_word(struct termp *p, const char *word) p->flags |= (TERMP_NOSPACE | TERMP_NONEWLINE); continue; case ESCAPE_HORIZ: + if (*seq == '|') { + seq++; + uc = -p->col; + } else + uc = 0; if (a2roffsu(seq, &su, SCALE_EM) == NULL) continue; - uc = term_hen(p, &su); + uc += term_hen(p, &su); if (uc > 0) while (uc-- > 0) bufferc(p, ASCII_NBRSP); |