SuperTweet I18n version

Dependencies:   EthernetNetIf mbed

Committer:
yamaguch
Date:
Sun Nov 06 13:40:37 2011 +0000
Revision:
1:6699b22eb872
Parent:
0:e980b24fd680
0.91

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 0:e980b24fd680 1 #include "mbed.h"
yamaguch 0:e980b24fd680 2 #include <ctype.h>
yamaguch 0:e980b24fd680 3
yamaguch 0:e980b24fd680 4 int encodeFormUrl(char *s, char *t) {
yamaguch 0:e980b24fd680 5 char *head = t;
yamaguch 0:e980b24fd680 6 for (char c; (c = *s) != 0; s++)
yamaguch 0:e980b24fd680 7 switch (c) {
yamaguch 0:e980b24fd680 8 case '\r':
yamaguch 0:e980b24fd680 9 break;
yamaguch 0:e980b24fd680 10 case ' ' :
yamaguch 0:e980b24fd680 11 *t++ = '+';
yamaguch 0:e980b24fd680 12 break;
yamaguch 0:e980b24fd680 13 default:
yamaguch 0:e980b24fd680 14 t += sprintf(t, isalnum(c) ? "%c" : (c == '\n') ? "\r%c" : "%%%02X", c);
yamaguch 0:e980b24fd680 15 }
yamaguch 0:e980b24fd680 16 *t = '\0';
yamaguch 0:e980b24fd680 17 return t - head;
yamaguch 0:e980b24fd680 18 }
yamaguch 0:e980b24fd680 19
yamaguch 0:e980b24fd680 20 void encodeBase64(char ibuf[], int length, char *obuf) {
yamaguch 0:e980b24fd680 21 const char BASE64[] =
yamaguch 0:e980b24fd680 22 "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
yamaguch 0:e980b24fd680 23 int i, j;
yamaguch 0:e980b24fd680 24 for (i = j = 0; j < length; j += 3, i += 4) {
yamaguch 0:e980b24fd680 25 long a = ibuf[j] << 16 |
yamaguch 0:e980b24fd680 26 (j + 1 < length ? ibuf[j + 1] << 8 : 0) |
yamaguch 0:e980b24fd680 27 (j + 2 < length ? ibuf[j + 2] : 0);
yamaguch 0:e980b24fd680 28 for (int k = 3; k >= 0; k--, a >>= 6)
yamaguch 0:e980b24fd680 29 obuf[i + k] = (j + k - 1) < length ? BASE64[a & 63] : '=';
yamaguch 0:e980b24fd680 30 }
yamaguch 0:e980b24fd680 31 obuf[i] = '\0';
yamaguch 0:e980b24fd680 32 }
yamaguch 0:e980b24fd680 33
yamaguch 0:e980b24fd680 34 void encodeBase64(char *ibuf, char *obuf) {
yamaguch 0:e980b24fd680 35 encodeBase64(ibuf, strlen(ibuf), obuf);
yamaguch 0:e980b24fd680 36 }
yamaguch 0:e980b24fd680 37
yamaguch 0:e980b24fd680 38 void getValue(char *path, char *name, char *value) {
yamaguch 0:e980b24fd680 39 FILE *fp = fopen(path, "r");
yamaguch 0:e980b24fd680 40 if (!fp) return;
yamaguch 0:e980b24fd680 41
yamaguch 0:e980b24fd680 42 char buf[512];
yamaguch 0:e980b24fd680 43 int i = strlen(name);
yamaguch 0:e980b24fd680 44 while (fgets(buf, 511, fp)) {
yamaguch 0:e980b24fd680 45 if (strncmp(name, buf, i) == 0 && (buf[i] == ':' || isspace(buf[i]))) {
yamaguch 0:e980b24fd680 46 while (buf[i] && buf[i] != ':') i++;
yamaguch 0:e980b24fd680 47 if (buf[i]) i++;
yamaguch 1:6699b22eb872 48 while (buf[i] && isspace(buf[i])) i++;
yamaguch 0:e980b24fd680 49 for (int j = strlen(buf) - 1; isspace(buf[j]); j--) buf[j] = '\0';
yamaguch 0:e980b24fd680 50 strcpy(value, &buf[i]);
yamaguch 0:e980b24fd680 51 break;
yamaguch 0:e980b24fd680 52 }
yamaguch 0:e980b24fd680 53 }
yamaguch 0:e980b24fd680 54 fclose(fp);
yamaguch 0:e980b24fd680 55 }