Page 1 sur 1

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

Publié : mer. juil. 09, 2014 12:03 am
par jlaurens
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);

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

Publié : mer. juil. 09, 2014 1:21 pm
par parisse
J'integre ca pour la prochaine 1.1.2, merci!