]> git.refcnt.org Git - colorize.git/blobdiff - colorize.c
Terminate buffer with single NUL
[colorize.git] / colorize.c
index 0ab2ad9926a8a5f4eac3552011340b9057b8047e..16094c6e673c3e51eb33629a226700df0dfc62ed 100644 (file)
@@ -2,7 +2,7 @@
  * 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;
 
@@ -476,6 +482,7 @@ print_version (void)
       }
     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");
 }
 
@@ -738,10 +745,10 @@ read_print_stream (bool bold, const struct color **colors, const char *file, FIL
         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")))
           {