Files
mars-libowfat/textcode/scan_yenc.c
leitner fb5dcdf7fe some more compiler attributes
make sure all textcode/scan_* routines work if dest or destlen is NULL
2025-03-17 13:21:55 +00:00

21 lines
514 B
C

#include <libowfat/fmt.h>
#include <libowfat/textcode.h>
size_t scan_yenc(const char *src,char *dest,size_t *destlen) {
register const unsigned char* s=(const unsigned char*) src;
size_t written=0,i;
for (i=0; s[i]; ++i) {
if (s[i]=='=') {
++i;
if (s[i]=='y') break;
if (dest) dest[written]=s[i]-64-42;
} else if (s[i]=='\n' || s[i]=='\r' || s[i]=='\0')
break;
else
if (dest) dest[written]=s[i]-42;
++written;
}
if (destlen) *destlen=written;
return i;
}