Unified · Split
| @@ -827,7 +827,6 @@ err: · 826 unmodified lines | ||
| 827 | 827 | if(o->td.eblc == nil && o->td.ebdt == nil) |
| 828 | 828 | return g; |
| 829 | 829 | } |
| 830 | − | |
| 831 | 830 | if(o->td.eblc != nil && o->td.ebdt != nil) |
| 832 | 831 | return bitglyf(o, g, opts); |
| 833 | 832 | |
| @@ -16,14 +16,17 @@ void · 15 unmodified lines | ||
| 16 | 16 | werrstr(char *fmt, ...) |
| 17 | 17 | { |
| 18 | 18 | va_list a; |
| 19 | − char buf[ERRMAX]; | |
| 20 | − int n; | |
| 19 | + char f[ERRMAX], buf[ERRMAX]; | |
| 20 | + int n, withr; | |
| 21 | 21 | |
| 22 | 22 | va_start(a, fmt); |
| 23 | − n = vsnprintf(buf, sizeof(buf), fmt, a); | |
| 23 | + n = snprintf(f, sizeof(f), "%s", fmt); | |
| 24 | + if((withr = (n >= 2 && f[n-2] == '%' && f[n-1] == 'r')) != 0) | |
| 25 | + f[n-2] = 0; | |
| 26 | + n = vsnprintf(buf, sizeof(buf), f, a); | |
| 24 | 27 | va_end(a); |
| 25 | − if(n >= 2 && buf[n-2] == '%' && buf[n-1] == 'r') | |
| 26 | − snprintf(buf+n-2, sizeof(buf)-n+2, "%s", errstr); | |
| 28 | + if(withr) | |
| 29 | + snprintf(buf+n, sizeof(buf)-n, "%s", errstr); | |
| 27 | 30 | snprintf(errstr, sizeof(errstr), "%s", buf); |
| 28 | 31 | } |
| 29 | 32 | |