From d59938e3a2131e61f875f6eff48af5f89f57c732 Mon Sep 17 00:00:00 2001 From: "Jay Freeman (saurik)" Date: Sun, 5 Jul 2015 00:53:52 -0700 Subject: [PATCH] Just go ahead and use du (since we have it still). --- MobileCydia.mm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/MobileCydia.mm b/MobileCydia.mm index 1127bb04..55967590 100644 --- a/MobileCydia.mm +++ b/MobileCydia.mm @@ -4722,13 +4722,25 @@ static _H Diversions_; nil]; } -ssize_t DiskUsage(const char *path); - - (NSNumber *) du:(NSString *)path { - ssize_t usage(DiskUsage([path UTF8String])); - if (usage != -1) - usage /= 1024; - return [NSNumber numberWithUnsignedLong:usage]; + NSNumber *value(nil); + + FILE *du(popen([[NSString stringWithFormat:@"/usr/libexec/cydia/cydo /usr/libexec/cydia/du -ks %@", path] UTF8String], "r")); + if (du != NULL) { + char line[1024]; + while (fgets(line, sizeof(line), du) != NULL) { + size_t length(strlen(line)); + while (length != 0 && line[length - 1] == '\n') + line[--length] = '\0'; + if (char *tab = strchr(line, '\t')) { + *tab = '\0'; + value = [NSNumber numberWithUnsignedLong:strtoul(line, NULL, 0)]; + } + } + pclose(du); + } + + return value; } - (void) close { -- 2.47.2