diff options
Diffstat (limited to 'date.c')
-rw-r--r-- | date.c | 51 |
1 files changed, 30 insertions, 21 deletions
@@ -160,26 +160,27 @@ int date_main(int argc, char **argv) | |||
160 | /* Interpret command line args */ | 160 | /* Interpret command line args */ |
161 | while ((c = getopt(argc, argv, "Rs:ud:")) != EOF) { | 161 | while ((c = getopt(argc, argv, "Rs:ud:")) != EOF) { |
162 | switch (c) { | 162 | switch (c) { |
163 | case 'R': | 163 | case 'R': |
164 | rfc822 = 1; | 164 | rfc822 = 1; |
165 | break; | 165 | break; |
166 | case 's': | 166 | case 's': |
167 | set_time = 1; | 167 | set_time = 1; |
168 | if ((date_str != NULL) || ((date_str = optarg) == NULL)) | 168 | if ((date_str != NULL) || ((date_str = optarg) == NULL)) { |
169 | usage(date_usage); | ||
170 | } | ||
171 | break; | ||
172 | case 'u': | ||
173 | utc = 1; | ||
174 | if (putenv("TZ=UTC0") != 0) | ||
175 | fatalError(memory_exhausted); | ||
176 | break; | ||
177 | case 'd': | ||
178 | use_arg = 1; | ||
179 | if ((date_str != NULL) || ((date_str = optarg) == NULL)) | ||
180 | usage(date_usage); | ||
181 | break; | ||
182 | default: | ||
169 | usage(date_usage); | 183 | usage(date_usage); |
170 | break; | ||
171 | case 'u': | ||
172 | utc = 1; | ||
173 | if (putenv("TZ=UTC0") != 0) | ||
174 | fatalError(memory_exhausted); | ||
175 | break; | ||
176 | case 'd': | ||
177 | use_arg = 1; | ||
178 | if ((date_str != NULL) || ((date_str = optarg) == NULL)) | ||
179 | usage(date_usage); | ||
180 | break; | ||
181 | default: | ||
182 | usage(date_usage); | ||
183 | } | 184 | } |
184 | } | 185 | } |
185 | 186 | ||
@@ -188,9 +189,13 @@ int date_main(int argc, char **argv) | |||
188 | else if (date_str == NULL) { | 189 | else if (date_str == NULL) { |
189 | set_time = 1; | 190 | set_time = 1; |
190 | date_str = argv[optind]; | 191 | date_str = argv[optind]; |
191 | } else { | 192 | } |
193 | #if 0 | ||
194 | else { | ||
195 | errorMsg("date_str='%s' date_fmt='%s'\n", date_str, date_fmt); | ||
192 | usage(date_usage); | 196 | usage(date_usage); |
193 | } | 197 | } |
198 | #endif | ||
194 | 199 | ||
195 | /* Now we have parsed all the information except the date format | 200 | /* Now we have parsed all the information except the date format |
196 | which depends on whether the clock is being set or read */ | 201 | which depends on whether the clock is being set or read */ |
@@ -217,11 +222,15 @@ int date_main(int argc, char **argv) | |||
217 | tm = mktime(&tm_time); | 222 | tm = mktime(&tm_time); |
218 | if (tm < 0) | 223 | if (tm < 0) |
219 | fatalError(invalid_date, date_str); | 224 | fatalError(invalid_date, date_str); |
225 | if ( utc ) { | ||
226 | if (putenv("TZ=UTC0") != 0) | ||
227 | fatalError(memory_exhausted); | ||
228 | } | ||
220 | 229 | ||
221 | /* if setting time, set it */ | 230 | /* if setting time, set it */ |
222 | if (set_time) { | 231 | if (set_time) { |
223 | if (stime(&tm) < 0) { | 232 | if (stime(&tm) < 0) { |
224 | fatalError("can't set date.\n"); | 233 | perrorMsg("cannot set date"); |
225 | } | 234 | } |
226 | } | 235 | } |
227 | } | 236 | } |