home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 391.lha / AmigaUser / src / gen.c < prev    next >
C/C++ Source or Header  |  1990-07-06  |  1KB  |  77 lines

  1. #include "include.h"
  2. #include "extern.h"
  3.  
  4. char *
  5. genchar(n)
  6. int n;
  7. {
  8. #if UNIX
  9.  char *malloc();
  10. #endif
  11. #if VMS
  12.  void *malloc();
  13. #endif
  14.  
  15.  char *dummy, *end;
  16.  register char *c;
  17.  
  18. #if UNIX
  19.  dummy = malloc(sizeof(char) * n);
  20. #endif
  21. #if VMS
  22.  dummy = (char*) malloc(sizeof(char) * n);
  23. #endif
  24.  
  25.  if(dummy == NULL) {
  26.    printf("Not enough memory. Exiting\n");
  27.    exit(-1);
  28.  }
  29.  end = dummy + (n*sizeof(char));
  30.  for(c = dummy; c < end; c++)
  31.    *c = 0;
  32.  return(dummy);
  33. }
  34.  
  35. entry *
  36. genentry()
  37. {
  38.  char *genchar();
  39.  entry *dummy;
  40.  register int i;
  41.  
  42.  dummy = (entry *) malloc(sizeof(entry));
  43.  if(dummy == NULL) {
  44.    printf("Not enough memory. Exiting\n");
  45.    exit(-1);
  46.  }
  47.  dummy -> name = NULL;
  48.  dummy -> email = NULL;
  49.  dummy -> system = NULL;
  50.  dummy -> numkeys = 0;
  51.  dummy -> keys = NULL;
  52.  dummy -> comment = NULL;
  53.  dummy -> next = NULL;
  54.  return(dummy);
  55. }
  56.  
  57.  
  58. freeall()
  59. {
  60.  register int i;
  61.  
  62.  printf("Cleaning up..\n");
  63.  curr = head;
  64.  while(curr != NULL) {
  65.    free(curr -> name);
  66.    free(curr -> email);
  67.    free(curr -> system);
  68.    for(i = 0; i < curr -> numkeys; i++) 
  69.      free(curr -> keys[i]);
  70.    free(curr -> numkeys);
  71.    free(curr -> comment);
  72.    free(curr);
  73.    curr = curr -> next;
  74.  }
  75. }
  76.  
  77.