home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 28 / amigaformatcd28.iso / -seriously_amiga- / archivers / mpackppc-wos / src / xmalloc.c < prev    next >
C/C++ Source or Header  |  1998-04-27  |  2KB  |  59 lines

  1. /* (C) Copyright 1993,1994 by Carnegie Mellon University
  2.  * All Rights Reserved.
  3.  *
  4.  * Permission to use, copy, modify, distribute, and sell this software
  5.  * and its documentation for any purpose is hereby granted without
  6.  * fee, provided that the above copyright notice appear in all copies
  7.  * and that both that copyright notice and this permission notice
  8.  * appear in supporting documentation, and that the name of Carnegie
  9.  * Mellon University not be used in advertising or publicity
  10.  * pertaining to distribution of the software without specific,
  11.  * written prior permission.  Carnegie Mellon University makes no
  12.  * representations about the suitability of this software for any
  13.  * purpose.  It is provided "as is" without express or implied
  14.  * warranty.
  15.  *
  16.  * CARNEGIE MELLON UNIVERSITY DISCLAIMS ALL WARRANTIES WITH REGARD TO
  17.  * THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
  18.  * AND FITNESS, IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE
  19.  * FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
  20.  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
  21.  * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
  22.  * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  23.  * SOFTWARE.
  24.  */
  25. #include <stdio.h>
  26. #include <string.h>
  27. extern char *malloc(), *realloc();
  28.  
  29. char *xmalloc (int size)
  30. {
  31.     char *ret;
  32.  
  33.     if (ret = malloc((unsigned) size))
  34.       return ret;
  35.  
  36.     fprintf(stderr, "Memory exhausted\n");
  37.     exit(1);
  38. }
  39.  
  40.  
  41. char *xrealloc (char *ptr, int size)
  42. {
  43.     char *ret;
  44.  
  45.     /* xrealloc (NULL, size) behaves like xmalloc (size), as in ANSI C */
  46.     if (ret = !ptr ? malloc ((unsigned) size) : realloc (ptr, (unsigned) size))
  47.       return ret;
  48.  
  49.     fprintf(stderr, "Memory exhausted\n");
  50.     exit(1);
  51. }
  52.  
  53. char *strsave(char *str)
  54. {
  55.     char *p = xmalloc(strlen(str)+1);
  56.     strcpy(p, str);
  57.     return p;
  58. }
  59.