diff options
Diffstat (limited to 'util-linux/hwclock.c')
-rw-r--r-- | util-linux/hwclock.c | 33 |
1 files changed, 18 insertions, 15 deletions
diff --git a/util-linux/hwclock.c b/util-linux/hwclock.c index 5df56de15..29f51021e 100644 --- a/util-linux/hwclock.c +++ b/util-linux/hwclock.c | |||
@@ -16,11 +16,6 @@ | |||
16 | //config: shutdown in the hardware clock, so the hardware will keep the | 16 | //config: shutdown in the hardware clock, so the hardware will keep the |
17 | //config: correct time when Linux is _not_ running. | 17 | //config: correct time when Linux is _not_ running. |
18 | //config: | 18 | //config: |
19 | //config:config FEATURE_HWCLOCK_LONG_OPTIONS | ||
20 | //config: bool "Support long options (--hctosys,...)" | ||
21 | //config: default y | ||
22 | //config: depends on HWCLOCK && LONG_OPTS | ||
23 | //config: | ||
24 | //config:config FEATURE_HWCLOCK_ADJTIME_FHS | 19 | //config:config FEATURE_HWCLOCK_ADJTIME_FHS |
25 | //config: bool "Use FHS /var/lib/hwclock/adjtime" | 20 | //config: bool "Use FHS /var/lib/hwclock/adjtime" |
26 | //config: default n # util-linux-ng in Fedora 13 still uses /etc/adjtime | 21 | //config: default n # util-linux-ng in Fedora 13 still uses /etc/adjtime |
@@ -293,12 +288,12 @@ static void set_system_clock_timezone(int utc) | |||
293 | } | 288 | } |
294 | 289 | ||
295 | //usage:#define hwclock_trivial_usage | 290 | //usage:#define hwclock_trivial_usage |
296 | //usage: IF_FEATURE_HWCLOCK_LONG_OPTIONS( | 291 | //usage: IF_LONG_OPTS( |
297 | //usage: "[-r|--show] [-s|--hctosys] [-w|--systohc] [-t|--systz]" | 292 | //usage: "[-r|--show] [-s|--hctosys] [-w|--systohc] [--systz]" |
298 | //usage: " [-l|--localtime] [-u|--utc]" | 293 | //usage: " [--localtime] [-u|--utc]" |
299 | //usage: " [-f|--rtc FILE]" | 294 | //usage: " [-f|--rtc FILE]" |
300 | //usage: ) | 295 | //usage: ) |
301 | //usage: IF_NOT_FEATURE_HWCLOCK_LONG_OPTIONS( | 296 | //usage: IF_NOT_LONG_OPTS( |
302 | //usage: "[-r] [-s] [-w] [-t] [-l] [-u] [-f FILE]" | 297 | //usage: "[-r] [-s] [-w] [-t] [-l] [-u] [-f FILE]" |
303 | //usage: ) | 298 | //usage: ) |
304 | //usage:#define hwclock_full_usage "\n\n" | 299 | //usage:#define hwclock_full_usage "\n\n" |
@@ -306,12 +301,18 @@ static void set_system_clock_timezone(int utc) | |||
306 | //usage: "\n -r Show hardware clock time" | 301 | //usage: "\n -r Show hardware clock time" |
307 | //usage: "\n -s Set system time from hardware clock" | 302 | //usage: "\n -s Set system time from hardware clock" |
308 | //usage: "\n -w Set hardware clock from system time" | 303 | //usage: "\n -w Set hardware clock from system time" |
309 | //usage: "\n -t Set in-kernel timezone, correct system time" | 304 | //usage: IF_LONG_OPTS( |
305 | //usage: "\n --systz Set in-kernel timezone, correct system time" | ||
306 | //usage: ) | ||
310 | //usage: "\n if hardware clock is in local time" | 307 | //usage: "\n if hardware clock is in local time" |
311 | //usage: "\n -u Assume hardware clock is kept in UTC" | 308 | //usage: "\n -u Assume hardware clock is kept in UTC" |
312 | //usage: "\n -l Assume hardware clock is kept in local time" | 309 | //usage: IF_LONG_OPTS( |
310 | //usage: "\n --localtime Assume hardware clock is kept in local time" | ||
311 | //usage: ) | ||
313 | //usage: "\n -f FILE Use specified device (e.g. /dev/rtc2)" | 312 | //usage: "\n -f FILE Use specified device (e.g. /dev/rtc2)" |
314 | 313 | ||
314 | //TODO: get rid of incompatible -t and -l aliases to --systz and --localtime | ||
315 | |||
315 | #define HWCLOCK_OPT_LOCALTIME 0x01 | 316 | #define HWCLOCK_OPT_LOCALTIME 0x01 |
316 | #define HWCLOCK_OPT_UTC 0x02 | 317 | #define HWCLOCK_OPT_UTC 0x02 |
317 | #define HWCLOCK_OPT_SHOW 0x04 | 318 | #define HWCLOCK_OPT_SHOW 0x04 |
@@ -327,7 +328,7 @@ int hwclock_main(int argc UNUSED_PARAM, char **argv) | |||
327 | unsigned opt; | 328 | unsigned opt; |
328 | int utc; | 329 | int utc; |
329 | 330 | ||
330 | #if ENABLE_FEATURE_HWCLOCK_LONG_OPTIONS | 331 | #if ENABLE_LONG_OPTS |
331 | static const char hwclock_longopts[] ALIGN1 = | 332 | static const char hwclock_longopts[] ALIGN1 = |
332 | "localtime\0" No_argument "l" /* short opt is non-standard */ | 333 | "localtime\0" No_argument "l" /* short opt is non-standard */ |
333 | "utc\0" No_argument "u" | 334 | "utc\0" No_argument "u" |
@@ -337,14 +338,16 @@ int hwclock_main(int argc UNUSED_PARAM, char **argv) | |||
337 | "systz\0" No_argument "t" /* short opt is non-standard */ | 338 | "systz\0" No_argument "t" /* short opt is non-standard */ |
338 | "rtc\0" Required_argument "f" | 339 | "rtc\0" Required_argument "f" |
339 | ; | 340 | ; |
340 | applet_long_options = hwclock_longopts; | ||
341 | #endif | 341 | #endif |
342 | 342 | ||
343 | /* Initialize "timezone" (libc global variable) */ | 343 | /* Initialize "timezone" (libc global variable) */ |
344 | tzset(); | 344 | tzset(); |
345 | 345 | ||
346 | opt_complementary = "r--wst:w--rst:s--wrt:t--rsw:l--u:u--l"; | 346 | opt = getopt32long(argv, |
347 | opt = getopt32(argv, "lurswtf:", &rtcname); | 347 | "^lurswtf:" "\0" "r--wst:w--rst:s--wrt:t--rsw:l--u:u--l", |
348 | hwclock_longopts, | ||
349 | &rtcname | ||
350 | ); | ||
348 | 351 | ||
349 | /* If -u or -l wasn't given check if we are using utc */ | 352 | /* If -u or -l wasn't given check if we are using utc */ |
350 | if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME)) | 353 | if (opt & (HWCLOCK_OPT_UTC | HWCLOCK_OPT_LOCALTIME)) |