summaryrefslogtreecommitdiff
path: root/archivers/libcabinet/files/patch-listcap.cpp
blob: 409e1f6c0e5836f446ed9712d1658679e2e6663c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
--- listcab.cpp.orig	Tue Aug 19 20:42:27 2003
+++ listcab.cpp	Tue Aug 19 20:49:27 2003
@@ -47,13 +47,19 @@
 			cerr << "New Folder Error: " << retval << endl;
 			return 1;
 		}
-
+		int n;
 		do{
 			cout << "Enter filename: ";
-			gets(filename);
-
-			if(strlen(filename) > 0)
+			fgets(filename, 256, stdin);
+			n = strlen (filename);
+			
+			if (n == 1 && filename[0] == '\n')
+				n = 0;
+			
+			if(n > 0)
 			{
+				if (filename[n-1] == '\n')
+					filename[n-1] = '\0';
 				if((retval = cab.add_file(filename)) != OK)
 				{
 					perror("read");
@@ -62,10 +68,13 @@
 					return 1;
 				}
 			}
-		}while(strlen(filename) > 0);
+		}while(n > 0);
 
 		cout << "Enter filename for cabinet: ";
-		gets(filename);
+		fgets(filename, 256, stdin);
+		n = strlen (filename);
+		if (n > 0 && filename[n-1] == '\n')
+			filename[n-1] = '\0';
 
 		if((retval = cab.close(filename)) != OK)
 		{