]> git.lizzy.rs Git - dragonblocks_alpha.git/blobdiff - src/util.c
Update meshgen threads to use queue waiting
[dragonblocks_alpha.git] / src / util.c
index bbfd0bd621d0595ccd581613cd4caa7e31f953a9..436e4d93a64893a4ff6f665c8ee264620140365e 100644 (file)
@@ -1,58 +1,12 @@
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <string.h>
-#include "util.h"
+#include <stdarg.h>
+#include <dragonport/asprintf.h>
 
-const char *program_name;
-
-void syscall_error(const char *err)
-{
-       perror(err);
-       exit(EXIT_FAILURE);
-}
-
-void internal_error(const char *err)
-{
-       fprintf(stderr, "%s: %s\n", program_name, err);
-       exit(EXIT_FAILURE);
-}
-
-char *read_string(int fd, size_t bufsiz)
-{
-       char buf[bufsiz + 1];
-       buf[bufsiz] = 0;
-       for (size_t i = 0;; i++) {
-               char c;
-               if (read(fd, &c, 1) == -1) {
-                       perror("read");
-                       return NULL;
-               }
-               if (i < bufsiz)
-                       buf[i] = c;
-               if (c == EOF || c == 0)
-                       break;
-       }
-       return strdup(buf);
-}
-
-char *address_string(struct sockaddr_in6 *addr)
-{
-       char address[INET6_ADDRSTRLEN] = {0};
-       char port[6] = {0};
-
-       if (inet_ntop(addr->sin6_family, &addr->sin6_addr, address, INET6_ADDRSTRLEN) == NULL)
-               perror("inet_ntop");
-       sprintf(port, "%d", ntohs(addr->sin6_port));
-
-       char *result = malloc(strlen(address) + 1 + strlen(port) + 1);
-       sprintf(result, "%s:%s", address, port);
-       return result;
-}
-
-v3f html_to_v3f(const char *html)
+char *format_string(const char *format, ...)
 {
-       unsigned int r, g, b;
-       sscanf(html, "#%2x%2x%2x", &r, &g, &b);
-       return (v3f) {(f32) r / 255.0f, (f32) g / 255.0f, (f32) b / 255.0f};
+       va_list args;
+       va_start(args, format);
+       char *ptr;
+       vasprintf(&ptr, format, args);
+       va_end(args);
+       return ptr;
 }