From 2a5257209a9bd874a112d2d75d696a5049c6c5cd Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 11 Apr 2001 03:37:52 +0000
Subject: [PATCH] get/putextdesc functions converted from C++ to C (for DLL
 exportability)

---
 src/sbbs3/file.cpp  | 33 +--------------------------------
 src/sbbs3/filedat.c | 30 ++++++++++++++++++++++++++++++
 src/sbbs3/sbbs.h    |  5 +++--
 3 files changed, 34 insertions(+), 34 deletions(-)

diff --git a/src/sbbs3/file.cpp b/src/sbbs3/file.cpp
index 69262cf63d..784e610ebd 100644
--- a/src/sbbs3/file.cpp
+++ b/src/sbbs3/file.cpp
@@ -37,37 +37,6 @@
 
 #include "sbbs.h"
 
-void sbbs_t::getextdesc(uint dirnum, ulong datoffset, char *ext)
-{
-	char str[256];
-	int file;
-
-	memset(ext,0,513);
-	sprintf(str,"%s%s.exb",cfg.dir[dirnum]->data_dir,cfg.dir[dirnum]->code);
-	if((file=nopen(str,O_RDONLY))==-1)
-		return;
-	lseek(file,(datoffset/F_LEN)*512L,SEEK_SET);
-	read(file,ext,512);
-	close(file);
-	}
-
-	void sbbs_t::putextdesc(uint dirnum, ulong datoffset, char *ext)
-	{
-		char str[256],nulbuf[512];
-		int file;
-
-	memset(nulbuf,0,512);
-	sprintf(str,"%s%s.exb",cfg.dir[dirnum]->data_dir,cfg.dir[dirnum]->code);
-	if((file=nopen(str,O_WRONLY|O_CREAT))==-1)
-		return;
-	lseek(file,0L,SEEK_END);
-	while(filelength(file)<(long)(datoffset/F_LEN)*512L)
-		write(file,nulbuf,512);
-	lseek(file,(datoffset/F_LEN)*512L,SEEK_SET);
-	write(file,ext,512);
-	close(file);
-}
-
 /****************************************************************************/
 /* Prints all information of file in file_t structure 'f'					*/
 /****************************************************************************/
@@ -108,7 +77,7 @@ void sbbs_t::fileinfo(file_t* f)
 			bprintf(text[InvalidAlternatePathN],f->altpath); }
 	CRLF;
 	if(f->misc&FM_EXTDESC) {
-		getextdesc(f->dir,f->datoffset,ext);
+		getextdesc(&cfg,f->dir,f->datoffset,ext);
 		CRLF;
 		putmsg(ext,P_NOATCODES);
 		CRLF; }
diff --git a/src/sbbs3/filedat.c b/src/sbbs3/filedat.c
index b415b37474..cdac690936 100644
--- a/src/sbbs3/filedat.c
+++ b/src/sbbs3/filedat.c
@@ -637,3 +637,33 @@ BOOL DLLCALL rmuserxfers(scfg_t* cfg, int fromuser, int destuser, char *fname)
 	return(TRUE);
 }
 
+void DLLCALL getextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext)
+{
+	char str[256];
+	int file;
+
+	memset(ext,0,513);
+	sprintf(str,"%s%s.exb",cfg->dir[dirnum]->data_dir,cfg->dir[dirnum]->code);
+	if((file=nopen(str,O_RDONLY))==-1)
+		return;
+	lseek(file,(datoffset/F_LEN)*512L,SEEK_SET);
+	read(file,ext,512);
+	close(file);
+}
+
+void DLLCALL putextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext)
+{
+	char str[256],nulbuf[512];
+	int file;
+
+	memset(nulbuf,0,sizeof(nulbuf));
+	sprintf(str,"%s%s.exb",cfg->dir[dirnum]->data_dir,cfg->dir[dirnum]->code);
+	if((file=nopen(str,O_WRONLY|O_CREAT))==-1)
+		return;
+	lseek(file,0L,SEEK_END);
+	while(filelength(file)<(long)(datoffset/F_LEN)*512L)
+		write(file,nulbuf,512);
+	lseek(file,(datoffset/F_LEN)*512L,SEEK_SET);
+	write(file,ext,512);
+	close(file);
+}
diff --git a/src/sbbs3/sbbs.h b/src/sbbs3/sbbs.h
index b8edf03dde..ae806a56d8 100644
--- a/src/sbbs3/sbbs.h
+++ b/src/sbbs3/sbbs.h
@@ -548,8 +548,6 @@ public:
 	void	fileinfo(file_t* f);
 	void	openfile(file_t* f);
 	void	closefile(file_t* f);
-	void	putextdesc(uint dirnum, ulong datoffset, char *ext);
-	void	getextdesc(uint dirnum, ulong datoffset, char *ext);
 	bool	removefcdt(file_t* f);
 	bool	movefile(file_t* f, int newdir);
 	char *	getfilespec(char *str);
@@ -729,6 +727,9 @@ extern "C" {
 	DLLEXPORT 	BOOL	DLLCALL getfileixb(scfg_t* cfg, file_t* f);
 	DLLEXPORT 	BOOL	DLLCALL getfiledat(scfg_t* cfg, file_t* f);
 	DLLEXPORT 	BOOL	DLLCALL putfiledat(scfg_t* cfg, file_t* f);
+	DLLEXPORT	void	DLLCALL putextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
+	DLLEXPORT	void	DLLCALL getextdesc(scfg_t* cfg, uint dirnum, ulong datoffset, char *ext);
+
 	DLLEXPORT 	BOOL	DLLCALL removefiledat(scfg_t* cfg, file_t* f);
 	DLLEXPORT 	BOOL	DLLCALL addfiledat(scfg_t* cfg, file_t* f);
 	DLLEXPORT 	BOOL	DLLCALL findfile(scfg_t* cfg, uint dirnum, char *filename);
-- 
GitLab