* colorize - Read text from standard input stream or file and print
* it colorized through use of ANSI escape sequences
*
- * Copyright (c) 2011-2015 Steven Schubiger
+ * Copyright (c) 2011-2016 Steven Schubiger
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define ALLOC_COMPLETE_PART_LINE 8
-#define COLOR_SEP_CHAR '/'
+#if defined(COLOR_SEP_CHAR_COLON)
+# define COLOR_SEP_CHAR ':'
+#elif defined(COLOR_SEP_CHAR_SLASH)
+# define COLOR_SEP_CHAR '/'
+#else
+# define COLOR_SEP_CHAR '/'
+#endif
#define DEBUG_FILE "debug.txt"
-#define VERSION "0.57"
+#define VERSION "0.58"
typedef enum { false, true } bool;
"%s: %s: %s", /* type */
};
-enum { FOREGROUND, BACKGROUND };
+enum { GENERIC, FOREGROUND = 0, BACKGROUND };
static const struct {
struct color const *entries;
unsigned int i;
exclude = xstrdup (optarg);
STACK_VAR (exclude);
- for (i = 1; i < tables[FOREGROUND].count - 1; i++) /* skip color none and default */
+ for (i = 1; i < tables[GENERIC].count - 1; i++) /* skip color none and default */
{
- const struct color *entry = &tables[FOREGROUND].entries[i];
+ const struct color *entry = &tables[GENERIC].entries[i];
if (streq (exclude, entry->name))
{
valid = true;
}
else
printf ("Buffer size: %lu byte%s\n", (unsigned long)BUF_SIZE, BUF_SIZE > 1 ? "s" : "");
+ printf ("Color separator: '%c'\n", COLOR_SEP_CHAR);
printf ("Debugging: %s\n", debug ? "yes" : "no");
}
{
bool matched = false;
unsigned int i;
- for (i = 0; i < tables[FOREGROUND].count; i++)
+ for (i = 0; i < tables[GENERIC].count; i++)
{
- const struct color *entry = &tables[FOREGROUND].entries[i];
+ const struct color *entry = &tables[GENERIC].entries[i];
if (has_color_name (color, entry->name))
{
color += strlen (entry->name);
size_t bytes_read;
char *eol;
const char *line;
- memset (buf, '\0', BUF_SIZE + 1);
bytes_read = fread (buf, 1, BUF_SIZE, stream);
if (bytes_read != BUF_SIZE && ferror (stream))
vfprintf_fail (formats[FMT_ERROR], BUF_SIZE, "read");
+ buf[bytes_read] = '\0';
line = buf;
while ((eol = strpbrk (line, "\n\r")))
{