cScm Configuration Daemon

cScm – is a tool to convert SCM configuration files into binary format and store its in shared memory for reading by cSvn-ui and cGit-ui CGI scripts

12 Commits   0 Branches   1 Tag
     5         kx 
     5         kx #ifndef    __SYMTAB_H
     5         kx #define    __SYMTAB_H
     5         kx 
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx extern "C" {
     5         kx #endif
     5         kx 
     5         kx /******************************
     5         kx   SYMBOL is a node of symlist:
     5         kx  */
     5         kx typedef struct symbol SYMBOL;
     5         kx struct symbol
     5         kx {
     5         kx   char *name;          /* Variable name */
     5         kx   int   type;          /* VARIABLE, SECTION, REPO, NUMERICAL, STRING, PATH */
     5         kx   union
     5         kx   {
     5         kx     int   value;       /* for NUMERICAL */
     5         kx     char *string;      /* for STRING */
     5         kx     char *path;        /* for PATH */
     5         kx   } u;
     5         kx 
     5         kx   struct symbol *list; /* The list of variables. Used for SECTION and REPO */
     5         kx 
     5         kx   struct symbol *next; /* Next Symbol */
     5         kx };
     5         kx 
     5         kx /**********************************************
     5         kx   SYMTAB is an entry of the stack of symlists:
     5         kx  */
     5         kx typedef struct symtab SYMTAB;
     5         kx struct symtab
     5         kx {
     5         kx   SYMBOL **symlist;
     5         kx   struct symtab *next; /* Next Entry */
     5         kx };
     5         kx 
     5         kx 
     5         kx extern SYMBOL *symlist;
     5         kx 
     5         kx extern void init_symtab( void );
     5         kx extern void push_symlist( SYMBOL **head );
     5         kx extern void pop_symlist( void );
     5         kx extern void fini_symtab( void );
     5         kx 
     5         kx extern void reverse_symlist( SYMBOL **head );
     5         kx extern void remove_consts( SYMBOL **head );
     5         kx 
     5         kx //debug
     5         kx extern void print_symlist( int indent, SYMBOL *head );
     5         kx 
     5         kx extern SYMBOL *install( const char *s, int type, ... );
     5         kx extern SYMBOL *lookup( const char *s );
     5         kx extern SYMBOL *lookup_section( const char *s );
     5         kx extern SYMBOL *lookup_repo( const char *s );
     5         kx 
     5         kx extern SYMBOL *assign_value( SYMBOL *dest, SYMBOL *src );
     5         kx 
     5         kx 
     5         kx 
     5         kx #ifdef __cplusplus
     5         kx }
     5         kx #endif
     5         kx 
     5         kx #endif  /* __SYMTAB_H */