summaryrefslogtreecommitdiffstats
path: root/sys-utils/hwclock.c
diff options
context:
space:
mode:
authorJ William Piggott2017-04-17 01:10:48 +0200
committerJ William Piggott2017-04-19 04:39:05 +0200
commit8b73ff963398bededb182b09e5788454e7eeea1d (patch)
tree3ee64968d3275b9eb599fef0f8112125cb97fb63 /sys-utils/hwclock.c
parenttests: update script(1) tests (diff)
downloadkernel-qcow2-util-linux-8b73ff963398bededb182b09e5788454e7eeea1d.tar.gz
kernel-qcow2-util-linux-8b73ff963398bededb182b09e5788454e7eeea1d.tar.xz
kernel-qcow2-util-linux-8b73ff963398bededb182b09e5788454e7eeea1d.zip
hwclock: improve default function handling
Removes long default function test. Instead handle the default when the options are parsed. Also fixes the non-linux build failure reported by Rudi: http://marc.info/?l=util-linux-ng&m=149189833115871 Reported-by: Ruediger Meier <ruediger.meier@ga-group.nl> Signed-off-by: J William Piggott <elseifthen@gmx.com>
Diffstat (limited to 'sys-utils/hwclock.c')
-rw-r--r--sys-utils/hwclock.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c
index a99eb6d60..10436f287 100644
--- a/sys-utils/hwclock.c
+++ b/sys-utils/hwclock.c
@@ -1301,7 +1301,7 @@ static void usage(const struct hwclock_control *ctl, const char *fmt, ...)
*/
int main(int argc, char **argv)
{
- struct hwclock_control ctl = { NULL };
+ struct hwclock_control ctl = { .show = 1 }; /* default op is show */
struct timeval startup_time;
struct adjtime adjtime = { 0 };
struct timespec when = { 0 };
@@ -1411,28 +1411,34 @@ int main(int argc, char **argv)
break;
case 'a':
ctl.adjust = 1;
+ ctl.show = 0;
break;
case 'r':
ctl.show = 1;
break;
case 's':
ctl.hctosys = 1;
+ ctl.show = 0;
break;
case 'u':
ctl.utc = 1;
break;
case 'w':
ctl.systohc = 1;
+ ctl.show = 0;
break;
case OPT_SET:
ctl.set = 1;
+ ctl.show = 0;
break;
#ifdef __linux__
case OPT_GETEPOCH:
ctl.getepoch = 1;
+ ctl.show = 0;
break;
case OPT_SETEPOCH:
ctl.setepoch = 1;
+ ctl.show = 0;
break;
#endif
case OPT_NOADJFILE:
@@ -1459,12 +1465,15 @@ int main(int argc, char **argv)
break;
case OPT_SYSTZ:
ctl.systz = 1; /* --systz */
+ ctl.show = 0;
break;
case OPT_PREDICT_HC:
ctl.predict = 1; /* --predict-hc */
+ ctl.show = 0;
break;
case OPT_GET:
ctl.get = 1; /* --get */
+ ctl.show = 0;
break;
case OPT_UPDATE:
ctl.update = 1; /* --update-drift */
@@ -1519,11 +1528,6 @@ int main(int argc, char **argv)
}
}
- if (!(ctl.show | ctl.set | ctl.systohc | ctl.hctosys |
- ctl.systz | ctl.adjust | ctl.getepoch | ctl.setepoch |
- ctl.predict | ctl.get))
- ctl.show = 1; /* default to show */
-
#ifdef __linux__
if (ctl.getepoch || ctl.setepoch) {
manipulate_epoch(&ctl);