есть такая функция:
char* strget(char *par,const char *find,WORD maxl,char end,bool argparsing)
{
char* par;
const char* find;
WORD maxl;
char end;
bool argparsing;
bool bZend = false;
char *res, *rres;
char *s, *x;
char a, b;
if(par == NULL) return NULL;
if(find == NULL) return NULL;
if((s = strstr(par, find)) == NULL) return NULL;
if(bZend = ((x = strchr(s, end)) == NULL))
x = strchr(s, 0);
else
*x = 0; // temporary change '&' to '\0'
rres = res = (char *)malloc(maxl + 1);
s = s + strlen(find);
if(argparsing) {
while(*s != '\0' && res - rres < maxl) {
if(*s == '%' && x > s + 2) {
if((a = parsesym(*(s + 1))) == 20) {
s++; continue; // ignore invalid %
}
if((b = parsesym(*(s + 2))) == 20) {
s++; continue; // ignore invalid %
}
*res = (char)(a*16 + b);
s+=2;
}
else if(*s == '+') *res = ' ';
else *res = *s;
res++;
s++;
}
*res = 0;
rres = (char*)realloc(rres, strlen(rres) + 1);
}
else {
strncpy(rres, s, maxl);
rres[maxl] = 0; // fix for any string
}
if(!bZend)
x = end;
return rres;
}
она разбирает строку ввода в CGI приложении.
Но она не хочет компилироваться в Linux. Причем в приложении, откуда выдрана функция ошибок никаких не выдается, а когда вставляю ее в свою программу сыпятся непонятные ошибки:
estet@qa-debian:~/traintimetable/t41$ make
g++ -O2 -fno-exceptions -DUSE_LIB=0 -Wcomment -c -o t3.o t3.c
In file included from t3.c:8:
cgi.h:108:7: warning: no newline at end of file
In file included from t3.c:10:
design.h:62:141: warning: no newline at end of file
t3.c:138: error: type specifier omitted for parameter `WORD'
t3.c:138: error: parse error before `,' token
t3.c: In function `char* strget(...)':
t3.c:142: error: `WORD' undeclared (first use this function)
t3.c:142: error: (Each undeclared identifier is reported only once for each
function it appears in.)
t3.c:142: error: parse error before `;' token
t3.c:156: error: `maxl' undeclared (first use this function)
t3.c:183: error: invalid conversion from `char' to `char*'
t3.c: In function `CTime* GetCurrentTime()':
t3.c:280: warning: address of local variable `current_time' returned
t3.c: In function `int LastModificationOf(const char*)':
t3.c:298: error: 'struct stat' has no member named 'st_mtimespec'
make: *** [t3.o] Ошибка 1
Помогите понять в чем дело!