From 4bbe294581e4dc2694eade6b765a65c96a0800ff Mon Sep 17 00:00:00 2001
From: rswindell <>
Date: Wed, 26 Mar 2003 03:44:53 +0000
Subject: [PATCH] Added support for -f option to *not* FTP-download
 distribution list (cause of segfault on some systems). Removed unnecessary
 CRs in printfs.

---
 src/sbbs3/install/sbbsinst.c | 75 ++++++++++++++++++++----------------
 1 file changed, 41 insertions(+), 34 deletions(-)

diff --git a/src/sbbs3/install/sbbsinst.c b/src/sbbs3/install/sbbsinst.c
index 9c0e80b132..fdc2310b7d 100644
--- a/src/sbbs3/install/sbbsinst.c
+++ b/src/sbbs3/install/sbbsinst.c
@@ -128,6 +128,7 @@ char revision[16];
 
 int  backup_level=5;
 BOOL keep_makefile=FALSE;
+BOOL ftp_distlist=TRUE;
 
 /*************/
 /* Constants */
@@ -156,7 +157,7 @@ void bail(int code)
 
 void allocfail(uint size)
 {
-    printf("\7Error allocating %u bytes of memory.\r\n",size);
+    printf("\7Error allocating %u bytes of memory.\n",size);
     bail(1);
 }
 
@@ -192,8 +193,8 @@ int main(int argc, char **argv)
 
 	sscanf("$Revision$", "%*s %s", revision);
 
-    printf("\r\nSynchronet Installation %s-%s  Copyright 2003 "
-        "Rob Swindell\r\n",revision,PLATFORM_DESC);
+    printf("\nSynchronet Installation %s-%s  Copyright 2003 "
+        "Rob Swindell\n",revision,PLATFORM_DESC);
 
     memset(&uifc,0,sizeof(uifc));
 
@@ -218,6 +219,9 @@ int main(int argc, char **argv)
                 case 'E':
                     uifc.esc_delay=atoi(argv[i]+2);
                     break;
+				case 'F':
+					ftp_distlist=FALSE;
+					break;
 				case 'I':
 					uifc.mode|=UIFC_IBM;
 					break;
@@ -229,16 +233,17 @@ int main(int argc, char **argv)
                 default:
                     printf("\nusage: %s [ctrl_dir] [options]"
                         "\n\noptions:\n\n"
-                        "-d  =  run in standard input/output/door mode\r\n"
-                        "-c  =  force color mode\r\n"
+						"-f  =  do not FTP distribution list\n"
+                        "-d  =  run in standard input/output/door mode\n"
+                        "-c  =  force color mode\n"
 #ifdef USE_CURSES
-                        "-e# =  set escape delay to #msec\r\n"
-						"-i  =  force IBM charset\r\n"
+                        "-e# =  set escape delay to #msec\n"
+						"-i  =  force IBM charset\n"
 #endif
 #if !defined(__unix__)
-                        "-v# =  set video mode to #\r\n"
+                        "-v# =  set video mode to #\n"
 #endif
-                        "-l# =  set screen lines to #\r\n"
+                        "-l# =  set screen lines to #\n"
 						,argv[0]
                         );
         			exit(0);
@@ -292,7 +297,7 @@ int main(int argc, char **argv)
 
 	sprintf(str,"Synchronet Installation %s-%s",revision,PLATFORM_DESC);
 	if(uifc.scrn(str)) {
-		printf(" USCRN (len=%d) failed!\r\n",uifc.scrn_len+1);
+		printf(" USCRN (len=%d) failed!\n",uifc.scrn_len+1);
 		bail(1);
 	}
 
@@ -651,7 +656,7 @@ get_distlist(void)
 	int		s=0;
 	char*	p;
 	char*	tp;
-	ftp_FILE	*list;
+	ftp_FILE	*list=NULL;
 	char	sep[2]={'\t',0};
 	char	str[1024];
 
@@ -687,31 +692,33 @@ get_distlist(void)
 		strcpy(file[f++],str);
 	}
 
-	uifc.pop("Getting distributions");
-	if((list=ftpGetURL(DIST_LIST_URL1,ftp_user,ftp_pass,&ret1))==NULL
-			&& (list=ftpGetURL(DIST_LIST_URL2,ftp_user,ftp_pass,&ret2))==NULL
-			&& (list=ftpGetURL(DIST_LIST_URL3,ftp_user,ftp_pass,&ret3))==NULL
-			&& (list=ftpGetURL(DIST_LIST_URL4,ftp_user,ftp_pass,&ret4))==NULL
-			&& (list=ftpGetURL(DIST_LIST_URL5,ftp_user,ftp_pass,&ret5))==NULL
-			&& r==0)  {
-		uifc.pop(NULL);
-		uifc.bail();
-		printf("Cannot get distribution list!\n"
-			"%s\n- %s\n"
-			"%s\n- %s\n"
-			"%s\n- %s\n"
-			"%s\n- %s\n"
-			"%s\n- %s\n"
-			,DIST_LIST_URL1,ftpErrString(ret1)
-			,DIST_LIST_URL2,ftpErrString(ret2)
-			,DIST_LIST_URL3,ftpErrString(ret3)
-			,DIST_LIST_URL4,ftpErrString(ret4)
-			,DIST_LIST_URL5,ftpErrString(ret5)
-			);
-		exit(EXIT_FAILURE);
+	if(ftp_distlist) {
+		uifc.pop("Getting distributions");
+		if((list=ftpGetURL(DIST_LIST_URL1,ftp_user,ftp_pass,&ret1))==NULL
+				&& (list=ftpGetURL(DIST_LIST_URL2,ftp_user,ftp_pass,&ret2))==NULL
+				&& (list=ftpGetURL(DIST_LIST_URL3,ftp_user,ftp_pass,&ret3))==NULL
+				&& (list=ftpGetURL(DIST_LIST_URL4,ftp_user,ftp_pass,&ret4))==NULL
+				&& (list=ftpGetURL(DIST_LIST_URL5,ftp_user,ftp_pass,&ret5))==NULL
+				&& r==0)  {
+			uifc.pop(NULL);
+			uifc.bail();
+			printf("Cannot get distribution list!\n"
+				"%s\n- %s\n"
+				"%s\n- %s\n"
+				"%s\n- %s\n"
+				"%s\n- %s\n"
+				"%s\n- %s\n"
+				,DIST_LIST_URL1,ftpErrString(ret1)
+				,DIST_LIST_URL2,ftpErrString(ret2)
+				,DIST_LIST_URL3,ftpErrString(ret3)
+				,DIST_LIST_URL4,ftpErrString(ret4)
+				,DIST_LIST_URL5,ftpErrString(ret5)
+				);
+			exit(EXIT_FAILURE);
+		}
 	}
 
-	while((list->gets(in_line,sizeof(in_line),list))!=NULL)  {
+	while(list!=NULL && (list->gets(in_line,sizeof(in_line),list))!=NULL)  {
 		i=strlen(in_line);
 		while(i>0 && in_line[i]<=' ')
 			in_line[i--]=0;
-- 
GitLab