/* Copyright (c) Xerox Corporation 1993. All rights reserved. */
/* tiogatxt.ch -- Text subclass that can read Tioga files.
   David Nichols
   December, 1990 */

struct tiogatxt←Run {
    long looks;			/* bitmap of looks */
    long start;			/* start position */
    long len;			/* length */
};

struct tiogatxt←Env {
    struct environment *env;	/* current environment */
    struct environment *env2;	/* wrapped around env, maybe */
    long pos;			/* where to start it */
    int comment;		/* is this node a comment? */
};

#define tiogatxt←NUMLOOKS	26

class tiogatxt: text {
 overrides:
    SetAttributes(struct attributes *atts);
    Read(FILE *file, long id) returns long;
    Write(FILE *file, long writeID, int level) returns long;
    ViewName() returns char *;
 data:
    char *reader;		/* saved tread←Reader */
    struct tiogatxt←Run *runs;	/* saved runs during reading */
    int nRuns;			/* number of them */
    int nAllocedRuns;		/* space for them */
    struct tiogatxt←Env *envs;	/* stacked envs during reading */
    int nEnvs;			/* number of them */
    int nAllocedEnvs;		/* space for them */
    struct style *topStyle;	/* special top-level style */
    struct style *lookTable[tiogatxt←NUMLOOKS];	/* cached looks for reading */
};