home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Amiga / Workbench / Archivers / mpackPPC.lha / mpackPPC / src / xmalloc.c < prev    next >
C/C++ Source or Header  |  1998-04-08  |  2KB  |  63 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 (size)
  30. int size;
  31. {
  32.     char *ret;
  33.  
  34.     if (ret = malloc((unsigned) size))
  35.       return ret;
  36.  
  37.     fprintf(stderr, "Memory exhausted\n");
  38.     exit(1);
  39. }
  40.  
  41.  
  42. char *xrealloc (ptr, size)
  43. char *ptr;
  44. int size;
  45. {
  46.     char *ret;
  47.  
  48.     /* xrealloc (NULL, size) behaves like xmalloc (size), as in ANSI C */
  49.     if (ret = !ptr ? malloc ((unsigned) size) : realloc (ptr, (unsigned) size))
  50.       return ret;
  51.  
  52.     fprintf(stderr, "Memory exhausted\n");
  53.     exit(1);
  54. }
  55.  
  56. char *strsave(str)
  57. char *str;
  58. {
  59.     char *p = xmalloc(strlen(str)+1);
  60.     strcpy(p, str);
  61.     return p;
  62. }
  63.