Code cleanup
This commit is contained in:
parent
67a899d29e
commit
88f7d838a3
28
src/ls.c
28
src/ls.c
|
@ -203,7 +203,7 @@ static int _ls(int argc, char * argv[], Prefs * prefs)
|
||||||
SList * files;
|
SList * files;
|
||||||
SList * dirs;
|
SList * dirs;
|
||||||
compare_func cmp = _ls_compare(prefs);
|
compare_func cmp = _ls_compare(prefs);
|
||||||
int res = 0;
|
int ret = 0;
|
||||||
int i;
|
int i;
|
||||||
int isdir;
|
int isdir;
|
||||||
char * str;
|
char * str;
|
||||||
|
@ -213,21 +213,21 @@ static int _ls(int argc, char * argv[], Prefs * prefs)
|
||||||
if(_ls_args(&files, &dirs) != 0)
|
if(_ls_args(&files, &dirs) != 0)
|
||||||
return 2;
|
return 2;
|
||||||
if(argc == 0)
|
if(argc == 0)
|
||||||
res += slist_insert_sorted(files, strdup("."), cmp);
|
ret |= slist_insert_sorted(files, strdup("."), cmp);
|
||||||
for(i = 0; i < argc; i++)
|
for(i = 0; i < argc; i++)
|
||||||
{
|
{
|
||||||
if((isdir = _is_directory(prefs, argv[i])) == 2)
|
if((isdir = _is_directory(prefs, argv[i])) == 2)
|
||||||
res++;
|
ret |= 1;
|
||||||
else if((str = strdup(argv[i])) == NULL)
|
else if((str = strdup(argv[i])) == NULL)
|
||||||
res += _ls_error("malloc", 1);
|
ret |= _ls_error("malloc", 1);
|
||||||
else if(*prefs & PREFS_d)
|
else if(*prefs & PREFS_d)
|
||||||
res += slist_insert_sorted(files, str, cmp);
|
ret |= slist_insert_sorted(files, str, cmp);
|
||||||
else
|
else
|
||||||
res += slist_insert_sorted(isdir ? dirs : files, str,
|
ret |= slist_insert_sorted(isdir ? dirs : files, str,
|
||||||
cmp);
|
cmp);
|
||||||
}
|
}
|
||||||
res += _ls_do(prefs, argc, NULL, files, dirs);
|
ret |= _ls_do(prefs, argc, NULL, files, dirs);
|
||||||
return res == 1 ? 2 : res;
|
return ret == 0 ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _ls_error(char const * message, int ret)
|
static int _ls_error(char const * message, int ret)
|
||||||
|
@ -277,7 +277,6 @@ static int _ls_directory_do(Prefs * prefs, char * directory)
|
||||||
SList * files;
|
SList * files;
|
||||||
SList * dirs;
|
SList * dirs;
|
||||||
compare_func cmp = _ls_compare(prefs);
|
compare_func cmp = _ls_compare(prefs);
|
||||||
int res = 0;
|
|
||||||
DIR * dir;
|
DIR * dir;
|
||||||
struct dirent * de;
|
struct dirent * de;
|
||||||
char * file = NULL;
|
char * file = NULL;
|
||||||
|
@ -285,7 +284,7 @@ static int _ls_directory_do(Prefs * prefs, char * directory)
|
||||||
int pos = 1;
|
int pos = 1;
|
||||||
|
|
||||||
if((dir = opendir(directory)) == NULL)
|
if((dir = opendir(directory)) == NULL)
|
||||||
return _ls_error(directory, 2);
|
return _ls_error(directory, 1);
|
||||||
_ls_args(&files, &dirs);
|
_ls_args(&files, &dirs);
|
||||||
for(; (de = readdir(dir)) != NULL; pos++)
|
for(; (de = readdir(dir)) != NULL; pos++)
|
||||||
{
|
{
|
||||||
|
@ -308,7 +307,7 @@ static int _ls_directory_do(Prefs * prefs, char * directory)
|
||||||
free(file);
|
free(file);
|
||||||
closedir(dir);
|
closedir(dir);
|
||||||
_ls_do(prefs, 2, directory, files, dirs);
|
_ls_do(prefs, 2, directory, files, dirs);
|
||||||
return res;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int _ls_args(SList ** files, SList ** dirs)
|
static int _ls_args(SList ** files, SList ** dirs)
|
||||||
|
@ -341,8 +340,13 @@ static int _ls_do(Prefs * prefs, int argc, char * directory, SList * files,
|
||||||
SList * dirs)
|
SList * dirs)
|
||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
|
char sep = 0;
|
||||||
|
|
||||||
|
if(slist_data(files) != NULL && slist_data(dirs) != NULL)
|
||||||
|
sep = '\n';
|
||||||
res += _ls_do_files(prefs, directory, files);
|
res += _ls_do_files(prefs, directory, files);
|
||||||
|
if(sep != 0)
|
||||||
|
fputc(sep, stdout);
|
||||||
res += _ls_do_dirs(prefs, argc, dirs);
|
res += _ls_do_dirs(prefs, argc, dirs);
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@ -669,5 +673,5 @@ int main(int argc, char * argv[])
|
||||||
|
|
||||||
if(_prefs_parse(&p, argc, argv) != 0)
|
if(_prefs_parse(&p, argc, argv) != 0)
|
||||||
return _usage();
|
return _usage();
|
||||||
return _ls(argc - optind, &argv[optind], &p);
|
return _ls(argc - optind, &argv[optind], &p) == 0 ? 0 : 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user