/******************************************************************** * lindner * 3.3 * 1993/10/20 03:11:57 * /home/arcwelder/GopherSrc/CVS/gopher+/gopherd/ext.h,v * Exp * * Paul Lindner, University of Minnesota CIS. * * Copyright 1991, 1992 by the Regents of the University of Minnesota * see the file "Copyright" in the distribution for conditions of use. ********************************************************************* * MODULE: ext.h * Header file and access methods for filename extension routines ********************************************************************* * Revision History: * ext.h,v * Revision 3.3 1993/10/20 03:11:57 lindner * Additions for regular expressions * * Revision 3.2 1993/07/23 03:18:50 lindner * Mods for using decoder:'s * * Revision 3.1.1.1 1993/02/11 18:02:51 lindner * Gopher+1.2beta release * * Revision 1.3 1993/02/09 22:13:57 lindner * Added Language attributes * * Revision 1.2 1993/01/30 23:57:44 lindner * Changed fcn prefix to EX and EXA * * Revision 1.1 1992/12/10 23:13:27 lindner * gopher 1.1 release * * *********************************************************************/ #ifndef EXT_H #define EXT_H #include "DAarray.h" #include "STRstring.h" #include "boolean.h" /*** Map extensions to any of these ***/ #define EXT_REGEXP 128 #define EXT_ERROR -1 #define EXT_VIEW 1 #define EXT_IGNORE 2 #define EXT_ABSTRACT 3 #define EXT_BLOCK 4 #define EXT_BLOCKREF 5 #define EXT_DECODER 6 #ifdef VMS_SERVER #define EXT_MISC 7 #endif #define EXT_IGNOREPAT (EXT_REGEXP|EXT_IGNORE) /**************************************************** * A structure for mapping filenames to gopher types, and G+types */ struct Ext_struct { char Objtype; String *View; String *ViewLang; String *Prefix; String *ext; int exttype; /** One of the constants defined above **/ String *GenericData; }; typedef struct Ext_struct Extobj; /*** Macros and access methods ***/ #define EXgetObjtype(a) ((a)->Objtype) #define EXsetObjtype(a,b) ((a)->Objtype=(b)) #define EXgetView(a) STRget((a)->View) #define EXsetView(a,b) STRset((a)->View,(b)) #define EXgetVLang(a) STRget((a)->ViewLang) #define EXsetVLang(a,b) STRset((a)->ViewLang,(b)) #define EXgetPrefix(a) STRget((a)->Prefix) #define EXsetPrefix(a,b) STRset((a)->Prefix,(b)) #define EXgetExt(a) STRget((a)->ext) #define EXsetExt(a,b) STRset((a)->ext,(b)) #define EXgetExttype(a) ((a)->exttype) #define EXsetExttype(a,b) ((a)->exttype=(b)) #define EXgetBlockname(a) STRget((a)->GenericData) #define EXsetBlockname(a,b) STRset((a)->GenericData,(b)) #define EXgetDecoder(a) STRget((a)->GenericData) #define EXsetDecoder(a,b) STRset((a)->GenericData,(b)) Extobj *EXnew(); void EXdestroy(); void EXcpy(); /*** Definitions for an Array of extension objects ***/ typedef DynArray ExtArray; #define EXAnew() (ExtArray *)(DAnew(20,EXnew,NULL,EXdestroy,EXcpy)) #define EXAdestroy(a) (DAdestroy(a)) #define EXAgetEntry(a,b) (Extobj *)(DAgetEntry((DynArray*)a,b)) #define EXAadd(a,b) (DApush(a,b)) #define EXAgetNumEntries(a) (DAgetTop(a)) boolean EXAprocessLine(/*extarr, inputline*/); boolean EXAsearch(); boolean EXAviewSearch(); char * EXAfindFile(); #ifdef VMS_SERVER #define EXAcpy(a,b) (DAcpy(a,b)) #endif #endif /** EXT_H **/ .