64,7 → 64,7 |
/* Main entry point for touch, accepts an array of arguments */ |
int * cmd_touch(char **argv) |
{ |
unsigned int argc; |
unsigned int argc, i = 0, ret = 0; |
int fd; |
char *buff = NULL; |
|
73,31 → 73,36 |
/* Count the arguments */ |
for (argc = 0; argv[argc] != NULL; argc ++); |
|
if (argc != 2) { |
if (argc == 1) { |
printf("%s - incorrect number of arguments. Try `help %s extended'\n", |
cmdname, cmdname); |
return CMD_FAILURE; |
} |
|
buff = cli_strdup(argv[1]); |
dirp = opendir(buff); |
if (dirp) { |
cli_error(CL_ENOTSUP, "%s is a directory", buff); |
closedir(dirp); |
for (i = 1; i < argc; i ++) { |
buff = cli_strdup(argv[i]); |
dirp = opendir(buff); |
if (dirp) { |
cli_error(CL_ENOTSUP, "%s is a directory", buff); |
closedir(dirp); |
ret ++; |
continue; |
} |
|
fd = open(buff, O_RDWR | O_CREAT); |
if (fd < 0) { |
cli_error(CL_EFAIL, "Could not update / create %s ", buff); |
ret ++; |
continue; |
} else |
close(fd); |
|
free(buff); |
return CMD_FAILURE; |
} |
|
fd = open(buff, O_RDWR | O_CREAT); |
if (fd < 0) { |
cli_error(CL_EFAIL, "Could not update / create %s ", buff); |
free(buff); |
if (ret) |
return CMD_FAILURE; |
} |
|
close(fd); |
free(buff); |
|
return CMD_SUCCESS; |
else |
return CMD_SUCCESS; |
} |
|