DataMuseum.dk

Presents historical artifacts from the history of:

DKUUG/EUUG Conference tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about DKUUG/EUUG Conference tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: T t

⟦79bce7fa0⟧ TextFile

    Length: 2834 (0xb12)
    Types: TextFile
    Names: »tai_tb.c«

Derivation

└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
    └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« 
        └─⟦e5a54fb17⟧ 
            └─⟦this⟧ »pp-5.0/Lib/tai/tai_tb.c« 

TextFile

/* tai_tb.c: table tailoring info */

# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/tai/RCS/tai_tb.c,v 5.0 90/09/20 16:16:44 pp Exp Locker: pp $";
# endif

/*
 * $Header: /cs/research/pp/hubris/pp-beta/Lib/tai/RCS/tai_tb.c,v 5.0 90/09/20 16:16:44 pp Exp Locker: pp $
 *
 * $Log:	tai_tb.c,v $
 * Revision 5.0  90/09/20  16:16:44  pp
 * rcsforce : 5.0 public release
 * 
 */



#include "util.h"
#include <isode/cmd_srch.h>
#include "table.h"


extern  int             tb_maxtables;
static  int             tb_numtables = 0;
static  char            tbl_str[] = "tbl";
char                    *tai_alloc();

#define CMDTNAME        1
#define CMDTFILE        2
#define CMDTSHOW        3
#define CMDTFLAGS       4


static  CMD_TABLE tb_cmdtbl[] = {
	"name",         CMDTNAME,
	"file",         CMDTFILE,
	"show",         CMDTSHOW,
	"flags",        CMDTFLAGS,
	0,              -1
};



#define CMDTFLINEAR     1
#define CMDTFDBM        2
#define CMDTFNS         3
#define CMDTFDOMAIN     4
#define CMDTFCHANNEL    5
#define CMDTFROOT       6
#define CMDTFPARTIAL    7


static  CMD_TABLE tb_flags[] = {
	"linear",       CMDTFLINEAR,
	"dbm",          CMDTFDBM,
	"ns",           CMDTFNS,
	"domain",       CMDTFDOMAIN,
	"channel",      CMDTFCHANNEL,
	"root",         CMDTFROOT,
	"partial",      CMDTFPARTIAL,
	0,              -1
};



/* ---------------------  Begin  Routines  -------------------------------- */



int tbl_tai (argc, argv)
int     argc;
char    **argv;
{
	register Table  *tbptr;
	char            *p,
			*arg;
	int             ind;

	if (argc < 2 || lexequ (argv[0], tbl_str) != 0)
		return (NOTOK);

	if (tb_numtables + 1 >= tb_maxtables) {
		PP_OPER (NULLCP, ("tailor: exceed table size"));
		return (NOTOK);
	}

	argc--;
	arg = tai_alloc (*++argv);
	tb_all[tb_numtables++] = tbptr = (Table *) smalloc ((sizeof (Table)));
	tb_all [tb_numtables]   = NULLTBL;
	tbptr -> tb_name        = arg;
	tbptr -> tb_show        = arg;
	tbptr -> tb_file        = arg;
	tbptr -> tb_fp          = NULLFILE;
	tbptr -> tb_flags       = TB_DBM;
	argv++;
	argc--;

	for (ind = 0 ; ind < argc ; ind++) {

		if ((p = index (argv[ind], '=')) == NULLCP)
			continue;
		*p++ = '\0';

		switch (cmd_srch (argv[ind], tb_cmdtbl)) {
		case CMDTNAME:
			tbptr->tb_name = tai_alloc (p);
			break;
		case CMDTFILE:
			tbptr->tb_file = tai_alloc (p);
			break;
		case CMDTSHOW:
			tbptr->tb_show = tai_alloc (p);
			break;
		case CMDTFLAGS:
			switch (cmd_srch (p, tb_flags)) {
			case CMDTFDBM:
				tbptr->tb_flags = TB_DBM;
				break;
			case CMDTFLINEAR:
				tbptr->tb_flags = TB_LINEAR;
				break;
			case CMDTFNS:
				tbptr->tb_flags = TB_NS;
				break;
			case CMDTFDOMAIN:
			case CMDTFCHANNEL:
			case CMDTFROOT:
			case CMDTFPARTIAL:
				break;
			}
			break;
		default:
			continue;
		}
	}
	return (OK);
}