John Darrington <[email protected]> writes: > On Thu, Nov 04, 2010 at 10:12:15PM -0700, Ben Pfaff wrote: > John Darrington <[email protected]> writes: > > > Has anyone got any sensible suggestions on how to implement the two > functions: > > > > int get_codepage_from_encoding_name (const char*); and > > const char *get_encoding_from_codepage (int); > > I'm appending an implementation. What do you think? > > The implementation per se looks good except that the > extern declarations in sys-file-private.h should go > in sys-file-private.c I think.
Those declarations have definitions in sys-file-encoding.c and users in sys-file-private.c. sys-file-private.h is included by both of those files, so if I screw up the uses in sys-file-private.c or the definitions in sys-file-encoding.c, then it will provoke a warning. But if I move the extern declaration from sys-file-private.h into sys-file-private.c, then it will cause segmentation faults (etc.) at runtime without any compiler warnings. So I'd prefer to keep them in the header file. If I check in this code, will it help you? I'm happy to do so. > (It occurs to me that I might have the wrong idea for > sys_get_encoding_from_codepage(). Maybe it should return a name > for the encoding *on the local machine*, not on Windows. Or > maybe we need both functions.) > > Perhaps you're right. When writing a sysfile, the encoding must be > one that will be recognised by SPSS (that means Windows). When reading > a sysfile, it should be one that is recognised by the local machine (in > other words by the installed iconv implementation). OK. I'll work on that, then. > Out of the 322 encodings in the table, only 138 are recognised by the iconv > on my machine. We can't possible know in advance which encodings will be > recognised. Even if we could, we couldn't be sure that every 2-permutation > of them will be convertable. So the fallback problem remains. I don't have a good solution for that problem. I can't remember what you suggested before. -- Ben Pfaff http://benpfaff.org _______________________________________________ pspp-dev mailing list [email protected] http://lists.gnu.org/mailman/listinfo/pspp-dev
