commit cd82185dc9bbb7b2d1771952a625152da5e47591
Author:     Laslo Hunhold <[email protected]>
AuthorDate: Wed Sep 7 22:19:41 2022 +0200
Commit:     Laslo Hunhold <[email protected]>
CommitDate: Wed Sep 7 22:19:41 2022 +0200

    Add manuals for the grapheme_is_*case*()-functions
    
    Signed-off-by: Laslo Hunhold <[email protected]>

diff --git a/Makefile b/Makefile
index ac0e5f1..48a4d57 100644
--- a/Makefile
+++ b/Makefile
@@ -82,6 +82,12 @@ MAN3 =\
        man/grapheme_to_uppercase_utf8\
        man/grapheme_to_lowercase_utf8\
        man/grapheme_to_titlecase_utf8\
+       man/grapheme_is_uppercase\
+       man/grapheme_is_lowercase\
+       man/grapheme_is_titlecase\
+       man/grapheme_is_uppercase_utf8\
+       man/grapheme_is_lowercase_utf8\
+       man/grapheme_is_titlecase_utf8\
 
 MAN7 =\
        man/libgrapheme\
@@ -195,6 +201,12 @@ gen/word.h: data/WordBreakProperty.txt gen/word
 gen/word-test.h: data/WordBreakTest.txt gen/word-test
 
 man/grapheme_is_character_break.3: man/grapheme_is_character_break.sh config.mk
+man/grapheme_is_uppercase.3: man/grapheme_is_uppercase.sh 
man/template/is_case.sh config.mk
+man/grapheme_is_lowercase.3: man/grapheme_is_lowercase.sh 
man/template/is_case.sh config.mk
+man/grapheme_is_titlecase.3: man/grapheme_is_titlecase.sh 
man/template/is_case.sh config.mk
+man/grapheme_is_uppercase_utf8.3: man/grapheme_is_uppercase_utf8.sh 
man/template/is_case.sh config.mk
+man/grapheme_is_lowercase_utf8.3: man/grapheme_is_lowercase_utf8.sh 
man/template/is_case.sh config.mk
+man/grapheme_is_titlecase_utf8.3: man/grapheme_is_titlecase_utf8.sh 
man/template/is_case.sh config.mk
 man/grapheme_next_character_break.3: man/grapheme_next_character_break.sh 
man/template/next_break.sh config.mk
 man/grapheme_next_line_break.3: man/grapheme_next_line_break.sh 
man/template/next_break.sh config.mk
 man/grapheme_next_sentence_break.3: man/grapheme_next_sentence_break.sh 
man/template/next_break.sh config.mk
diff --git a/man/grapheme_is_lowercase.sh b/man/grapheme_is_lowercase.sh
new file mode 100644
index 0000000..64286bf
--- /dev/null
+++ b/man/grapheme_is_lowercase.sh
@@ -0,0 +1,3 @@
+ENCODING="codepoint" \
+CASE="lowercase" \
+       $SH man/template/is_case.sh
diff --git a/man/grapheme_is_lowercase_utf8.sh 
b/man/grapheme_is_lowercase_utf8.sh
new file mode 100644
index 0000000..e69249f
--- /dev/null
+++ b/man/grapheme_is_lowercase_utf8.sh
@@ -0,0 +1,3 @@
+ENCODING="utf8" \
+CASE="lowercase" \
+       $SH man/template/is_case.sh
diff --git a/man/grapheme_is_titlecase.sh b/man/grapheme_is_titlecase.sh
new file mode 100644
index 0000000..1c43b76
--- /dev/null
+++ b/man/grapheme_is_titlecase.sh
@@ -0,0 +1,3 @@
+ENCODING="codepoint" \
+CASE="titlecase" \
+       $SH man/template/is_case.sh
diff --git a/man/grapheme_is_titlecase_utf8.sh 
b/man/grapheme_is_titlecase_utf8.sh
new file mode 100644
index 0000000..e8f2f50
--- /dev/null
+++ b/man/grapheme_is_titlecase_utf8.sh
@@ -0,0 +1,3 @@
+ENCODING="utf8" \
+CASE="titlecase" \
+       $SH man/template/is_case.sh
diff --git a/man/grapheme_is_uppercase.sh b/man/grapheme_is_uppercase.sh
new file mode 100644
index 0000000..9e8c8ea
--- /dev/null
+++ b/man/grapheme_is_uppercase.sh
@@ -0,0 +1,3 @@
+ENCODING="codepoint" \
+CASE="uppercase" \
+       $SH man/template/is_case.sh
diff --git a/man/grapheme_is_uppercase_utf8.sh 
b/man/grapheme_is_uppercase_utf8.sh
new file mode 100644
index 0000000..e69249f
--- /dev/null
+++ b/man/grapheme_is_uppercase_utf8.sh
@@ -0,0 +1,3 @@
+ENCODING="utf8" \
+CASE="lowercase" \
+       $SH man/template/is_case.sh
diff --git a/man/libgrapheme.sh b/man/libgrapheme.sh
index ae1f258..d9e67ad 100644
--- a/man/libgrapheme.sh
+++ b/man/libgrapheme.sh
@@ -39,6 +39,12 @@ example illustrating the possible usage.
 .Xr grapheme_decode_utf8 3 ,
 .Xr grapheme_encode_utf8 3 ,
 .Xr grapheme_is_character_break 3 ,
+.Xr grapheme_is_lowercase 3 ,
+.Xr grapheme_is_lowercase_utf8 3 ,
+.Xr grapheme_is_uppercase 3 ,
+.Xr grapheme_is_uppercase_utf8 3 ,
+.Xr grapheme_is_titlecase 3 ,
+.Xr grapheme_is_titlecase_utf8 3 ,
 .Xr grapheme_next_character_break 3 ,
 .Xr grapheme_next_character_break_utf8 3 ,
 .Xr grapheme_next_line_break 3 ,
diff --git a/man/template/is_case.sh b/man/template/is_case.sh
new file mode 100644
index 0000000..8ef2869
--- /dev/null
+++ b/man/template/is_case.sh
@@ -0,0 +1,67 @@
+if [ "$ENCODING" = "utf8" ]; then
+       UNIT="byte"
+       ARRAYTYPE="UTF-8-encoded string"
+       SUFFIX="_utf8"
+       ANTISUFFIX=""
+       DATATYPE="char"
+else
+       UNIT="codepoint"
+       ARRAYTYPE="codepoint array"
+       SUFFIX=""
+       ANTISUFFIX="_utf8"
+       DATATYPE="uint_least32_t"
+fi
+
+cat << EOF
+.Dd ${MAN_DATE}
+.Dt GRAPHEME_IS_$(printf "%s%s" "$CASE" "$SUFFIX" | tr [:lower:] [:upper:]) 3
+.Os suckless.org
+.Sh NAME
+.Nm grapheme_is_${CASE}${SUFFIX}
+.Nd check if ${ARRAYTYPE} is ${CASE}
+.Sh SYNOPSIS
+.In grapheme.h
+.Ft size_t
+.Fn grapheme_is_${CASE}${SUFFIX} "const ${DATATYPE} *str" "size_t len" "size_t 
caselen"
+.Sh DESCRIPTION
+The
+.Fn grapheme_is_${CASE}${SUFFIX}
+function checks if the ${ARRAYTYPE}
+.Va str
+is ${CASE} and writes the length of the matching ${CASE}-sequence to the 
integer pointed to by
+.Va caselen ,
+unless
+.Va caselen
+is set to
+.Dv NULL .
+.Pp
+If
+.Va len
+is set to
+.Dv SIZE_MAX
+(stdint.h is already included by grapheme.h) the ${ARRAYTYPE}
+.Va src
+is interpreted to be NUL-terminated and processing stops when a
+NUL-byte is encountered.
+.Pp
+For $(if [ "$ENCODING" != "utf8" ]; then printf "UTF-8-encoded"; else printf 
"non-UTF-8"; fi) input data
+.Xr grapheme_is_${CASE}${ANTISUFFIX} 3
+can be used instead.
+.Sh RETURN VALUES
+The
+.Fn grapheme_is_${CASE}${SUFFIX}
+function returns
+.Dv true
+if the ${ARRAYTYPE}
+.Va str
+is ${CASE}, otherwise 
+.Dv false .
+.Sh SEE ALSO
+.Xr grapheme_is_${CASE}${ANTISUFFIX} 3 ,
+.Xr libgrapheme 7
+.Sh STANDARDS
+.Fn grapheme_is_${CASE}${SUFFIX}
+is compliant with the Unicode ${UNICODE_VERSION} specification.
+.Sh AUTHORS
+.An Laslo Hunhold Aq Mt [email protected]
+EOF

Reply via email to