home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c004 / 1.ddi / CTAPX3.C < prev    next >
Encoding:
C/C++ Source or Header  |  1989-04-18  |  2.9 KB  |  126 lines

  1. /*
  2.  *    File Creation Application Interface
  3.  *
  4.  *    This program is the CONFIDENTIAL and PROPRIETARY property 
  5.  *    of FairCom(R) Corporation. Any unauthorized use, reproduction or
  6.  *    transfer of this program is strictly prohibited.
  7.  *
  8.  *      Copyright (c) 1987, 1988, 1989 FairCom Corporation
  9.  *    (Subject to limited distribution and
  10.  *     restricted disclosure only.)
  11.  *    *** ALL RIGHTS RESERVED ***
  12.  *
  13.  *    4006 West Broadway
  14.  *    Columbia, MO 65203
  15.  *
  16.  *
  17.  *    c-tree(R)    Version 4.3
  18.  *            Release C
  19.  *            February 7, 1989 17:30
  20.  *
  21.  */
  22.  
  23. #include "ctstdr.h"
  24. #include "ctoptn.h"
  25. #include "ctstrc.h"
  26. #include "cterrc.h"
  27. #include "ctcomm.h"
  28.  
  29. extern COUNT    uerr_cod,ct_mxfil;
  30. extern CTFILE  *ct_key;
  31. extern TEXT    *ct_apxdat;
  32.  
  33. COUNT ctapxe();
  34.  
  35. COUNT CREDAT(datno,filnam,datlen,xtdsiz,filmod)
  36. COUNT         datno;
  37. TEXT          *filnam;
  38. UCOUNT              datlen,xtdsiz;
  39. COUNT                    filmod;
  40. {
  41.     FAST CTFILE *ctnum;
  42.     FAST TEXT   *tp;
  43.     COUNT         i;
  44.     FILEPARM     fpm;
  45.  
  46.     ctnum = ct_key + datno;
  47.     if (datno < 0 || ct_mxfil <= datno)
  48.         return(uerr_cod = FNUM_ERR);
  49.     else if (ctnum->chnacs != 'n')
  50.         return(uerr_cod = FUSE_ERR);
  51.  
  52.     if (cpyfpm(filnam,&fpm))
  53.         return(uerr_cod);
  54.     fpm.fplen = datlen;
  55.     fpm.fpxtd = xtdsiz;
  56.     fpm.fpmod = filmod;
  57.     if (ctapxe(datno,FN_CREDAT,0L,&fpm))
  58.         return(uerr_cod);
  59.     cpybuf(ctnum,tp = ct_apxdat,HDRSIZ);
  60.     strcpy(ctnum->flname,filnam);
  61.     ctnum->filnum = datno;
  62.     ctnum->chnacs = 'y';
  63.     return(uerr_cod = NO_ERROR);
  64. }
  65.  
  66. COUNT CREIDX(keyno,filnam,keylen,keytyp,keydup,nomemb,xtdsiz,filmod)
  67. COUNT         keyno;
  68. TEXT          *filnam;
  69. COUNT              keylen,keytyp,keydup,nomemb;
  70. UCOUNT                              xtdsiz;
  71. COUNT                                 filmod;
  72. {
  73.     FAST CTFILE *ctnum;
  74.     FAST TEXT   *tp;
  75.     COUNT         i;
  76.     FILEPARM     fpm;
  77.  
  78.     if (keyno < 0 || ct_mxfil <= (keyno + nomemb))
  79.         return(uerr_cod = FNUM_ERR);
  80.     for (ctnum = ct_key + keyno, i = 0; i <= nomemb; i++, ctnum++)
  81.         if (ctnum->chnacs != 'n')
  82.             return(uerr(FUSE_ERR));
  83.  
  84.     if (cpyfpm(filnam,&fpm))
  85.         return(uerr_cod);
  86.     fpm.fplen = keylen;
  87.     fpm.fptyp = keytyp;
  88.     fpm.fpdup = keydup;
  89.     fpm.fpmem = nomemb;
  90.     fpm.fpxtd = xtdsiz;
  91.     fpm.fpmod = filmod;
  92.     if (ctapxe(keyno,FN_CREIDX,0L,&fpm))
  93.         return(uerr_cod);
  94.     cpybuf(ctnum = ct_key + keyno,tp = ct_apxdat,HDRSIZ);
  95.     strcpy(ctnum->flname,filnam);
  96.     ctnum->filnum = keyno;
  97.     ctnum->chnacs = 'y';
  98.     for (i = 1, ++ctnum; i <= nomemb; i++, ctnum++)
  99.         ctnum->chnacs = 'm';
  100.     return(uerr_cod = NO_ERROR);
  101. }
  102.  
  103. COUNT CREMEM(keyno,keylen,keytyp,keydup,membno)
  104. COUNT         keyno;
  105. COUNT           keylen,keytyp,keydup,membno;
  106. {
  107.     FAST CTFILE *ctnum;
  108.     FAST TEXT   *tp;
  109.     COUNT         i;
  110.     FILEPARM     fpm;
  111.  
  112.     fpm.fplen = keylen;
  113.     fpm.fptyp = keytyp;
  114.     fpm.fpdup = keydup;
  115.     fpm.fpmem = membno;
  116.     if (ctapxe(keyno,FN_CREMEM,0L,&fpm))
  117.         return(uerr_cod);
  118.     ctnum = ct_key + keyno + membno;
  119.     cpybuf(ctnum,tp = ct_apxdat,HDRSIZ);
  120.     ctnum->filnum = keyno + membno;
  121.     ctnum->chnacs = 'y';
  122.     return(uerr_cod = NO_ERROR);
  123. }
  124.  
  125. /* end of ctapx3.c */
  126.