← Commit list

bfa6ed1bf

Denys Vlasenko
Denys Vlasenko
2013-07-30
SUCCESS Duration: 342s

Subject

catv: code shrink

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

coreutils/catv.c+9 -6
@@ -26,19 +26,22 @@ int catv_main(int argc UNUSED_PARAM, char **argv)
int retval = EXIT_SUCCESS;
int fd;
unsigned opts;
- int flags = 0;
-
- opts = getopt32(argv, "etv");
#define CATV_OPT_e (1<<0)
#define CATV_OPT_t (1<<1)
#define CATV_OPT_v (1<<2)
+ typedef char BUG_const_mismatch[
+ CATV_OPT_e == VISIBLE_ENDLINE && CATV_OPT_t == VISIBLE_SHOW_TABS
+ ? 1 : -1
+ ];
+
+ opts = getopt32(argv, "etv");
argv += optind;
- if (opts & (CATV_OPT_e | CATV_OPT_t))
- opts &= ~CATV_OPT_v;
+#if 0 /* These consts match, we can just pass "opts" to visible() */
if (opts & CATV_OPT_e)
flags |= VISIBLE_ENDLINE;
if (opts & CATV_OPT_t)
flags |= VISIBLE_SHOW_TABS;
+#endif
/* Read from stdin if there's nothing else to do. */
if (!argv[0])
@@ -64,7 +67,7 @@ int catv_main(int argc UNUSED_PARAM, char **argv)
putchar(c);
} else {
char buf[sizeof("M-^c")];
- visible(c, buf, flags);
+ visible(c, buf, opts);
fputs(buf, stdout);
}
}
include/libbb.h+4 -1
@@ -680,7 +680,10 @@ enum { PRINTABLE_META = 0x100 };
void fputc_printable(int ch, FILE *file) FAST_FUNC;
/* Return a string that is the printable representation of character ch.
* Buffer must hold at least four characters. */
-enum { VISIBLE_SHOW_TABS = 1, VISIBLE_ENDLINE = 2 };
+enum {
+ VISIBLE_ENDLINE = 1 << 0,
+ VISIBLE_SHOW_TABS = 1 << 1,
+};
void visible(unsigned ch, char *buf, int flags) FAST_FUNC;
/* dmalloc will redefine these to it's own implementation. It is safe