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) #ifdef HAVE_CONFIG_H
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  3) #include <config.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  4) #endif
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  5) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  6) #include <stdlib.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  7) #include <stdio.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  8) #include <unistd.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300  9) #include <string.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 10) #include <stdarg.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 11) #include <limits.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 12) #include <locale.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 13) #include <wchar.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 14) #include <wctype.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 15) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 16) #include <defs.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 17) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 18) #include <error.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 19) #include <msglog.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 20) #include <utf8ing.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 21) #include <lex.h>
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 22) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 23) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 24) extern char *config_fname;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 25) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 26) int errors   = 0;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 27) int warnings = 0;
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) void error( char *fmt, ... )
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 31) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 32)   va_list arg_ptr;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 33)   char  buf[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 34)   char  msg[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 35)   char *format = "%s:%d:%d: %s";
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 36) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 37)   va_start( arg_ptr, fmt );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 38) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 39)   vsnprintf( msg, MAX_ERROR_MSG_SIZE, (const void *)fmt, arg_ptr );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 40) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 41)   va_end( arg_ptr ); /* Reset variable arguments. */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 42) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 43)   snprintf( buf, MAX_ERROR_MSG_SIZE, format, config_fname, lineno, colno, msg );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 44) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 45)   ERROR( "%s", buf );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 46) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 47)   ++errors;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 48) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 49) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 50) void warning( char *fmt, ... )
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 51) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 52)   va_list arg_ptr;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 53)   char  buf[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 54)   char  msg[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 55)   char *format = "%s:%d:%d: %s";
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 56) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 57)   va_start( arg_ptr, fmt );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 58) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 59)   vsnprintf( msg, MAX_ERROR_MSG_SIZE, (const void *)fmt, arg_ptr );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 60) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 61)   va_end( arg_ptr ); /* Reset variable arguments. */
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 62) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 63)   snprintf( buf, MAX_ERROR_MSG_SIZE, format, config_fname, lineno, colno, msg );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 64) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 65)   WARNING( "%s", buf );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 66) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 67)   ++warnings;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 68) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 69) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 70) void no_space( void )
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 71) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 72)   char  buf[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 73)   char *format = "%s: Cannot allocate memory";
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 74) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 75)   snprintf( buf, MAX_ERROR_MSG_SIZE, format, config_fname );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 76) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 77)   FATAL_ERROR( "%s", buf );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 78) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 79)   ++errors;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 80) }
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 81) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 82) void unterminated_comment( void )
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 83) {
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 84)   char  buf[MAX_ERROR_MSG_SIZE];
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 85)   char *format = "%s:%d:%d: Unterminated comment";
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 86) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 87)   snprintf( buf, MAX_ERROR_MSG_SIZE, format, config_fname, lineno, colno );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 88) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 89)   ERROR( "%s", buf );
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 90) 
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 91)   ++errors;
12c7b1c5 (kx 2023-03-24 02:53:04 +0300 92) }