+
+AT_BANNER([Help formatting functions])
+
+AT_SETUP([help_print_desc])
+AT_KEYWORDS([help])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpdesc"])
+
+AT_DATA([test.txt],
+[[this is the first line
+this is the second line
+this is the third line
+and so on
+]])
+
+sed -e '5,$s/^/ /' -e '6,$s/^/ /' \
+ -e '10,$s/^/ /' \
+ -e '13s/^ *//' -e '14,$s/^/ /' \
+ test.txt test.txt test.txt test.txt >expout
+
+AT_CHECK(["$builddir/t/helpdesc" 0 0 10 5 30 20 40 40 <test.txt],
+ [0], [expout])
+
+AT_CLEANUP
+
+AT_SETUP([help_print_desc (empty description)])
+AT_KEYWORDS([help])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpdesc"])
+
+AT_CHECK(["$builddir/t/helpdesc" 0 0 0 20 </dev/null])
+AT_CHECK(["$builddir/t/helpdesc" 1 20 </dev/null], [0], [
+])
+
+AT_CLEANUP
+
+AT_SETUP([help_print_optstring])
+AT_KEYWORDS([help])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpopt"])
+
+AT_CHECK([m4_join([ ],
+ ["$builddir/t/helpopt"],
+ [--foo],
+ [--bar -b],
+ [--baz ARG],
+ [--baz -B ARG],
+ [--quux '@<:@ARG@:>@'],
+ [--quux -q '@<:@ARG@:>@'],
+ [--hello-this-is-a-very-long-option 20],
+ [--hello-this-is-a-very-long-option 50],
+ [--not-long 12],
+ [--flagged -f \&])], [0],
+[[ --foo 7
+ -b, --bar 11
+ --baz=ARG 11
+ -B, --baz=ARG 15
+ --quux[=ARG] 14
+ -q, --quux[=ARG] 18
+ --hello-this-is-a-very-long-option
+ 0
+ --hello-this-is-a-very-long-option 36
+ --not-long 12
+ --flagged 11
+]])
+
+AT_CLEANUP
+
+AT_SETUP([help_print_optstring (getopt_long_only)])
+AT_KEYWORDS([help])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpopt2"])
+
+AT_CHECK([m4_join([ ],
+ ["$builddir/t/helpopt2"],
+ [--foo],
+ [--bar -b],
+ [--baz ARG],
+ [--baz -B ARG],
+ [--quux '@<:@ARG@:>@'],
+ [--quux -q '@<:@ARG@:>@'],
+ [--hello-this-is-a-very-long-option 20],
+ [--hello-this-is-a-very-long-option 50],
+ [--not-long 12],
+ [--flagged -f \&])], [0],
+[[ -foo 6
+ -bar 6
+ -baz ARG 10
+ -baz ARG 10
+ -quux [ARG] 13
+ -quux [ARG] 13
+ -hello-this-is-a-very-long-option
+ 0
+ -hello-this-is-a-very-long-option 35
+ -not-long 11
+ -flagged 10
+]])
+
+AT_CLEANUP
+
+AT_SETUP([help_print_optstring (NLS fullwidth/halfwidth)])
+AT_KEYWORDS([help nls])
+
+AT_SKIP_IF([test ! -x "$builddir/t/helpopt3"])
+TEST_UTF8_LOCALE([locale_utf8])
+
+# Avoid some deficient shell parsers barfing on UTF-8 sequences by
+# generating them this way using octal escapes.
+$AWK -f - >expout <<'EOF'
+BEGIN {
+ zenkaku = "--\345\205\250\350\247\222";
+ hankaku = "--\357\276\212\357\276\235\357\275\266\357\275\270"
+
+ print zenkaku, hankaku >"args"
+
+ print " " zenkaku "\t" "8"
+ print " " hankaku "\t" "8"
+}
+EOF
+
+AT_CHECK([LC_ALL=$locale_utf8 xargs "$builddir/t/helpopt3" <args],
+ [0], [expout])
+
+AT_CLEANUP
+
+AT_BANNER([Miscellaneous functions])
+
+TEST_TAP_SIMPLE([copyright_symbol], [copysym], [], [])