diff options
Diffstat (limited to 'mandriva/2010.2/kdebase/turkish-preview.patch')
-rw-r--r-- | mandriva/2010.2/kdebase/turkish-preview.patch | 112 |
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() ) + { |