mirror of /home/gitosis/repositories/libowfat.git
Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat
https://www.fefe.de/libowfat/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
738 B
36 lines
738 B
#include "fmt.h" |
|
|
|
static void fmt_oct3(char* dest,uint8_t w) { |
|
dest[2]=(w&7)+'0'; w>>=3; |
|
dest[1]=(w&7)+'0'; w>>=3; |
|
dest[0]=(w&7)+'0'; |
|
} |
|
|
|
size_t fmt_escapecharc(char* dest,uint32_t ch) { |
|
char c; |
|
if (ch>0xff) return 0; |
|
switch (ch) { |
|
case '\a': c='a'; goto doescape; |
|
case '\b': c='b'; goto doescape; |
|
case 0x1b: c='e'; goto doescape; |
|
case '\f': c='f'; goto doescape; |
|
case '\n': c='n'; goto doescape; |
|
case '\r': c='r'; goto doescape; |
|
case '\t': c='t'; goto doescape; |
|
case '\v': c='v'; goto doescape; |
|
case '\\': |
|
c='\\'; |
|
doescape: |
|
if (dest) { |
|
dest[0]='\\'; |
|
dest[1]=c; |
|
} |
|
return 2; |
|
default: |
|
if (dest) { |
|
dest[0]='\\'; |
|
fmt_oct3(dest+1,ch&0xff); |
|
} |
|
return 4; |
|
} |
|
}
|
|
|