diff options
author | Ron Yorston <rmy@pobox.com> | 2023-07-16 08:49:50 +0100 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2023-07-16 08:49:50 +0100 |
commit | bc0d14ee8eb9720a5df097f5620c4b4c679b6c98 (patch) | |
tree | 8aaac80f79822ac2f590854dfecc4af91c0cedd4 /coreutils | |
parent | 51ba60c766e010f67dd410ad31a2c4814a8440e4 (diff) | |
download | busybox-w32-bc0d14ee8eb9720a5df097f5620c4b4c679b6c98.tar.gz busybox-w32-bc0d14ee8eb9720a5df097f5620c4b4c679b6c98.tar.bz2 busybox-w32-bc0d14ee8eb9720a5df097f5620c4b4c679b6c98.zip |
date: allow system date to be set
Implement clock_settime(2) and enable the '-s' option to allow
the system time to be set. This requires elevated privileges.
The code in date.c is now identical to upstream BusyBox.
Costs 256-272 bytes.
Diffstat (limited to 'coreutils')
-rw-r--r-- | coreutils/date.c | 25 |
1 files changed, 0 insertions, 25 deletions
diff --git a/coreutils/date.c b/coreutils/date.c index d8e56ef3b..3a89b6caf 100644 --- a/coreutils/date.c +++ b/coreutils/date.c | |||
@@ -97,9 +97,7 @@ | |||
97 | //usage:#define date_full_usage "\n\n" | 97 | //usage:#define date_full_usage "\n\n" |
98 | //usage: "Display time (using +FMT), or set time\n" | 98 | //usage: "Display time (using +FMT), or set time\n" |
99 | //usage: "\n -u Work in UTC (don't convert to local time)" | 99 | //usage: "\n -u Work in UTC (don't convert to local time)" |
100 | //usage: IF_NOT_PLATFORM_MINGW32( | ||
101 | //usage: "\n [-s] TIME Set time to TIME" | 100 | //usage: "\n [-s] TIME Set time to TIME" |
102 | //usage: ) | ||
103 | //usage: "\n -d TIME Display TIME, not 'now'" | 101 | //usage: "\n -d TIME Display TIME, not 'now'" |
104 | //usage: IF_FEATURE_DATE_ISOFMT( | 102 | //usage: IF_FEATURE_DATE_ISOFMT( |
105 | //usage: "\n -D FMT FMT (strptime format) for -s/-d TIME conversion" | 103 | //usage: "\n -D FMT FMT (strptime format) for -s/-d TIME conversion" |
@@ -134,30 +132,19 @@ | |||
134 | 132 | ||
135 | enum { | 133 | enum { |
136 | OPT_RFC2822 = (1 << 0), /* R */ | 134 | OPT_RFC2822 = (1 << 0), /* R */ |
137 | #if !ENABLE_PLATFORM_MINGW32 | ||
138 | OPT_SET = (1 << 1), /* s */ | 135 | OPT_SET = (1 << 1), /* s */ |
139 | OPT_UTC = (1 << 2), /* u */ | 136 | OPT_UTC = (1 << 2), /* u */ |
140 | OPT_DATE = (1 << 3), /* d */ | 137 | OPT_DATE = (1 << 3), /* d */ |
141 | OPT_REFERENCE = (1 << 4), /* r */ | 138 | OPT_REFERENCE = (1 << 4), /* r */ |
142 | OPT_ISO8601 = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */ | 139 | OPT_ISO8601 = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* I */ |
143 | OPT_STR2DT = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */ | 140 | OPT_STR2DT = (1 << 6) * ENABLE_FEATURE_DATE_ISOFMT, /* D */ |
144 | #else | ||
145 | OPT_SET = (0), /* s */ | ||
146 | OPT_UTC = (1 << 1), /* u */ | ||
147 | OPT_DATE = (1 << 2), /* d */ | ||
148 | OPT_REFERENCE = (1 << 3), /* r */ | ||
149 | OPT_ISO8601 = (1 << 4) * ENABLE_FEATURE_DATE_ISOFMT, /* I */ | ||
150 | OPT_STR2DT = (1 << 5) * ENABLE_FEATURE_DATE_ISOFMT, /* D */ | ||
151 | #endif | ||
152 | }; | 141 | }; |
153 | 142 | ||
154 | #if ENABLE_LONG_OPTS | 143 | #if ENABLE_LONG_OPTS |
155 | static const char date_longopts[] ALIGN1 = | 144 | static const char date_longopts[] ALIGN1 = |
156 | "rfc-822\0" No_argument "R" | 145 | "rfc-822\0" No_argument "R" |
157 | "rfc-2822\0" No_argument "R" | 146 | "rfc-2822\0" No_argument "R" |
158 | #if !ENABLE_PLATFORM_MINGW32 | ||
159 | "set\0" Required_argument "s" | 147 | "set\0" Required_argument "s" |
160 | #endif | ||
161 | "utc\0" No_argument "u" | 148 | "utc\0" No_argument "u" |
162 | /* "universal\0" No_argument "u" */ | 149 | /* "universal\0" No_argument "u" */ |
163 | "date\0" Required_argument "d" | 150 | "date\0" Required_argument "d" |
@@ -187,25 +174,13 @@ int date_main(int argc UNUSED_PARAM, char **argv) | |||
187 | char *isofmt_arg = NULL; | 174 | char *isofmt_arg = NULL; |
188 | 175 | ||
189 | opt = getopt32long(argv, "^" | 176 | opt = getopt32long(argv, "^" |
190 | #if !ENABLE_PLATFORM_MINGW32 | ||
191 | "Rs:ud:r:" | 177 | "Rs:ud:r:" |
192 | #else | ||
193 | "Rud:r:" | ||
194 | #endif | ||
195 | IF_FEATURE_DATE_ISOFMT("I::D:") | 178 | IF_FEATURE_DATE_ISOFMT("I::D:") |
196 | #if !ENABLE_PLATFORM_MINGW32 | ||
197 | "\0" | 179 | "\0" |
198 | "d--s:s--d" | 180 | "d--s:s--d" |
199 | IF_FEATURE_DATE_ISOFMT(":R--I:I--R"), | 181 | IF_FEATURE_DATE_ISOFMT(":R--I:I--R"), |
200 | #else | ||
201 | IF_FEATURE_DATE_ISOFMT("\0R--I:I--R"), | ||
202 | #endif | ||
203 | date_longopts, | 182 | date_longopts, |
204 | #if !ENABLE_PLATFORM_MINGW32 | ||
205 | &date_str, &date_str, &filename | 183 | &date_str, &date_str, &filename |
206 | #else | ||
207 | &date_str, &filename | ||
208 | #endif | ||
209 | IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt) | 184 | IF_FEATURE_DATE_ISOFMT(, &isofmt_arg, &fmt_str2dt) |
210 | ); | 185 | ); |
211 | argv += optind; | 186 | argv += optind; |