On Feb 28 19:36, Yaakov (Cygwin/X) wrote: > On Tue, 2012-02-28 at 11:24 +0100, Corinna Vinschen wrote: > > On Feb 28 03:43, Yaakov (Cygwin/X) wrote: > > > On Tue, 2012-02-28 at 09:18 +0100, Corinna Vinschen wrote: > > > > It's a bug in more, afaics. In case of pressing 'n', the search > > > > function > > > > is called with a NULL buf argument. However, the function calls > > > > strlen(buf) without checking buf for NULL. The indentation at this > > > > point in the file looks like this `if (strlen(buf) > 0) {' has been > > > > added as a kind of patch. > > > > > > Yes, I had to patch more(1) to use regcomp/regexec instead of > > > re_comp/re_exec, which we don't have on Cygwin. With your clarification > > > I should be able to fix it easily. > > > > Just an idea, instead of working around them, why not just add them > > to the lib? You could copy the FreeBSD implementation which just > > implements them in terms of the regcomp/regexec API: > > > > http://www.freebsd.org/cgi/cvsweb.cgi/~checkout~/src/lib/libcompat/4.3/re_comp.c?rev=1.1;content-type=text%2Fplain > > I thought of that when I first ported util-linux, but these functions > were already marked legacy in SUSv2 and removed from SUSv3, so I wasn't > sure if we wanted to first add now what most libc's already consider > cruft. > > If you really think this should be added to Cygwin, I could do it, but I > already have a fix for more(1) so I could do without.
Uh, that wasn't quite what I meant. With "lib" I meant the "lib" subdir in the util-linux source. I was under the (wrong?) impression that the result of `make' in the lib subdir creates a helper lib which is linked to all executables in the collection. Alternatively you could have pasted them to the end of more.c, but since you have a fix now, it doesn't matter anyway. As for Cygwin, the aforementioned FreeBSD source builds out of the box as part of Cygwin after you defined __DECONST. But, like you, I'm not sure it's such a terrible good idea to add such a long deprecated set of functions. OTOH, Linux provides them as well, just with the extra kick that you have to include regex.h rather than unistd.h as on BSD. Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Project Co-Leader cygwin AT cygwin DOT com Red Hat -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple