Browse Source

add man pages for fmt_copybytes and fmt_copybytes_sizeof_minus1

master
Felix von Leitner 3 months ago
parent
commit
0d817b6e57
3 changed files with 42 additions and 4 deletions
  1. +1
    -4
      fmt.h
  2. +15
    -0
      fmt/fmt_copybytes.3
  3. +26
    -0
      fmt/fmt_copybytes_sizeof_minus1.3

+ 1
- 4
fmt.h View File

@@ -129,10 +129,7 @@ static inline size_t fmt_copybytes(char* dest,const char* src,size_t n) {
* fmt_copybytes_sizeof_minus1(dest, "\x01\x02\x03\x04");
* since we are technically passing a string, sizeof will include the
* finishing 0 byte which we neither need nor want */
static inline size_t fmt_copybytes_sizeof_minus1(char* dest,const char* src) {
if (dest) byte_copy(dest,sizeof(src)-1,src);
return sizeof(src)-1;
}
#define fmt_copybytes_sizeof_minus1(dest,src) fmt_copybytes(dest,src,sizeof(src)-1)

/* "foo" -> " foo"
* write padlen-srclen spaces, if that is >= 0. Then copy srclen


+ 15
- 0
fmt/fmt_copybytes.3 View File

@@ -0,0 +1,15 @@
.TH fmt_copybytes 3
.SH NAME
fmt_copybytes \- write binary data
.SH SYNTAX
.B #include <libowfat/fmt.h>

size_t \fBfmt_copybytes\fP(char *\fIdest\fR,const char *\fIsource\fR, size_t limit);
.SH DESCRIPTION
fmt_copybytes copies \fIlimit\fP bytes from \fIsource\fP to \fIdest\fP and returns \fIlimit\fP.

This is a convenience wrapper interface around
\fImemcpy\fP/\fIbyte_copy\fP to make it work like the other fmt
functions.
.SH "SEE ALSO"
byte_copy(3), memcpy(3)

+ 26
- 0
fmt/fmt_copybytes_sizeof_minus1.3 View File

@@ -0,0 +1,26 @@
.TH fmt_copybytes_sizeof_minus1 3
.SH NAME
fmt_copybytes_sizeof_minus1 \- write binary data
.SH SYNTAX
.B #include <libowfat/fmt.h>

size_t \fBfmt_copybytes_sizeof_minus1\fP(char *\fIdest\fR,const char *\fIsource\fR);
.SH DESCRIPTION
This macro will copy sizeof(\fIsource\fP)-1 bytes from \fIsource\fP to \fIdest\fP.

This is a convenience wrapper interface around
\fIfmt_copybytes\fP for the situation where you construct a binary
message by concatenating hex constant strings like this:

fmt_copybytes_sizeof_minus1(dest, "\\x01\\x02\\x03\\x04");

Since the source is technically a string, the compiler will add a 0 byte
and sizeof() will return the size including that 0 byte. That is why we
have a minus 1 in this function, so we do not copy or count that 0 byte.

.SH NOTE
Caution: \fIsource\fP must not have side effects or those will be
evaluated twice.

.SH "SEE ALSO"
fmt_copybytes(3)

Loading…
Cancel
Save