blob: 58c5fad502b4ef04cea1dc2eb854466df0e9cc86 [file] [log] [blame]
Rob Landley5cf7c2d2006-02-21 06:44:43 +00001#
2# For a description of the syntax of this configuration file,
Kartik Agaram43b17b12018-05-31 22:15:55 -07003# see docs/Kconfig-language.txt.
Rob Landley5cf7c2d2006-02-21 06:44:43 +00004#
5
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +02006comment "Library Tuning"
Rob Landley5cf7c2d2006-02-21 06:44:43 +00007
Denys Vlasenkod70e0e92010-06-08 12:15:11 +02008INSERT
9
Denys Vlasenko24860fa2016-11-24 22:30:52 +010010choice
11 prompt "Buffer allocation policy"
12 default FEATURE_BUFFERS_USE_MALLOC
13 help
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020014 There are 3 ways busybox can handle buffer allocations:
Denys Vlasenko72089cf2017-07-21 09:50:55 +020015 - Use malloc. This costs code size for the call to xmalloc.
16 - Put them on stack. For some very small machines with limited stack
17 space, this can be deadly. For most folks, this works just fine.
18 - Put them in BSS. This works beautifully for computers with a real
19 MMU (and OS support), but wastes runtime RAM for uCLinux. This
Denys Vlasenko86d5bf42017-07-27 02:59:13 +020020 behavior was the only one available for versions 0.48 and earlier.
Denys Vlasenko24860fa2016-11-24 22:30:52 +010021
22config FEATURE_BUFFERS_USE_MALLOC
23 bool "Allocate with Malloc"
24
25config FEATURE_BUFFERS_GO_ON_STACK
26 bool "Allocate on the Stack"
27
28config FEATURE_BUFFERS_GO_IN_BSS
29 bool "Allocate in the .bss section"
30
31endchoice
32
Denis Vlasenko7d219aa2006-10-05 10:17:08 +000033config PASSWORD_MINLEN
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000034 int "Minimum password length"
35 default 6
36 range 5 32
37 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020038 Minimum allowable password length.
"Robert P. J. Day"087b9d62006-07-02 18:35:39 +000039
Denys Vlasenko522041e2011-09-10 13:25:57 +020040config MD5_SMALL
Denys Vlasenko7e7e08f2009-07-06 23:24:20 +020041 int "MD5: Trade bytes for speed (0:fast, 3:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010042 default 1 # all "fast or small" options default to small
Rob Landley5cf7c2d2006-02-21 06:44:43 +000043 range 0 3
44 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020045 Trade binary size versus speed for the md5sum algorithm.
46 Approximate values running uClibc and hashing
47 linux-2.4.4.tar.bz2 were:
48 value user times (sec) text size (386)
49 0 (fastest) 1.1 6144
50 1 1.4 5392
51 2 3.0 5088
52 3 (smallest) 5.1 4912
Rob Landley5cf7c2d2006-02-21 06:44:43 +000053
Denys Vlasenko30a86522013-01-15 01:12:26 +010054config SHA3_SMALL
55 int "SHA3: Trade bytes for speed (0:fast, 1:slow)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010056 default 1 # all "fast or small" options default to small
Denys Vlasenko30a86522013-01-15 01:12:26 +010057 range 0 1
58 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020059 Trade binary size versus speed for the sha3sum algorithm.
60 SHA3_SMALL=0 compared to SHA3_SMALL=1 (approximate):
61 64-bit x86: +270 bytes of code, 45% faster
62 32-bit x86: +450 bytes of code, 75% faster
Denys Vlasenko30a86522013-01-15 01:12:26 +010063
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000064config FEATURE_FAST_TOP
65 bool "Faster /proc scanning code (+100 bytes)"
Denys Vlasenkodb700332015-10-25 20:36:03 +010066 default n # all "fast or small" options default to small
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000067 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020068 This option makes top and ps ~20% faster (or 20% less CPU hungry),
69 but code size is slightly bigger.
Denis Vlasenko3afac4c2007-06-19 13:46:24 +000070
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000071config FEATURE_ETC_NETWORKS
Denys Vlasenkof5604222017-01-10 14:58:54 +010072 bool "Support /etc/networks"
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000073 default n
74 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020075 Enable support for network names in /etc/networks. This is
76 a rarely used feature which allows you to use names
77 instead of IP/mask pairs in route command.
Denis Vlasenkoa61cb922007-06-19 11:24:47 +000078
Denys Vlasenko2aeb2012018-04-17 12:43:54 +020079config FEATURE_ETC_SERVICES
80 bool "Consult /etc/services even for well-known ports"
81 default n
82 help
83 Look up e.g. "telnet" and "http" in /etc/services file
84 instead of assuming ports 23 and 80.
85 This is almost never necessary (everybody uses standard ports),
86 and it makes sense to avoid reading this file.
87 If you disable this option, in the cases where port is explicitly
88 specified as a service name (e.g. "telnet HOST PORTNAME"),
89 it will still be looked up in /etc/services.
90
Denis Vlasenko38f63192007-01-22 09:03:07 +000091config FEATURE_EDITING
92 bool "Command line editing"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +020093 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +000094 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +020095 Enable line editing (mainly for shell command line).
Denis Vlasenkoe8a07882007-06-10 15:08:44 +000096
97config FEATURE_EDITING_MAX_LEN
98 int "Maximum length of input"
99 range 128 8192
100 default 1024
101 depends on FEATURE_EDITING
102 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200103 Line editing code uses on-stack buffers for storage.
104 You may want to decrease this parameter if your target machine
105 benefits from smaller stack usage.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000106
Denis Vlasenko38f63192007-01-22 09:03:07 +0000107config FEATURE_EDITING_VI
108 bool "vi-style line editing commands"
109 default n
110 depends on FEATURE_EDITING
111 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200112 Enable vi-style line editing. In shells, this mode can be
113 turned on and off with "set -o vi" and "set +o vi".
Denis Vlasenko38f63192007-01-22 09:03:07 +0000114
115config FEATURE_EDITING_HISTORY
116 int "History size"
Denys Vlasenko2c4de5b2011-03-31 13:16:52 +0200117 # Don't allow way too big values here, code uses fixed "char *history[N]" struct member
118 range 0 9999
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200119 default 255
Denis Vlasenko38f63192007-01-22 09:03:07 +0000120 depends on FEATURE_EDITING
121 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200122 Specify command history size (0 - disable).
Denis Vlasenko38f63192007-01-22 09:03:07 +0000123
124config FEATURE_EDITING_SAVEHISTORY
125 bool "History saving"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200126 default y
Denys Vlasenko99862cb2010-09-12 17:34:13 +0200127 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000128 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200129 Enable history saving in shells.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000130
Denys Vlasenkobede2152011-09-04 16:12:33 +0200131config FEATURE_EDITING_SAVE_ON_EXIT
132 bool "Save history on shell exit, not after every command"
133 default n
134 depends on FEATURE_EDITING_SAVEHISTORY
135 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200136 Save history on shell exit, not after every command.
Denys Vlasenkobede2152011-09-04 16:12:33 +0200137
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200138config FEATURE_REVERSE_SEARCH
139 bool "Reverse history search"
140 default y
Denys Vlasenkofe0dc342015-10-30 21:39:19 +0100141 depends on FEATURE_EDITING
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200142 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200143 Enable readline-like Ctrl-R combination for reverse history search.
144 Increases code by about 0.5k.
Denys Vlasenkoa669eca2011-07-11 07:36:59 +0200145
Denis Vlasenko38f63192007-01-22 09:03:07 +0000146config FEATURE_TAB_COMPLETION
147 bool "Tab completion"
Denys Vlasenko2f32bf82010-06-06 04:14:28 +0200148 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000149 depends on FEATURE_EDITING
Denis Vlasenko38f63192007-01-22 09:03:07 +0000150
151config FEATURE_USERNAME_COMPLETION
152 bool "Username completion"
Denys Vlasenko1afa4942016-12-23 13:40:24 +0100153 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000154 depends on FEATURE_TAB_COMPLETION
Denis Vlasenko38f63192007-01-22 09:03:07 +0000155
156config FEATURE_EDITING_FANCY_PROMPT
157 bool "Fancy shell prompts"
Denys Vlasenko5d26df62010-07-16 15:31:38 +0200158 default y
Denis Vlasenko38f63192007-01-22 09:03:07 +0000159 depends on FEATURE_EDITING
160 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200161 Setting this option allows for prompts to use things like \w and
162 \$ and escape codes.
Denis Vlasenko38f63192007-01-22 09:03:07 +0000163
Ron Yorston23286902018-02-25 20:09:54 +0100164config FEATURE_EDITING_WINCH
165 bool "Enable automatic tracking of window size changes"
166 default y
167 depends on FEATURE_EDITING
168
Denys Vlasenko020f4062009-05-17 16:44:54 +0200169config FEATURE_EDITING_ASK_TERMINAL
170 bool "Query cursor position from terminal"
171 default n
172 depends on FEATURE_EDITING
173 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200174 Allow usage of "ESC [ 6 n" sequence. Terminal answers back with
175 current cursor position. This information is used to make line
176 editing more robust in some cases.
177 If you are not sure whether your terminals respond to this code
178 correctly, or want to save on code size (about 400 bytes),
179 then do not turn this option on.
Denys Vlasenko020f4062009-05-17 16:44:54 +0200180
Denys Vlasenko12559252016-11-24 22:18:55 +0100181config LOCALE_SUPPORT
182 bool "Enable locale support (system needs locale for this to work)"
183 default n
184 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200185 Enable this if your system has locale support and you would like
186 busybox to support locale settings.
Denys Vlasenko12559252016-11-24 22:18:55 +0100187
188config UNICODE_SUPPORT
189 bool "Support Unicode"
190 default y
191 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200192 This makes various applets aware that one byte is not
193 one character on screen.
Denys Vlasenko12559252016-11-24 22:18:55 +0100194
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200195 Busybox aims to eventually work correctly with Unicode displays.
196 Any older encodings are not guaranteed to work.
197 Probably by the time when busybox will be fully Unicode-clean,
198 other encodings will be mainly of historic interest.
Denys Vlasenko12559252016-11-24 22:18:55 +0100199
200config UNICODE_USING_LOCALE
201 bool "Use libc routines for Unicode (else uses internal ones)"
202 default n
203 depends on UNICODE_SUPPORT && LOCALE_SUPPORT
204 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200205 With this option on, Unicode support is implemented using libc
206 routines. Otherwise, internal implementation is used.
207 Internal implementation is smaller.
Denys Vlasenko12559252016-11-24 22:18:55 +0100208
209config FEATURE_CHECK_UNICODE_IN_ENV
210 bool "Check $LC_ALL, $LC_CTYPE and $LANG environment variables"
211 default n
212 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
213 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200214 With this option on, Unicode support is activated
215 only if locale-related variables have the value of the form
216 "xxxx.utf8"
Denys Vlasenko12559252016-11-24 22:18:55 +0100217
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200218 Otherwise, Unicode support will be always enabled and active.
Denys Vlasenko12559252016-11-24 22:18:55 +0100219
220config SUBST_WCHAR
221 int "Character code to substitute unprintable characters with"
222 depends on UNICODE_SUPPORT
223 default 63
224 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200225 Typical values are 63 for '?' (works with any output device),
226 30 for ASCII substitute control code,
227 65533 (0xfffd) for Unicode replacement character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100228
229config LAST_SUPPORTED_WCHAR
230 int "Range of supported Unicode characters"
231 depends on UNICODE_SUPPORT
232 default 767
233 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200234 Any character with Unicode value bigger than this is assumed
235 to be non-printable on output device. Many applets replace
236 such characters with substitution character.
Denys Vlasenko12559252016-11-24 22:18:55 +0100237
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200238 The idea is that many valid printable Unicode chars
239 nevertheless are not displayed correctly. Think about
240 combining charachers, double-wide hieroglyphs, obscure
241 characters in dozens of ancient scripts...
242 Many terminals, terminal emulators, xterms etc will fail
243 to handle them correctly. Choose the smallest value
244 which suits your needs.
Denys Vlasenko12559252016-11-24 22:18:55 +0100245
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200246 Typical values are:
247 126 - ASCII only
248 767 (0x2ff) - there are no combining chars in [0..767] range
Denys Vlasenko12559252016-11-24 22:18:55 +0100249 (the range includes Latin 1, Latin Ext. A and B),
250 code is ~700 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200251 4351 (0x10ff) - there are no double-wide chars in [0..4351] range,
Denys Vlasenko12559252016-11-24 22:18:55 +0100252 code is ~300 bytes smaller for this case.
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200253 12799 (0x31ff) - nearly all non-ideographic characters are
Denys Vlasenko12559252016-11-24 22:18:55 +0100254 available in [0..12799] range, including
255 East Asian scripts like katakana, hiragana, hangul,
256 bopomofo...
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200257 0 - off, any valid printable Unicode character will be printed.
Denys Vlasenko12559252016-11-24 22:18:55 +0100258
259config UNICODE_COMBINING_WCHARS
260 bool "Allow zero-width Unicode characters on output"
261 default n
262 depends on UNICODE_SUPPORT
263 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200264 With this option off, any Unicode char with width of 0
265 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100266
267config UNICODE_WIDE_WCHARS
268 bool "Allow wide Unicode characters on output"
269 default n
270 depends on UNICODE_SUPPORT
271 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200272 With this option off, any Unicode char with width > 1
273 is substituted on output.
Denys Vlasenko12559252016-11-24 22:18:55 +0100274
275config UNICODE_BIDI_SUPPORT
276 bool "Bidirectional character-aware line input"
277 default n
278 depends on UNICODE_SUPPORT && !UNICODE_USING_LOCALE
279 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200280 With this option on, right-to-left Unicode characters
281 are treated differently on input (e.g. cursor movement).
Denys Vlasenko12559252016-11-24 22:18:55 +0100282
283config UNICODE_NEUTRAL_TABLE
284 bool "In bidi input, support non-ASCII neutral chars too"
285 default n
286 depends on UNICODE_BIDI_SUPPORT
287 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200288 In most cases it's enough to treat only ASCII non-letters
289 (i.e. punctuation, numbers and space) as characters
290 with neutral directionality.
291 With this option on, more extensive (and bigger) table
292 of neutral chars will be used.
Denys Vlasenko12559252016-11-24 22:18:55 +0100293
294config UNICODE_PRESERVE_BROKEN
295 bool "Make it possible to enter sequences of chars which are not Unicode"
296 default n
297 depends on UNICODE_SUPPORT
298 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200299 With this option on, on line-editing input (such as used by shells)
300 invalid UTF-8 bytes are not substituted with the selected
301 substitution character.
302 For example, this means that entering 'l', 's', ' ', 0xff, [Enter]
303 at shell prompt will list file named 0xff (single char name
304 with char value 255), not file named '?'.
Denys Vlasenko12559252016-11-24 22:18:55 +0100305
Denys Vlasenko2d7b5bf2009-07-05 12:49:29 +0200306config FEATURE_NON_POSIX_CP
307 bool "Non-POSIX, but safer, copying to special nodes"
308 default y
309 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200310 With this option, "cp file symlink" will delete symlink
311 and create a regular file. This does not conform to POSIX,
312 but prevents a symlink attack.
313 Similarly, "cp file device" will not send file's data
314 to the device. (To do that, use "cat file >device")
Denys Vlasenko2d7b5bf2009-07-05 12:49:29 +0200315
Denis Vlasenkod5fe8802008-02-13 16:52:00 +0000316config FEATURE_VERBOSE_CP_MESSAGE
317 bool "Give more precise messages when copy fails (cp, mv etc)"
318 default n
319 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200320 Error messages with this feature enabled:
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200321
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200322 $ cp file /does_not_exist/file
323 cp: cannot create '/does_not_exist/file': Path does not exist
324 $ cp file /vmlinuz/file
325 cp: cannot stat '/vmlinuz/file': Path has non-directory component
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200326
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200327 If this feature is not enabled, they will be, respectively:
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200328
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200329 cp: cannot create '/does_not_exist/file': No such file or directory
330 cp: cannot stat '/vmlinuz/file': Not a directory
Denys Vlasenkoa3df2fa2017-07-15 20:49:32 +0200331
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200332 This will cost you ~60 bytes.
Denis Vlasenkod5fe8802008-02-13 16:52:00 +0000333
Denys Vlasenko12559252016-11-24 22:18:55 +0100334config FEATURE_USE_SENDFILE
335 bool "Use sendfile system call"
336 default y
Denys Vlasenko12559252016-11-24 22:18:55 +0100337 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200338 When enabled, busybox will use the kernel sendfile() function
339 instead of read/write loops to copy data between file descriptors
340 (for example, cp command does this a lot).
341 If sendfile() doesn't work, copying code falls back to read/write
342 loop. sendfile() was originally implemented for faster I/O
343 from files to sockets, but since Linux 2.6.33 it was extended
344 to work for many more file types.
Denys Vlasenko12559252016-11-24 22:18:55 +0100345
Denis Vlasenko4c139222007-12-02 03:27:42 +0000346config FEATURE_COPYBUF_KB
347 int "Copy buffer size, in kilobytes"
348 range 1 1024
349 default 4
350 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200351 Size of buffer used by cp, mv, install, wget etc.
352 Buffers which are 4 kb or less will be allocated on stack.
353 Bigger buffers will be allocated with mmap, with fallback to 4 kb
354 stack buffer if mmap fails.
Denis Vlasenko4c139222007-12-02 03:27:42 +0000355
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100356config FEATURE_SKIP_ROOTFS
357 bool "Skip rootfs in mount table"
358 default y
359 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200360 Ignore rootfs entry in mount table.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100361
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200362 In Linux, kernel has a special filesystem, rootfs, which is initially
363 mounted on /. It contains initramfs data, if kernel is configured
364 to have one. Usually, another file system is mounted over / early
365 in boot process, and therefore most tools which manipulate
366 mount table, such as df, will skip rootfs entry.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100367
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200368 However, some systems do not mount anything on /.
369 If you need to configure busybox for one of these systems,
370 you may find it useful to turn this option off to make df show
371 initramfs statistics.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100372
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200373 Otherwise, choose Y.
Lauri Kasanen55ae0e92011-01-31 06:27:35 +0100374
Denis Vlasenko459be352007-06-17 19:09:05 +0000375config MONOTONIC_SYSCALL
376 bool "Use clock_gettime(CLOCK_MONOTONIC) syscall"
Denys Vlasenkodb700332015-10-25 20:36:03 +0100377 default y
Denis Vlasenko459be352007-06-17 19:09:05 +0000378 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200379 Use clock_gettime(CLOCK_MONOTONIC) syscall for measuring
380 time intervals (time, ping, traceroute etc need this).
381 Probably requires Linux 2.6+. If not selected, gettimeofday
382 will be used instead (which gives wrong results if date/time
383 is reset).
Denis Vlasenko459be352007-06-17 19:09:05 +0000384
Denis Vlasenkofb79a2e2007-07-14 22:07:14 +0000385config IOCTL_HEX2STR_ERROR
386 bool "Use ioctl names rather than hex values in error messages"
387 default y
388 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200389 Use ioctl names rather than hex values in error messages
390 (e.g. VT_DISALLOCATE rather than 0x5608). If disabled this
391 saves about 1400 bytes.
Bernhard Reutner-Fischerf3b778a2008-05-16 16:10:31 +0000392
393config FEATURE_HWIB
394 bool "Support infiniband HW"
395 default y
396 help
Denys Vlasenko72089cf2017-07-21 09:50:55 +0200397 Support for printing infiniband addresses in network applets.
Ron Yorston9fe15482021-09-16 10:26:14 +0100398
399config FEATURE_TIMEZONE
400 bool "Allow timezone in dates"
401 default y
402 depends on DESKTOP
403 help
404 Permit the use of timezones when parsing user-provided data
405 strings, e.g. '1996-04-09 12:45:00 -0500'.
406
407 This requires support for the '%z' extension to strptime() which
408 may not be available in all implementations.