Subject: bug#17157: [PATCH 1/5] Partially revert "dfa: improve port to freestanding DJGPP"

From: [email-masked]
Date: Wed, 02 Apr 2014 01:59:02 -0600

Paolo Bonzini <[email-masked]> wrote:

> Il 01/04/2014 20:36, [email-masked] ha scritto:
> > Not really such a good idea. mbsupport.h is used in multiple places
> > in gawk to define if MBS support is availble. It needs to stay
> > that way. Since we're discussing keeping dfa simple in both its
> > environments, then it needs to be in a header that only dfa uses.
> >
> > At the moment, the best candidate is xalloc.h, which differs somewhat
> > grep vs. gawk.
> >
> > But here too, in reality that file is mainly for allocation stuff
> > and dfa portability doesn't really belong there.
> >
> > I respectfully suggest dfaconfig.h (or dfacustom.h) with
> >
> > 	#ifdef GAWK
> > 	#ifndef HAVE_SETLOCALE
> > 	#define selocale(x, y)	NULL
> > 	#endif
> > 	#define static_assert(cond) ...
> > 	#endif
> >
> > as the initial contents.
>
> Couldn't gawk's dfaconfig.h include gawk's mbsupport.h?

Yes, but why? dfa.c needs mbsuport.h no matter what.

Using Paul's separation of concerns:

* mbsupport.h - provide definition for MBSUPPORT. Opaque to dfa.c.
* xalloc.h - provide declarations (and maybe definitions) for **alloc,
             opaque to dfa.c
* dfaconfg.h - provide other definitions needed by dfa.c which may not be
               in standard headers for when gnulib isn't being used

Thanks,

Arnold