aboutsummaryrefslogtreecommitdiff
path: root/coreutils/date.c
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2000-07-14 18:39:08 +0000
committerEric Andersen <andersen@codepoet.org>2000-07-14 18:39:08 +0000
commitadd09fd558c8a336554fbf8b381ab0f8e180382a (patch)
tree2ccbcd48f335161c647be3f2c296cae06aceb671 /coreutils/date.c
parent17ad45aace3141d1b997208a43979495ead98f7c (diff)
downloadbusybox-w32-add09fd558c8a336554fbf8b381ab0f8e180382a.tar.gz
busybox-w32-add09fd558c8a336554fbf8b381ab0f8e180382a.tar.bz2
busybox-w32-add09fd558c8a336554fbf8b381ab0f8e180382a.zip
Getopt'ed by Marc Nijdam <marc_nijdam@hp.com>
-Erik
Diffstat (limited to 'coreutils/date.c')
-rw-r--r--coreutils/date.c70
1 files changed, 30 insertions, 40 deletions
diff --git a/coreutils/date.c b/coreutils/date.c
index bc6d13137..3ede1237c 100644
--- a/coreutils/date.c
+++ b/coreutils/date.c
@@ -159,7 +159,7 @@ int date_main(int argc, char **argv)
159 char *date_str = NULL; 159 char *date_str = NULL;
160 char *date_fmt = NULL; 160 char *date_fmt = NULL;
161 char *t_buff; 161 char *t_buff;
162 int i; 162 char c;
163 int set_time = 0; 163 int set_time = 0;
164 int rfc822 = 0; 164 int rfc822 = 0;
165 int utc = 0; 165 int utc = 0;
@@ -168,49 +168,39 @@ int date_main(int argc, char **argv)
168 struct tm tm_time; 168 struct tm tm_time;
169 169
170 /* Interpret command line args */ 170 /* Interpret command line args */
171 i = --argc; 171 while ((c = getopt(argc, argv, "Rs:ud:")) != EOF) {
172 argv++; 172 switch (c) {
173 while (i > 0 && **argv) { 173 case 'R':
174 if (**argv == '-') { 174 rfc822 = 1;
175 while (i > 0 && *++(*argv)) 175 break;
176 switch (**argv) { 176 case 's':
177 case 'R': 177 set_time = 1;
178 rfc822 = 1; 178 if ((date_str != NULL) || ((date_str = optarg) == NULL))
179 break;
180 case 's':
181 set_time = 1;
182 if (date_str != NULL)
183 usage(date_usage);
184 date_str = *argv;
185 break;
186 case 'u':
187 utc = 1;
188 if (putenv("TZ=UTC0") != 0)
189 fatalError(memory_exhausted);
190 break;
191 case 'd':
192 use_arg = 1;
193 if (date_str != NULL)
194 usage(date_usage);
195 date_str = *argv;
196 break;
197 case '-':
198 usage(date_usage);
199 }
200 } else {
201 if ((date_fmt == NULL) && (**argv == '+'))
202 date_fmt = *argv + 1; /* Skip over the '+' */
203 else if (date_str == NULL) {
204 set_time = 1;
205 date_str = *argv;
206 } else {
207 usage(date_usage); 179 usage(date_usage);
208 } 180 break;
181 case 'u':
182 utc = 1;
183 if (putenv("TZ=UTC0") != 0)
184 fatalError(memory_exhausted);
185 break;
186 case 'd':
187 use_arg = 1;
188 if ((date_str != NULL) || ((date_str = optarg) == NULL))
189 usage(date_usage);
190 break;
191 default:
192 usage(date_usage);
209 } 193 }
210 i--;
211 argv++;
212 } 194 }
213 195
196 if ((date_fmt == NULL) && (optind < argc) && (argv[optind][0] == '+'))
197 date_fmt = &argv[optind][1]; /* Skip over the '+' */
198 else if (date_str == NULL) {
199 set_time = 1;
200 date_str = argv[optind];
201 } else {
202 usage(date_usage);
203 }
214 204
215 /* Now we have parsed all the information except the date format 205 /* Now we have parsed all the information except the date format
216 which depends on whether the clock is being set or read */ 206 which depends on whether the clock is being set or read */