Spinacz biurowy, Szymon Zygmunt <[EMAIL PROTECTED]>!
>>> Undefined first referenced
>>> symbol in file
>>> strsep /var/tmp//ccYEsuCr.o
>>> strcasestr /var/tmp//ccYEsuCr.o
>>
>> Tymczasowo spróbuj dodać w kodzie (ehg.c) coś takiego:
>>
>> #define strsep strtok
>>
>> char *strcasestr(const char *haystack, const char *needle)
>> {
>> int i, hlen = strlen(haystack), nlen = strlen(needle);
>>
>> for (i = 0; i <= hlen - nlen; i++) {
>> if (!strncasecmp(haystack + i, needle, nlen))
>> return (char*) (haystack + i);
>> }
>>
>> return NULL;
>> }
>
> Po tej poprawce sie kompiluje.
Doczytałem manuala i strsep jednak bierze inny argument niż strtok...
To nie będzie działało prawidłowo.
Wywal tego define'a i wrzuć to: (copy/paste z
glibc-2.3.6/sysdeps/generic/strsep.c)
char *strsep (char **stringp, const char *delim)
{
char *begin, *end;
begin = *stringp;
if (begin == NULL)
return NULL;
/* A frequent case is when the delimiter string contains only one
character. Here we don't need to call the expensive `strpbrk'
function and instead work using `strchr'. */
if (delim[0] == '\0' || delim[1] == '\0')
{
char ch = delim[0];
if (ch == '\0')
end = NULL;
else
{
if (*begin == ch)
end = begin;
else if (*begin == '\0')
end = NULL;
else
end = strchr (begin + 1, ch);
}
}
else
/* Find the end of the token. */
end = strpbrk (begin, delim);
if (end)
{
/* Terminate the token and set *STRINGP past NUL character. */
*end++ = '\0';
*stringp = end;
}
else
/* No more delimiters; this is the last token. */
*stringp = NULL;
return begin;
}
--
Adam Wysocki, Warszawa, PL, GSM 514 710 213, http://www.chmurka.net/
GG 1234, Grono ID 123, FidoNet 2:480/138, QTH KO02MF, SWL SP5-250730
Chcesz zarobić? Idź do pracy! (C) Robert B. o spamie Make Money Fast
W prezencie dla spamerów: http://polish-522534371123.spampoison.com/