? conf107227.file ? conf107227.sh ? config.log.gz ? diff-21-nov-2006-err.txt ? diff-21-nov-2006.txt ? diff-22-nov-2006-err.txt ? diff-22-nov-2006.txt ? do-332-test.sh ? do-345-test.sh ? do-configure4.sh ? do-configure5.sh ? do-configure6.sh ? do-configure7.sh ? do-test-1998.sh ? do-test-posix.sh ? do-test-xpg.sh ? do-test.sh ? gmake.out ? so_locations ? test ? version_check ? doc/PServer ? doc/Plugins ? expat/so_locations ? pcre/so_locations ? protocols/ntlm/so_locations Index: Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/Makefile.in,v retrieving revision 1.29.2.58 diff -c -r1.29.2.58 Makefile.in *** Makefile.in 7 Jun 2006 16:37:22 -0000 1.29.2.58 --- Makefile.in 5 Jul 2006 14:26:07 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvsapi/FileAccess.h =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/FileAccess.h,v retrieving revision 1.1.2.10 diff -c -r1.1.2.10 FileAccess.h *** cvsapi/FileAccess.h 14 Sep 2005 15:59:20 -0000 1.1.2.10 --- cvsapi/FileAccess.h 26 Jul 2006 06:02:47 -0000 *************** *** 26,31 **** --- 26,38 ---- #endif #endif + #ifdef __digital + #if _XOPEN_SOURCE<500 + extern int fseeko __((FILE *, off_t, int)); + extern off_t ftello __((FILE *)); + #endif /* XSH5 */ + #endif + #include "cvs_string.h" class CFileAccess Index: cvsapi/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/Makefile.in,v retrieving revision 1.1.2.30 diff -c -r1.1.2.30 Makefile.in *** cvsapi/Makefile.in 9 Jun 2006 17:26:50 -0000 1.1.2.30 --- cvsapi/Makefile.in 5 Jul 2006 14:26:07 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvsapi/cvs_string.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/cvs_string.cpp,v retrieving revision 1.1.2.15 diff -c -r1.1.2.15 cvs_string.cpp *** cvsapi/cvs_string.cpp 7 Jun 2006 17:58:37 -0000 1.1.2.15 --- cvsapi/cvs_string.cpp 26 Jul 2006 06:00:39 -0000 *************** *** 43,49 **** // platforms prefer it. // OSX barfs if we try this also. // Also HPUX aCC ! #if !defined (_WIN32) && !defined(__APPLE__) && !defined(__hpux) template class std::char_traits; template class std::char_traits; template class std::basic_string; --- 43,49 ---- // platforms prefer it. // OSX barfs if we try this also. // Also HPUX aCC ! #if !defined (_WIN32) && !defined(__APPLE__) && !defined(__hpux) && !defined(__digital) template class std::char_traits; template class std::char_traits; template class std::basic_string; Index: cvsapi/cvs_string.h =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/cvs_string.h,v retrieving revision 1.1.2.32 diff -c -r1.1.2.32 cvs_string.h *** cvsapi/cvs_string.h 9 Nov 2005 11:49:03 -0000 1.1.2.32 --- cvsapi/cvs_string.h 13 Nov 2006 01:13:47 -0000 *************** *** 109,114 **** --- 109,118 ---- str.resize(str.size()*2); else if(res>=(int)str.size()) /* C99 */ str.resize(res+1); + #ifdef __digital + else if(res+1==(int)str.size()) /* Tru64 */ + str.resize(res+1); + #endif else break; } while(true); *************** *** 133,138 **** --- 137,146 ---- str.resize(str.size()*2); else if(res>=(int)str.size()) /* C99 */ str.resize(res+1); + #ifdef __digital + else if(res+1==(int)str.size()) /* Tru64 */ + str.resize(res+1); + #endif else break; } while(true); Index: cvsapi/db/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/db/Makefile.in,v retrieving revision 1.1.2.7 diff -c -r1.1.2.7 Makefile.in *** cvsapi/db/Makefile.in 9 Jun 2006 17:26:51 -0000 1.1.2.7 --- cvsapi/db/Makefile.in 5 Jul 2006 14:26:07 -0000 *************** *** 108,113 **** --- 108,114 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvsapi/lib/fnmatch.c =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/lib/fnmatch.c,v retrieving revision 1.1.2.4 diff -c -r1.1.2.4 fnmatch.c *** cvsapi/lib/fnmatch.c 18 Jan 2006 10:17:57 -0000 1.1.2.4 --- cvsapi/lib/fnmatch.c 26 Jul 2006 06:01:59 -0000 *************** *** 33,38 **** --- 33,39 ---- #include #include "api_system.h" #include + #include #include #ifdef HAVE_STDDEF_H Index: cvsapi/mdns/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/mdns/Makefile.in,v retrieving revision 1.1.2.7 diff -c -r1.1.2.7 Makefile.in *** cvsapi/mdns/Makefile.in 9 Jun 2006 17:26:51 -0000 1.1.2.7 --- cvsapi/mdns/Makefile.in 5 Jul 2006 14:26:07 -0000 *************** *** 108,113 **** --- 108,114 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvsapi/mysql/MySqlConnection.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/mysql/MySqlConnection.cpp,v retrieving revision 1.1.2.21 diff -c -r1.1.2.21 MySqlConnection.cpp *** cvsapi/mysql/MySqlConnection.cpp 7 Feb 2006 15:39:33 -0000 1.1.2.21 --- cvsapi/mysql/MySqlConnection.cpp 2 Aug 2006 04:04:35 -0000 *************** *** 110,117 **** { cvs::string str; va_list va; va_start(va,string); ! cvs::vsprintf(str,64,string,va); va_end(va); CMySqlRecordset *rs = new CMySqlRecordset; --- 110,118 ---- { cvs::string str; va_list va; + str.resize(1024000); va_start(va,string); ! cvs::vsprintf(str,1024000,string,va); va_end(va); CMySqlRecordset *rs = new CMySqlRecordset; Index: cvsapi/sqlite/SQLiteConnection.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/sqlite/SQLiteConnection.cpp,v retrieving revision 1.9.2.13 diff -c -r1.9.2.13 SQLiteConnection.cpp *** cvsapi/sqlite/SQLiteConnection.cpp 7 Feb 2006 15:39:33 -0000 1.9.2.13 --- cvsapi/sqlite/SQLiteConnection.cpp 2 Aug 2006 04:03:59 -0000 *************** *** 112,119 **** { cvs::string str; va_list va; va_start(va,string); ! cvs::vsprintf(str,64,string,va); va_end(va); CSQLiteRecordset *rs = new CSQLiteRecordset(); --- 112,121 ---- { cvs::string str; va_list va; + + str.resize(1024000); va_start(va,string); ! cvs::vsprintf(str,1024000,string,va); va_end(va); CSQLiteRecordset *rs = new CSQLiteRecordset(); Index: cvsapi/sqlite/SQLiteRecordset.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/sqlite/SQLiteRecordset.cpp,v retrieving revision 1.7.2.2 diff -c -r1.7.2.2 SQLiteRecordset.cpp *** cvsapi/sqlite/SQLiteRecordset.cpp 30 Jun 2005 19:15:05 -0000 1.7.2.2 --- cvsapi/sqlite/SQLiteRecordset.cpp 14 Nov 2006 09:42:19 -0000 *************** *** 34,39 **** --- 34,41 ---- #endif #include + // for strcasecmp() + #include #include "../cvs_string.h" #include "../ServerIO.h" Index: cvsdelta/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsdelta/Makefile.in,v retrieving revision 1.1.2.19 diff -c -r1.1.2.19 Makefile.in *** cvsdelta/Makefile.in 26 Oct 2005 04:55:14 -0000 1.1.2.19 --- cvsdelta/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvsgui/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsgui/Makefile.in,v retrieving revision 1.5.2.28 diff -c -r1.5.2.28 Makefile.in *** cvsgui/Makefile.in 26 Oct 2005 04:55:14 -0000 1.5.2.28 --- cvsgui/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvstools/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/cvstools/Makefile.in,v retrieving revision 1.1.2.13 diff -c -r1.1.2.13 Makefile.in *** cvstools/Makefile.in 9 Jun 2006 17:28:13 -0000 1.1.2.13 --- cvstools/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: cvstools/TriggerLibrary.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvstools/TriggerLibrary.cpp,v retrieving revision 1.1.2.6 diff -c -r1.1.2.6 TriggerLibrary.cpp *** cvstools/TriggerLibrary.cpp 23 May 2006 14:09:49 -0000 1.1.2.6 --- cvstools/TriggerLibrary.cpp 2 Aug 2006 03:10:18 -0000 *************** *** 416,424 **** { #ifdef _WIN32 DWORD dwErr = GetLastError(); ! CServerIo::trace(3,"Unable to load %s: error 0x%08x",dwErr); #else ! CServerIo::trace(3,"Unable to load %s: error %d",errno); #endif return NULL; } --- 416,424 ---- { #ifdef _WIN32 DWORD dwErr = GetLastError(); ! CServerIo::trace(3,"Unable to load %s: error 0x%08x",library,dwErr); #else ! CServerIo::trace(3,"Unable to load %s: error %d",library,errno); #endif return NULL; } Index: diff/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/diff/Makefile.in,v retrieving revision 1.18.2.26 diff -c -r1.18.2.26 Makefile.in *** diff/Makefile.in 9 Feb 2006 15:39:06 -0000 1.18.2.26 --- diff/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: diff/diff.c =================================================================== RCS file: /usr/local/cvs/cvsnt/diff/diff.c,v retrieving revision 1.14.2.24 diff -c -r1.14.2.24 diff.c *** diff/diff.c 16 Feb 2006 21:22:20 -0000 1.14.2.24 --- diff/diff.c 15 Nov 2006 00:03:51 -0000 *************** *** 1033,1039 **** --- 1033,1041 ---- } } else + { stat_result = callbacks?callbacks->stat(inf[i].name, &inf[i].stat):stat(inf[i].name, &inf[i].stat); + } if (stat_result != 0) { Index: diff/system.h =================================================================== RCS file: /usr/local/cvs/cvsnt/diff/system.h,v retrieving revision 1.7.2.8 diff -c -r1.7.2.8 system.h *** diff/system.h 29 Jul 2005 20:55:57 -0000 1.7.2.8 --- diff/system.h 21 Nov 2006 07:01:11 -0000 *************** *** 113,118 **** --- 113,119 ---- #endif #ifndef STAT_BLOCKSIZE + //#if HAVE_STRUCT_STAT_ST_BLKSIZE && !defined(__digital) #if HAVE_STRUCT_STAT_ST_BLKSIZE #define STAT_BLOCKSIZE(s) (s).st_blksize #else *************** *** 225,231 **** --- 226,236 ---- /* Do struct stat *S, *T describe the same file? Answer -1 if unknown. */ #ifndef same_file + #ifndef __digital #define same_file(s,t) ((s)->st_ino==(t)->st_ino && (s)->st_dev==(t)->st_dev) + #else + #define same_file(s,t) ((s)->st_ino==(t)->st_ino && (s)->st_dev==(t)->st_dev && (s)->st_gen==(t)->st_gen) + #endif #endif /* Place into Q a quoted version of A suitable for `popen' or `system', Index: lib/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/lib/Makefile.in,v retrieving revision 1.18.2.35 diff -c -r1.18.2.35 Makefile.in *** lib/Makefile.in 26 Oct 2005 04:55:14 -0000 1.18.2.35 --- lib/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: lib/fnmatch.c =================================================================== RCS file: /usr/local/cvs/cvsnt/lib/fnmatch.c,v retrieving revision 1.5.2.4 diff -c -r1.5.2.4 fnmatch.c *** lib/fnmatch.c 5 Jul 2006 10:59:59 -0000 1.5.2.4 --- lib/fnmatch.c 26 Jul 2006 06:01:24 -0000 *************** *** 32,37 **** --- 32,38 ---- #include #include + #include #include #ifdef SYS_TYPES_H #include Index: lib/system.h =================================================================== RCS file: /usr/local/cvs/cvsnt/lib/system.h,v retrieving revision 1.12.2.22 diff -c -r1.12.2.22 system.h *** lib/system.h 8 Oct 2005 16:39:06 -0000 1.12.2.22 --- lib/system.h 14 Nov 2006 23:07:11 -0000 *************** *** 432,445 **** --- 432,455 ---- #endif #ifndef CVS_STAT + #ifndef __digital #define CVS_STAT stat + #else + int digital_stat(const char *path, struct stat *buffer ); + #define CVS_STAT digital_stat + #endif #endif /* Open question: should CVS_STAT be lstat by default? We need to use lstat in order to handle symbolic links correctly with the PreservePermissions option. -twp */ #ifndef CVS_LSTAT + #ifndef __digital #define CVS_LSTAT lstat + #else + int digital_lstat(const char *path, struct stat *buffer ); + #define CVS_LSTAT digital_lstat + #endif #endif #ifndef CVS_UNLINK Index: lockservice/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/lockservice/Makefile.in,v retrieving revision 1.6.2.32 diff -c -r1.6.2.32 Makefile.in *** lockservice/Makefile.in 9 Jun 2006 17:28:33 -0000 1.6.2.32 --- lockservice/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: man/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/man/Makefile.in,v retrieving revision 1.19.2.23 diff -c -r1.19.2.23 Makefile.in *** man/Makefile.in 26 Oct 2005 04:55:14 -0000 1.19.2.23 --- man/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: mdnsclient/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/mdnsclient/Makefile.in,v retrieving revision 1.1.2.8 diff -c -r1.1.2.8 Makefile.in *** mdnsclient/Makefile.in 26 Oct 2005 04:55:15 -0000 1.1.2.8 --- mdnsclient/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: osx/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/osx/Makefile.in,v retrieving revision 1.1.2.13 diff -c -r1.1.2.13 Makefile.in *** osx/Makefile.in 26 Oct 2005 04:55:15 -0000 1.1.2.13 --- osx/Makefile.in 5 Jul 2006 14:26:08 -0000 *************** *** 107,112 **** --- 107,113 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: pcre/pcreposix.h =================================================================== RCS file: /usr/local/cvs/cvsnt/pcre/pcreposix.h,v retrieving revision 1.1.2.3 diff -c -r1.1.2.3 pcreposix.h *** pcre/pcreposix.h 23 Jun 2006 15:41:27 -0000 1.1.2.3 --- pcre/pcreposix.h 26 Jul 2006 05:58:55 -0000 *************** *** 98,109 **** --- 98,116 ---- /* The structure in which a captured offset is returned. */ + #ifdef __digital + #ifndef _REG_TYPES_H_ + #include + #endif + typedef __regmatch_t regmatch_t; + #else typedef int regoff_t; typedef struct { regoff_t rm_so; regoff_t rm_eo; } regmatch_t; + #endif /* Win32 uses DLL by default; it needs special stuff for exported functions when building PCRE. */ Index: protocols/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/protocols/Makefile.in,v retrieving revision 1.24.2.37 diff -c -r1.24.2.37 Makefile.in *** protocols/Makefile.in 9 Jun 2006 17:36:56 -0000 1.24.2.37 --- protocols/Makefile.in 5 Jul 2006 14:26:09 -0000 *************** *** 121,126 **** --- 121,127 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: rcs/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/rcs/Makefile.in,v retrieving revision 1.2.2.25 diff -c -r1.2.2.25 Makefile.in *** rcs/Makefile.in 26 Oct 2005 04:55:15 -0000 1.2.2.25 --- rcs/Makefile.in 5 Jul 2006 14:26:09 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: src/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/src/Makefile.in,v retrieving revision 1.28.2.53 diff -c -r1.28.2.53 Makefile.in *** src/Makefile.in 9 Jun 2006 17:29:04 -0000 1.28.2.53 --- src/Makefile.in 5 Jul 2006 14:26:09 -0000 *************** *** 120,125 **** --- 120,126 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: src/commit.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/commit.c,v retrieving revision 1.39.2.138 diff -c -r1.39.2.138 commit.cpp *** src/commit.cpp 3 Apr 2006 09:48:50 -0000 1.39.2.138 --- src/commit.cpp 27 Jul 2006 02:53:18 -0000 *************** *** 2076,2081 **** --- 2076,2083 ---- cvs_output (fn_root(rcs), 0); cvs_output ("\ndone\n", 0); + TRACE(2,"in commit.cpp checkaddfile() calls add_rcs_file with \"%s\"", + (char *)file); if (add_rcs_file (NULL, rcs, (char*)file, NULL, opt, NULL, NULL, 0, NULL, desc, desclen, NULL, callback) != 0) Index: src/cvs.h =================================================================== RCS file: /usr/local/cvs/cvsnt/src/cvs.h,v retrieving revision 1.93.2.208 diff -c -r1.93.2.208 cvs.h *** src/cvs.h 8 May 2006 13:17:08 -0000 1.93.2.208 --- src/cvs.h 13 Nov 2006 06:07:44 -0000 *************** *** 1122,1127 **** --- 1122,1128 ---- int old_checkout_n_behaviour; int hide_extended_status; int ignore_client_wrappers; + char author_space; /* what to replace spaces in the author with */ } cvs_compat_t; extern int compat_level; Index: src/import.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/import.c,v retrieving revision 1.38.2.90 diff -c -r1.38.2.90 import.cpp *** src/import.cpp 1 Jun 2006 12:00:09 -0000 1.38.2.90 --- src/import.cpp 27 Jul 2006 02:50:25 -0000 *************** *** 745,750 **** --- 745,752 ---- } #endif + TRACE(2,"process_import_file calls add_rcs_file vfile=\"%s\".", + vfile); retval = add_rcs_file (message, rcs, vfile, vhead, our_opt, vbranch, vtag, targc, targv, NULL, 0, logfp, NULL); *************** *** 1279,1286 **** /* not fatal, continue import */ if (add_logfp != NULL) fperrmsg (add_logfp, 0, errno, ! "ERROR: cannot read file %s", userfile); ! error (0, errno, "ERROR: cannot read file %s", userfile); goto read_error; } } --- 1281,1288 ---- /* not fatal, continue import */ if (add_logfp != NULL) fperrmsg (add_logfp, 0, errno, ! "ERROR: cannot read file (import:1) %s", userfile); ! error (0, errno, "ERROR: cannot read file (import:2) %s", userfile); goto read_error; } } *************** *** 1516,1522 **** if (len == 0) { if (ferror (fpuser)) ! error (1, errno, "cannot read file %s for copying", userfile); } if(encode) { --- 1518,1524 ---- if (len == 0) { if (ferror (fpuser)) ! error (1, errno, "cannot read file (import:3) %s for copying", userfile); } if(encode) { Index: src/log.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/log.c,v retrieving revision 1.32.2.42 diff -c -r1.32.2.42 log.cpp *** src/log.cpp 15 Jan 2006 13:09:11 -0000 1.32.2.42 --- src/log.cpp 14 Nov 2006 21:19:56 -0000 *************** *** 153,162 **** static struct log_data log_data; static int is_rlog, is_rcs, supress_extra_fields; static const char *const log_usage[] = { ! "Usage: %s %s [-lRhtNbT] [-r[revisions]] [-B bugid] [-d dates] [-s states]\n", " [-w[logins]] [files...]\n", "\t-B bugid\tOnly list revisions related to bug.\n", "\t-b\t\tOnly list revisions on the default branch.\n", --- 153,163 ---- static struct log_data log_data; static int is_rlog, is_rcs, supress_extra_fields; + static int supress_blanks_in_author; static const char *const log_usage[] = { ! "Usage: %s %s [-lRhtNbTxXzZ] [-r[revisions]] [-B bugid] [-d dates] [-s states]\n", " [-w[logins]] [files...]\n", "\t-B bugid\tOnly list revisions related to bug.\n", "\t-b\t\tOnly list revisions on the default branch.\n", *************** *** 182,187 **** --- 183,190 ---- "\t-w[logins] \tOnly list revisions checked in by specified logins.\n", "\t-X\t\tcvs 1.x/RCS 5.7 compatible output.\n", "\t-x\t\tcvsnt 2.x compatible output (default).\n", + "\t-z\t\tConvert spaces in author to hyphens for more compatible output.\n", + "\t-Z\t\tAuthor in cvsnt 2.x format (with spaces).\n", "(Specify the --help global option for a list of other help options)\n", NULL }; *************** *** 223,228 **** --- 226,232 ---- is_rcs = (strcmp (command_name, "rcsfile") == 0); is_rlog = is_rcs || (strcmp (command_name, "rlog") == 0); supress_extra_fields = is_rcs || compat[compat_level].hide_extended_status; + supress_blanks_in_author=supress_extra_fields; if (argc == -1) usage (log_usage); *************** *** 232,238 **** log_data.local_time_offset = get_local_time_offset(); optind = 0; ! while ((c = getopt (argc, argv, "+bd:hSlNB:RxXr::s:tw::To:")) != -1) { switch (c) { --- 236,243 ---- log_data.local_time_offset = get_local_time_offset(); optind = 0; ! ! while ((c = getopt (argc, argv, "+bd:hSlNB:RxXzZr::s:tw::To:")) != -1) { switch (c) { *************** *** 289,294 **** --- 294,305 ---- case 'X': supress_extra_fields = 1; break; + case 'z': + supress_blanks_in_author = 1; + break; + case 'Z': + supress_blanks_in_author = 0; + break; case 'o': log_data.local_time_offset=atoi(optarg); break; *************** *** 1693,1698 **** --- 1704,1721 ---- cvs_output (buf, 0); cvs_output ("; author: ", 0); + if (supress_blanks_in_author) + { + if (ver->author!=NULL) + { + char *authorpos; + for (authorpos=ver->author;*authorpos!='\0';authorpos++) + { + if ((*authorpos==' ')||(*authorpos=='\t')) + *authorpos=compat[compat_level].author_space; + } + } + } cvs_output (ver->author, 0); cvs_output ("; state: ", 0); Index: src/main.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/main.c,v retrieving revision 1.71.2.151 diff -c -r1.71.2.151 main.cpp *** src/main.cpp 28 Jun 2006 12:29:24 -0000 1.71.2.151 --- src/main.cpp 14 Nov 2006 22:59:33 -0000 *************** *** 514,519 **** --- 514,530 ---- if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat0_HideStatus",buffer,sizeof(buffer))) compat[0].hide_extended_status = atoi(buffer); + if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat0_AuthorSpace",buffer,sizeof(buffer))) + { + compat[0].author_space = buffer[0]; + if (compat[0].author_space == '\0') + compat[0].author_space = '-'; + if (strcmp(buffer,"NULL")==0) + compat[0].author_space = '\0'; + } + else + compat[0].author_space = '-'; + if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat0_IgnoreWrappers",buffer,sizeof(buffer))) compat[0].ignore_client_wrappers = atoi(buffer); *************** *** 525,530 **** --- 536,552 ---- if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat1_HideStatus",buffer,sizeof(buffer))) compat[1].hide_extended_status = atoi(buffer); + + if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat1_AuthorSpace",buffer,sizeof(buffer))) + { + compat[1].author_space = buffer[0]; + if (compat[1].author_space == '\0') + compat[1].author_space = '-'; + if (strcmp(buffer,"NULL")==0) + compat[1].author_space = '\0'; + } + else + compat[1].author_space = '-'; if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","Compat1_IgnoreWrappers",buffer,sizeof(buffer))) compat[1].ignore_client_wrappers = atoi(buffer); Index: src/mkmodules.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/mkmodules.c,v retrieving revision 1.25.2.58 diff -c -r1.25.2.58 mkmodules.cpp *** src/mkmodules.cpp 28 Jun 2006 12:29:24 -0000 1.25.2.58 --- src/mkmodules.cpp 27 Jul 2006 02:57:02 -0000 *************** *** 1360,1365 **** --- 1360,1367 ---- /* The message used to say " of " and fileptr->filename after "initial checkin" but I fail to see the point as we know what file it is from the name. */ + TRACE(2,"mkmodules init calls add_rcs_file with \"%s\".", + fileptr->filename); retcode = add_rcs_file ("initial checkin", info_v, fileptr->filename, "1.1", NULL, Index: src/rcscmds.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/rcscmds.c,v retrieving revision 1.19.2.33 diff -c -r1.19.2.33 rcscmds.cpp *** src/rcscmds.cpp 8 May 2006 13:17:09 -0000 1.19.2.33 --- src/rcscmds.cpp 14 Nov 2006 22:32:04 -0000 *************** *** 177,182 **** --- 177,183 ---- static int call_diff_stat(const char *fn, struct stat *st) { + TRACE(2,"call CVS_STAT(%s,st)",fn); return CVS_STAT(fn,st); } *************** *** 211,221 **** --- 212,228 ---- static int call_diff (const char *out) { if (out == RUN_TTY) + { + TRACE(2,"call_diff(RUN_TTY)"); return diff_run (call_diff_argc, call_diff_argv, NULL, &call_diff_stdout_callbacks); + } else + { + TRACE(2,"call_diff(%s)",PATCH_NULL(out)); return diff_run (call_diff_argc, call_diff_argv, out, &call_diff_file_callbacks); + } } static int call_diff3 (const char *out) *************** *** 621,626 **** --- 628,634 ---- int diff_execv (const char *file1, const char *file2, const char *label1, const char *label2, const char *options, const char *out) { char *args; + int call_diff_result; TRACE(2,"diff_execv(%s,%s,%s,%s,%s,%s)",PATCH_NULL(file1),PATCH_NULL(file2),PATCH_NULL(label1),PATCH_NULL(label2),PATCH_NULL(options),PATCH_NULL(out)); *************** *** 638,644 **** call_diff_arg (file2); xfree (args); ! return call_diff (out); } /* Print the options passed to DIFF, in the format used by rcsdiff. --- 646,655 ---- call_diff_arg (file2); xfree (args); ! call_diff_result = call_diff (out); ! TRACE(2,"%d - call_diff (out)",call_diff_result); ! ! return call_diff_result; } /* Print the options passed to DIFF, in the format used by rcsdiff. Index: src/savecwd.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/savecwd.cpp,v retrieving revision 1.1.2.5 diff -c -r1.1.2.5 savecwd.cpp *** src/savecwd.cpp 13 Oct 2005 15:38:28 -0000 1.1.2.5 --- src/savecwd.cpp 26 Jul 2006 07:22:57 -0000 *************** *** 37,42 **** --- 37,49 ---- #include "savecwd.h" #include "../src/error.h" + #ifdef __digital + #ifndef _XOPEN_SOURCE_EXTENDED + extern int fchdir __((int)); + extern long gethostid __((void)); + #endif + #endif + char *xgetwd(); /* Record the location of the current working directory in CWD so that Index: src/server.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/server.c,v retrieving revision 1.106.2.210 diff -c -r1.106.2.210 server.cpp *** src/server.cpp 13 Jun 2006 21:32:16 -0000 1.106.2.210 --- src/server.cpp 26 Jul 2006 05:55:44 -0000 *************** *** 69,74 **** --- 69,75 ---- /* For initgroups(). */ #if HAVE_INITGROUPS + #undef _XOPEN_SOURCE_EXTENDED #include #endif /* HAVE_INITGROUPS */ Index: src/vers_ts.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/vers_ts.c,v retrieving revision 1.16.2.42 diff -c -r1.16.2.42 vers_ts.cpp *** src/vers_ts.cpp 8 May 2006 13:17:09 -0000 1.16.2.42 --- src/vers_ts.cpp 21 Nov 2006 21:31:34 -0000 *************** *** 6,16 **** --- 6,200 ---- * specified in the README file that comes with the CVS source distribution. */ + #include + #include + #include + #include + #include "cvs.h" #ifdef SERVER_SUPPORT static void time_stamp_server (const char *file, Vers_TS *vers_ts, Entnode *entdata); #endif + + int digital_lstat(const char *path, struct stat *buffer ) + { + char mycwd[2048]; + struct attr_timbuf mytimbuf; + int myfd=-1; + int lstatres=0; + + mycwd[0]='\0'; + getcwd(mycwd,2000); + TRACE(2,"in digital_lstat (vers_ts.cpp ) \"%s/%s\".",mycwd,path); + lstatres= lstat (path, buffer); + + if (lstatres >= 0) + { + TRACE(2,"lstat mtime=%d, atime=%d, ctime=%d, mode=%o.", + buffer->st_mtime, + buffer->st_atime, + buffer->st_ctime, + buffer->st_mode); + TRACE(2,"lstat st_ino=%d, st_dev=%d, st_gen=%d", + buffer->st_ino, + buffer->st_dev, + buffer->st_gen); + TRACE(2,"lstat st_blksize=%d\n",buffer->st_blksize); + /* + myfd = open (path, O_RDONLY); + if (myfd != -1) { + TRACE(2,"OPEN succesful ( digital_lstat )."); + if (fcntl(myfd,F_GETTIMES,&mytimbuf)!=-1) { + TRACE(2,"FCNTL succesful ( digital_lstat )."); + buffer->st_mtime=mytimbuf.mtime.tv_sec; + buffer->st_atime=mytimbuf.atime.tv_sec; + buffer->st_ctime=mytimbuf.ctime.tv_sec; + } else + TRACE(2,"FCNTL unsuccesful ( digital_lstat )."); + close(myfd); + myfd=-1; + } else { + TRACE(2,"OPEN unsuccesful (digital_lstat). err=%d \"%s\"", + errno,strerror(errno)); + //TRACE(2,"try see what happens in 1 seconds"); + //sleep(1); + TRACE(2,"try and chmod and then open"); + if (chmod(mycwd, S_IRWXU|S_IRWXG|S_IXOTH)!=0) + TRACE(2,"chmod(mycwd) unsuccessful err=%d \"%s\"", + errno, strerror(errno)); + else { + TRACE(2,"chmod OK"); + } + if (chmod(path, S_IROTH|S_IWOTH|S_IRUSR|S_IWUSR| + S_IRGRP|S_IWGRP)!=0) + TRACE(2,"chmod(path) unsuccessful err=%d \"%s\"", + errno, strerror(errno)); + else { + TRACE(2,"chmod OK"); + } + myfd = open (path, O_RDONLY); + if (myfd != -1) { + TRACE(2,"OPEN succesful ( digital_lstat )."); + if (fcntl(myfd,F_GETTIMES,&mytimbuf)!=-1) { + TRACE(2,"FCNTL succesful ( digital_lstat )."); + buffer->st_mtime=mytimbuf.mtime.tv_sec; + buffer->st_atime=mytimbuf.atime.tv_sec; + buffer->st_ctime=mytimbuf.ctime.tv_sec; + } else + TRACE(2,"FCNTL unsuccesful ( digital_lstat )."); + close(myfd); + myfd=-1; + } else { + // let the trace know... + TRACE(2,"OPEN unsuccesful again ( digital_lstat )."); + } + } + TRACE(2,"lstat(final) mtime=%d, atime=%d, ctime=%d.", + buffer->st_mtime, + buffer->st_atime, + buffer->st_ctime); + */ + } else + TRACE(2,"LSTAT unsuccesful ( digital_lstat )."); + + TRACE(2,"LSTAT returns %d. ( digital_lstat ).",lstatres); + return lstatres; + } + + + int digital_stat(const char *path, struct stat *buffer ) + { + char mycwd[2048]; + struct attr_timbuf mytimbuf; + int myfd=-1; + int statres=0, statres2=0; + struct stat buff2, *buffer2; + + buffer2 = & buff2; + mycwd[0]='\0'; + getcwd(mycwd,2000); + TRACE(2,"in digital_stat (vers_ts.cpp ) \"%s/%s\".",mycwd,path); + statres= stat (path, buffer); + + if (statres >= 0) + { + TRACE(2,"stat mtime=%d, atime=%d, ctime=%d, mode=%o.", + buffer->st_mtime, + buffer->st_atime, + buffer->st_ctime, + buffer->st_mode); + TRACE(2,"stat st_ino=%d, st_dev=%d, st_gen=%d", + buffer->st_ino, + buffer->st_dev, + buffer->st_gen); + TRACE(2,"stat st_blksize=%d\n",buffer->st_blksize); + /* + myfd = open (path, O_RDONLY); + if (myfd != -1) { + TRACE(2,"OPEN succesful ( digital_stat )."); + statres2 = fstat (myfd, buffer2); + if (statres2 >= 0) + TRACE(2,"fstat st_ino=%d, st_dev=%d, st_gen=%d", + buffer2->st_ino, + buffer2->st_dev, + buffer2->st_gen); + if (fcntl(myfd,F_GETTIMES,&mytimbuf)!=-1) { + TRACE(2,"FCNTL succesful ( digital_stat )."); + buffer->st_mtime=mytimbuf.mtime.tv_sec; + buffer->st_atime=mytimbuf.atime.tv_sec; + buffer->st_ctime=mytimbuf.ctime.tv_sec; + } else + TRACE(2,"FCNTL unsuccesful ( digital_stat )."); + close(myfd); + myfd=-1; + } else { + TRACE(2,"OPEN unsuccesful (digital_stat). err=%d \"%s\"", + errno,strerror(errno)); + //TRACE(2,"try see what happens in 1 seconds"); + //sleep(1); + TRACE(2,"try and chmod and then open"); + if (chmod(mycwd, S_IRWXU|S_IRWXG|S_IXOTH)!=0) + TRACE(2,"chmod(mycwd) unsuccessful err=%d \"%s\"", + errno, strerror(errno)); + else { + TRACE(2,"chmod OK"); + } + if (chmod(path, S_IROTH|S_IWOTH|S_IRUSR|S_IWUSR| + S_IRGRP|S_IWGRP)!=0) + TRACE(2,"chmod(path) unsuccessful err=%d \"%s\"", + errno, strerror(errno)); + else { + TRACE(2,"chmod OK"); + } + myfd = open (path, O_RDONLY); + if (myfd != -1) { + TRACE(2,"OPEN succesful ( digital_stat )."); + if (fcntl(myfd,F_GETTIMES,&mytimbuf)!=-1) { + TRACE(2,"FCNTL succesful ( digital_stat )."); + buffer->st_mtime=mytimbuf.mtime.tv_sec; + buffer->st_atime=mytimbuf.atime.tv_sec; + buffer->st_ctime=mytimbuf.ctime.tv_sec; + } else + TRACE(2,"FCNTL unsuccesful ( digital_stat )."); + close(myfd); + myfd=-1; + } else { + // let the trace know... + TRACE(2,"OPEN unsuccesful again ( digital_stat )."); + } + } + TRACE(2,"stat(final) mtime=%d, atime=%d, ctime=%d.", + buffer->st_mtime, + buffer->st_atime, + buffer->st_ctime); + */ + } else + TRACE(2,"STAT unsuccesful ( digital_stat )."); + + TRACE(2,"STAT returns %d. ( digital_stat ).",statres); + return statres; + } void assign_options(char **existing_options, const char *options) { Index: triggers/Makefile.in =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/Makefile.in,v retrieving revision 1.1.2.25 diff -c -r1.1.2.25 Makefile.in *** triggers/Makefile.in 9 Jun 2006 17:37:00 -0000 1.1.2.25 --- triggers/Makefile.in 5 Jul 2006 14:26:09 -0000 *************** *** 118,123 **** --- 118,124 ---- PG_CONFIG = @PG_CONFIG@ POSTGRES_LIBS = @POSTGRES_LIBS@ PR = @PR@ + PRTDIAG = @PRTDIAG@ PS2PDF = @PS2PDF@ PTHREAD_CC = @PTHREAD_CC@ PTHREAD_CFLAGS = @PTHREAD_CFLAGS@ Index: triggers/audit_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/audit_trigger.cpp,v retrieving revision 1.1.2.33 diff -c -r1.1.2.33 audit_trigger.cpp *** triggers/audit_trigger.cpp 2 Jun 2006 22:59:23 -0000 1.1.2.33 --- triggers/audit_trigger.cpp 2 Aug 2006 04:35:04 -0000 *************** *** 118,127 **** return pDb; } ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { int nType; ! char value[256],name[256],user[256],password[256],host[256]; int val = 0; if(!CGlobalSettings::GetGlobalValue("cvsnt","Plugins","AuditTrigger",value,sizeof(value))) --- 118,127 ---- return pDb; } ! int initaudit(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { int nType; ! char value[256],name[2048],user[256],password[256],host[256]; int val = 0; if(!CGlobalSettings::GetGlobalValue("cvsnt","Plugins","AuditTrigger",value,sizeof(value))) *************** *** 188,202 **** time_t d = get_date((char*)date,NULL); char dt[64]; cvs::string tbl; cvs::sprintf(tbl,80,"%sSessionLog",g_szPrefix); strftime(dt,sizeof(dt),"%Y-%m-%d %H:%M:%S",localtime(&d)); ! g_pDb->Execute("Insert Into %s (Command, Date, Hostname, Username, SessionId, VirtRepos, PhysRepos, Client) Values ('%s','%s','%s','%s','%s','%s','%s','%s')", tbl.c_str(),NULLSTR(command),dt,NULLSTR(hostname),NULLSTR(username),NULLSTR(sessionid),NULLSTR(virtual_repository),NULLSTR(physical_repository),NULLSTR(client_version)); if(g_pDb->Error()) { - CServerIo::error("audit_trigger error (session): %s\n",g_pDb->ErrorString()); delete g_pDb; g_pDb = NULL; return 0; } else --- 188,207 ---- time_t d = get_date((char*)date,NULL); char dt[64]; cvs::string tbl; + cvs::string sqlcmd; + sqlcmd.resize(2048); cvs::sprintf(tbl,80,"%sSessionLog",g_szPrefix); + cvs::sprintf(sqlcmd,2048,"Insert Into %%s (Command, Date, Hostname, Username, SessionId, VirtRepos, PhysRepos, Client) Values ('%%s','%%s','%%s','%%s','%%s','%%s','%%s','%%s')"); strftime(dt,sizeof(dt),"%Y-%m-%d %H:%M:%S",localtime(&d)); ! CServerIo::trace(3,sqlcmd.c_str(), ! tbl.c_str(),NULLSTR(command),dt,NULLSTR(hostname),NULLSTR(username),NULLSTR(sessionid),NULLSTR(virtual_repository),NULLSTR(physical_repository),NULLSTR(client_version)); ! g_pDb->Execute(sqlcmd.c_str(), tbl.c_str(),NULLSTR(command),dt,NULLSTR(hostname),NULLSTR(username),NULLSTR(sessionid),NULLSTR(virtual_repository),NULLSTR(physical_repository),NULLSTR(client_version)); if(g_pDb->Error()) { delete g_pDb; g_pDb = NULL; + CServerIo::error("audit_trigger error (session): %s\n",g_pDb->ErrorString()); return 0; } else *************** *** 206,219 **** return 0; } ! int close(const struct trigger_interface_t* cb) { if(g_pDb) delete g_pDb; return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { if(g_AuditLogTags) { --- 211,224 ---- return 0; } ! int closeaudit(const struct trigger_interface_t* cb) { if(g_pDb) delete g_pDb; return 0; } ! int pretagaudit(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { if(g_AuditLogTags) { *************** *** 239,250 **** return 0; } ! int verifymsg(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { if(g_AuditLogCommits) { --- 244,255 ---- return 0; } ! int verifymsgaudit(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfoaudit(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { if(g_AuditLogCommits) { *************** *** 273,279 **** return 0; } ! int history(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { if(g_AuditLogHistory) { --- 278,284 ---- return 0; } ! int historyaudit(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { if(g_AuditLogHistory) { *************** *** 293,314 **** return 0; } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { return 0; } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommand(const struct trigger_interface_t* cb, int argc, const char **argv) { if(!g_pDb) { --- 298,319 ---- return 0; } ! int notifyaudit(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { return 0; } ! int precommitaudit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommitaudit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommandaudit(const struct trigger_interface_t* cb, int argc, const char **argv) { if(!g_pDb) { *************** *** 318,349 **** return 0; } ! int postcommand(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int premodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int postmodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int get_template(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keyword(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; --- 323,354 ---- return 0; } ! int postcommandaudit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int premoduleaudit(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int postmoduleaudit(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int get_templateaudit(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keywordaudit(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiffaudit(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; *************** *** 355,361 **** return 0; } ! int rcsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; --- 360,366 ---- return 0; } ! int rcsdiffaudit(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; *************** *** 381,403 **** NULL #endif }, ! init, ! close, ! pretag, ! verifymsg, ! loginfo, ! history, ! notify, ! precommit, ! postcommit, ! precommand, ! postcommand, ! premodule, ! postmodule, ! get_template, ! parse_keyword, ! prercsdiff, ! rcsdiff }; static int init(const struct plugin_interface *plugin) --- 386,408 ---- NULL #endif }, ! initaudit, ! closeaudit, ! pretagaudit, ! verifymsgaudit, ! loginfoaudit, ! historyaudit, ! notifyaudit, ! precommitaudit, ! postcommitaudit, ! precommandaudit, ! postcommandaudit, ! premoduleaudit, ! postmoduleaudit, ! get_templateaudit, ! parse_keywordaudit, ! prercsdiffaudit, ! rcsdiffaudit }; static int init(const struct plugin_interface *plugin) Index: triggers/checkout_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/checkout_trigger.cpp,v retrieving revision 1.1.2.16 diff -c -r1.1.2.16 checkout_trigger.cpp *** triggers/checkout_trigger.cpp 5 Jul 2006 13:35:40 -0000 1.1.2.16 --- triggers/checkout_trigger.cpp 2 Aug 2006 03:32:00 -0000 *************** *** 71,77 **** int win32config(const struct plugin_interface *ui, void *wnd); #endif ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { char value[256]; int val = 0; --- 71,77 ---- int win32config(const struct plugin_interface *ui, void *wnd); #endif ! int initcheckout(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { char value[256]; int val = 0; *************** *** 83,88 **** --- 83,92 ---- CServerIo::trace(3,"Checkout trigger not enabled."); return -1; } + else + { + CServerIo::trace(3,"Checkout trigger is enabled."); + } g_verbose = false; if(!CGlobalSettings::GetGlobalValue("cvsnt","PServer","CheckoutVerbose",value,sizeof(value))) *************** *** 94,105 **** return 0; } ! int close(const struct trigger_interface_t* cb) { return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { module_list[directory]++; if(tag && tag[0]) --- 98,109 ---- return 0; } ! int closecheckout(const struct trigger_interface_t* cb) { return 0; } ! int pretagcheckout(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { module_list[directory]++; if(tag && tag[0]) *************** *** 110,121 **** return 0; } ! int verifymsg(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { module_list[directory]++; --- 114,125 ---- return 0; } ! int verifymsgcheckout(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfocheckout(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { module_list[directory]++; *************** *** 129,155 **** return 0; } ! int history(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { return 0; } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { return 0; } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommand(const struct trigger_interface_t* cb, int argc, const char **argv) { return 0; } --- 133,159 ---- return 0; } ! int historycheckout(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { return 0; } ! int notifycheckout(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { return 0; } ! int precommitcheckout(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommitcheckout(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommandcheckout(const struct trigger_interface_t* cb, int argc, const char **argv) { return 0; } *************** *** 168,174 **** return 0; } ! int postcommand(const struct trigger_interface_t* cb, const char *directory) { cvs::filename fn; CFileAccess acc; --- 172,178 ---- return 0; } ! int postcommandcheckout(const struct trigger_interface_t* cb, const char *directory) { cvs::filename fn; CFileAccess acc; *************** *** 183,188 **** --- 187,196 ---- CServerIo::trace(3,"Could not open "CVSROOT_SHADOW); return 0; } + else + { + CServerIo::trace(3,"Opened "CVSROOT_SHADOW); + } int linenum; for(linenum=1; acc.getline(line); linenum++) *************** *** 256,289 **** return 0; } ! int premodule(const struct trigger_interface_t* cb, const char *module) { module_list[module]++; return 0; } ! int postmodule(const struct trigger_interface_t* cb, const char *module) { module_list[module]++; return 0; } ! int get_template(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keyword(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } ! int rcsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } --- 264,297 ---- return 0; } ! int premodulecheckout(const struct trigger_interface_t* cb, const char *module) { module_list[module]++; return 0; } ! int postmodulecheckout(const struct trigger_interface_t* cb, const char *module) { module_list[module]++; return 0; } ! int get_templatecheckout(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keywordcheckout(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiffcheckout(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } ! int rcsdiffcheckout(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } *************** *** 306,328 **** NULL #endif }, ! init, ! close, ! pretag, ! verifymsg, ! loginfo, ! history, ! notify, ! precommit, ! postcommit, ! precommand, ! postcommand, ! premodule, ! postmodule, ! get_template, ! parse_keyword, ! prercsdiff, ! rcsdiff }; static int init(const struct plugin_interface *plugin) --- 314,336 ---- NULL #endif }, ! initcheckout, ! closecheckout, ! pretagcheckout, ! verifymsgcheckout, ! loginfocheckout, ! historycheckout, ! notifycheckout, ! precommitcheckout, ! postcommitcheckout, ! precommandcheckout, ! postcommandcheckout, ! premodulecheckout, ! postmodulecheckout, ! get_templatecheckout, ! parse_keywordcheckout, ! prercsdiffcheckout, ! rcsdiffcheckout }; static int init(const struct plugin_interface *plugin) Index: triggers/email_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/email_trigger.cpp,v retrieving revision 1.1.2.26 diff -c -r1.1.2.26 email_trigger.cpp *** triggers/email_trigger.cpp 13 Jun 2006 21:32:17 -0000 1.1.2.26 --- triggers/email_trigger.cpp 2 Aug 2006 02:59:31 -0000 *************** *** 144,150 **** const char *pid; } gen_info = {0}; ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { char value[256]; int val = 0; --- 144,150 ---- const char *pid; } gen_info = {0}; ! int initemail(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { char value[256]; int val = 0; *************** *** 191,202 **** return 0; } ! int close(const struct trigger_interface_t* cb) { return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { cvs::string file,tmp; --- 191,202 ---- return 0; } ! int closeemail(const struct trigger_interface_t* cb) { return 0; } ! int pretagemail(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { cvs::string file,tmp; *************** *** 236,247 **** return 0; } ! int verifymsg(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string file,tmp; static bool cache_valid = false; --- 236,247 ---- return 0; } ! int verifymsgemail(const struct trigger_interface_t* cb, const char *directory, const char *filename) { return 0; } ! int loginfoemail(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string file,tmp; static bool cache_valid = false; *************** *** 283,294 **** return 0; } ! int history(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { return 0; } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string nfile,tmp; static bool cache_valid = false; --- 283,294 ---- return 0; } ! int historyemail(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { return 0; } ! int notifyemail(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string nfile,tmp; static bool cache_valid = false; *************** *** 323,339 **** return 0; } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommand(const struct trigger_interface_t* cb, int argc, const char **argv) { loginfo_data.clear(); taginfo_data.clear(); --- 323,339 ---- return 0; } ! int precommitemail(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommitemail(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommandemail(const struct trigger_interface_t* cb, int argc, const char **argv) { loginfo_data.clear(); taginfo_data.clear(); *************** *** 479,485 **** return true; } ! int postcommand(const struct trigger_interface_t* cb, const char *directory) { size_t pos; --- 479,485 ---- return true; } ! int postcommandemail(const struct trigger_interface_t* cb, const char *directory) { size_t pos; *************** *** 742,773 **** return 0; } ! int premodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int postmodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int get_template(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keyword(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } ! int rcsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } --- 742,773 ---- return 0; } ! int premoduleemail(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int postmoduleemail(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int get_templateemail(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keywordemail(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiffemail(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } ! int rcsdiffemail(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { return 0; } *************** *** 790,812 **** NULL #endif }, ! init, ! close, ! pretag, ! verifymsg, ! loginfo, ! history, ! notify, ! precommit, ! postcommit, ! precommand, ! postcommand, ! premodule, ! postmodule, ! get_template, ! parse_keyword, ! prercsdiff, ! rcsdiff }; static int init(const struct plugin_interface *plugin) --- 790,812 ---- NULL #endif }, ! initemail, ! closeemail, ! pretagemail, ! verifymsgemail, ! loginfoemail, ! historyemail, ! notifyemail, ! precommitemail, ! postcommitemail, ! precommandemail, ! postcommandemail, ! premoduleemail, ! postmoduleemail, ! get_templateemail, ! parse_keywordemail, ! prercsdiffemail, ! rcsdiffemail }; static int init(const struct plugin_interface *plugin) Index: triggers/info_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/info_trigger.cpp,v retrieving revision 1.1.2.82 diff -c -r1.1.2.82 info_trigger.cpp *** triggers/info_trigger.cpp 8 Jun 2006 14:39:30 -0000 1.1.2.82 --- triggers/info_trigger.cpp 2 Aug 2006 03:08:40 -0000 *************** *** 590,596 **** { 't', &keyword_info.branch } }; ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { gen_info.command=command; gen_info.date=date; --- 590,596 ---- { 't', &keyword_info.branch } }; ! int initinfo(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { gen_info.command=command; gen_info.date=date; *************** *** 616,627 **** return 0; } ! int close(const struct trigger_interface_t* cb) { return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { pret_info.message=message; pret_info.directory=directory; --- 616,627 ---- return 0; } ! int closeinfo(const struct trigger_interface_t* cb) { return 0; } ! int pretaginfo(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { pret_info.message=message; pret_info.directory=directory; *************** *** 635,641 **** return parse_info(CVSROOT_TAGINFO,"%t %o %r/%p","%<{s v}",directory,generic_options,pretag_options); } ! int verifymsg(const struct trigger_interface_t* cb, const char *directory, const char *filename) { verif_info.directory=directory; verif_info.filename=filename; --- 635,641 ---- return parse_info(CVSROOT_TAGINFO,"%t %o %r/%p","%<{s v}",directory,generic_options,pretag_options); } ! int verifymsginfo(const struct trigger_interface_t* cb, const char *directory, const char *filename) { verif_info.directory=directory; verif_info.filename=filename; *************** *** 687,693 **** } } ! int loginfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string msg,line; --- 687,693 ---- } } ! int loginfoinfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string msg,line; *************** *** 718,724 **** return parse_info(CVSROOT_LOGINFO,"",msg.c_str(),directory,generic_options,loginfo_options); } ! int history(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { hist_info.type=type; hist_info.revs=revs; --- 718,724 ---- return parse_info(CVSROOT_LOGINFO,"",msg.c_str(),directory,generic_options,loginfo_options); } ! int historyinfo(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { hist_info.type=type; hist_info.revs=revs; *************** *** 730,736 **** return parse_info(CVSROOT_HISTORYINFO,"%t|%d|%u|%w|%s|%v","",NULL,generic_options,history_options); } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string msg; --- 730,736 ---- return parse_info(CVSROOT_HISTORYINFO,"%t|%d|%u|%w|%s|%v","",NULL,generic_options,history_options); } ! int notifyinfo(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string msg; *************** *** 745,751 **** return parse_info(CVSROOT_NOTIFY,"","%<< %p %f\\n---\\nTriggered %y watch on %r\\nBy %u",directory,generic_options,notify_options); } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { precmt_info.message=message; precmt_info.directory=directory; --- 745,751 ---- return parse_info(CVSROOT_NOTIFY,"","%<< %p %f\\n---\\nTriggered %y watch on %r\\nBy %u",directory,generic_options,notify_options); } ! int precommitinfo(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { precmt_info.message=message; precmt_info.directory=directory; *************** *** 755,767 **** return parse_info(CVSROOT_COMMITINFO,"%r/%p","%= 0) { + TRACE(3,"history - CVS_CHDIR() ok."); homedir = xgetwd_mapped (); if (homedir == NULL) error (1, errno, "can't getwd in %s", pwdir); *************** *** 738,744 **** slash = "/"; else update_dir = ""; ! cvs::sprintf(workdir, 80, "%s%s%s%s", tilde, PrCurDir, slash, update_dir); /* * "workdir" is the directory where the file "name" is. ("^~" == $HOME) --- 744,752 ---- slash = "/"; else update_dir = ""; ! TRACE(3,"history - set workdir."); ! cvs::sprintf(workdir, 180, "%s%s%s%s", tilde, PrCurDir, slash, update_dir); ! TRACE(3,"history - set workdir. %s",workdir.c_str()); /* * "workdir" is the directory where the file "name" is. ("^~" == $HOME) *************** *** 783,789 **** --- 791,799 ---- if (!repos) repos = ""; + TRACE(3,"history - set real_workdir."); real_workdir = fn_root(workdir.c_str()); + TRACE(3,"history - set real_workdir is set."); cp = (char*)workdir.c_str() + workdir.length() - 1; cp2 = repos + strlen (repos) - 1; *************** *** 802,809 **** if(acc.isopen()) { ! cvs::sprintf(line,80,"%c%08"TIME_T_SPRINTF"x|%s|%s|%s|%s|%s|%s\n", type, global_session_time_t, username, workdir.c_str(), repos, revs, name, bugid?bugid:""); if(!acc.write(line.c_str(),line.length())) error (1, errno, "cannot write to history file: %s", fn_root(fname.c_str())); if(!acc.close()) --- 812,838 ---- if(acc.isopen()) { ! TRACE(3,"history - isopen()."); ! TRACE(3,"history - time_t_sprintf "TIME_T_SPRINTF"."); ! TRACE(3,"history - type=%c.",type); ! TRACE(3,"history - global_session_time_t=%x.",global_session_time_t); ! TRACE(3,"history - username=%s.",username); ! TRACE(3,"history - wortkdir=%s.",workdir.c_str()); ! TRACE(3,"history - repos=%s.",repos); ! TRACE(3,"history - revs=%s.",revs); ! TRACE(3,"history - name=%s.",name); ! TRACE(3,"history - bugid=%s.", bugid?bugid:""); ! TRACE(3,"history - sprintf()."); ! cvs::sprintf(line,360,"%c%08"TIME_T_SPRINTF"x|%s|%s|%s|%s|%s|%s\n", type, global_session_time_t, username, workdir.c_str(), repos, revs, name, bugid?bugid:""); + TRACE(3,"history - sprintf() done."); + + /* Lessen some race conditions on non-Posix-compliant hosts. */ + TRACE(3,"history_write - acc.seek(seekEnd)"); + if (!acc.seek ((loff_t) 0,CFileAccess::seekEnd)) + error (1, errno, "cannot seek to end of history file: %s", fn_root(fname.c_str())); + + TRACE(3,"history_write - acc.write()"); if(!acc.write(line.c_str(),line.length())) error (1, errno, "cannot write to history file: %s", fn_root(fname.c_str())); if(!acc.close()) Index: ./src/mapping.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/mapping.c,v retrieving revision 1.1.2.43 diff -c -r1.1.2.43 mapping.cpp *** ./src/mapping.cpp 28 Oct 2005 19:18:26 -0000 1.1.2.43 --- ./src/mapping.cpp 13 Dec 2006 05:18:00 -0000 *************** *** 1238,1254 **** int close_directory() { ! TRACE(3,"close_directory()"); if(!directory_stack_size) error(1,0,"Directory stack overrun"); if(current_directory->repository_rcsfile) freercsnode(¤t_directory->repository_rcsfile); dellist(¤t_directory->directory_mappings); xfree(current_directory->rename_script); current_directory->rename_script_count = current_directory->rename_script_size = 0; xfree(current_directory->directory_version); directory_stack_size--; if(!directory_stack_size) --- 1238,1263 ---- int close_directory() { ! TRACE(3,"mapping: close_directory()"); if(!directory_stack_size) error(1,0,"Directory stack overrun"); if(current_directory->repository_rcsfile) + { + TRACE(3,"mapping: freercsnode()"); freercsnode(¤t_directory->repository_rcsfile); + TRACE(3,"mapping: freercsnode() complete"); + } + TRACE(3,"mapping: dellist()"); dellist(¤t_directory->directory_mappings); + TRACE(3,"mapping: dellist() complete"); xfree(current_directory->rename_script); + TRACE(3,"mapping: xfree() complete"); current_directory->rename_script_count = current_directory->rename_script_size = 0; + TRACE(3,"mapping: rename_script_count() complete"); xfree(current_directory->directory_version); + TRACE(3,"mapping: xfree() complete"); directory_stack_size--; if(!directory_stack_size) *************** *** 1256,1269 **** --- 1265,1281 ---- else current_directory--; + TRACE(3,"mapping: close_directory() complete"); return 0; } int free_directory() { + TRACE(3,"mapping: free_directory()"); while(directory_stack_size) close_directory(); xfree(directory_stack); + TRACE(3,"mapping: free_directory() complete"); return 0; } Index: ./src/recurse.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/src/recurse.c,v retrieving revision 1.21.2.79 diff -c -r1.21.2.79 recurse.cpp *** ./src/recurse.cpp 30 Jun 2005 16:41:08 -0000 1.21.2.79 --- ./src/recurse.cpp 13 Dec 2006 05:07:29 -0000 *************** *** 1243,1250 **** --- 1243,1252 ---- if(frame->predirentproc != NULL) { + TRACE(3,"do_dir_proc about to predirentproc"); frame->predirentproc (frame->callerdat, dir, newrepos, update_dir, frent->entries, virtrepos, hint); + TRACE(3,"do_dir_proc completed predirentproc"); } /* before we do anything else, see if we have any Index: ./cvsapi/SqlConnection.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/SqlConnection.cpp,v retrieving revision 1.1.2.18 diff -c -r1.1.2.18 SqlConnection.cpp *** ./cvsapi/SqlConnection.cpp 23 May 2006 14:09:49 -0000 1.1.2.18 --- ./cvsapi/SqlConnection.cpp 22 Nov 2006 08:21:29 -0000 *************** *** 43,49 **** { #ifdef HAVE_SQLITE case sqtSqlite: ! CServerIo::trace(3,"Connecting to SQLite"); return SQLite_Alloc(); #endif #ifdef HAVE_MYSQL --- 43,49 ---- { #ifdef HAVE_SQLITE case sqtSqlite: ! CServerIo::trace(3,"Connecting to SQLite - static db"); return SQLite_Alloc(); #endif #ifdef HAVE_MYSQL *************** *** 86,95 **** switch(type) { case sqtSqlite: ! CServerIo::trace(3,"Connecting to SQLite"); if(!la.Load("sqlite"SHARED_LIBRARY_EXTENSION,dir)) return false; pNewSqlConnection = (CSqlConnection*(*)())la.GetProc("SQLite_Alloc"); break; case sqtMysql: CServerIo::trace(3,"Connecting to MySql"); --- 86,97 ---- switch(type) { case sqtSqlite: ! CServerIo::trace(3,"Connecting to SQLite - dynamic load."); if(!la.Load("sqlite"SHARED_LIBRARY_EXTENSION,dir)) return false; + CServerIo::trace(3,"Loaded SQLite library dynamically."); pNewSqlConnection = (CSqlConnection*(*)())la.GetProc("SQLite_Alloc"); + CServerIo::trace(3,"Connected to SQLite."); break; case sqtMysql: CServerIo::trace(3,"Connecting to MySql"); Index: ./cvsapi/sqlite/SQLiteConnection.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/cvsapi/sqlite/SQLiteConnection.cpp,v retrieving revision 1.9.2.13 diff -c -r1.9.2.13 SQLiteConnection.cpp *** ./cvsapi/sqlite/SQLiteConnection.cpp 7 Feb 2006 15:39:33 -0000 1.9.2.13 --- ./cvsapi/sqlite/SQLiteConnection.cpp 23 Nov 2006 01:20:46 -0000 *************** *** 53,58 **** --- 53,59 ---- bool CSQLiteConnection::Create(const char *host, const char *database, const char *username, const char *password) { + CServerIo::trace(3,"SQLiteConnection::Create()"); if(CFileAccess::exists(database)) return false; *************** *** 69,87 **** --- 70,92 ---- return false; } #endif + CServerIo::trace(3,"SQLiteConnection::Create() -finished "); return true; } bool CSQLiteConnection::Open(const char *host, const char *database, const char *username, const char *password) { + CServerIo::trace(3,"SQLiteConnection::Open() "); if(!CFileAccess::exists(database)) return false; + CServerIo::trace(3,"SQLiteConnection::Open() %s exists ",database); #ifdef _WIN32 __try { #endif if(sqlite3_open(database, &m_pDb)) return false; + CServerIo::trace(3,"SQLiteConnection::Open() %s opened ",database); #ifdef _WIN32 } __except (EXCEPTION_EXECUTE_HANDLER) *************** *** 89,103 **** --- 94,111 ---- return false; } #endif + CServerIo::trace(3,"SQLiteConnection::Open() -finished "); return true; } bool CSQLiteConnection::Close() { + CServerIo::trace(3,"SQLiteConnection::Close()"); if(m_pDb) sqlite3_close(m_pDb); m_pDb=NULL; + CServerIo::trace(3,"SQLiteConnection::Close() -finished "); return true; } *************** *** 112,137 **** { cvs::string str; va_list va; va_start(va,string); ! cvs::vsprintf(str,64,string,va); va_end(va); CSQLiteRecordset *rs = new CSQLiteRecordset(); ! CServerIo::trace(3,"%s",str.c_str()); sqlite3_stmt *pStmt; const char *zTail = NULL; if(sqlite3_prepare(m_pDb,str.c_str(),(int)str.length(),&pStmt,&zTail)) return rs; for(std::map::iterator i = m_bindVars.begin(); i!=m_bindVars.end(); ++i) { switch(i->second.type()) { case CSqlVariant::vtNull: sqlite3_bind_null(pStmt,i->first+1); break; case CSqlVariant::vtChar: case CSqlVariant::vtShort: --- 120,155 ---- { cvs::string str; va_list va; + + CServerIo::trace(3,"SQLiteConnection::Execute() ./cvsapi/sqlite/SQLiteConnection.cpp"); + str.resize(1024000); va_start(va,string); ! cvs::vsprintf(str,1024000,string,va); va_end(va); + //CServerIo::trace(3,"SQLiteConnection::Execute() %s", str.c_str()); + CServerIo::trace(3,"SQLiteConnection::Execute() - got string"); CSQLiteRecordset *rs = new CSQLiteRecordset(); ! CServerIo::trace(3,"SQLiteConnection::Execute() - got new recordset"); ! //CServerIo::trace(3,"%s",str.c_str()); sqlite3_stmt *pStmt; const char *zTail = NULL; + CServerIo::trace(3,"SQLiteConnection::Execute() -prepare "); if(sqlite3_prepare(m_pDb,str.c_str(),(int)str.length(),&pStmt,&zTail)) return rs; + CServerIo::trace(3,"SQLiteConnection::Execute() -prepared "); for(std::map::iterator i = m_bindVars.begin(); i!=m_bindVars.end(); ++i) { switch(i->second.type()) { case CSqlVariant::vtNull: + CServerIo::trace(3," CSqlVariant::vtNull "); sqlite3_bind_null(pStmt,i->first+1); + CServerIo::trace(3," CSqlVariant::vtNull bound"); break; case CSqlVariant::vtChar: case CSqlVariant::vtShort: *************** *** 141,169 **** --- 159,196 ---- case CSqlVariant::vtUShort: case CSqlVariant::vtUInt: case CSqlVariant::vtULong: + CServerIo::trace(3," CSqlVariant::vtInt"); sqlite3_bind_int(pStmt,i->first+1,(int)i->second); + CServerIo::trace(3," CSqlVariant::vtInt bound"); break; case CSqlVariant::vtLongLong: case CSqlVariant::vtULongLong: + CServerIo::trace(3," CSqlVariant::vtLongLong "); #ifdef _WIN32 sqlite3_bind_int64(pStmt,i->first+1,(__int64)i->second); #else sqlite3_bind_int64(pStmt,i->first+1,(long long)i->second); #endif + CServerIo::trace(3," CSqlVariant::vtLongLong bound"); break; case CSqlVariant::vtString: sqlite3_bind_text(pStmt,i->first+1,(const char *)i->second,-1,SQLITE_STATIC); break; case CSqlVariant::vtWString: + CServerIo::trace(3," CSqlVariant::vtWString "); sqlite3_bind_text16(pStmt,i->first+1,(const wchar_t *)i->second,-1,SQLITE_STATIC); + CServerIo::trace(3," CSqlVariant::vtWString bound"); break; } } + CServerIo::trace(3,"SQLiteConnection::Execute() -before rs->Init "); rs->Init(m_pDb,pStmt); + CServerIo::trace(3,"SQLiteConnection::Execute() -after Init "); m_bindVars.clear(); + CServerIo::trace(3,"SQLiteConnection::Execute() -finished "); return rs; } *************** *** 184,210 **** --- 211,244 ---- unsigned CSQLiteConnection::GetInsertIdentity(const char *table_hint) { + CServerIo::trace(3,"SQLiteConnection::GetInsertIdentity()"); return (unsigned)sqlite3_last_insert_rowid(m_pDb); } bool CSQLiteConnection::BeginTrans() { + CServerIo::trace(3,"SQLiteConnection::BeginTrans() "); if(sqlite3_exec(m_pDb,"BEGIN",NULL,NULL,NULL)==SQLITE_OK) return true; + CServerIo::trace(3,"SQLiteConnection::BeginTrans() - Complete"); return false; } bool CSQLiteConnection::CommitTrans() { + CServerIo::trace(3,"SQLiteConnection::CommitTrans() "); if(sqlite3_exec(m_pDb,"COMMIT",NULL,NULL,NULL)==SQLITE_OK) return true; + CServerIo::trace(3,"SQLiteConnection::CommitTrans() - Complete"); return false; } bool CSQLiteConnection::RollbackTrans() { + CServerIo::trace(3,"SQLiteConnection::RollbackTrans() "); if(sqlite3_exec(m_pDb,"ROLLBACK",NULL,NULL,NULL)==SQLITE_OK) return true; + CServerIo::trace(3,"SQLiteConnection::RollbackTrans() - Complete"); return false; } Index: ./triggers/audit_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/audit_trigger.cpp,v retrieving revision 1.1.2.33 diff -c -r1.1.2.33 audit_trigger.cpp *** ./triggers/audit_trigger.cpp 2 Jun 2006 22:59:23 -0000 1.1.2.33 --- ./triggers/audit_trigger.cpp 23 Nov 2006 03:01:06 -0000 *************** *** 77,82 **** --- 77,83 ---- static CSqlConnection* Connect(int nType, const char *name, const char *host, const char *user, const char *password, cvs::string& error) { CSqlConnection *pDb; + CServerIo::trace(3,"Audit trigger connect begin."); switch(nType) { *************** *** 108,129 **** return NULL; } if(!pDb->Open(host,name,user,password)) { cvs::sprintf(error,80,"Open failed: %s",pDb->ErrorString()); delete pDb; return NULL; } return pDb; } ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { int nType; ! char value[256],name[256],user[256],password[256],host[256]; int val = 0; if(!CGlobalSettings::GetGlobalValue("cvsnt","Plugins","AuditTrigger",value,sizeof(value))) val = atoi(value); if(!val) --- 109,134 ---- return NULL; } + CServerIo::trace(3,"Audit trigger begin open."); if(!pDb->Open(host,name,user,password)) { cvs::sprintf(error,80,"Open failed: %s",pDb->ErrorString()); delete pDb; return NULL; } + CServerIo::trace(3,"Audit trigger open complete."); + CServerIo::trace(3,"Audit trigger connect complete."); return pDb; } ! int initaudit(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { int nType; ! char value[256],name[2048],user[256],password[256],host[256]; int val = 0; + CServerIo::trace(3,"initaudit: audit_trigger"); if(!CGlobalSettings::GetGlobalValue("cvsnt","Plugins","AuditTrigger",value,sizeof(value))) val = atoi(value); if(!val) *************** *** 131,136 **** --- 136,142 ---- CServerIo::trace(3,"Audit trigger not enabled."); return -1; } + CServerIo::trace(3,"Audit trigger enabled."); g_diffStore.clear(); *************** *** 156,162 **** --- 162,170 ---- password[0]='\0'; g_error = ""; + CServerIo::trace(3,"Audit trigger try and connect."); g_pDb = Connect(nType,name,host,user,password,g_error); + CServerIo::trace(3,"Audit trigger connect attempt complete."); if(!g_pDb) { *************** *** 185,220 **** g_nSessionId = 0; if(g_AuditLogSessions) { time_t d = get_date((char*)date,NULL); char dt[64]; cvs::string tbl; cvs::sprintf(tbl,80,"%sSessionLog",g_szPrefix); strftime(dt,sizeof(dt),"%Y-%m-%d %H:%M:%S",localtime(&d)); ! g_pDb->Execute("Insert Into %s (Command, Date, Hostname, Username, SessionId, VirtRepos, PhysRepos, Client) Values ('%s','%s','%s','%s','%s','%s','%s','%s')", tbl.c_str(),NULLSTR(command),dt,NULLSTR(hostname),NULLSTR(username),NULLSTR(sessionid),NULLSTR(virtual_repository),NULLSTR(physical_repository),NULLSTR(client_version)); if(g_pDb->Error()) { - CServerIo::error("audit_trigger error (session): %s\n",g_pDb->ErrorString()); delete g_pDb; g_pDb = NULL; return 0; } else g_nSessionId=g_pDb->GetInsertIdentity(tbl.c_str()); } return 0; } ! int close(const struct trigger_interface_t* cb) { if(g_pDb) delete g_pDb; return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { if(g_AuditLogTags) { for(int n=0; nExecute(sqlcmd.c_str(), tbl.c_str(),NULLSTR(command),dt,NULLSTR(hostname),NULLSTR(username),NULLSTR(sessionid),NULLSTR(virtual_repository),NULLSTR(physical_repository),NULLSTR(client_version)); + CServerIo::trace(3,"Audit trigger after Execute."); if(g_pDb->Error()) { delete g_pDb; g_pDb = NULL; + CServerIo::error("audit_trigger error (session): %s\n",g_pDb->ErrorString()); return 0; } else + { + CServerIo::trace(3,"Audit trigger before GetInsertIdentity."); g_nSessionId=g_pDb->GetInsertIdentity(tbl.c_str()); + CServerIo::trace(3,"Audit trigger after GetInsertIdentity."); + } } + CServerIo::trace(3,"Audit trigger init complete."); return 0; } ! int closeaudit(const struct trigger_interface_t* cb) { + CServerIo::trace(3,"closeaudit: audit_trigger"); if(g_pDb) delete g_pDb; return 0; } ! int pretagaudit(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { + CServerIo::trace(3,"pretagaudit: audit_trigger"); if(g_AuditLogTags) { for(int n=0; nBind(0,message?message:""); --- 324,332 ---- return 0; } ! int historyaudit(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { + CServerIo::trace(3,"historyaudit: audit_trigger"); if(g_AuditLogHistory) { g_pDb->Bind(0,message?message:""); *************** *** 293,315 **** return 0; } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { return 0; } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { return 0; } ! int postcommit(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int precommand(const struct trigger_interface_t* cb, int argc, const char **argv) { if(!g_pDb) { CServerIo::error("Audit trigger initialiasation failed: %s\n",g_error.c_str()); --- 345,371 ---- return 0; } ! int notifyaudit(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { + CServerIo::trace(3,"notifyaudit: audit_trigger"); return 0; } ! int precommitaudit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { + CServerIo::trace(3,"precommitaudit: audit_trigger"); return 0; } ! int postcommitaudit(const struct trigger_interface_t* cb, const char *directory) { + CServerIo::trace(3,"postcommitaudit: audit_trigger"); return 0; } ! int precommandaudit(const struct trigger_interface_t* cb, int argc, const char **argv) { + CServerIo::trace(3,"precommandaudit: audit_trigger"); if(!g_pDb) { CServerIo::error("Audit trigger initialiasation failed: %s\n",g_error.c_str()); *************** *** 318,350 **** return 0; } ! int postcommand(const struct trigger_interface_t* cb, const char *directory) { return 0; } ! int premodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int postmodule(const struct trigger_interface_t* cb, const char *module) { return 0; } ! int get_template(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { return 0; } ! int parse_keyword(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { return 0; } ! int prercsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; --- 374,412 ---- return 0; } ! int postcommandaudit(const struct trigger_interface_t* cb, const char *directory) { + CServerIo::trace(3,"postcommandaudit: audit_trigger"); return 0; } ! int premoduleaudit(const struct trigger_interface_t* cb, const char *module) { + CServerIo::trace(3,"premoduleaudit: audit_trigger"); return 0; } ! int postmoduleaudit(const struct trigger_interface_t* cb, const char *module) { + CServerIo::trace(3,"postmoduleaudit: audit_trigger"); return 0; } ! int get_templateaudit(const struct trigger_interface_t *cb, const char *directory, const char **template_ptr) { + CServerIo::trace(3,"templateaudit: audit_trigger"); return 0; } ! int parse_keywordaudit(const struct trigger_interface_t *cb, const char *keyword,const char *directory,const char *file,const char *branch,const char *author,const char *printable_date,const char *rcs_date,const char *locker,const char *state,const char *version,const char *name,const char *bugid, const char *commitid, const property_info *props, size_t numprops, const char **value) { + CServerIo::trace(3,"parse_keywordaudit: audit_trigger"); return 0; } ! int prercsdiffaudit(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { + CServerIo::trace(3,"prercsdiffaudit: audit_trigger"); g_diffStore[file].added=added; g_diffStore[file].removed=removed; *************** *** 355,362 **** return 0; } ! int rcsdiff(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { g_diffStore[file].added=added; g_diffStore[file].removed=removed; g_diffStore[file].diff=diff; --- 417,425 ---- return 0; } ! int rcsdiffaudit(const struct trigger_interface_t *cb, const char *file, const char *directory, const char *oldfile, const char *newfile, const char *diff, size_t difflen, const char *type, const char *options, const char *oldversion, const char *newversion, unsigned long added, unsigned long removed) { + CServerIo::trace(3,"rcsdiffaudit: audit_trigger"); g_diffStore[file].added=added; g_diffStore[file].removed=removed; g_diffStore[file].diff=diff; *************** *** 381,403 **** NULL #endif }, ! init, ! close, ! pretag, ! verifymsg, ! loginfo, ! history, ! notify, ! precommit, ! postcommit, ! precommand, ! postcommand, ! premodule, ! postmodule, ! get_template, ! parse_keyword, ! prercsdiff, ! rcsdiff }; static int init(const struct plugin_interface *plugin) --- 444,466 ---- NULL #endif }, ! initaudit, ! closeaudit, ! pretagaudit, ! verifymsgaudit, ! loginfoaudit, ! historyaudit, ! notifyaudit, ! precommitaudit, ! postcommitaudit, ! precommandaudit, ! postcommandaudit, ! premoduleaudit, ! postmoduleaudit, ! get_templateaudit, ! parse_keywordaudit, ! prercsdiffaudit, ! rcsdiffaudit }; static int init(const struct plugin_interface *plugin) Index: ./triggers/info_trigger.cpp =================================================================== RCS file: /usr/local/cvs/cvsnt/triggers/info_trigger.cpp,v retrieving revision 1.1.2.82 diff -c -r1.1.2.82 info_trigger.cpp *** ./triggers/info_trigger.cpp 8 Jun 2006 14:39:30 -0000 1.1.2.82 --- ./triggers/info_trigger.cpp 23 Nov 2006 02:56:48 -0000 *************** *** 590,597 **** { 't', &keyword_info.branch } }; ! int init(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { gen_info.command=command; gen_info.date=date; gen_info.hostname=hostname; --- 590,598 ---- { 't', &keyword_info.branch } }; ! int initinfo(const struct trigger_interface_t* cb, const char *command, const char *date, const char *hostname, const char *username, const char *virtual_repository, const char *physical_repository, const char *sessionid, const char *editor, int count_uservar, const char **uservar, const char **userval, const char *client_version, const char *character_set) { + CServerIo::trace(3,"initinfo: info_trigger"); gen_info.command=command; gen_info.date=date; gen_info.hostname=hostname; *************** *** 616,628 **** return 0; } ! int close(const struct trigger_interface_t* cb) { return 0; } ! int pretag(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { pret_info.message=message; pret_info.directory=directory; pret_info.tag_type=tag_type; --- 617,631 ---- return 0; } ! int closeinfo(const struct trigger_interface_t* cb) { + CServerIo::trace(3,"closeinfo: info_trigger"); return 0; } ! int pretaginfo(const struct trigger_interface_t* cb, const char *message, const char *directory, int name_list_count, const char **name_list, const char **version_list, char tag_type, const char *action, const char *tag) { + CServerIo::trace(3,"pretaginfo: info_trigger"); pret_info.message=message; pret_info.directory=directory; pret_info.tag_type=tag_type; *************** *** 635,642 **** return parse_info(CVSROOT_TAGINFO,"%t %o %r/%p","%<{s v}",directory,generic_options,pretag_options); } ! int verifymsg(const struct trigger_interface_t* cb, const char *directory, const char *filename) { verif_info.directory=directory; verif_info.filename=filename; --- 638,646 ---- return parse_info(CVSROOT_TAGINFO,"%t %o %r/%p","%<{s v}",directory,generic_options,pretag_options); } ! int verifymsginfo(const struct trigger_interface_t* cb, const char *directory, const char *filename) { + CServerIo::trace(3,"verifymsginfo: info_trigger"); verif_info.directory=directory; verif_info.filename=filename; *************** *** 687,696 **** } } ! int loginfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string msg,line; login_info.message=message; login_info.status=status; login_info.directory=directory; --- 691,701 ---- } } ! int loginfoinfo(const struct trigger_interface_t* cb, const char *message, const char *status, const char *directory, int change_list_count, change_info_t *change_list) { cvs::string msg,line; + CServerIo::trace(3,"login_info: info_trigger"); login_info.message=message; login_info.status=status; login_info.directory=directory; *************** *** 718,725 **** return parse_info(CVSROOT_LOGINFO,"",msg.c_str(),directory,generic_options,loginfo_options); } ! int history(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { hist_info.type=type; hist_info.revs=revs; hist_info.workdir=workdir; --- 723,731 ---- return parse_info(CVSROOT_LOGINFO,"",msg.c_str(),directory,generic_options,loginfo_options); } ! int historyinfo(const struct trigger_interface_t* cb, char type, const char *workdir, const char *revs, const char *name, const char *bugid, const char *message) { + CServerIo::trace(3,"historyinfo: info_trigger"); hist_info.type=type; hist_info.revs=revs; hist_info.workdir=workdir; *************** *** 730,739 **** return parse_info(CVSROOT_HISTORYINFO,"%t|%d|%u|%w|%s|%v","",NULL,generic_options,history_options); } ! int notify(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string msg; notif_info.message=message; notif_info.bugid=bugid; notif_info.directory=directory; --- 736,746 ---- return parse_info(CVSROOT_HISTORYINFO,"%t|%d|%u|%w|%s|%v","",NULL,generic_options,history_options); } ! int notifyinfo(const struct trigger_interface_t* cb, const char *message, const char *bugid, const char *directory, const char *notify_user, const char *tag, const char *type, const char *file) { cvs::string msg; + CServerIo::trace(3,"notifyinfo: info_trigger"); notif_info.message=message; notif_info.bugid=bugid; notif_info.directory=directory; *************** *** 745,752 **** return parse_info(CVSROOT_NOTIFY,"","%<< %p %f\\n---\\nTriggered %y watch on %r\\nBy %u",directory,generic_options,notify_options); } ! int precommit(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { precmt_info.message=message; precmt_info.directory=directory; precmt_info.name_list=name_list; --- 752,760 ---- return parse_info(CVSROOT_NOTIFY,"","%<< %p %f\\n---\\nTriggered %y watch on %r\\nBy %u",directory,generic_options,notify_options); } ! int precommitinfo(const struct trigger_interface_t* cb, int name_list_count, const char **name_list, const char *message, const char *directory) { + CServerIo::trace(3,"precommitnfo: info_trigger"); precmt_info.message=message; precmt_info.directory=directory; precmt_info.name_list=name_list; *************** *** 755,795 **** return parse_info(CVSROOT_COMMITINFO,"%r/%p","%