/* gen-help.c - Helper functions used by build time tools * Copyright (C) 2010 g10 Code GmbH * * This file is part of KSBA. * * KSBA 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 Fountion; either version 3 of the License, or * (at your option) any later version. * * KSBA 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 this program; if not, see . */ /* No config.h - this file needs to build as plain ISO-C. */ #include #include #include #include "gen-help.h" static void out_of_core(void) { fputs ("\nfatal: out of memory\n", stderr); exit (2); } /* Implementation of the common xfoo() memory allocation functions */ void * xmalloc (size_t n ) { void *p = malloc (n); if (!p) out_of_core (); return p; } void * xcalloc (size_t n, size_t m) { void *p = calloc (n, m); if (!p) out_of_core (); return p; } void * xrealloc (void *mem, size_t n) { void *p = realloc (mem, n); if (!p) out_of_core (); return p; } char * xstrdup (const char *str) { char *p = strdup (str); if (!p) out_of_core (); return p; } void xfree (void *a) { if (a) free (a); } /* Our version of stpcpy to avoid conflicts with already availabale implementations. */ char * gen_help_stpcpy (char *a, const char *b) { while (*b) *a++ = *b++; *a = 0; return a; } /* Simple replacement function to avoid the need for a build libgpg-error */ const char * gpg_strerror (int err) { switch (err) { case 0: return "Success"; case GPG_ERR_GENERAL: return "General error"; case GPG_ERR_SYNTAX: return "Syntax error"; case GPG_ERR_INV_VALUE: return "Invalid value"; case GPG_ERR_BUG: return "Bug"; case GPG_ERR_ELEMENT_NOT_FOUND: return "Not found"; case GPG_ERR_IDENTIFIER_NOT_FOUND: return "Identifier not found"; default: return "Unknown error"; } }