> Date: Fri, 1 Jan 2016 18:18:34 +0000 > From: Gavin Smith <[email protected]> > Cc: Texinfo <[email protected]> > > I had an idea for how that value could be obtained. The pointer is > advanced according to the return value of mbrtowc, and mbrtowc returns > -1 for an error. But the return type of mbrtowc is unsigned, so I did: > > if ((long) mbrlen(p, len, NULL) > 0) > > and similar. > > However, if size_t is a narrower type than long (e.g. size_t 32 bits, > long 64 bits)
I don't think there's any architecture where this is true. The opposite is true in a 64-bit Windows build (which isn't my case). But I don't think I ever saw a size_t that is narrower than a long. I'm quite sure this crash is related to the version mbrtowc we have in xspara.c, I just need to devise a way to catch it. Unfortunately, using fprintf and sprintf cause compilation errors there...
