(file) Return to xalloc.c CVS log (file) (dir) Up to [RizwankCVS] / testProject / compat

  1 rizwank 1.1 /*
  2              * Non-failing memory allocation routines.
  3              * Copyright (c) 1995-1999 Markku Rossi.
  4              *
  5              * Author: Markku Rossi <mtr@iki.fi>
  6              */
  7             
  8             /*
  9              * This file is part of GNU enscript.
 10              *
 11              * This program is free software; you can redistribute it and/or modify
 12              * it under the terms of the GNU General Public License as published by
 13              * the Free Software Foundation; either version 2, or (at your option)
 14              * any later version.
 15              *
 16              * This program is distributed in the hope that it will be useful,
 17              * but WITHOUT ANY WARRANTY; without even the implied warranty of
 18              * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 19              * GNU General Public License for more details.
 20              *
 21              * You should have received a copy of the GNU General Public License
 22 rizwank 1.1  * along with this program; see the file COPYING.  If not, write to
 23              * the Free Software Foundation, 59 Temple Place - Suite 330,
 24              * Boston, MA 02111-1307, USA.
 25              */
 26             
 27             #include <stdio.h>
 28             
 29             #ifdef HAVE_CONFIG_H
 30             #include <config.h>
 31             #endif
 32             
 33             #if STDC_HEADERS
 34             
 35             #include <stdlib.h>
 36             #include <string.h>
 37             
 38             #else /* no STDC_HEADERS */
 39             
 40             #if HAVE_STDLIB_H
 41             #include <stdlib.h>
 42             #endif
 43 rizwank 1.1 
 44             #if HAVE_STRING_H
 45             #include <string.h>
 46             #endif
 47             
 48             #endif /* no STDC_HEADERS */
 49             
 50             #if ENABLE_NLS
 51             #include <libintl.h>
 52             #define _(String) gettext (String)
 53             #else
 54             #define _(String) String
 55             #endif
 56             
 57             /*
 58              * Global functions.
 59              */
 60             
 61             void *
 62             xmalloc (size)
 63                  size_t size;
 64 rizwank 1.1 {
 65               void *ptr;
 66             
 67               ptr = malloc (size);
 68               if (ptr == NULL)
 69                 {
 70                   fprintf (stderr, _("xmalloc(): couldn't allocate %d bytes\n"), size);
 71                   exit (1);
 72                 }
 73             
 74               return ptr;
 75             }
 76             
 77             
 78             void *
 79             xcalloc (num, size)
 80                  size_t num;
 81                  size_t size;
 82             {
 83               void *ptr;
 84             
 85 rizwank 1.1   ptr = calloc (num, size);
 86               if (ptr == NULL)
 87                 {
 88                   fprintf (stderr, _("xcalloc(): couldn't allocate %d bytes\n"), size);
 89                   exit (1);
 90                 }
 91             
 92               return ptr;
 93             }
 94             
 95             
 96             void *
 97             xrealloc (ptr, size)
 98                  void *ptr;
 99                  size_t size;
100             {
101               void *nptr;
102             
103               if (ptr == NULL)
104                 return xmalloc (size);
105             
106 rizwank 1.1   nptr = realloc (ptr, size);
107               if (nptr == NULL)
108                 {
109                   fprintf (stderr, _("xrealloc(): couldn't reallocate %d bytes\n"), size);
110                   exit (1);
111                 }
112             
113               return nptr;
114             }
115             
116             
117             void
118             xfree (ptr)
119                  void *ptr;
120             {
121               if (ptr == NULL)
122                 return;
123             
124               free (ptr);
125             }
126             
127 rizwank 1.1 
128             char *
129             xstrdup (str)
130                  char *str;
131             {
132               char *tmp;
133             
134               tmp = xmalloc (strlen (str) + 1);
135               strcpy (tmp, str);
136             
137               return tmp;
138             }

Rizwan Kassim
Powered by
ViewCVS 0.9.2