scan_uuencoded(3) | Library Functions Manual | scan_uuencoded(3) |
scan_uuencoded - decode uuencoded data
#include <libowfat/textcode.h>
size_t scan_uuencoded(const char *src,char *dest,size_t* destlen);
scan_uuencoded decodes uuencoded data from src into dest. It will stop when it encounters any non-valid input characters. It will then write the number of decoded bytes in dest into *destlen, and return the number of bytes decoded from src.
Note that real world uuencoded data is sometimes permitted to contain whitespace characters or new lines. This function will not allow those and return the decoded data until then.
uudecoding works on lines, and the first byte in each line contains the length of the line (encoded). scan_uuencoded expects one such line as input, and it will decode all the bytes in it.
uuencoded data can contain bytes from 0x21 to 0x96, which means it is not "string safe" (can contain single and double quotes and backslash).
dest can be NULL. destlen can be NULL. dest can be src.
scan_uuencoded returns the number of bytes successfully scanned and processed from src.
scan_uuencoded("&9FYO<F0*",buf,&i) -> return 9, i=5, buf="fnord"