home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume4 / bm1.2 / MakeDesc.c < prev    next >
C/C++ Source or Header  |  1986-11-30  |  718b  |  27 lines

  1. #include <stdio.h>
  2. #include "bm.h"
  3. #include "Extern.h"
  4. extern char * malloc();
  5. /* makes a pattern descriptor */
  6. struct PattDesc *MakeDesc(Pattern)
  7. char *Pattern;
  8. {
  9.     struct PattDesc *Desc;
  10.     Desc = (struct PattDesc *) malloc(sizeof(struct PattDesc));
  11.     if (!(Desc->Skip1 = (unsigned short int *)
  12.     malloc( sizeof(int) * (MAXCHAR + 1)))){
  13.         fprintf(stderr,"bm: can't allocate space\n");
  14.         exit(2);
  15.     } /* if */
  16.     if (!(Desc->Skip2 = (unsigned short int *)
  17.     malloc(sizeof(int) * strlen(Pattern)))){
  18.         fprintf(stderr,"bm: can't allocate space\n");
  19.         exit(2);
  20.     } /* if */
  21.     Desc->Pattern=Pattern;
  22.     Desc->PatLen = strlen(Desc->Pattern);
  23.     MakeSkip(Desc->Pattern,Desc->Skip1,
  24.     Desc->Skip2,Desc->PatLen);
  25.     return(Desc);
  26. } /* main */
  27.