* colorize - Read text from standard input stream or file and print
* it colorized through use of ANSI escape sequences
*
- * Copyright (c) 2011-2014 Steven Schubiger
+ * Copyright (c) 2011-2015 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 DEBUG_FILE "debug.txt"
-#define VERSION "0.54"
+#define VERSION "0.55"
typedef enum { false, true } bool;
log = open_file (DEBUG_FILE, "w");
#endif
- while ((opt = getopt_long (argc, argv, "hv", long_opts, NULL)) != -1)
+ while ((opt = getopt_long (argc, argv, "hV", long_opts, NULL)) != -1)
{
PARSE_OPT:
switch (opt)
break;
case 'h':
SET_OPT_TYPE (OPT_HELP);
- case 'v':
+ case 'V':
SET_OPT_TYPE (OPT_VERSION);
case '?':
print_hint ();
printf ("\t\t --clean-all\n");
printf ("\t\t --exclude-random\n");
printf ("\t\t-h, --help\n");
- printf ("\t\t-v, --version\n\n");
+ printf ("\t\t-V, --version\n\n");
}
static void
unsigned int i;
for (i = 0; i < stacked_vars; i++)
if (vars_list[i])
- free_null (vars_list[i]);
+ free (vars_list[i]);
free_null (vars_list);
}
unsigned int i;
for (i = 0; color_names[i]; i++)
{
- free_null (color_names[i]->name);
- free_null (color_names[i]->orig);
+ free (color_names[i]->name);
+ free (color_names[i]->orig);
free_null (color_names[i]);
}
}
break;
case BACKGROUND:
vfprintf_fail (formats[FMT_COLOR], tables[BACKGROUND].desc, color, "cannot be bold");
- break;
default: /* never reached */
ABORT_TRACE ();
}
if (color_names[BACKGROUND])
{
unsigned int i;
- unsigned int color_sets[2][2] = { { FOREGROUND, BACKGROUND }, { BACKGROUND, FOREGROUND } };
+ const unsigned int color_sets[2][2] = { { FOREGROUND, BACKGROUND }, { BACKGROUND, FOREGROUND } };
for (i = 0; i < 2; i++)
{
- unsigned int color1 = color_sets[i][0];
- unsigned int color2 = color_sets[i][1];
+ const unsigned int color1 = color_sets[i][0];
+ const unsigned int color2 = color_sets[i][1];
if (CHECK_COLORS_RANDOM (color1, color2))
vfprintf_fail (formats[FMT_RANDOM], tables[color1].desc, color_names[color1]->orig, "cannot be combined with", color_names[color2]->orig);
}
*stream = stdin;
else
{
- FILE *s;
const char *file = file_string;
struct stat sb;
int ret;
errno = 0;
- ret = lstat (file, &sb);
+ ret = stat (file, &sb);
if (ret == -1)
vfprintf_fail (formats[FMT_FILE], file, strerror (errno));
if (!VALID_FILE_TYPE (sb.st_mode))
vfprintf_fail (formats[FMT_TYPE], file, "unrecognized type", get_file_type (sb.st_mode));
- errno = 0;
-
- s = fopen (file, "r");
- if (!s)
- vfprintf_fail (formats[FMT_FILE], file, strerror (errno));
- *stream = s;
+ *stream = open_file (file, "r");
}
*file = file_string;
}
RESTORE_CHAR (offsets[i + 1][0], ch);
}
for (i = 0; i < count; i++)
- free_null (offsets[i]);
+ free (offsets[i]);
free_null (offsets);
}