Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3296 → Rev 3297

/branches/shell/uspace/app/bdsh/cmds/modules/touch/touch.c
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;
}