[AC] zwalony grep
Jakub Bogusz
qboosh w pld-linux.org
Czw, 11 Mar 2004, 21:41:43 CET
On Thu, Mar 11, 2004 at 08:57:16PM +0100, Paweł Sakowski wrote:
> U mnie zależnie od locale są krzaki lub
>
> grep: plik_ktorego_nie_ma:
>
> Podejrzewam pliki tłumaczeń lub wywołanie gettext-a.
Nie... to jest bardziej zakręcone.
Funkcja strerror_r() z glibc nie trzyma się standardu[1] i zwraca wskaźnik
zamiast inta, natomiast nie wypełnia bufora(!).
A druga rzecz to to, że wykrywanie - test dla wersji glibcowej był
zaszyty w makrze o takiej samej nazwie co standardowe makro autoconfa
bez tego testu - przez co po regeneracji ac była wykonywana wersja
standardowa i grep próbował używać funkcji strerror_r() jako zgodnej
z POSIX / SUSv3.
[1] komentarz w man 3 strerror_r, opis wg POSIX w man 3p strerror_r
testcase:
#v+
#include <string.h>
#include <errno.h>
int main()
{
char buf[1024] = "non-standard";
long x;
x = strerror_r(ENOENT, buf, sizeof(buf));
printf("%08x %s\n", (int)x, buf);
if((x < -200) || (x > 0))
printf("returned string: %s\n", (char*)x);
}
#v-
--
Jakub Bogusz http://cyber.cs.net.pl/~qboosh/
Więcej informacji o liście dyskusyjnej pld-devel-pl