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","%