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

2 Commits   0 Branches   1 Tag
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  1) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  2) #ifndef    __SYMTAB_H
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  3) #define    __SYMTAB_H
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  4) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  5) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  6) #ifdef __cplusplus
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  7) extern "C" {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  8) #endif
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  9) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 10) /******************************
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 11)   SYMBOL is a node of symlist:
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 12)  */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 13) typedef struct symbol SYMBOL;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 14) struct symbol
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 15) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 16)   char *name;          /* Variable name */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 17)   int   type;          /* VARIABLE, SECTION, REPO, NUMERICAL, STRING, PATH */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 18)   union
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 19)   {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 20)     int   value;       /* for NUMERICAL */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 21)     char *string;      /* for STRING */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 22)     char *path;        /* for PATH */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 23)   } u;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 24) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 25)   struct symbol *list; /* The list of variables. Used for SECTION and REPO */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 26) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 27)   struct symbol *next; /* Next Symbol */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 28) };
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 29) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 30) /**********************************************
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 31)   SYMTAB is an entry of the stack of symlists:
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 32)  */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 33) typedef struct symtab SYMTAB;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 34) struct symtab
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 35) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 36)   SYMBOL **symlist;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 37)   struct symtab *next; /* Next Entry */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 38) };
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 39) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 40) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 41) extern SYMBOL *symlist;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 42) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 43) extern void init_symtab( void );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 44) extern void push_symlist( SYMBOL **head );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 45) extern void pop_symlist( void );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 46) extern void fini_symtab( void );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 47) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 48) extern void reverse_symlist( SYMBOL **head );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 49) extern void remove_consts( SYMBOL **head );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 50) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 51) //debug
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 52) extern void print_symlist( int indent, SYMBOL *head );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 53) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 54) extern SYMBOL *install( const char *s, int type, ... );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 55) extern SYMBOL *lookup( const char *s );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 56) extern SYMBOL *lookup_section( const char *s );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 57) extern SYMBOL *lookup_repo( const char *s );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 58) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 59) extern SYMBOL *assign_value( SYMBOL *dest, SYMBOL *src );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 60) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 61) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 62) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 63) #ifdef __cplusplus
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 64) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 65) #endif
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 66) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 67) #endif  /* __SYMTAB_H */