[OpenAFS-devel] Error while compiling on w2k

James Peterson james@abrakus.com
Fri, 17 Jan 2003 17:14:20 -0800


What version of the complier are you using?

You can also apply the following patches, since the external references you
mentioned aren't being used:

diff -NurEB --exclude-from=exclude bas/src/config/util_cr.c
upd/src/config/util_cr.c
--- bas/src/config/util_cr.c	2002-12-10 18:44:40.000000000 -0800
+++ upd/src/config/util_cr.c	2003-01-17 17:00:32.000000000 -0800
@@ -18,7 +18,10 @@
 #include "malloc.h"
 #include "time.h"
 #include "stdlib.h"
-#include <Winver.h>
+
+#ifndef  intptr_t
+#define intptr_t long
+#endif

 void usuage()
 {
@@ -33,6 +36,7 @@
 	OR util_cr @ file.ini \"[SectionKey]variable=value\" ; update ini-ipr-pwf
file\n\
 	OR util_cr @ file.ini \"[SectionKey]variable=value*DatE*\" ; update
ini-ipr-pwf file, insert date\n\
 	OR util_cr ~  ;force error\n\
+	OR util_cr _del  [/q=quiet /s=recurese] [*. *. *.] ;delete \n\
 	OR util_cr _ [nt xp 98 9x w2] ;test for OS, return 1 if match else 0\n\
 	OR unil_cr __ return compiler version\n" );
 	exit(0xc000);
@@ -43,103 +47,6 @@
 		WORD charset;        // character set (code page)
 };

-int CheckVersion(int argc,char *argv[])
-{
-	OSVERSIONINFO VersionInfo;
-	int i;
-	memset(&VersionInfo,0,sizeof(VersionInfo));
-	VersionInfo.dwOSVersionInfoSize =sizeof(OSVERSIONINFO);
-	if (!GetVersionEx(&VersionInfo))
-	{
-		return 0XC000;
-	}
-	for (i=1;i<argc;i++)
-	{
-		if (stricmp(argv[i],"nt")==0)
-		{
-			if ((VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
-				&& (VersionInfo.dwMajorVersion==4)
-				&& (VersionInfo.dwMinorVersion==0))
-				return 1;
-		}
-		if (stricmp(argv[i],"xp")==0)
-		{
-			if ((VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
-				&& (VersionInfo.dwMajorVersion==5)
-				&& (VersionInfo.dwMinorVersion==1))
-				return 1;
-		}
-		if (stricmp(argv[i],"w2")==0)
-		{
-			if ((VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_NT)
-				&& (VersionInfo.dwMajorVersion==5)
-				&& (VersionInfo.dwMinorVersion==0))
-				return 1;
-		}
-		if (stricmp(argv[i],"98")==0)
-		{
-			if ((VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) &&
(VersionInfo.dwMinorVersion==10))
-				return 1;
-		}
-		if (stricmp(argv[i],"95")==0)
-		{
-			if ((VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS) &&
(VersionInfo.dwMinorVersion==0))
-
-				return 1;
-		}
-		if (stricmp(argv[i],"9x")==0)
-		{
-			if (VersionInfo.dwPlatformId==VER_PLATFORM_WIN32_WINDOWS)
-				return 1;
-		}
-		if (stricmp(argv[i],"_")==0)
-			return 0;
-	}
-	return 0;
-}
-
-int DoCheckVersion(int argc,char *argv[])
-{
-	//arg 1 nth versions
-	//arg nth _
-	//arg n+1 command
-	//arg n+2 option true
-	//arg n+3 option false
-	//arg n+4 ... command arguments
-	int x,i;
-	int ret;
-	char command[1024];
-	for (x=1;((x<argc) && (strcmp(argv[x],"_")!=0));x++);
-	if (strcmp(argv[x],"_")!=0)
-		return 0xc000;
-	ret=CheckVersion(argc-x,&argv[x]);
-	if (x+6>=argc)
-	{
-		return ret;
-	}
-	for (++x;((x<argc) && (strcmp(argv[x],"_")!=0));x++);
-	if (strcmp(argv[x],"_")!=0)
-		return 0xc000;
-	i=0;
-	GetSystemDirectory(command,sizeof(command));
-	sprintf(command,"%s\\cmd.exe",command);
-	argv[i++]=command;
-	argv[i++]="/c";
-	argv[i++]=argv[x+1];
-	if (ret)
-		argv[i++]=argv[x+2];
-	else
-		argv[i++]=argv[x+3];
-	for (x+=4;x<argc;x++)
-		argv[i++]=argv[x];
-	argv[i]=NULL;
-/*	for (i=0;argv[i];i++)
-		command=argv[i];
-*/
-	ret=_spawnv(_P_WAIT,argv[0],argv);
-	return 0;
-}
-
 void Addkey (const char *hkey,const char *subkey,const char *stag,const
char *sval)
 {
 	DWORD disposition,result;
@@ -202,26 +109,107 @@
 	}
 }

+void doremove(BOOL bRecurse,BOOL bQuiet,char* argv)
+{
+	char *pParm;
+	char parm[MAX_PATH+1];
+	char basdir[MAX_PATH+1];
+	strcpy(parm,argv);
+	pParm=parm;
+	GetCurrentDirectory(sizeof(basdir),basdir);
+	if (strrchr(parm,'\\')!=NULL)
+	{/*jump to base directory*/
+		pParm=strrchr(parm,'\\');
+		*pParm=0;
+		if (!SetCurrentDirectory(parm))
+			return;
+		pParm++;
+	}
+	if (!bRecurse)
+	{
+		struct _finddata_t fileinfo;
+		intptr_t hfile;
+		BOOL bmore;
+		char basdir[MAX_PATH+1];
+		GetCurrentDirectory(sizeof(basdir),basdir);
+		hfile=_findfirst(pParm,&fileinfo);
+		bmore=(hfile!=-1);
+		while (bmore)
+		{
+			if ((DeleteFile(fileinfo.name)==1) && (!bQuiet))
+				printf("Remove %s\\%s\n",basdir,fileinfo.name);
+			bmore=(_findnext(hfile,&fileinfo)==0);
+		}
+		_findclose(hfile);
+	} else {
+	/*RECURSIVE LOOP - SCAN directories*/
+		struct _finddata_t fileinfo;
+		intptr_t hfile;
+		BOOL bmore;
+		doremove(FALSE,bQuiet,pParm);
+		hfile=_findfirst("*.*",&fileinfo);
+		bmore=(hfile!=-1);
+		while (bmore)
+		{
+			if (fileinfo.attrib & _A_SUBDIR)
+			{
+				if ((strcmp(fileinfo.name,".")!=0) && (strcmp(fileinfo.name,"..")!=0))
+				{
+					if (SetCurrentDirectory(fileinfo.name))
+						doremove(TRUE,bQuiet,pParm);
+					SetCurrentDirectory(basdir);
+				}
+			}
+			bmore=(_findnext(hfile,&fileinfo)==0);
+		}
+		_findclose(hfile);
+	}
+	SetCurrentDirectory(basdir);
+}
+
 int main(int argc, char* argv[])
 {
+/*	typedef char * CHARP;*/
 	char fname[128];
 	FILE *file;
 	int l,i;
 	char **pvar,*ch;
 	long len;
-	typedef char * CHARP;
+	BOOL bRecurse=FALSE;
+	BOOL bQuiet=FALSE;
 	if (argc<2)
  		usuage();
+	if (stricmp(argv[1],"_del")==0) /*DELETE routine*/
+ 	{
+		int iargc=2;
+		if ((argc>iargc) && (stricmp(argv[iargc],"/s")==0))
+		{
+			iargc++;
+			bRecurse=TRUE;
+		}
+		if ((argc>iargc) && (stricmp(argv[iargc],"/q")==0))
+		{
+			iargc++;
+			bQuiet=TRUE;
+		}
+		if ((argc>iargc) && (stricmp(argv[iargc],"/s")==0))
+		{
+			iargc++;
+			bRecurse=TRUE;
+		}
+		while (iargc<argc)
+		{
+			doremove(bRecurse,bQuiet,argv[iargc]);
+			iargc++;
+		}
+		return 0;
+	}
 	if (strcmp(argv[1],"__")==0)
  	{
 		return _MSC_VER;
 	}
 	 if (argc<3)
  		usuage();
-	if (strcmp(argv[1],"_")==0)
- 	{
-		return DoCheckVersion(argc,argv);
-	}
  	if (strcmp(argv[1],"}")==0)
  	{
  		char v1[4],v2[4],v3[4],v4[4];
@@ -542,7 +530,7 @@
 		ch++;
 	}
 	fclose(file);
-	pvar=(CHARP *)malloc(argc*sizeof(CHARP));
+	pvar=(char **)malloc(argc*sizeof(char *));
 	for (i=1;i<argc-1;i++)
 		pvar[i]=argv[i+1];
 	pvar[argc-1]=NULL;

James
"Integrity is the Base of Excellence"