[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: Re: KDE/kdelibs
From: Alexis_Ménard <menard () kde ! org>
Date: 2009-03-24 14:35:07
Message-ID: 81941aea0903240735r1aefd28dw4ac5cda729be7624 () mail ! gmail ! com
[Download RAW message or body]
This patch breaks the selection in KWrite, just select some text and it
disappears.
On Sun, Mar 22, 2009 at 7:15 AM, Wang Kai <zealot.hoi@gmail.com> wrote:
> SVN commit 942585 by wkai:
>
> apply fixkencodingprober_v4.patch from mailing list, fix a memory leak
>
> M +1 -1 kate/document/katebuffer.cpp
> M +10 -16 kdecore/localization/kencodingprober.cpp
> M +1 -1 kdecore/localization/kencodingprober.h
>
>
> --- trunk/KDE/kdelibs/kate/document/katebuffer.cpp #942584:942585
> @@ -122,7 +122,7 @@
> kDebug (13020) << "PROBER TYPE: " <<
> KEncodingProber::nameForProberType(m_prober->proberType());
> m_prober->feed(m_buffer.data(), c);
> if (m_prober->confidence() > 0.5)
> - m_codec = QTextCodec::codecForName(m_prober->encodingName());
> + m_codec =
> QTextCodec::codecForName(m_prober->encodingNameByteArray());
> m_utf8Borked=errorsIfUtf8(m_buffer.data(), c);
> m_binary=processNull(m_buffer.data(), c);
> m_text = decoder()->toUnicode(m_buffer, c);
> --- trunk/KDE/kdelibs/kdecore/localization/kencodingprober.cpp
> #942584:942585
> @@ -34,8 +34,6 @@
>
> #include <string.h>
>
> -#define MINIMUM_THRESHOLD (float)0.2
> -
> class KEncodingProberPrivate
> {
> public:
> @@ -52,6 +50,9 @@
> * for single-byte encodings (most western encodings),
> nsSBCSGroupProber is ok,
> * because encoding state machine can detect many such encodings.
> */
> +
> + delete prober;
> +
> switch (proberType) {
> case KEncodingProber::None:
> prober = NULL;
> @@ -101,45 +102,38 @@
> case '\xEF':
> if (('\xBB' == aBuf[1]) && ('\xBF' == aBuf[2]))
> // EF BB BF UTF-8 encoded BOM
> - encoding = "UTF-8";
> + proberState = KEncodingProber::FoundIt;
> break;
> case '\xFE':
> if (('\xFF' == aBuf[1]) && ('\x00' == aBuf[2]) &&
> ('\x00' == aBuf[3]))
> // FE FF 00 00 UCS-4, unusual octet order BOM
> (3412)
> - encoding = "ISO-10646-UCS-4";
> + proberState = KEncodingProber::FoundIt;
> else if ('\xFF' == aBuf[1])
> // FE FF UTF-16, big endian BOM
> - encoding = "UTF-16BE";
> + proberState = KEncodingProber::FoundIt;
> break;
> case '\x00':
> if (('\x00' == aBuf[1]) && ('\xFE' == aBuf[2]) &&
> ('\xFF' == aBuf[3]))
> // 00 00 FE FF UTF-32, big-endian BOM
> - encoding = "UTF-32BE";
> + proberState = KEncodingProber::FoundIt;
> else if (('\x00' == aBuf[1]) && ('\xFF' == aBuf[2]) &&
> ('\xFE' == aBuf[3]))
> // 00 00 FF FE UCS-4, unusual octet order BOM
> (2143)
> - encoding = "ISO-10646-UCS-4";
> + proberState = KEncodingProber::FoundIt;
> break;
> case '\xFF':
> if (('\xFE' == aBuf[1]) && ('\x00' == aBuf[2]) &&
> ('\x00' == aBuf[3]))
> // FF FE 00 00 UTF-32, little-endian BOM
> - encoding = "UTF-32LE";
> + proberState = KEncodingProber::FoundIt;
> else if ('\xFE' == aBuf[1])
> // FF FE UTF-16, little endian BOM
> - encoding = "UTF-16LE";
> + proberState = KEncodingProber::FoundIt;
> break;
> } // switch
>
> - if (!encoding.isEmpty())
> - {
> - proberState = KEncodingProber::FoundIt;
> - currentConfidence = 0.99f;
> - }
> }
> }
> KEncodingProber::ProberType proberType;
> KEncodingProber::ProberState proberState;
> - float currentConfidence;
> - QString encoding;
> kencodingprober::nsCharSetProber *prober;
> bool mStart;
> };
> --- trunk/KDE/kdelibs/kdecore/localization/kencodingprober.h #942584:942585
> @@ -130,7 +130,7 @@
> KDE_DEPRECATED const char* encodingName() const;
>
> /**
> - * @returns a QByteArray with the name of the encoding
> + * @returns a QByteArray with the name of the best encoding it has
> guessed so far
> */
> QByteArray encodingNameByteArray() const;
>
>
[Attachment #3 (text/html)]
This patch breaks the selection in KWrite, just select some text and it \
disappears.<br><br><div class="gmail_quote">On Sun, Mar 22, 2009 at 7:15 AM, Wang Kai \
<span dir="ltr"><<a \
href="mailto:zealot.hoi@gmail.com">zealot.hoi@gmail.com</a>></span> wrote:<br> \
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); \
margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">SVN commit 942585 by wkai:<br> <br>
apply fixkencodingprober_v4.patch from mailing list, fix a memory leak<br>
<br>
M +1 -1 kate/document/katebuffer.cpp<br>
M +10 -16 kdecore/localization/kencodingprober.cpp<br>
M +1 -1 kdecore/localization/kencodingprober.h<br>
<br>
<br>
--- trunk/KDE/kdelibs/kate/document/katebuffer.cpp #942584:942585<br>
@@ -122,7 +122,7 @@<br>
kDebug (13020) << "PROBER TYPE: " << \
KEncodingProber::nameForProberType(m_prober->proberType());<br> \
m_prober->feed(m_buffer.data(), c);<br> if (m_prober->confidence() > \
0.5)<br>
- m_codec = QTextCodec::codecForName(m_prober->encodingName());<br>
+ m_codec = \
QTextCodec::codecForName(m_prober->encodingNameByteArray());<br> \
m_utf8Borked=errorsIfUtf8(m_buffer.data(), c);<br> \
m_binary=processNull(m_buffer.data(), c);<br> m_text = \
decoder()->toUnicode(m_buffer, c);<br>
--- trunk/KDE/kdelibs/kdecore/localization/kencodingprober.cpp #942584:942585<br>
@@ -34,8 +34,6 @@<br>
<br>
#include <string.h><br>
<br>
-#define MINIMUM_THRESHOLD (float)0.2<br>
-<br>
class KEncodingProberPrivate<br>
{<br>
public:<br>
@@ -52,6 +50,9 @@<br>
* for single-byte encodings (most western encodings), nsSBCSGroupProber is \
ok,<br>
* because encoding state machine can detect many such encodings.<br>
*/<br>
+<br>
+ delete prober;<br>
+<br>
switch (proberType) {<br>
case KEncodingProber::None:<br>
prober = NULL;<br>
@@ -101,45 +102,38 @@<br>
case '\xEF':<br>
if (('\xBB' == aBuf[1]) && ('\xBF' == \
aBuf[2]))<br> // EF BB BF UTF-8 encoded BOM<br>
- encoding = "UTF-8";<br>
+ proberState = KEncodingProber::FoundIt;<br>
break;<br>
case '\xFE':<br>
if (('\xFF' == aBuf[1]) && ('\x00' == \
aBuf[2]) && ('\x00' == aBuf[3]))<br>
// FE FF 00 00 UCS-4, unusual octet order BOM (3412)<br>
- encoding = "ISO-10646-UCS-4";<br>
+ proberState = KEncodingProber::FoundIt;<br>
else if ('\xFF' == aBuf[1])<br>
// FE FF UTF-16, big endian BOM<br>
- encoding = "UTF-16BE";<br>
+ proberState = KEncodingProber::FoundIt;<br>
break;<br>
case '\x00':<br>
if (('\x00' == aBuf[1]) && ('\xFE' == \
aBuf[2]) && ('\xFF' == aBuf[3]))<br> // 00 00 FE FF UTF-32, \
big-endian BOM<br>
- encoding = "UTF-32BE";<br>
+ proberState = KEncodingProber::FoundIt;<br>
else if (('\x00' == aBuf[1]) && ('\xFF' \
== aBuf[2]) && ('\xFE' == aBuf[3]))<br>
// 00 00 FF FE UCS-4, unusual octet order BOM (2143)<br>
- encoding = "ISO-10646-UCS-4";<br>
+ proberState = KEncodingProber::FoundIt;<br>
break;<br>
case '\xFF':<br>
if (('\xFE' == aBuf[1]) && ('\x00' == \
aBuf[2]) && ('\x00' == aBuf[3]))<br> // FF FE 00 00 UTF-32, \
little-endian BOM<br>
- encoding = "UTF-32LE";<br>
+ proberState = KEncodingProber::FoundIt;<br>
else if ('\xFE' == aBuf[1])<br>
// FF FE UTF-16, little endian BOM<br>
- encoding = "UTF-16LE";<br>
+ proberState = KEncodingProber::FoundIt;<br>
break;<br>
} // switch<br>
<br>
- if (!encoding.isEmpty())<br>
- {<br>
- proberState = KEncodingProber::FoundIt;<br>
- currentConfidence = 0.99f;<br>
- }<br>
}<br>
}<br>
KEncodingProber::ProberType proberType;<br>
KEncodingProber::ProberState proberState;<br>
- float currentConfidence;<br>
- QString encoding;<br>
kencodingprober::nsCharSetProber *prober;<br>
bool mStart;<br>
};<br>
--- trunk/KDE/kdelibs/kdecore/localization/kencodingprober.h #942584:942585<br>
@@ -130,7 +130,7 @@<br>
KDE_DEPRECATED const char* encodingName() const;<br>
<br>
/**<br>
- * @returns a QByteArray with the name of the encoding<br>
+ * @returns a QByteArray with the name of the best encoding it has guessed so \
far<br>
*/<br>
QByteArray encodingNameByteArray() const;<br>
<br>
</blockquote></div><br>
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic