Subversion Repositories HelenOS

Rev

Rev 3295 | Rev 3346 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3295 Rev 3297
Line 62... Line 62...
62
}
62
}
63
 
63
 
64
/* Main entry point for touch, accepts an array of arguments */
64
/* Main entry point for touch, accepts an array of arguments */
65
int * cmd_touch(char **argv)
65
int * cmd_touch(char **argv)
66
{
66
{
67
    unsigned int argc;
67
    unsigned int argc, i = 0, ret = 0;
68
    int fd;
68
    int fd;
69
    char *buff = NULL;
69
    char *buff = NULL;
70
 
70
 
71
    DIR *dirp;
71
    DIR *dirp;
72
 
72
 
73
    /* Count the arguments */
73
    /* Count the arguments */
74
    for (argc = 0; argv[argc] != NULL; argc ++);
74
    for (argc = 0; argv[argc] != NULL; argc ++);
75
 
75
 
76
    if (argc != 2) {
76
    if (argc == 1) {
77
        printf("%s - incorrect number of arguments. Try `help %s extended'\n",
77
        printf("%s - incorrect number of arguments. Try `help %s extended'\n",
78
            cmdname, cmdname);
78
            cmdname, cmdname);
79
        return CMD_FAILURE;
79
        return CMD_FAILURE;
80
    }
80
    }
81
 
81
 
-
 
82
    for (i = 1; i < argc; i ++) {
82
    buff = cli_strdup(argv[1]);
83
        buff = cli_strdup(argv[i]);
83
    dirp = opendir(buff);
84
        dirp = opendir(buff);
84
    if (dirp) {
85
        if (dirp) {
85
        cli_error(CL_ENOTSUP, "%s is a directory", buff);
86
            cli_error(CL_ENOTSUP, "%s is a directory", buff);
86
        closedir(dirp);
87
            closedir(dirp);
87
        free(buff);
88
            ret ++;
88
        return CMD_FAILURE;
89
            continue;
89
    }
90
        }
-
 
91
 
-
 
92
        fd = open(buff, O_RDWR | O_CREAT);
-
 
93
        if (fd < 0) {
-
 
94
            cli_error(CL_EFAIL, "Could not update / create %s ", buff);
-
 
95
            ret ++;
-
 
96
            continue;
-
 
97
        } else
-
 
98
            close(fd);
90
 
99
 
91
    fd = open(buff, O_RDWR | O_CREAT);
-
 
92
    if (fd < 0) {
-
 
93
        cli_error(CL_EFAIL, "Could not update / create %s ", buff);
-
 
94
        free(buff);
100
        free(buff);
95
        return CMD_FAILURE;
-
 
96
    }
101
    }
97
 
102
 
98
    close(fd);
103
    if (ret)
99
    free(buff);
104
        return CMD_FAILURE;
100
 
105
    else
101
    return CMD_SUCCESS;
106
        return CMD_SUCCESS;
102
}
107
}
103
 
108