From ec3430d389a361069c39f383fd01f17094901c07 Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Fri, 22 Aug 2003 01:59:08 +0000
Subject: [PATCH] Added support for "Native Executable" toggle option for
 transfer protocols.

---
 src/sbbs3/scfg/scfgxfr1.c | 72 ++++++++++++++++++++-------------------
 1 file changed, 37 insertions(+), 35 deletions(-)

diff --git a/src/sbbs3/scfg/scfgxfr1.c b/src/sbbs3/scfg/scfgxfr1.c
index b18ceafee6..9dced0acdb 100644
--- a/src/sbbs3/scfg/scfgxfr1.c
+++ b/src/sbbs3/scfg/scfgxfr1.c
@@ -6,7 +6,7 @@
  * @format.tab-size 4		(Plain Text/Source Code File Header)			*
  * @format.use-tabs true	(see http://www.synchro.net/ptsc_hdr.html)		*
  *																			*
- * Copyright 2002 Rob Swindell - http://www.synchro.net/copyright.html		*
+ * Copyright 2003 Rob Swindell - http://www.synchro.net/copyright.html		*
  *																			*
  * This program is free software; you can redistribute it and/or			*
  * modify it under the terms of the GNU General Public License				*
@@ -831,13 +831,10 @@ This is a list of file transfer protocols that can be used to transfer
 files either to or from a remote user. For each protocol, you can
 specify the mnemonic (hot-key) to use to specify that protocol, the
 command line to use for uploads, downloads, batch uploads, batch
-downloads, bidirectional file transfers, and the support of DSZLOG. If
+downloads, bi-directional file transfers, and the support of DSZLOG. If
 the protocol doesn't support a certain method of transfer, or you don't
 wish it to be available for a certain method of transfer, leave the
-command line for that method blank. Be advised, that if you add or
-remove any transfer protocols, you will need to edit the protocol menus
-(ULPROT, DLPROT, BATUPROT, BATDPROT, and BIPROT) in the TEXT\MENU
-directory accordingly.
+command line for that method blank.
 */
 				i=uifc.list(i,0,0,50,&prot_dflt,NULL,"File Transfer Protocols",opt);
 				if(i==-1)
@@ -865,18 +862,8 @@ directory accordingly.
 							errormsg(WHERE,ERR_ALLOC,nulstr,sizeof(prot_t));
 							continue; }
 						memset(cfg.prot[0],0,sizeof(prot_t));
-						cfg.prot[0]->mnemonic='Y';
-						cfg.prot[0]->misc=PROT_DSZLOG;
-						strcpy(cfg.prot[0]->ulcmd
-							,"%!dsz port %p estimate 0 %e rb %f");
-						strcpy(cfg.prot[0]->dlcmd
-							,"%!dsz port %p estimate 0 %e sb %f");
-						strcpy(cfg.prot[0]->batulcmd
-							,"%!dsz port %p estimate 0 %e rb %f");
-						strcpy(cfg.prot[0]->batdlcmd
-							,"%!dsz port %p estimate 0 %e sb @%f"); }
-					else {
-
+						cfg.prot[0]->mnemonic='?';
+					} else {
 						for(j=cfg.total_prots;j>i;j--)
 							cfg.prot[j]=cfg.prot[j-1];
 						if((cfg.prot[i]=(prot_t *)MALLOC(
@@ -903,27 +890,29 @@ directory accordingly.
 				done=0;
 				while(!done) {
 					j=0;
-					sprintf(opt[j++],"%-25.25s%c","Mnemonic (Command Key)"
+					sprintf(opt[j++],"%-30.30s%c","Mnemonic (Command Key)"
 						,cfg.prot[i]->mnemonic);
-					sprintf(opt[j++],"%-25.25s%-40s","Protocol Name"
+					sprintf(opt[j++],"%-30.30s%-40s","Protocol Name"
 						,cfg.prot[i]->name);
-					sprintf(opt[j++],"%-25.25s%-40s","Access Requirements"
+					sprintf(opt[j++],"%-30.30s%-40s","Access Requirements"
 						,cfg.prot[i]->arstr);
-					sprintf(opt[j++],"%-25.25s%-40s","Upload Command Line"
+					sprintf(opt[j++],"%-30.30s%-40s","Upload Command Line"
 						,cfg.prot[i]->ulcmd);
-					sprintf(opt[j++],"%-25.25s%-40s","Download Command Line"
+					sprintf(opt[j++],"%-30.30s%-40s","Download Command Line"
 						,cfg.prot[i]->dlcmd);
-					sprintf(opt[j++],"%-25.25s%-40s","Batch UL Command Line"
+					sprintf(opt[j++],"%-30.30s%-40s","Batch Upload Command Line"
 						,cfg.prot[i]->batulcmd);
-					sprintf(opt[j++],"%-25.25s%-40s","Batch DL Command Line"
+					sprintf(opt[j++],"%-30.30s%-40s","Batch Download Command Line"
 						,cfg.prot[i]->batdlcmd);
-					sprintf(opt[j++],"%-25.25s%-40s","Bidir Command Line"
+					sprintf(opt[j++],"%-30.30s%-40s","Bi-dir Command Line"
 						,cfg.prot[i]->bicmd);
-					sprintf(opt[j++],"%-25.25s%s","Uses DSZLOG"
+					sprintf(opt[j++],"%-30.30s%s",   "Native (32-bit) Executable"
+						,cfg.prot[i]->misc&PROT_NATIVE ? "Yes" : "No");
+					sprintf(opt[j++],"%-30.30s%s",	 "Supports DSZLOG"
 						,cfg.prot[i]->misc&PROT_DSZLOG ? "Yes":"No");
 					opt[j][0]=0;
 					uifc.savnum=1;
-					switch(uifc.list(WIN_RHT|WIN_BOT|WIN_SAV|WIN_ACT,0,0,0,&prot_opt,0
+					switch(uifc.list(WIN_RHT|WIN_BOT|WIN_SAV|WIN_ACT,0,0,70,&prot_opt,0
 						,"File Transfer Protocol",opt)) {
 						case -1:
 							done=1;
@@ -973,19 +962,32 @@ directory accordingly.
 								,cfg.prot[i]->bicmd,sizeof(cfg.prot[i]->bicmd)-1,K_EDIT);
                             break;
 						case 8:
+							l=cfg.prot[i]->misc&PROT_NATIVE ? 0:1;
+							strcpy(opt[0],"Yes");
+							strcpy(opt[1],"No");
+							opt[2][0]=0;
+							uifc.savnum=2;
+							l=uifc.list(WIN_MID|WIN_SAV,0,0,0,&l,0
+								,"Native (32-bit) Executable",opt);
+							if((l==0 && !(cfg.prot[i]->misc&PROT_NATIVE))
+								|| (l==1 && cfg.prot[i]->misc&PROT_NATIVE)) {
+								cfg.prot[i]->misc^=PROT_NATIVE;
+								uifc.changes=1; 
+							}
+							break; 
+						case 9:
+							l=cfg.prot[i]->misc&PROT_DSZLOG ? 0:1;
 							strcpy(opt[0],"Yes");
 							strcpy(opt[1],"No");
 							opt[2][0]=0;
-							l=0;
 							uifc.savnum=2;
 							l=uifc.list(WIN_MID|WIN_SAV,0,0,0,&l,0
 								,"Uses DSZLOG",opt);
-							if(!l && !(cfg.prot[i]->misc&PROT_DSZLOG)) {
-								cfg.prot[i]->misc|=PROT_DSZLOG;
-								uifc.changes=1; }
-							else if(l==1 && cfg.prot[i]->misc&PROT_DSZLOG) {
-								cfg.prot[i]->misc&=~PROT_DSZLOG;
-								uifc.changes=1; }
+							if((l==0 && !(cfg.prot[i]->misc&PROT_DSZLOG))
+								|| (l==1 && cfg.prot[i]->misc&PROT_DSZLOG)) {
+								cfg.prot[i]->misc^=PROT_DSZLOG;
+								uifc.changes=1; 
+							}
 							break; 
 					} 
 				} 
-- 
GitLab