From 0c68c097a9d7fcc6fb90a0cf3ff54afe9b1fdabf Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 1 Sep 2009 16:46:19 -0400 Subject: continue working --- c/rvs.h | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100644 c/rvs.h (limited to 'c/rvs.h') diff --git a/c/rvs.h b/c/rvs.h new file mode 100644 index 0000000..1bcbacf --- /dev/null +++ b/c/rvs.h @@ -0,0 +1,76 @@ +/* Copyright (C) 2009 Luke Shumaker + + This file is part of rvs. + + rvs is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your + option) any later version. + + rvs is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with rvs; see the file COPYING. + If not, write to the Free Software Foundation, + 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#include +#include +#include +#include +#include + +void *xmalloc (size_t size) +{ + register void *value = malloc (size); + if (value == 0) + error(EXIT_FAILURE,0,"virtual memory exhausted"); + return value; +} + +void *xrealloc (void *ptr, size_t size) +{ + register void *value = realloc (ptr, size); + if (value == 0) + error(EXIT_FAILURE,0,"virtual memory exhausted"); + return value; +} + +FILE *xfopen (const char *filename, const char *opentype) +{ + FILE *file = fopen(filename,opentype); + /* fopen gives NULL on failure */ + if ( file == NULL ) { + error(EXIT_FAILURE,errno,"%s",filename); + } + + return file; +} + +DIR *xopendir (const char *dirname) +{ + DIR *dir = opendir (dirname); + if (dir == NULL) { + error(EXIT_FAILURE,errno,"%s/",dirname); + } + + return dir; +} + +void stradds(size_t *size, char **dest, char *str) +{ + if (*size > ( strlen(*dest) + strlen(str) )) { + strcat(*dest, str); + } else { + *size = strlen(*dest) + strlen(str) + 1; + + char *string; + string = (char *) xrealloc (*dest, *size); + strcat(string, str); + } +} + -- cgit v1.2.3-54-g00ecf