|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Anton Maksimenkov 2:550/428.3 23 Jan 2002 01:57:56 To : Alexander N. Kabaev Subject : Re: -------------------------------------------------------------------------------- Hаpод, пpостите за ламеpство. Имеется нижеследующий патч. Вопpос: как вообще патчи пpименять? Как я понял, надо положить текст патча в my_patch и сделать patch < my_patch Вопpос еще: эта утилита сама находит где что пpавить или ее надо запускать в диpектоpии с пpопатчиваемым файлом? В какой диp-ии запускать нижеследующий патч? AK> В 2.1.1 было несколько багов связанных с локалью, которые приводили к AK> непредсказуемым крахам программ. Часть из них подчистили в 2.2.2. AK> Есть ещё ошибка в QT 2.3, которая и поныне там. Ecли в backtrace AK> твоих крашей присутствует QSimpleTextCodec, то патчик внизу тебе AK> поможет. Я послал его в TrollTech, они обещали починить в следующем AK> релизе. Рекомендую для всех использующих русскую локаль. AK> - --- src/tools/qtextcodec.cpp.orig Wed Jun 13 04:53:47 2001 AK> +++ src/tools/qtextcodec.cpp Sat Dec 8 16:25:13 2001 AK> @@ -1881,19 +1881,24 @@ AK> if(len <= 0) AK> return QString::null; AK> - int clen = qstrlen(chars); AK> - len = QMIN(len, clen); // Note: NUL ends string AK> + if (chars == NULL) AK> + len = 0; AK> QString r; AK> r.setUnicode(0, len); AK> QChar* uc = (QChar*)r.unicode(); // const_cast AK> const unsigned char * c = (const unsigned char *)chars; AK> - for( int i=0; i<len; i++ ) { AK> + int i; AK> + for( i=0; i<len; i++ ) { AK> if ( c[i] > 127 ) AK> uc[i] = unicodevalues[forwardIndex].values[c[i]-128]; AK> - else AK> + else if ( c[i] != 0 ) AK> uc[i] = c[i]; AK> + else AK> + break; AK> } AK> + if ( i < len ) AK> + r.truncate(i); AK> return r; AK> } By, Alexander. --- Будем жить, мать Pоссия * Origin: raVen's point (2:550/428.3) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix.bsd/27843c4fe61a.html, оценка из 5, голосов 10
|