| 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 dev@frign.de |
| EOF |