119 lines
2.8 KiB
Groff
119 lines
2.8 KiB
Groff
.\" Copyright (c) 2023–2024 DTB <trinity@trinity.moe>
|
||
.\" Copyright (c) 2023 Emma Tebibyte <emma@tebibyte.media>
|
||
.\"
|
||
.\" This work is licensed under CC BY-SA 4.0. To see a copy of this license,
|
||
.\" visit <http://creativecommons.org/licenses/by-sa/4.0/>.
|
||
|
||
.TH STRIS 1
|
||
|
||
.SH NAME
|
||
|
||
stris \(en test the character types of string arguments
|
||
|
||
.SH SYNOPSIS
|
||
|
||
stris
|
||
.RB ( -7bcdlu )
|
||
.RB ( -i [ inclusions ])
|
||
.RB [ strings... ]
|
||
|
||
.SH DESCRIPTION
|
||
|
||
Stris tests each rune in an arbitrary quantity of string arguments, ensuring
|
||
each meets any of the parameters specified in the program options.
|
||
|
||
.SH OPTIONS
|
||
|
||
.B -7
|
||
.RS
|
||
Tests to see if runes are fit within seven bits; that is, that they are encoded
|
||
with ASCII.
|
||
.RE
|
||
|
||
.B -b
|
||
.RS
|
||
Tests to see if runes are blank or "whitespace"; characters that do not print
|
||
but fill a predictable amount of space.
|
||
.RE
|
||
|
||
.B -c
|
||
.RS
|
||
Tests to see if runes are control characters; characters that are not printing
|
||
or graphical.
|
||
.RE
|
||
|
||
.B -d
|
||
.RS
|
||
Tests to see if runes are numeric. This test does not only allow the ASCII
|
||
digits but any numeric symbol.
|
||
.RE
|
||
|
||
.B -i
|
||
.RS
|
||
Permits, in addition to the given specified parameters, all of the runes
|
||
supplied in its option argument.
|
||
.RE
|
||
|
||
.B -l
|
||
.RS
|
||
Tests to see if runes are in their lower case.
|
||
.RE
|
||
|
||
.B -u
|
||
.RS
|
||
Tests to see if runes are in their upper case, or capitalized.
|
||
.RE
|
||
|
||
.SH DIAGNOSTICS
|
||
|
||
Stris exits successfully if all runes in all given strings meet any of the
|
||
specified parameters, or if no parameters were specified but all given strings
|
||
were legibly encoded. It exits unsuccessfully if the previous is untrue, and if
|
||
invalid options were given, or if no strings were given, a usage synopsis will
|
||
be printed to the standard error.
|
||
|
||
.SH BUGS
|
||
|
||
There's no way of knowing which argument failed the test without re-testing
|
||
arguments individually.
|
||
|
||
Some runes that can losslessly be encoded into ASCII from UTF-8 but in an
|
||
"overlong encoding", where the rune was encoded with unnecessary leading
|
||
zeroes causing it to span multiple bytes, won't be detected as ASCII.
|
||
|
||
.SH EXAMPLES
|
||
|
||
This is an sh(1p) snippet that checks to see if an environment variable is an
|
||
ASCII digit.
|
||
|
||
.RS
|
||
.R stris -7 "$v" && stris -d "$v" && echo ASCII digit.
|
||
.RE
|
||
|
||
This is an sh(1p) snippet that checks to see if an environment variable is a
|
||
hexadecimal number.
|
||
|
||
.RS
|
||
.R stris -7 "$v" && stris -di ABCDEFabcdef "$v" && echo Hexadecimal number.
|
||
.RE
|
||
|
||
.SH AUTHOR
|
||
|
||
Written by DTB <trinity@trinity.moe>.
|
||
|
||
.SH HISTORY
|
||
|
||
Stris replaces the former str(1) which took the name of a function from
|
||
ctype(3) as its first argument and checked the following strings against it;
|
||
str(1) exited unsuccessfully when it encountered any non-ASCII runes and could
|
||
only have one parameter specified.
|
||
|
||
.SH COPYRIGHT
|
||
|
||
Copyright © 2023–2024 DTB. License AGPLv3+: GNU AGPL version 3 or later
|
||
<https://gnu.org/licenses/gpl.html>.
|
||
|
||
.SH SEE ALSO
|
||
|
||
ascii(7), ctype(3p), strcmp(1)
|