12345678910111213141516171819 |
- #include "nameparse.h"
- int nameparse(unsigned char *s,const char *x)
- {
- long long pos;
- long long j;
- if (!x) return 0;
- for (pos = 0;pos < 256;++pos) s[pos] = 0;
- pos = 0;
- while (*x) {
- if (*x == '.') { ++x; continue; }
- for (j = 0;x[j];++j) if (x[j] == '.') break;
- if (j > 63) return 0;
- if (pos < 0 || pos >= 256) return 0; s[pos++] = j;
- while (j > 0) { if (pos < 0 || pos >= 256) return 0; s[pos++] = *x++; --j; }
- }
- if (pos < 0 || pos >= 256) return 0; s[pos++] = 0;
- return 1;
- }
|