| 38 |
|
#include <sys/stat.h> |
| 39 |
|
#include "ezxml.h" |
| 40 |
|
|
| 41 |
+ |
#ifdef _WIN32 |
| 42 |
+ |
#include <io.h> |
| 43 |
+ |
#define read _read |
| 44 |
+ |
#define open _open |
| 45 |
+ |
#define close _close |
| 46 |
+ |
#endif |
| 47 |
+ |
|
| 48 |
|
#define EZXML_WS "\t\r\n " /* whitespace */ |
| 49 |
|
#define EZXML_ERRL 128 /* maximum error string length */ |
| 50 |
|
|
| 150 |
|
char *t, fmt[EZXML_ERRL]; |
| 151 |
|
|
| 152 |
|
for (t = root->s; t < s; t++) if (*t == '\n') line++; |
| 153 |
< |
snprintf(fmt, EZXML_ERRL, "[error near line %d]: %s", line, err); |
| 153 |
> |
sprintf(fmt, "[error near line %d]: %s", line, err); |
| 154 |
|
|
| 155 |
|
va_start(ap, err); |
| 156 |
|
vsnprintf(root->err, EZXML_ERRL, fmt, ap); |
| 170 |
|
char *e, *r = s, *m = s; |
| 171 |
|
long b, c, d, l; |
| 172 |
|
|
| 173 |
< |
for (; *s; s++) { /* normalize line endings */ |
| 174 |
< |
while (*s == '\r') { |
| 175 |
< |
*(s++) = '\n'; |
| 176 |
< |
if (*s == '\n') memmove(s, (s + 1), strlen(s)); |
| 177 |
< |
} |
| 178 |
< |
} |
| 173 |
> |
for (; *s; s++) /* normalize line endings */ |
| 174 |
> |
if (*s == '\r') { |
| 175 |
> |
char *s2 = s+1; |
| 176 |
> |
do { |
| 177 |
> |
while (*s2 == '\r') |
| 178 |
> |
++s2; |
| 179 |
> |
*s++ = *s2; |
| 180 |
> |
} while (*s2++); |
| 181 |
> |
break; |
| 182 |
> |
} |
| 183 |
|
|
| 184 |
|
for (s = r; ; ) { |
| 185 |
|
while (*s && *s != '&' && (*s != '%' || t != '%') && !isspace(*s)) s++; |