ref: 45c18fa7176a70388ed25465a339b60b7e50bab0
parent: 819f4ebfd4fd33e20815761664f8c3e1c34bada8
author: Ali Gholami Rudi <ali@rudi.ir>
date: Mon Jul 8 18:32:27 EDT 2013
wb: ignore requests in diverted text
--- a/out.c
+++ b/out.c
@@ -216,11 +216,11 @@
char c[ILNLEN + GNLEN * 4];
int t;
while ((t = out_readc(&s, c)) >= 0) {
- if (c[0] == c_ni) {
- c[0] = c[1];
- c[1] = '\0';
- }
if (!t) {
+ if (c[0] == c_ni || (c[0] == '\\' && c[1] == '\\')) {
+ c[0] = c[1];
+ c[1] = '\0';
+ }
if (c[0] == '\t' || c[0] == '' || !strcmp(c_hc, c))
continue;
g = dev_glyph(c, o_f);
--- a/ren.c
+++ b/ren.c
@@ -651,6 +651,8 @@
ren_field(wb, next, back);
return;
}
+ if (c[0] == c_ni)
+ nextchar(c + 1, next);
if (c[0] == c_ec) {
nextchar(c + 1, next);
if (c[1] == '(') {
@@ -691,8 +693,6 @@
strcpy(c, arg);
}
}
- if (c[0] == c_ni)
- nextchar(c + 1, next);
if (!n_lg || wb_lig(wb, c)) {
if (n_kn)
wb_kern(wb, c);
--- a/wb.c
+++ b/wb.c
@@ -96,7 +96,10 @@
wb_font(wb);
if (!c[1] || c[0] == c_ec || c[0] == c_ni ||
utf8len((unsigned char) c[0]) == strlen(c)) {
- sbuf_append(&wb->sbuf, c);
+ if (c[0] == c_ni && c[1] == c_ec)
+ sbuf_printf(&wb->sbuf, "%c%c", c_ec, c_ec);
+ else
+ sbuf_append(&wb->sbuf, c);
} else {
if (c[1] && !c[2])
sbuf_printf(&wb->sbuf, "%c(%s", c_ec, c);