> I updated GNU's regex code because it was quite old, as you pointed out.
Maybe I did at one time, but I haven't really cared lately as I've been using another regex library. Others have mentioned it recently. > The additional files do not need to be added to any makefiles or project > files. I suppose you could, but it would be counter-productive given their > use. (Read regex.c if you don't understand this.) OK, I see this now. I was having lots of compile errors which I thought were due to the extra files not being included, but it turns out that defining __USE_GNU took care of those problems. There are still a couple of things that need changed for this to compile. The header alloca.h is not available with Mingw, so it needs to be skipped. A function from malloc.h was used without including the header file. And bool, and true/false were used, all of which are C++, rather than C. Anyway, here's a patch that will need to be applied for this to compile. It should be safe for Visual Studio as well. It still needs __USE_GNU defined, but I'll take care of that with my patch for configure.ac that I'm working on. Matthew Index: regex_internal.h =================================================================== --- regex_internal.h (revision 2486) +++ regex_internal.h (working copy) @@ -418,7 +418,9 @@ #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) +#ifndef __MINGW32__ #include <alloca.h> +#endif #ifndef _LIBC # if HAVE_ALLOCA Index: regexec.c =================================================================== --- regexec.c (revision 2486) +++ regexec.c (working copy) @@ -18,6 +18,11 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <malloc.h> +typedef enum {FALSE, TRUE} bool; +#define false FALSE; +#define true TRUE; + static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, int n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function;
Index: regex_internal.h =================================================================== --- regex_internal.h (revision 2486) +++ regex_internal.h (working copy) @@ -418,7 +418,9 @@ #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx)) #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx)) +#ifndef __MINGW32__ #include <alloca.h> +#endif #ifndef _LIBC # if HAVE_ALLOCA Index: regexec.c =================================================================== --- regexec.c (revision 2486) +++ regexec.c (working copy) @@ -18,6 +18,11 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#include <malloc.h> +typedef enum {FALSE, TRUE} bool; +#define false FALSE; +#define true TRUE; + static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, int n) internal_function; static void match_ctx_clean (re_match_context_t *mctx) internal_function;
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://www.crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page