|
@@ -10,9 +10,8 @@ struct applet {
|
|
|
int (*func)(const char** args);
|
|
|
};
|
|
|
|
|
|
-int lazybox_version(const char** _)
|
|
|
+int lazybox_version(void)
|
|
|
{
|
|
|
- (void)_;
|
|
|
printf("lazybox by greatbridf\n");
|
|
|
return 0;
|
|
|
}
|
|
@@ -60,7 +59,7 @@ int ls(const char** args)
|
|
|
struct applet applets[] = {
|
|
|
{
|
|
|
"lazybox",
|
|
|
- lazybox_version,
|
|
|
+ NULL,
|
|
|
},
|
|
|
{
|
|
|
"pwd",
|
|
@@ -121,22 +120,19 @@ int parse_applet(const char* name)
|
|
|
|
|
|
int main(int argc, const char** argv)
|
|
|
{
|
|
|
- (void)argc;
|
|
|
- int offset = 0;
|
|
|
- const char* name = find_file_name(argv[offset++]);
|
|
|
- int type = -1;
|
|
|
-
|
|
|
-run:
|
|
|
- type = parse_applet(name);
|
|
|
- if (type == -1) {
|
|
|
+ if (argc == 0)
|
|
|
+ return lazybox_version();
|
|
|
+
|
|
|
+ const char* name = find_file_name(*argv);
|
|
|
+ int type = parse_applet(find_file_name(*argv));
|
|
|
+
|
|
|
+ if (type < 0) {
|
|
|
printf("applet not found: %s\n", name);
|
|
|
return -1;
|
|
|
}
|
|
|
|
|
|
- if (type == 0 && offset == 1 && argv[1]) {
|
|
|
- name = argv[offset++];
|
|
|
- goto run;
|
|
|
- }
|
|
|
-
|
|
|
- return applets[type].func(argv + offset);
|
|
|
+ if (type == 0)
|
|
|
+ return main(argc - 1, argv + 1);
|
|
|
+
|
|
|
+ return applets[type].func(argv + 1);
|
|
|
}
|