diff --git a/install.sh b/install.sh index cbf5529..d5e7894 100644 --- a/install.sh +++ b/install.sh @@ -2,6 +2,8 @@ set -xe +mkdir /usr/include/xolatile + cp xtandard.h /usr/include/xolatile/xtandard.h cp xtandard.c /usr/include/xolatile/xtandard.c diff --git a/xtandard.c b/xtandard.c index b036c94..f930467 100644 --- a/xtandard.c +++ b/xtandard.c @@ -71,8 +71,8 @@ void log_in (int type, int flag, char * data) { string_concatenate (log_notify, "\n"); } -void log_out (void) { - echo (log_notify); +void log_out (char * name) { + dump (name, log_notify); log_notify = deallocate (log_notify); } @@ -85,6 +85,24 @@ void echo (char * data) { out (data, string_length (data)); } +void dump (char * name, char * data) { + int file = -1; + + if (name == NULL) { + echo (data); + return; + } + + if (data == NULL) { + return; + } + + file = file_open (name, O_RDWR | O_CREAT | O_APPEND); + + file_write (file, data, string_length (data)); + + file = file_close (file); +} void echo_byte (int byte) { out ("0123456789ABCDEF" + (byte % 256) / 16, 1); diff --git a/xtandard.h b/xtandard.h index d8f8aab..c68a11b 100644 --- a/xtandard.h +++ b/xtandard.h @@ -71,9 +71,11 @@ extern void in (void *, int); extern void out (void *, int); extern void log_in (int, int, char *); -extern void log_out (void); +extern void log_out (char *); + +extern void echo (char *); +extern void dump (char *, char *); -extern void echo (char *); extern void echo_byte (int); extern void fatal_failure (int, char *);