tis100

Reimplementation of Zachtronics TIS-100 as a TUI game
git clone https://git.sinitax.com/sinitax/tis100
Log | Files | Refs | sfeed.txt

util.c (648B)


      1#include "util.h"
      2
      3#include <stdio.h>
      4#include <stdarg.h>
      5#include <string.h>
      6#include <stdlib.h>
      7
      8void
      9die(const char *fmt, ...)
     10{
     11	va_list ap;
     12
     13	if (cleanup) cleanup();
     14
     15	va_start(ap, fmt);
     16	fprintf(stderr, "%s: ", progname);
     17	vfprintf(stderr, fmt, ap);
     18	if (*fmt && fmt[strlen(fmt)-1] == ':') {
     19		fputc(' ', stderr);
     20		perror(NULL);
     21	} else {
     22		fputc('\n', stderr);
     23	}
     24	va_end(ap);
     25
     26	exit(1);
     27}
     28
     29size_t
     30strdcpy(char *dst, const char *src, size_t n)
     31{
     32	strncpy(dst, src, n);
     33	return strlen(src);
     34}
     35
     36size_t
     37strdcat(char *dst, const char *src, size_t n)
     38{
     39	size_t len;
     40
     41	len = strlen(dst);
     42	strncpy(dst + len, src, n - len);
     43	return strlen(src);
     44}