You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-misc/snarf/files/snarf-basename-patch.diff

148 lines
4.3 KiB

diff -ruN snarf-7.0.orig/http.c snarf-7.0/http.c
--- snarf-7.0.orig/http.c 2000-08-09 01:33:30.000000000 +0100
+++ snarf-7.0/http.c 2003-07-28 12:19:08.000000000 +0100
@@ -14,8 +14,6 @@
#include "util.h"
#include "llist.h"
-extern int default_opts;
-
int redirect_count = 0;
#define REDIRECT_MAX 10
diff -ruN snarf-7.0.orig/options.c snarf-7.0/options.c
--- snarf-7.0.orig/options.c 1999-07-27 20:42:51.000000000 +0100
+++ snarf-7.0/options.c 2003-07-28 11:59:05.000000000 +0100
@@ -8,8 +8,8 @@
int default_opts;
extern int debug_enabled;
-unsigned char
-set_options(unsigned char opts, char *optstring)
+unsigned int
+set_options(unsigned int opts, char *optstring)
{
int i;
@@ -78,6 +78,15 @@
case 'd':
debug_enabled = !debug_enabled;
break;
+
+ case 'b':
+ opts |= OPT_BASENAME;
+ break;
+
+ case 'B':
+ default_opts |= OPT_BASENAME;
+ break;
+
default:
report(WARN, "unknown option `%c', ignoring", optstring[i]);
}
diff -ruN snarf-7.0.orig/options.h snarf-7.0/options.h
--- snarf-7.0.orig/options.h 1999-07-27 20:42:51.000000000 +0100
+++ snarf-7.0/options.h 2003-07-28 12:20:47.000000000 +0100
@@ -12,12 +12,13 @@
#define OPT_PROGRESS (1 << 5) /* for python aka markus fleck */
#define OPT_BE_MOZILLA (1 << 6) /* To act like Mozilla */
#define OPT_BE_MSIE (1 << 7) /* To act like MSIE */
+#define OPT_BASENAME (1 << 8) /* Only show basename() of output */
/* Funcs */
#ifdef PROTOTYPES
-unsigned char set_options(unsigned char, char *);
+unsigned int set_options(unsigned int, char *);
#endif /* PROTOTYPES */
diff -ruN snarf-7.0.orig/snarf.1 snarf-7.0/snarf.1
--- snarf-7.0.orig/snarf.1 2000-01-17 14:26:13.000000000 +0000
+++ snarf-7.0/snarf.1 2003-07-28 12:45:26.000000000 +0100
@@ -90,6 +90,9 @@
.I "\-m"
Send a user-agent string similar to what Microsoft Internet Explorer
uses.
+.TP
+.I "\-b"
+Only print the basename of output file with the progress bars.
.PP
Each option only affects the URL that immediately follows it. To have
an option affect all URLs that follow it, use an uppercase letter for
diff -ruN snarf-7.0.orig/snarf.c snarf-7.0/snarf.c
--- snarf-7.0.orig/snarf.c 2000-08-09 01:34:45.000000000 +0100
+++ snarf-7.0/snarf.c 2003-07-28 12:43:29.000000000 +0100
@@ -50,6 +50,7 @@
" -n Ignore '-r' and transfer file in its entirety\n"
" -m Spoof MSIE user-agent string\n"
" -z Spoof Navigator user-agent string\n"
+ " -b Only print basename of output file\n"
"\n"
"Lowercase option letters only affect the URLs that "
"immediately follow them.\n"
diff -ruN snarf-7.0.orig/url.h snarf-7.0/url.h
--- snarf-7.0.orig/url.h 1999-07-27 20:42:51.000000000 +0100
+++ snarf-7.0/url.h 2003-07-28 12:00:03.000000000 +0100
@@ -28,7 +28,7 @@
char *proxy;
char *proxy_username;
char *proxy_password;
- unsigned char options;
+ unsigned int options;
off_t outfile_size;
off_t outfile_offset;
};
diff -ruN snarf-7.0.orig/util.c snarf-7.0/util.c
--- snarf-7.0.orig/util.c 2000-08-09 01:12:39.000000000 +0100
+++ snarf-7.0/util.c 2003-07-28 13:29:46.000000000 +0100
@@ -32,6 +32,7 @@
#include <ctype.h>
#include <errno.h>
#include <time.h>
+#include <libgen.h>
#include "url.h"
#include "options.h"
@@ -292,6 +293,10 @@
filename = strdup(rsrc->outfile);
+ if( rsrc->options & OPT_BASENAME ){
+ filename = basename(filename);
+ }
+
if( strlen(filename) > 24 )
filename[24] = '\0';
@@ -312,6 +317,7 @@
progress_update(Progress * p,
long int increment)
{
+ char *filename = NULL;
unsigned int units;
char *anim = "-\\|/";
@@ -320,12 +326,16 @@
p->current += increment;
- if (strlen(p->rsrc->outfile) > 24) {
- p->rsrc->outfile[24] = '\0';
- }
+ if( p->rsrc->options & OPT_BASENAME ){
+ filename = basename(strdup(p->rsrc->outfile));
+ } else
+ filename = strdup(p->rsrc->outfile);
+ if (strlen(filename) > 24)
+ filename[24] = '\0';
+
fprintf(stderr, "\r");
- fprintf(stderr, "%-25s [", p->rsrc->outfile);
+ fprintf(stderr, "%-25s [", filename);
if( p->length ) {