version 1.284, 2021/10/04 18:56:31 |
version 1.286, 2022/04/27 13:41:13 |
|
|
/* $Id$ */ |
/* $Id$ */ |
/* |
/* |
* Copyright (c) 2010-2021 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2010-2022 Ingo Schwarze <schwarze@openbsd.org> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* Copyright (c) 2008, 2009, 2010, 2011 Kristaps Dzonsons <kristaps@bsd.lv> |
* |
* |
* Permission to use, copy, modify, and distribute this software for any |
* Permission to use, copy, modify, and distribute this software for any |
Line 628 term_word(struct termp *p, const char *word) |
|
Line 628 term_word(struct termp *p, const char *word) |
|
encode(p, "utf8", 4); |
encode(p, "utf8", 4); |
continue; |
continue; |
case ESCAPE_HORIZ: |
case ESCAPE_HORIZ: |
|
if (p->flags & TERMP_BACKAFTER) { |
|
p->flags &= ~TERMP_BACKAFTER; |
|
continue; |
|
} |
if (*seq == '|') { |
if (*seq == '|') { |
seq++; |
seq++; |
uc = -p->col; |
uc = -p->col; |
Line 636 term_word(struct termp *p, const char *word) |
|
Line 640 term_word(struct termp *p, const char *word) |
|
if (a2roffsu(seq, &su, SCALE_EM) == NULL) |
if (a2roffsu(seq, &su, SCALE_EM) == NULL) |
continue; |
continue; |
uc += term_hen(p, &su); |
uc += term_hen(p, &su); |
if (uc > 0) |
if (uc >= 0) { |
while (uc-- > 0) |
while (uc > 0) { |
bufferc(p, ASCII_NBRSP); |
uc -= term_len(p, 1); |
else if (p->col > (size_t)(-uc)) |
if (p->flags & TERMP_BACKBEFORE) |
|
p->flags &= ~TERMP_BACKBEFORE; |
|
else |
|
bufferc(p, ASCII_NBRSP); |
|
} |
|
continue; |
|
} |
|
if (p->flags & TERMP_BACKBEFORE) { |
|
p->flags &= ~TERMP_BACKBEFORE; |
|
assert(p->col > 0); |
|
p->col--; |
|
} |
|
if (p->col >= (size_t)(-uc)) { |
p->col += uc; |
p->col += uc; |
else { |
} else { |
uc += p->col; |
uc += p->col; |
p->col = 0; |
p->col = 0; |
if (p->tcol->offset > (size_t)(-uc)) { |
if (p->tcol->offset > (size_t)(-uc)) { |