From bddd6fb07906e660260ef0fced05440ecac8d9e9 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Sat, 24 Oct 2009 02:23:22 -0400 Subject: switching to git --- wrapper/rvs.c | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 wrapper/rvs.c (limited to 'wrapper/rvs.c') diff --git a/wrapper/rvs.c b/wrapper/rvs.c new file mode 100644 index 0000000..a2a8a37 --- /dev/null +++ b/wrapper/rvs.c @@ -0,0 +1,117 @@ +/* wrapper/rvs.c -- general and machine specific functions for rvs. + system depends: + 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 +#include + +#include "rvs.h" + +void * +xmalloc (size_t size) +{ + void *value = malloc (size); + if (value == NULL) { + perror(program_invocation_name); + exit(EXIT_FAILURE); + } + return value; +} + +void * +xrealloc (void *ptr, size_t size) +{ + void *value = realloc (ptr, size); + if (value == NULL) { + perror(program_invocation_name); + exit(EXIT_FAILURE); + } + return value; +} + +void +xfree (void *ptr) +{ + if (ptr!=NULL) + free (ptr); +} + +void +xsystem (const char *command) +{ + int stat=system(command); + if (stat!=0) { + if (stat==-1) { + fprintf(stderr, + "%s: unable to launch run command", + program_invocation_name); + exit(EXIT_FAILURE); + } else + exit(EXIT_FAILURE); + } +} + +/* unistd.h */ +int +xchdir (const char *filename) +{ + int ret=chdir(filename); + if (ret != 0) + error(EXIT_FAILURE,errno,"%s/",filename); + return ret; +} + +/* stdio.h */ +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; +} + +/* string funtions */ +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; + *dest = (char *) xrealloc (*dest, *size); + strcat(*dest, str); + } +} + +char * +stralloc (const char *string) +{ + char *copy = (char *)xmalloc(strlen(string)+1); + strcpy(copy,string); + return copy; +} + -- cgit v1.2.3-2-g168b