#include <unistd.h>
#include <fcntl.h>
+#define ALLOCATION_CHUNK (1024UL)
+#define ALLOCATION_LIMIT (1024UL * 1024UL)
+
enum { NORMAL, BOLD, DARKNESS, ITALIC, UNDERLINE, BLINK, DUNNO_6, REVERSE, INVISIBLE };
enum { GREY, RED, GREEN, YELLOW, BLUE, PINK, CYAN, WHITE, CANCEL };
++data_offset;
} while ((is_separator (buffer [data_offset]) == 0) && (buffer [data_offset] != '\0'));
+ free (word);
+
return (data_offset);
}
-
+/*
+Valgrind: Depends on uninitialized value (buffer [0])...?
+280 : } while ((buffer [buffer_size - 1] != '\0') || (buffer_size != ALLOCATION_LIMIT));
+285 : while (buffer [offset] != '\0') {
+*/
int main (
int argc,
char * * argv
return (-1);
}
+ buffer = realloc (buffer, ALLOCATION_CHUNK);
+
do {
+ if ((buffer_size + 1) % ALLOCATION_CHUNK == 0) {
+ buffer = realloc (buffer, ((buffer_size + 1) / ALLOCATION_CHUNK + 1) * ALLOCATION_CHUNK);
+ }
+ buffer [buffer_size] = '\0'; /* Fixing Valgrind warnings... */
+ read (STDIN_FILENO, & buffer [buffer_size], sizeof (* buffer));
++buffer_size;
- buffer = realloc (buffer, buffer_size);
- read (STDIN_FILENO, & buffer [buffer_size - 1], sizeof (* buffer));
- } while ((buffer [buffer_size] != '\0') || (buffer_size != 10000));
+ } while ((buffer [buffer_size - 1] != '\0') /*|| (buffer_size != ALLOCATION_LIMIT)*/);
- ++buffer_size;
- buffer = realloc (buffer, buffer_size);
- buffer [buffer_size] = '\0';
+ buffer [buffer_size - 1] = '\0';
/* Checking if long comments work... */
- // Checking if long comments work...
+ // Checking if short comments work...
while (buffer [offset] != '\0') {
if ((buffer [offset] == '/') && (buffer [offset + 1] == '/')) {