summaryrefslogtreecommitdiff
path: root/archivers/libcabinet/files/patch-listcap.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivers/libcabinet/files/patch-listcap.cpp')
-rw-r--r--archivers/libcabinet/files/patch-listcap.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/archivers/libcabinet/files/patch-listcap.cpp b/archivers/libcabinet/files/patch-listcap.cpp
new file mode 100644
index 000000000000..409e1f6c0e58
--- /dev/null
+++ b/archivers/libcabinet/files/patch-listcap.cpp
@@ -0,0 +1,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)
+ {