From 97d5c458cfa039d857301e1ca7d5af3beb37131d Mon Sep 17 00:00:00 2001 From: Jacob McDonnell Date: Sun, 26 Apr 2026 16:38:00 -0400 Subject: build: Better Build System --- static/plan9-4e/man2/encode.2 | 82 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 static/plan9-4e/man2/encode.2 (limited to 'static/plan9-4e/man2/encode.2') diff --git a/static/plan9-4e/man2/encode.2 b/static/plan9-4e/man2/encode.2 new file mode 100644 index 00000000..10dcdf54 --- /dev/null +++ b/static/plan9-4e/man2/encode.2 @@ -0,0 +1,82 @@ +.TH ENCODE 2 +.SH NAME +dec64, enc64, dec32, enc32, dec16, enc16, encodefmt \- encoding byte arrays as strings +.SH SYNOPSIS +.B #include +.br +.B #include +.PP +.B +int dec64(uchar *out, int lim, char *in, int n) +.PP +.B +int enc64(char *out, int lim, uchar *in, int n) +.PP +.B +int dec32(uchar *out, int lim, char *in, int n) +.PP +.B +int enc32(char *out, int lim, uchar *in, int n) +.PP +.B +int dec16(uchar *out, int lim, char *in, int n) +.PP +.B +int enc16(char *out, int lim, uchar *in, int n) +.PP +.B +int encodefmt(Fmt*) +.SH DESCRIPTION +.PP +.IR Enc16 , +.I enc32 +and +.I enc64 +create null terminated strings. They return the size of the +encoded string (without the null) or -1 if the encoding fails. +The encoding fails if +.IR lim , +the length of the output buffer, is too small. +.PP +.IR Dec16 , +.I dec32 +and +.I dec64 +return the number of bytes decoded or -1 if the decoding fails. +The decoding fails if the output buffer is not large enough or, +for base 32, if the input buffer length is not a multiple +of 8. +.PP +.I Encodefmt +can be used with +.IR fmtinstall (2) +and +.IR print (2) +to print encoded representations of byte arrays. +The verbs are +.TP +.B H +base 16 (i.e. hexadecimal) +.TP +.B < +base 32 +.TP +.B [ +base 64 (same as MIME) +.PD +.PP +The length of the array is specified as +.IR f2 . +For example, to display a 15 byte array as hex: +.EX + + char x[15]; + + fmtinstall('H', encodefmt); + print("%.*H\\n", sizeof x, x); + +.EE +.SH SOURCE +.B /sys/src/libc/port/u32.c +.br +.B /sys/src/libc/port/u64.c -- cgit v1.2.3