support UTF8: solution bug avec l'unité micro (µ)

Bugs

Modérateur : xcasadmin

jlaurens
Messages : 16
Inscription : jeu. juil. 03, 2014 10:23 am

support UTF8: solution bug avec l'unité micro (µ)

Message par jlaurens » mer. juil. 09, 2014 12:03 am

Avec XCas 1.1.0-46, l'instruction 1000_mg-1_g donne presque 0 alors que
1000_µg-1_mg donne l'erreur "Unités incompatibles ..."

c'est un problème d'encodage dans le fichier prof.cc;
la solution et 3 (petits) temps dans la fonction mksa_convert

il suffit de remplacer

std::map<const char *, const mksa_unit *,ltstr>::const_iterator it=unit_conversion_map().find(s.c_str()),itend=unit_conversion_map().end();
int k = 1;

par

std::map<const char *, const mksa_unit *,ltstr>::const_iterator it=unit_conversion_map().find(s.c_str()),itend=unit_conversion_map().end();

puis remplacer

case 'µ':
exposant=-6;
break;

par

case char(0xC2):
if (l>2 && s[1]==char(0xB5)) {
k=2;
exposant=-6;
}
break;

et finalement remplacer

if (exposant!=0){
s=s.substr(1,l-1);

par

if (exposant!=0){
s=s.substr(k,l-k);

parisse
Messages : 5082
Inscription : mar. déc. 20, 2005 4:02 pm
Contact :

Re: support UTF8: solution bug avec l'unité micro (µ)

Message par parisse » mer. juil. 09, 2014 1:21 pm

J'integre ca pour la prochaine 1.1.2, merci!

Répondre