Code cleanup

This commit is contained in:
Pierre Pronchery 2007-03-28 05:25:55 +00:00
parent c596ba0562
commit bc5a1b6be3

View File

@ -24,17 +24,17 @@ typedef int Prefs;
/* du */ /* du */
static int _du_do(Prefs * prefs, char const * filename); static int _du_do(Prefs * prefs, char const * filename);
static void _du_print(Prefs * prefs, off_t size, char const * filename);
static int _du(Prefs * prefs, int argc, char * argv[]) static int _du(Prefs * prefs, int argc, char * argv[])
{ {
int res = 0; int ret = 0;
int i; int i;
if(argc == 0) if(argc == 0)
return _du_do(prefs, ".") == 0 ? 0 : 2; return _du_do(prefs, ".") == 0 ? 0 : 2;
for(i = 0; i < argc; i++) for(i = 0; i < argc; i++)
res += _du_do(prefs, argv[i]); ret |= _du_do(prefs, argv[i]);
return res == 0 ? 0 : 2; return ret;
} }
static int _du_error(char const * error) static int _du_error(char const * error)
@ -44,8 +44,10 @@ static int _du_error(char const * error)
return 1; return 1;
} }
static off_t _du_blocks(Prefs * prefs, off_t size); /* _du_do */
static void _du_print(Prefs * prefs, off_t size, char const * filename);
static int _du_do_recursive(Prefs * prefs, char const * filename); static int _du_do_recursive(Prefs * prefs, char const * filename);
static int _du_do(Prefs * prefs, char const * filename) static int _du_do(Prefs * prefs, char const * filename)
{ {
int (* _stat)(const char * filename, struct stat * buf) = lstat; int (* _stat)(const char * filename, struct stat * buf) = lstat;
@ -63,29 +65,24 @@ static int _du_do(Prefs * prefs, char const * filename)
return _du_do_recursive(prefs, filename); return _du_do_recursive(prefs, filename);
} }
static off_t _du_blocks(Prefs * prefs, off_t size) /* _du_do_recursive */
{
if(*prefs & PREFS_k)
return size / 2;
return size;
}
static int _recursive_do(Prefs * prefs, off_t * size, char ** filename); static int _recursive_do(Prefs * prefs, off_t * size, char ** filename);
static int _du_do_recursive(Prefs * prefs, char const * filename) static int _du_do_recursive(Prefs * prefs, char const * filename)
{ {
long long size = 0; int ret;
off_t size = 0;
char * p; char * p;
int len; int len;
int res;
len = strlen(filename); len = strlen(filename);
if((p = malloc(len + 1)) == NULL) if((p = malloc(len + 1)) == NULL)
return _du_error("malloc"); return _du_error("malloc");
strcpy(p, filename); strcpy(p, filename);
res = _recursive_do(prefs, &size, &p); ret = _recursive_do(prefs, &size, &p);
printf("%lld %s\n", size, filename); printf("%lld %s\n", (long long)size, filename);
free(p); free(p);
return res; return ret;
} }
static void _recursive_do_stat(Prefs * prefs, off_t * size, char ** filename); static void _recursive_do_stat(Prefs * prefs, off_t * size, char ** filename);
@ -93,7 +90,7 @@ static int _recursive_do(Prefs * prefs, off_t * size, char ** filename)
{ {
DIR * dir; DIR * dir;
struct dirent * de; struct dirent * de;
int len; size_t len;
char * p; char * p;
if((dir = opendir(*filename)) == NULL) if((dir = opendir(*filename)) == NULL)
@ -122,6 +119,7 @@ static int _recursive_do(Prefs * prefs, off_t * size, char ** filename)
return closedir(dir) == 0 ? 0 : 1; return closedir(dir) == 0 ? 0 : 1;
} }
static off_t _du_blocks(Prefs * prefs, off_t size);
static void _recursive_do_stat(Prefs * prefs, off_t * size, char ** filename) static void _recursive_do_stat(Prefs * prefs, off_t * size, char ** filename)
{ {
int (* _stat)(const char * filename, struct stat * buf) = lstat; int (* _stat)(const char * filename, struct stat * buf) = lstat;
@ -154,10 +152,18 @@ static void _recursive_do_stat(Prefs * prefs, off_t * size, char ** filename)
_du_print(prefs, st.st_blocks, *filename); _du_print(prefs, st.st_blocks, *filename);
} }
static off_t _du_blocks(Prefs * prefs, off_t size)
{
if(*prefs & PREFS_k)
return size / 2;
return size;
}
static void _du_print(Prefs * prefs, off_t size, char const * filename) static void _du_print(Prefs * prefs, off_t size, char const * filename)
{ {
long long s = _du_blocks(prefs, size); long long s;
s = _du_blocks(prefs, size);
printf("%lld %s\n", s, filename); printf("%lld %s\n", s, filename);
} }
@ -209,5 +215,5 @@ int main(int argc, char * argv[])
default: default:
return _usage(); return _usage();
} }
return _du(&prefs, argc - optind, &argv[optind]); return _du(&prefs, argc - optind, &argv[optind]) == 0 ? 0 : 2;
} }