X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fstr.c;h=8243aa0690aad24a9b519db9bd1838724d32d729;hb=cb72db62c20ecab427229110820c5b053d0663c4;hp=c954a722c89987d371eee5084a9b52c452af0ee8;hpb=07db00919d6f067fd5dd6c6c1c2c2fba4f42cf21;p=pspp-builds.git diff --git a/src/libpspp/str.c b/src/libpspp/str.c index c954a722..8243aa06 100644 --- a/src/libpspp/str.c +++ b/src/libpspp/str.c @@ -1442,3 +1442,25 @@ ds_relocate (struct string *st) free ((char *) rel); } } + + + + +/* Operations on uint8_t "strings" */ + +/* Copies buffer SRC, of SRC_SIZE bytes, to DST, of DST_SIZE bytes. + DST is truncated to DST_SIZE bytes or padded on the right with + copies of PAD as needed. */ +void +u8_buf_copy_rpad (uint8_t *dst, size_t dst_size, + const uint8_t *src, size_t src_size, + char pad) +{ + if (src_size >= dst_size) + memmove (dst, src, dst_size); + else + { + memmove (dst, src, src_size); + memset (&dst[src_size], pad, dst_size - src_size); + } +}