static char *BS = "\b";
static char *BSB = "\b \b";
static char *CARAT = "^";
-#define ERASEONECOLUMN \
- if (docrterase) \
- putserr(BSB); \
- else \
- putserr(BS);
+#define ERASEONECOLUMN(x) \
+ do { \
+ if (x) \
+ putserr(BSB); \
+ else \
+ putserr(BS); \
+ } while(0)
void ttyin(char buf[], register int nmax, char pchar)
{
}
if (mblength == 1) {
- ERASEONECOLUMN} else {
+ ERASEONECOLUMN(docrterase);
+ } else {
int wc_width;
wc_width = wcwidth(wc);
wc_width =
(wc_width <
1) ? 1 : wc_width;
while (wc_width--) {
- ERASEONECOLUMN}
+ ERASEONECOLUMN(docrterase);
+ }
}
while (mblength--) {
#endif /* HAVE_WIDECHAR */
{
--promptlen;
- ERASEONECOLUMN-- sp;
+ ERASEONECOLUMN(docrterase);
+ --sp;
}
if ((*sp < ' ' && *sp != '\n') || *sp == RUBOUT) {
--promptlen;
- ERASEONECOLUMN}
+ ERASEONECOLUMN(docrterase);
+ }
continue;
} else {
if (!eraseln)
}
if (slash && ((cc_t) c == otty.c_cc[VKILL]
|| (cc_t) c == otty.c_cc[VERASE])) {
- ERASEONECOLUMN-- sp;
+ ERASEONECOLUMN(docrterase);
+ --sp;
}
if (c != '\\')
slash = 0;