Subject: Re: tgetstr bug
To: None <firstname.lastname@example.org>
From: Valeriy E. Ushakov <email@example.com>
Date: 12/17/2006 09:34:39
Christos Zoulas <firstname.lastname@example.org> wrote:
> In article <email@example.com>,
> Bruno Haible <firstname.lastname@example.org> wrote:
>>tgetstr ("md", NULL) crashes on NetBSD. It's here:
>>t_getstr(struct tinfo *info, const char *id, char **area, size_t *limit)
>> _DIAGASSERT(limit != NULL);
>> *limit = i; <=====
>> return NULL;
>>Other systems support tgetstr ("md", NULL) without problems, and
>>return the string in a statically allocated buffer.
> The code that passes NULL is non-portable. According to the TOG:
> The tgetstr() function gets the string entry for id. If area is
> not a null pointer and does not point to a null pointer, tgetstr()
> copies the string entry into the buffer pointed to by *area and
> advances the variable pointed to by area to the first byte after
> the copy of the string entry.
> By making tgetstr(id, NULL) work, we are encouraging non-portable
Hmm, why is that non-portable? I read TOG text as that tgetstr
returns the capability *and*, if area is not null, also copies the
capability string into the area.
Do I miss something?
email@example.com | Zu Grunde kommen
http://snark.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen