[niemeyer@conectiva.com: Re: [Python-Dev] Python's footprint]
M.-A. Lemburg
mal@lemburg.com
Mon, 14 Jan 2002 13:05:57 +0100
Gustavo Niemeyer wrote:
>
> > Why don't you use macro which only takes the name of the
> > static array and the doc-string itself as argument ? This
> > could then be expanded to whatever needs to be done for
> > a particular case/platform, e.g.
> >
> > Py_DefineDocString(foo__doc__, "foo does bar");
> >
> > (I use such an approach in the mx stuff and it works great.)
>
> Yes, it's a nice idea!
>
> I'm looking for some way to "discard" the string using a macro. Let me
> explain with code:
>
> [...]
> #define Py_DOCSTR(name, str) static char *name = str
> #ifdef WITH_DOC_STRINGS
> #define Py_DOCSTR_START(name) Py_DOCSTR(name,)
> #define Py_DOCSTR_END ;
> #else
> #define Py_DOCSTR_START(name) Py_DOCSTR(name, ""); /* Also discards what
> follows somehow */
> #define Py_DOCSTR_END /* Stop discarding */
> #endif
> [...]
>
> This would make it possible to do something like this:
>
> Py_DOCSTR(simple_doc, "This is a simple doc string.");
>
> ...and also...
>
> Py_DOCSTR_START(complex_doc)
> "This is a complex doc string"
> #ifndef MS_WIN16
> "like the one in sysmodule.c"
> #endif
> "Something else"
> Py_DOCSTR_END
>
> This seems to be the most elegant way to allow these complex strings.
> But unfortunately, I haven't found any way so far to do this "discarding
> thing", besides including another "#if" in the documentation itself.
>
> Any good ideas?
Wouldn't it be much simpler to wrap the complete Py_DOCSTR()
into #ifdefs ?
BTW, I don't we'll ever need to #ifdef doc-strings for platforms;
you can just as well put the information for all platforms into
the doc-string -- after the recipient is a human with enough
non-AI to parse the doc-string into meaningful sections ;-)
--
Marc-Andre Lemburg
CEO eGenix.com Software GmbH
______________________________________________________________________
Company & Consulting: http://www.egenix.com/
Python Software: http://www.egenix.com/files/python/