Bernd Oppolzer wrote:
Thank you all for your valuable suggestions.
The compiler is z/OS XL/C V1.13 and V1.11 -
well, in fact, I didn't test it with the 1.11. version.
I observed the problem on the site with the 1.13 version.
This is part of the PL/1 interface for my XML parser.
I had to do a rollout today on three different sites of my
customers; that's why there are different versions of the compiler.
The site with the 1.11. compiler is on z/OS v1.13, but still uses
the old compiler.
I found a workaround in the meantime, this way:
/**********************************************************/
/* */
/* PLI/1 NULL () => SYSNULL () */
/* */
/**********************************************************/
static void pli_null_to_sysnull (void *pptr)
{
char *cp = pptr;
if (memcmp (cp, "\xff\x00\x00\x00", 4) == 0)
{
*cp = 0x00;
}
}
Hi Bernd,
I think that's incorrect - it's comparing what cp _points to_ with
0xff000000 - instead of the value of cp.
If you wanted to do the comparison suggested from your original
post, wouldn't it correctly be this:
memcmp(&cp, "\xff\x0\x0\x0", 4);
That would compare the value of cp with 0xff000000.
It's a rather round-a-bout way to make it happen.., I'm kinda still
of the opinion that "something else" is going on.
- Dave Rivers -
--
riv...@dignus.com Work: (919) 676-0847
Get your mainframe programming tools at http://www.dignus.com
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN