diff options
-rw-r--r-- | out.c | 4 | ||||
-rw-r--r-- | regress/roff/esc/Makefile | 4 | ||||
-rw-r--r-- | regress/roff/esc/l.in | 22 | ||||
-rw-r--r-- | regress/roff/esc/l.out_ascii | 16 | ||||
-rw-r--r-- | regress/roff/esc/l.out_lint | 2 | ||||
-rw-r--r-- | term.c | 10 |
6 files changed, 48 insertions, 10 deletions
@@ -85,10 +85,8 @@ a2roffsu(const char *src, struct roffsu *dst, enum roffscale def) case 'v': dst->unit = SCALE_VS; break; - case '\0': - endptr--; - /* FALLTHROUGH */ default: + endptr--; if (SCALE_MAX == def) return NULL; dst->unit = def; diff --git a/regress/roff/esc/Makefile b/regress/roff/esc/Makefile index 4c8e492b..32589479 100644 --- a/regress/roff/esc/Makefile +++ b/regress/roff/esc/Makefile @@ -1,6 +1,6 @@ # $OpenBSD: Makefile,v 1.11 2015/04/29 18:32:57 schwarze Exp $ -REGRESS_TARGETS = one two multi B c c_man e f h o p w z ignore -LINT_TARGETS = B h w ignore +REGRESS_TARGETS = one two multi B c c_man e f h l o p w z ignore +LINT_TARGETS = B h l w ignore .include <bsd.regress.mk> diff --git a/regress/roff/esc/l.in b/regress/roff/esc/l.in new file mode 100644 index 00000000..59b9b5cf --- /dev/null +++ b/regress/roff/esc/l.in @@ -0,0 +1,22 @@ +.Dd June 14, 2017 +.Dt ESC-L 1 +.Os OpenBSD +.Sh NAME +.Nm esc-l +.Nd the roff escape l sequence: horizontal line +.Sh DESCRIPTION +explicit scaling unit and fill char: >\l'2nf'< +.br +explicit scaling unit and default char: >\l'3n'< +.br +default unit and explicit fill char: >\l'4x'< +.br +default unit and char: >\l'5'< +.br +explicit scaling unit and escape sequence: >\l'6n\(+-'< +.br +default unit and escape char: >\l'7n\(at'< +.br +rounding: >\l'0.26ix'< +.br +invalid delimiter: >\h-< diff --git a/regress/roff/esc/l.out_ascii b/regress/roff/esc/l.out_ascii new file mode 100644 index 00000000..f8ab5d19 --- /dev/null +++ b/regress/roff/esc/l.out_ascii @@ -0,0 +1,16 @@ +ESC-L(1) General Commands Manual ESC-L(1) + +NNAAMMEE + eesscc--ll - the roff escape l sequence: horizontal line + +DDEESSCCRRIIPPTTIIOONN + explicit scaling unit and fill char: >ff< + explicit scaling unit and default char: >___< + default unit and explicit fill char: >xxxx< + default unit and char: >_____< + explicit scaling unit and escape sequence: >+-+-+-< + default unit and escape char: >@@@@@@@< + rounding: >xxx< + invalid delimiter: >< + +OpenBSD June 14, 2017 OpenBSD diff --git a/regress/roff/esc/l.out_lint b/regress/roff/esc/l.out_lint new file mode 100644 index 00000000..2141ef41 --- /dev/null +++ b/regress/roff/esc/l.out_lint @@ -0,0 +1,2 @@ +mandoc: l.in:22:21: WARNING: invalid escape sequence: \h- +mandoc: l.in:1:5: STYLE: Mdocdate missing: Dd June @@ -547,7 +547,7 @@ term_word(struct termp *p, const char *word) } continue; case ESCAPE_HLINE: - if ((seq = a2roffsu(seq, &su, SCALE_EM)) == NULL) + if ((cp = a2roffsu(seq, &su, SCALE_EM)) == NULL) continue; uc = term_hen(p, &su); if (uc <= 0) { @@ -556,10 +556,10 @@ term_word(struct termp *p, const char *word) lsz = p->tcol->rmargin - p->tcol->offset; } else lsz = uc; - if (*seq == '\0') + if (*cp == seq[-1]) uc = -1; - else if (*seq == '\\') { - seq++; + else if (*cp == '\\') { + seq = cp + 1; esc = mandoc_escape(&seq, &cp, &sz); switch (esc) { case ESCAPE_UNICODE: @@ -576,7 +576,7 @@ term_word(struct termp *p, const char *word) break; } } else - uc = *seq; + uc = *cp; if (uc < 0x20 || (uc > 0x7E && uc < 0xA0)) uc = '_'; if (p->enc == TERMENC_ASCII) { |