Re: regex fix for cygwin


> I agree that we must use the second approach, i.e.:
> 1. Use the mc's regex code, i.e. src/regex.c and src/eregex.h.
> Maybe we should rename src/regex.c to src/eregex.c just to be consistent?

I would rather call them both regex.* unless it causes problems (it should

> 2. Reenable the mc's regex code for all platforms, i.e. remove those  "#if
> 0"  from  src/regex.c and src/eregex.h

Take the latest regex sources from gnu.  It is Ok if all code is disabled
when GNU libc is found - libc should provide the same functions, although
I'm a bit worried if those internal functions can be used - if not, then 
the included regex should be used.

Important is that either you disable all or you enable all.  No mix of
libc regex and included regex.

> 3. Replace all instances of  #include "regex.h"  by  #include "eregex.h"

Or vice versa, but make sure that the included regex.h has preference.

> 4. Unfortunately after this we must test it on all platforms, but I don't
> think we will have any problems ...

I think that it's sufficient to test on GNU/Linux, FreeBSD and Cygwin.

> Yes, it is required, but instead of replacing "#if 0" by "ifdef __CYGWIN__"
> we must just remove them, or maybe replace them by "#if emacs" which is the
> original state of this code.

It's better not to change those files to facilitate their upgrade.  Maybe 
even "emacs" should be defined if needed.

> If this is ok with maintainers, I can do all these changes and send a final
> patch.

Yes, please do.

Pavel Roskin

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]