summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coreutils/touch.c52
-rw-r--r--coreutils/uname.c4
-rw-r--r--touch.c52
-rw-r--r--uname.c4
4 files changed, 58 insertions, 54 deletions
diff --git a/coreutils/touch.c b/coreutils/touch.c
index 2076928..1364bb7 100644
--- a/coreutils/touch.c
+++ b/coreutils/touch.c
@@ -33,26 +33,21 @@
static const char touch_usage[] = "touch [-c] file [file ...]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
- "\nUpdate the last-modified date on the given file[s].\n"
+ "\nUpdate the last-modified date on the given file[s].\n\n"
+ "Options:\n"
+ "\t-c\tDo not create any files\n"
#endif
;
-
extern int touch_main(int argc, char **argv)
{
int fd;
int create = TRUE;
- if (argc < 2) {
- usage(touch_usage);
- }
- argc--;
- argv++;
-
/* Parse options */
- while (**argv == '-') {
- while (*++(*argv))
+ while (--argc > 0 && **(++argv) == '-') {
+ while (*(++(*argv))) {
switch (**argv) {
case 'c':
create = FALSE;
@@ -61,23 +56,30 @@ extern int touch_main(int argc, char **argv)
usage(touch_usage);
exit(FALSE);
}
- argc--;
- argv++;
+ }
}
- fd = open(*argv, (create == FALSE) ? O_RDWR : O_RDWR | O_CREAT, 0644);
- if (fd < 0) {
- if (create == FALSE && errno == ENOENT)
- exit(TRUE);
- else {
- perror("touch");
- exit(FALSE);
+ if (argc < 1) {
+ usage(touch_usage);
+ }
+
+ while (argc > 0) {
+ fd = open(*argv, (create == FALSE) ? O_RDWR : O_RDWR | O_CREAT,
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
+ if (fd < 0) {
+ if (create == FALSE && errno == ENOENT)
+ exit(TRUE);
+ else {
+ fatalError("touch: %s", strerror(errno));
+ }
+ }
+ close(fd);
+ if (utime(*argv, NULL)) {
+ fatalError("touch: %s", strerror(errno));
}
+ argc--;
+ argv++;
}
- close(fd);
- if (utime(*argv, NULL)) {
- perror("touch");
- exit(FALSE);
- } else
- exit(TRUE);
+
+ exit(TRUE);
}
diff --git a/coreutils/uname.c b/coreutils/uname.c
index f130492..981ac69 100644
--- a/coreutils/uname.c
+++ b/coreutils/uname.c
@@ -42,9 +42,9 @@
static const char uname_usage[] =
- "uname [OPTION]...\n\n"
+ "uname [OPTION]...\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
- "Print certain system information. With no OPTION, same as -s.\n\n"
+ "\nPrint certain system information. With no OPTION, same as -s.\n\n"
"Options:\n"
"\t-a\tprint all information\n"
"\t-m\tthe machine (hardware) type\n"
diff --git a/touch.c b/touch.c
index 2076928..1364bb7 100644
--- a/touch.c
+++ b/touch.c
@@ -33,26 +33,21 @@
static const char touch_usage[] = "touch [-c] file [file ...]\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
- "\nUpdate the last-modified date on the given file[s].\n"
+ "\nUpdate the last-modified date on the given file[s].\n\n"
+ "Options:\n"
+ "\t-c\tDo not create any files\n"
#endif
;
-
extern int touch_main(int argc, char **argv)
{
int fd;
int create = TRUE;
- if (argc < 2) {
- usage(touch_usage);
- }
- argc--;
- argv++;
-
/* Parse options */
- while (**argv == '-') {
- while (*++(*argv))
+ while (--argc > 0 && **(++argv) == '-') {
+ while (*(++(*argv))) {
switch (**argv) {
case 'c':
create = FALSE;
@@ -61,23 +56,30 @@ extern int touch_main(int argc, char **argv)
usage(touch_usage);
exit(FALSE);
}
- argc--;
- argv++;
+ }
}
- fd = open(*argv, (create == FALSE) ? O_RDWR : O_RDWR | O_CREAT, 0644);
- if (fd < 0) {
- if (create == FALSE && errno == ENOENT)
- exit(TRUE);
- else {
- perror("touch");
- exit(FALSE);
+ if (argc < 1) {
+ usage(touch_usage);
+ }
+
+ while (argc > 0) {
+ fd = open(*argv, (create == FALSE) ? O_RDWR : O_RDWR | O_CREAT,
+ S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH);
+ if (fd < 0) {
+ if (create == FALSE && errno == ENOENT)
+ exit(TRUE);
+ else {
+ fatalError("touch: %s", strerror(errno));
+ }
+ }
+ close(fd);
+ if (utime(*argv, NULL)) {
+ fatalError("touch: %s", strerror(errno));
}
+ argc--;
+ argv++;
}
- close(fd);
- if (utime(*argv, NULL)) {
- perror("touch");
- exit(FALSE);
- } else
- exit(TRUE);
+
+ exit(TRUE);
}
diff --git a/uname.c b/uname.c
index f130492..981ac69 100644
--- a/uname.c
+++ b/uname.c
@@ -42,9 +42,9 @@
static const char uname_usage[] =
- "uname [OPTION]...\n\n"
+ "uname [OPTION]...\n"
#ifndef BB_FEATURE_TRIVIAL_HELP
- "Print certain system information. With no OPTION, same as -s.\n\n"
+ "\nPrint certain system information. With no OPTION, same as -s.\n\n"
"Options:\n"
"\t-a\tprint all information\n"
"\t-m\tthe machine (hardware) type\n"