diff options
Diffstat (limited to 'src/utils.c')
-rw-r--r-- | src/utils.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/src/utils.c b/src/utils.c index 417b0cc..802d397 100644 --- a/src/utils.c +++ b/src/utils.c @@ -4,8 +4,9 @@ extern struct OMC_GLOBAL globals; char *dirstack[1024]; -const size_t dirstack_max = sizeof(dirstack) / sizeof(dirstack[0]); -size_t dirstack_len = 0; +const ssize_t dirstack_max = sizeof(dirstack) / sizeof(dirstack[0]); +ssize_t dirstack_len = 0; + int pushd(const char *path) { if (dirstack_len + 1 > dirstack_max) { return -1; @@ -309,7 +310,6 @@ int touch(const char *filename) { perror(filename); return 1; } - fprintf(stderr, ""); fclose(fp); return 0; } @@ -375,7 +375,7 @@ char *git_describe(const char *path) { void msg(unsigned type, char *fmt, ...) { FILE *stream = NULL; char header[255]; - char status[255]; + char status[20]; if (type & OMC_MSG_NOP) { // quiet mode @@ -418,8 +418,7 @@ void msg(unsigned type, char *fmt, ...) { fprintf(stream, "%s", header); vfprintf(stream, fmt, args); - printf("%s", OMC_COLOR_RESET); - printf("%s", OMC_COLOR_RESET); + fprintf(stream, "%s", OMC_COLOR_RESET); va_end(args); } @@ -429,3 +428,19 @@ void debug_shell() { msg(OMC_MSG_L1 | OMC_MSG_WARN, "EXITING OMC DEBUG SHELL\n" OMC_COLOR_RESET); exit(255); } + +char *xmkstemp(FILE **fp) { + char t_name[PATH_MAX]; + strcpy(t_name, "/tmp/OMC.XXXXXX"); + int fd = mkstemp(t_name); + + *fp = fdopen(fd, "w"); + if (!*fp) { + if (fd > 0) + close(fd); + *fp = NULL; + return NULL; + } + char *path = strdup(t_name); + return path; +}
\ No newline at end of file |