suploader

Simple uploader — submit URLs to web archive services
git clone git clone https://git.krisyotam.com/krisyotam/suploader.git
Log | Files | Refs | LICENSE

util.c (1248B)


      1 /* See LICENSE file for copyright and license details. */
      2 
      3 #include <ctype.h>
      4 #include <stdarg.h>
      5 #include <stdio.h>
      6 #include <stdlib.h>
      7 #include <string.h>
      8 
      9 #include "util.h"
     10 
     11 void
     12 die(const char *fmt, ...)
     13 {
     14 	va_list ap;
     15 
     16 	va_start(ap, fmt);
     17 	vfprintf(stderr, fmt, ap);
     18 	va_end(ap);
     19 	if (fmt[0] && fmt[strlen(fmt) - 1] == ':') {
     20 		fputc(' ', stderr);
     21 		perror(NULL);
     22 	} else {
     23 		fputc('\n', stderr);
     24 	}
     25 	exit(1);
     26 }
     27 
     28 void
     29 warn(const char *fmt, ...)
     30 {
     31 	va_list ap;
     32 
     33 	va_start(ap, fmt);
     34 	fprintf(stderr, "warning: ");
     35 	vfprintf(stderr, fmt, ap);
     36 	va_end(ap);
     37 	fputc('\n', stderr);
     38 }
     39 
     40 void *
     41 xmalloc(size_t size)
     42 {
     43 	void *p = malloc(size);
     44 
     45 	if (!p)
     46 		die("malloc:");
     47 	return p;
     48 }
     49 
     50 void *
     51 xrealloc(void *ptr, size_t size)
     52 {
     53 	void *p = realloc(ptr, size);
     54 
     55 	if (!p)
     56 		die("realloc:");
     57 	return p;
     58 }
     59 
     60 char *
     61 xstrdup(const char *s)
     62 {
     63 	char *p = strdup(s);
     64 
     65 	if (!p)
     66 		die("strdup:");
     67 	return p;
     68 }
     69 
     70 char *
     71 str_trim(char *str)
     72 {
     73 	char *end;
     74 
     75 	while (isspace((unsigned char)*str))
     76 		str++;
     77 	if (*str == '\0')
     78 		return str;
     79 	end = str + strlen(str) - 1;
     80 	while (end > str && isspace((unsigned char)*end))
     81 		end--;
     82 	end[1] = '\0';
     83 	return str;
     84 }
     85 
     86 int
     87 str_starts_with(const char *str, const char *prefix)
     88 {
     89 	return strncmp(str, prefix, strlen(prefix)) == 0;
     90 }