summaryrefslogtreecommitdiffstats
path: root/mandriva/2010.2/kdebase/turkish-preview.patch
diff options
context:
space:
mode:
Diffstat (limited to 'mandriva/2010.2/kdebase/turkish-preview.patch')
-rw-r--r--mandriva/2010.2/kdebase/turkish-preview.patch112
1 files changed, 112 insertions, 0 deletions
diff --git a/mandriva/2010.2/kdebase/turkish-preview.patch b/mandriva/2010.2/kdebase/turkish-preview.patch
new file mode 100644
index 000000000..1b0249798
--- /dev/null
+++ b/mandriva/2010.2/kdebase/turkish-preview.patch
@@ -0,0 +1,112 @@
+Index: kioslave/thumbnail/textcreator.cpp
+===================================================================
+--- kioslave/thumbnail/textcreator.cpp (revision 664853)
++++ kioslave/thumbnail/textcreator.cpp (working copy)
+@@ -25,6 +25,7 @@
+ #include <kstandarddirs.h>
+ #include <kpixmapsplitter.h>
+ #include <kmimetype.h>
++#include <qtextcodec.h>
+
+ #include "textcreator.h"
+
+@@ -112,11 +113,48 @@
+ int read = file.readBlock( m_data, bytesToRead );
+ if ( read > 0 )
+ {
+- ok = true;
+ m_data[read] = '\0';
++ ok = false;
++ uint total=1000;
++
++ if (read < total) total = read;
++
++ for (uint i = 0; i < total - 1; i++)
++ {
++ switch (m_data[i]) {
++ case 195:
++ if ((m_data[i+1] == -74) || (m_data[i+1] == -89) ||
++ (m_data[i+1] == -68) || (m_data[i+1] == -106) ||
++ (m_data[i+1] == -121) || (m_data[i+1] == -100)) {
++ ok = true;
++ break;
++ }
++ case 196:
++ if ((m_data[i+1] == -79) || (m_data[i+1] == -97) ||
++ (m_data[i+1] == -80) || (m_data[i+1] == -98)) {
++ ok = true;
++ break;
++ }
++
++ case 197:
++ if ((m_data[i+1] == -97) || (m_data[i+1] == -98)) {
++ ok = true;
++ break;
++ }
++ }
++ if (ok) break;
++ }
++ /* Finish of Encoding herustic. */
+ TQString text = TQString::fromLocal8Bit( m_data );
++ if (!ok)
++ {
++ TQTextCodec *codec = TQTextCodec::codecForName("ISO8859-9");
++ text = codec->toUnicode( m_data );
++ }
++ // TQString text = TQString::fromUtf8( m_data );
+ // FIXME: maybe strip whitespace and read more?
+
++ ok = true;
+ m_pixmap.fill( TQColor( 245, 245, 245 ) ); // light-grey background
+
+ TQRect rect;
+@@ -171,6 +209,49 @@
+ continue;
+ }
+
++ // Turkish Conversions Begin
++
++ switch (ch.unicode()) {
++ case 305:
++ ch = 224; // ı
++ break;
++ case 351:
++ ch = 229; // ş
++ break;
++ case 246:
++ ch = 227; // ö
++ break;
++ case 231:
++ ch = 228; // ç
++ break;
++ case 252:
++ ch = 226; // ü
++ break;
++ case 287:
++ ch = 225; // ğ
++ break;
++ case 304:
++ ch = 230; // İ
++ break;
++ case 214:
++ ch = 232; // Ö
++ break;
++ case 199:
++ ch = 233; // Ç
++ break;
++ case 286:
++ ch = 231; // Ğ
++ break;
++ case 220:
++ ch = 235; // Ü
++ break;
++ case 350:
++ ch = 234; // Ş
++ break;
++ }
++
++ // Turkish Conversions End
++
+ rect = m_splitter->coordinates( ch );
+ if ( !rect.isEmpty() )
+ {