We just got a bug report on the following author name:

Čharœ̄nwong, Phisit and Diskul, Subhadradis

which likely won't come through in the message. Anyway, there's a dipthong oe with a combining macro over it. We convert that to {\oe}x where x is the macron. When reading the file back in, it appears to be a } with a macron over it, which is obviously wrong.

At present, we just don't support characters that can't be precomposed, and we don't have a graceful way of handling them.

In copyStringByTeXifyingString I added another check

if ([finalCharSet characterIsMember:ch] || [[NSCharacterSet nonBaseCharacterSet] characterIsMember:ch]){

tmpConv = [[NSMutableString alloc] initWithCharactersNoCopy:&ch length:1 freeWhenDone:NO];

            // try the dictionary first
            if((TEXString = [texifyConversions objectForKey:tmpConv])){
[convertedSoFar replaceCharactersInRange:NSMakeRange((idx + offset), 1) withString:TEXString]; // we're adding length-1 characters, so we have to make sure we insert at the right point in the future.
                offset += [TEXString length] - 1;

// fall back to Unicode decomposition/conversion of the mutable string } else if(convertComposedCharacterToTeX(tmpConv, baseCharacterSetForTeX, accentCharSet, texifyAccents)){ [convertedSoFar replaceCharactersInRange:NSMakeRange((idx + offset), 1) withString:tmpConv]; // we're adding length-1 characters, so we have to make sure we insert at the right point in the future.
                offset += [tmpConv length] - 1;

            }
            [tmpConv release];
        }

which causes an attempt to convert the macron alone, but that fails since convertComposedCharacterToTeX() doesn't know what to do with it and we don't have another else condition as a fallback.

Personally I'm reasonably certain that this won't affect me, and even if it does I'll fix it manually. Still, the fact remains that we're writing stuff we can't read in, and that's bad. Any ideas? I don't see an easy fix for this, and I don't want to rewrite character conversion again.


--
adam

Attachment: enc2.bib
Description: Binary data


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Bibdesk-develop mailing list
Bibdesk-develop@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-develop

Reply via email to