mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-16 10:39:49 +00:00
Add support for Windriver's Diab v4 (stricter C89)
This commit is contained in:
1 parent
4717a15c17
commit
5b023cb85b
19 files changed
+347
-215
No files matched your search
+8
-5
@@ -38,8 +38,10 @@ void mg_pfn_iobuf(char ch, void *param) {
|
||||
}
|
||||
|
||||
size_t mg_vsnprintf(char *buf, size_t len, const char *fmt, va_list *ap) {
|
||||
struct mg_iobuf io = {(uint8_t *) buf, len, 0, 0};
|
||||
size_t n = mg_vxprintf(mg_putchar_iobuf_static, &io, fmt, ap);
|
||||
struct mg_iobuf io = {0, 0, 0, 0};
|
||||
size_t n;
|
||||
io.buf = (uint8_t *) buf, io.size = len;
|
||||
n = mg_vxprintf(mg_putchar_iobuf_static, &io, fmt, ap);
|
||||
if (n < len) buf[n] = '\0';
|
||||
return n;
|
||||
}
|
||||
@@ -96,8 +98,8 @@ size_t mg_print_ip6(void (*out)(char, void *), void *arg, va_list *ap) {
|
||||
|
||||
size_t mg_print_ip(void (*out)(char, void *), void *arg, va_list *ap) {
|
||||
struct mg_addr *addr = va_arg(*ap, struct mg_addr *);
|
||||
if (addr->is_ip6) return print_ip6(out, arg, (uint16_t *) addr->ip);
|
||||
return print_ip4(out, arg, (uint8_t *) &addr->ip);
|
||||
if (addr->is_ip6) return print_ip6(out, arg, (uint16_t *) addr->addr.ip);
|
||||
return print_ip4(out, arg, (uint8_t *) &addr->addr.ip);
|
||||
}
|
||||
|
||||
size_t mg_print_ip_port(void (*out)(char, void *), void *arg, va_list *ap) {
|
||||
@@ -145,7 +147,8 @@ static size_t bcpy(void (*out)(char, void *), void *arg, uint8_t *buf,
|
||||
for (i = 0; i < len; i += 3) {
|
||||
uint8_t c1 = buf[i], c2 = i + 1 < len ? buf[i + 1] : 0,
|
||||
c3 = i + 2 < len ? buf[i + 2] : 0;
|
||||
char tmp[4] = {t[c1 >> 2], t[(c1 & 3) << 4 | (c2 >> 4)], '=', '='};
|
||||
char tmp[4] = {0, 0, '=', '='};
|
||||
tmp[0] = t[c1 >> 2], tmp[1] = t[(c1 & 3) << 4 | (c2 >> 4)];
|
||||
if (i + 1 < len) tmp[2] = t[(c2 & 15) << 2 | (c3 >> 6)];
|
||||
if (i + 2 < len) tmp[3] = t[c3 & 63];
|
||||
for (j = 0; j < sizeof(tmp) && tmp[j] != '\0'; j++) out(tmp[j], arg);
|
||||
|
||||
Reference in new issue
Block a user