> On Dec 15, 2016, at 5:59 PM, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote: > >> On 2016-12-15 20:38-0000 Phil Rosenberg wrote: >> >> The problem is that text is written and read in "device native" >> encoding (i.e. Unicode or ascii) so if a buffer is copied from a >> Unicode device to an ascii one then the plreplot call will hit a >> problem with buffer reading and call plexit. The solution would be to >> always write Unicode or to add a flag to indicate the encoding in the >> buffer. If anyone has a preference then let me know. > > Hi Phil: > > Thanks for bringing this potentially nasty issue to our attention, > and I agree with your judgement this is an issue that should be > tackled after the release. > > To answer your question for when you do work on this, if I recall > correctly, user-specified strings which are assumed to be written in > the UTF-8 encoding (which includes ascii) of unicode are uniformly > translated to a modified UCS4 (32-bit) unicode encoding for internal > PLplot use where the modifications include the possibility of > embedding 32-bit FCI (font characterization integer) words (to change > some font characteristic in mid string) in the middle of the modified > UCS4 arrays. I also recall (but haven't checked to be sure) that > right now that if the device cannot handle > unicode, then we store the text information in an entirely different > array which is 4 times shorter. > > But I would strongly prefer instead that we move to always using the > modified UCS4 array for text with the ascii-only devices using a core > function to convert that back to an ascii string (with appropriate > filtering when the UCS4 array contains an FCI or a 32-bit > representation of a non-ascii glyph) for their own text plotting. The > big advantage of this approach is our text handling then automatically > becomes greatly simplified/much less confusing to understand. The > downside, of course, is UCS4 is 4 times larger than the equivalent > ascii (for those cases when the pure ascii subset of UTF-8 is used by > our users). However, I think pure ascii use is becoming rarer and > rarer (especially for scientific plotting where many Unicode math > symbols are typically used in labels). So instead of using our own > (incredibly inefficient) "#[nnn]" unicode encoding that keeps users > strings strictly in ascii, users now tend to just cut and paste the > UTF-8 math symbol they need into their PLplot text string with > some very nice results for our modern (unicode-aware) devices. > > So assuming that is a correct summary of the present text situation, > and we also decide to make the simplifying code modification I > strongly suggest above, then obviously the modified UCS4 array that > will then always contain the text information should be included in > the buffer. >
Oops. I didn't think of that when I implemented the buffer awhile back. It probably would be best to have an encoding flag because if the library is compiled without unicode support, I think forcing Unicode could cause problems. My goof, so I can try my hand at a patch, but it will be after the freeze. > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ > > ------------------------------------------------------------------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, SlashDot.org! http://sdm.link/slashdot > _______________________________________________ > Plplot-devel mailing list > Plplot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/plplot-devel ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel