]> git.xolatile.top Git - emil-bake.git/commitdiff
all_args updates and output
authorEmil Williams <emilwilliams@tuta.io>
Tue, 27 Feb 2024 04:04:18 +0000 (04:04 +0000)
committerEmil Williams <emilwilliams@tuta.io>
Tue, 27 Feb 2024 04:04:18 +0000 (04:04 +0000)
bake.c

diff --git a/bake.c b/bake.c
index b2e4f285503963c9a0a0b3e61026a834553c036d..d133736d7e56578d5276b27fd8914d22b1651d82 100644 (file)
--- a/bake.c
+++ b/bake.c
@@ -101,54 +101,29 @@ shorten(string_t s) {
   return (string_t) { last, sh ? sh : calloc(0,0) };
 }
 
-static string_t
-all_args(int argc, char ** argv) {
-  char * all = NULL;
-  size_t len = 0;
-  if (argc > 2) {
-    int i;
-    len = (size_t) argc;
-
-    for (i = 2; i < argc; ++i)
-    { len += strlen(argv[i]); }
-
-    all = malloc(len);
-    if (all) {
-      all[len - 1] = '\0';
-      for (len = 0, i = 2; i < argc; ++i) {
-        strcpy(all + len, argv[i]);
-        len += strlen(argv[i]);
-        len += (i + 1 < argc);
-        if (i + 1 < argc) { all[len - 1] = ' '; }
-      }
-    }
-  }
-  return (string_t) { len, all ? all : calloc(0,0) };
-}
-
-#if 0
 static string_t
 all_args(int argc, char ** argv) {
   string_t s = (string_t) { 0, NULL };
   if (argc > 2) {
-    size_t i;
-    for (i = (size_t) argc; i > 2; --i) {
-      s.len += strlen(argv[i]) + 1;
+    size_t i, len = 0;
+    for (i = 2; i < (size_t) argc; ++i) {
+      len += strlen(argv[i]);
     }
-    s.buf = malloc(s.len + (size_t) argc);
+    s.buf = malloc(len);
+    s.len = len;
     if (s.buf) {
-      size_t len;
-      s.buf[s.len - 1] = '\0';
-      for (len = 0, i = (size_t) argc; i > 2; --i) {
+      for (len = 0, i = 2; i < (size_t) argc; ++i) {
         strcpy(s.buf + len, argv[i]);
-        len += strlen(argv[i]) + 1;
-        s.buf[len - 1] = ' ';
+        len += strlen(argv[i]);
+        if (i + 1 < argc) {
+          s.buf[len - 1] = ' ';
+          len++;
+        }
       }
     }
   }
   return s;
 }
-#endif
 
 /*** Map ***/
 
@@ -304,7 +279,7 @@ strip(string_t s) {
 static int
 run(char * buf) {
   int ret = 127;
-  fputs(GREEN "output" RESET ":\n", stderr);
+  fputs(BOLD GREEN "output" RESET ":\n", stderr);
   pid_t pid = fork();
   if (!pid) {
     execl("/bin/sh", "sh", "-c", buf, NULL);
@@ -342,9 +317,9 @@ main(int argc, char ** argv) {
 
   if (!s.buf) {
     if (errno)
-    { fprintf(stderr, BOLD RED "%s" RESET ": %s\n", g_filename.buf, strerror(errno)); }
+    { fprintf(stderr, BOLD RED "%s" RESET ": '" BOLD "%s" RESET "' %s\n", argv[0], g_filename.buf, strerror(errno)); }
     else
-    { fprintf(stderr, BOLD RED "%s" RESET ": File unrecognized.\n", g_filename.buf); }
+    { fprintf(stderr, BOLD RED "%s" RESET ": '" BOLD "%s" RESET "' File unrecognized.\n", argv[0], g_filename.buf); }
     return 1;
   }
 
@@ -356,10 +331,10 @@ main(int argc, char ** argv) {
   free(g_short.buf); free(g_all.buf);
   if (!s.buf) { return 1; }
 
-  fprintf(stderr, GREEN "%s" RESET ": %s\n", argv[0], s.buf + strip(s));
+  fprintf(stderr, BOLD GREEN "%s" RESET ": %s\n", argv[0], s.buf + strip(s));
   ret = ret ? 0 : run(s.buf);
   if (ret)
-  { fprintf(stderr, RED "result" RESET ": " BOLD "%d\n" RESET, ret); }
+  { fprintf(stderr, BOLD RED "result" RESET ": " BOLD "%d\n" RESET, ret); }
 
   free(s.buf);
   return ret;
@@ -367,4 +342,3 @@ help:
   fprintf(stderr, YELLOW "%s" RESET ": %s", argv[0], HELP DESC);
   return 1;
 }