aboutsummaryrefslogtreecommitdiffstats
path: root/sysutils/xdu
diff options
context:
space:
mode:
authorJun Kuriyama <kuriyama@FreeBSD.org>2001-03-23 22:32:28 +0800
committerJun Kuriyama <kuriyama@FreeBSD.org>2001-03-23 22:32:28 +0800
commit63cdda0b245eb3b2f80454ecf35ab620ec69eb28 (patch)
treef36fb1dcfcb21d1ddd21dc5f9160c68469c888e0 /sysutils/xdu
parentee56e35fb82a03c0f4afdf9d654f7054e73d93bd (diff)
downloadfreebsd-ports-63cdda0b245eb3b2f80454ecf35ab620ec69eb28.tar.gz
freebsd-ports-63cdda0b245eb3b2f80454ecf35ab620ec69eb28.tar.zst
freebsd-ports-63cdda0b245eb3b2f80454ecf35ab620ec69eb28.zip
o Fix $MASTER_SITES.
o Add WWW: line. o Add patch from OpenBSD. Submitted by: KATO Tsuguru <tkato@prontomail.ne.jp> PR: ports/25871
Notes
Notes: svn path=/head/; revision=40273
Diffstat (limited to 'sysutils/xdu')
-rw-r--r--sysutils/xdu/files/patch-aa77
1 files changed, 77 insertions, 0 deletions
diff --git a/sysutils/xdu/files/patch-aa b/sysutils/xdu/files/patch-aa
new file mode 100644
index 000000000000..84a506215fa0
--- /dev/null
+++ b/sysutils/xdu/files/patch-aa
@@ -0,0 +1,77 @@
+--- xdu.c.orig Mon Jun 6 04:29:23 1994
++++ xdu.c Fri Mar 16 07:20:49 2001
+@@ -235,6 +235,7 @@
+ char name[4096];
+ int size;
+ FILE *fp;
++ char *p, *n;
+
+ if (strcmp(filename, "-") == 0) {
+ fp = stdin;
+@@ -244,11 +245,21 @@
+ exit(1);
+ }
+ }
++
+ while (fgets(buf,sizeof(buf),fp) != NULL) {
+- sscanf(buf, "%d %s\n", &size, name);
++ p = buf;
++ while (*p && isspace(*p)) p++;
++ size = atoi(p);
++ while (*p && !isspace(*p)) p++;
++ while (*p && isspace(*p)) p++;
++ n = name;
++ while (*p && *p != '\n' && *p != '\r')
++ *n++ = *p++;
++ *n++ = '\0';
+ /*printf("%d %s\n", size, name);*/
+ parse_entry(name,size);
+ }
++
+ fclose(fp);
+ }
+
+@@ -269,7 +280,7 @@
+ length = strlen(name);
+ if ((length > 0) && (name[length-1] == '/')) {
+ /* strip off trailing / (e.g. GNU du) */
+- name[length-1] = 0;
++ name[--length] = 0;
+ }
+
+ arg = 0; indx = 0;
+@@ -289,8 +300,10 @@
+ }
+ name++;
+ }
+- buf[indx] = 0;
+- path[arg++] = strdup(buf);
++ if (length) {
++ buf[indx] = 0;
++ path[arg++] = strdup(buf);
++ }
+ path[arg] = NULL;
+
+ addtree(&top,path,size);
+@@ -399,15 +412,15 @@
+
+ /*printf("addtree(\"%s\",\"%s\",%d)\n", top->name, path[0], size);*/
+
++ if (path[0] == NULL) {
++ /* end of the chain, save size */
++ top->size = size;
++ return;
++ }
++
+ /* check all children for a match */
+ for (np = top->child; np != NULL; np = np->peer) {
+ if (strcmp(path[0],np->name) == 0) {
+- /* name matches */
+- if (path[1] == NULL) {
+- /* end of the chain, save size */
+- np->size = size;
+- return;
+- }
+ /* recurse */
+ addtree(np,&path[1],size);
+ return;