1*c1f9ae0dSMasatake YAMATO /* 2*c1f9ae0dSMasatake YAMATO * Copyright (c) 1996-2003, Darren Hiebert 3*c1f9ae0dSMasatake YAMATO * 4*c1f9ae0dSMasatake YAMATO * This source code is released for the public domain. 5*c1f9ae0dSMasatake YAMATO * 6*c1f9ae0dSMasatake YAMATO * This file defines the public interface for looking up tag entries in tag 7*c1f9ae0dSMasatake YAMATO * files. 8*c1f9ae0dSMasatake YAMATO */ 9*c1f9ae0dSMasatake YAMATO #ifndef PRINTTAGS_H 10*c1f9ae0dSMasatake YAMATO #define PRINTTAGS_H 11*c1f9ae0dSMasatake YAMATO 12*c1f9ae0dSMasatake YAMATO #ifdef __cplusplus 13*c1f9ae0dSMasatake YAMATO extern "C" { 14*c1f9ae0dSMasatake YAMATO #endif 15*c1f9ae0dSMasatake YAMATO 16*c1f9ae0dSMasatake YAMATO /* 17*c1f9ae0dSMasatake YAMATO * INCLUDE FILES 18*c1f9ae0dSMasatake YAMATO */ 19*c1f9ae0dSMasatake YAMATO #include "readtags.h" 20*c1f9ae0dSMasatake YAMATO 21*c1f9ae0dSMasatake YAMATO /* 22*c1f9ae0dSMasatake YAMATO * DATA DECLARATIONS 23*c1f9ae0dSMasatake YAMATO */ 24*c1f9ae0dSMasatake YAMATO 25*c1f9ae0dSMasatake YAMATO typedef struct { 26*c1f9ae0dSMasatake YAMATO int (* printStr) (const char *, void *); 27*c1f9ae0dSMasatake YAMATO int (* printChar) (int, void *); 28*c1f9ae0dSMasatake YAMATO } tagPrintProcs; 29*c1f9ae0dSMasatake YAMATO 30*c1f9ae0dSMasatake YAMATO typedef struct { 31*c1f9ae0dSMasatake YAMATO /* TODO: int version; */ 32*c1f9ae0dSMasatake YAMATO int extensionFields; 33*c1f9ae0dSMasatake YAMATO int lineNumber; 34*c1f9ae0dSMasatake YAMATO int escaping; 35*c1f9ae0dSMasatake YAMATO /* version 1 */ 36*c1f9ae0dSMasatake YAMATO } tagPrintOptions; 37*c1f9ae0dSMasatake YAMATO 38*c1f9ae0dSMasatake YAMATO /* 39*c1f9ae0dSMasatake YAMATO * FUNCTION PROTOTYPES 40*c1f9ae0dSMasatake YAMATO */ 41*c1f9ae0dSMasatake YAMATO 42*c1f9ae0dSMasatake YAMATO /* 43*c1f9ae0dSMasatake YAMATO * Print a tag to the file stream. 44*c1f9ae0dSMasatake YAMATO */ 45*c1f9ae0dSMasatake YAMATO extern int tagsPrint (const tagEntry *entry, 46*c1f9ae0dSMasatake YAMATO tagPrintOptions *opts, tagPrintProcs *procs, void *outfp); 47*c1f9ae0dSMasatake YAMATO extern int tagsPrintPseudoTag (const tagEntry *entry, 48*c1f9ae0dSMasatake YAMATO tagPrintOptions *opts, tagPrintProcs *procs, void *outfp); 49*c1f9ae0dSMasatake YAMATO 50*c1f9ae0dSMasatake YAMATO #ifdef __cplusplus 51*c1f9ae0dSMasatake YAMATO }; 52*c1f9ae0dSMasatake YAMATO #endif 53*c1f9ae0dSMasatake YAMATO 54*c1f9ae0dSMasatake YAMATO #endif /* PRINTTAGS_H */ 55