home *** CD-ROM | disk | FTP | other *** search
/ Meeting Pearls 3 / Meeting_Pearls_III.iso / Pearls / texmf / source / driver / util / flmt.h < prev    next >
C/C++ Source or Header  |  1990-09-25  |  2KB  |  58 lines

  1. /**** flmt.h        (c) Georg Hessmann 11.02.90         ****/
  2.  
  3.  
  4. #define LNKMAGIC    (((long)'F'<<24) | ((long)'L'<<16) | ((long)'N'<<8) | (long)'K')
  5. #define DOSNAMESIZE    100
  6. #define MAXLINKLEVELS    20
  7.  
  8. /************ structure definitions ***************/
  9. /* fontlib directory structures */
  10. struct flib_dirent { char mname[FILENAMELEN];        /* old version */
  11.                      long size;        /* size of pk-module in bytes */
  12.                      long where;    /* position in flib-file */
  13.                    };
  14.  
  15. struct new_flib_dirent { char  mname[NEWFILENAMELEN];    /* new version */
  16.              unsigned short checksum;
  17.              long  size;        /* size of pk-module in bytes */
  18.              long  where;        /* position in flib-file */
  19.                        };
  20.  
  21. union direntry { struct flib_dirent    old;
  22.          struct new_flib_dirent    new;
  23.            };
  24.  
  25.  
  26. /* internal representation of the flib-directory */
  27. struct dirlist { struct new_flib_dirent dirent;
  28.                  struct dirlist *next;
  29.            };
  30.  
  31. struct dir { long        total;
  32.          long        alloc;
  33.          int        version;    /* old or new flib */
  34.              struct dirlist *dirlist;
  35.        };
  36.  
  37.  
  38.  /* open a flib and test the magic-number            */
  39. FILE *open_flib            Args((char *name,
  40.                       char *mode,
  41.                       int  *version,
  42.                       short levels));
  43.  /* read the directory from the flib (file-pointer must be on the first dir)       */
  44.  /* only this directory entries a correct where "where != 0" the others are unused */
  45. int   read_dir            Args((FILE *f,
  46.                       struct dir *directory));
  47.  /* find a specified module in the dirlist and return a pointer to it */
  48. struct dirlist *findmod        Args((struct dir *libdirptr,
  49.                       char *mname));
  50.  
  51.  
  52. #ifdef AZTEC_C
  53. /* #pragma regcall ( a0 = open_flib(a0,a1,a2) ) */
  54. #pragma regcall ( /* d0 = */ read_dir(a0,a1) )
  55. /* #pragma regcall ( a0 = findmod(a0,a1) ) */
  56. #endif
  57.  
  58.