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/