On lör, 2012-03-10 at 18:47 -0500, Tom Lane wrote:
> > void EncodeDateTime(struct pg_tm * tm, fsec_t fsec, const int *tzp, const char *tzn, int style, char *str)
>
> It appears to me that null-ness of tzp and tzn are used as a 3-way flag
> to identify the style of timezone output wanted (none, numeric, or alpha).
> It would probably be better yet if it went like
>
> enum tzstyle, int tzp, const char *tzn
>
> where tzp or tzn would be examined only if tzstyle said so.
It's not quite a three-way flag, because it also depends on the style,
which time zone style is used. But I liked the idea of making "print
the time zone" more explicit and getting rid of the funny pointers. I
added a bit of documentation and code deduplication in the attached
patch, and it already looks much more understandable.