Patcher KDE

Patcher KDE - Installation - Linux et OS Alternatifs

Marsh Posté le 24-09-2005 à 14:55:29    

Bonjour,
 
En utlisant kwrite sous MDK10.2 il y a un bug qui envoie sur mma fenetre X11 le message suivant: "ASSERT: "!m_doc->wrapCursor()" in katerenderer.cpp (626)"  
Apres recherche il s'avere que ce bug a été repertorier par KDE puis corriger:
http://bugs.kde.org/show_bug.cgi?id=93928
 
 
Le patch KDE3.3.2 fournit est le suivant:
 
--- kateviewinternal.cpp.orig 2004-12-20 03:16:23.000000000 +0900
+++ kateviewinternal.cpp 2004-12-20 14:26:19.000000000 +0900
@@ -899,12 +899,15 @@
   if (line == -1)
       return;
 
-// Cursor placement code is changed for Asian input method that
+  // Cursor placement code is changed for Asian input method that
   // shows candidate window. This behavior is same as Qt/E 2.3.7
   // which supports Asian input methods. Asian input methods need
   // start point of IM selection text to place candidate window as
   // adjacent to the selection text.
-  uint preeditStrLen = m_view->renderer()->textWidth(textLine(m_imPreeditStartLine), cursor.col()) - m_view->renderer()->textWidth(textLine(m_imPreeditStartLine), m_imPreeditSelStart);
+  uint preeditStrLen = 0;
+  if (m_imPreeditLength > 0)
+      preeditStrLen = m_view->renderer()->textWidth(textLine(cursor.line()), cursor.col()) - m_view->renderer()->textWidth(textLine(cursor.line()), m_imPreeditSelStart);
+
   uint x = cXPos - m_startX - lineRanges[line].startX + lineRanges[line].xOffset() - preeditStrLen;
   uint y = line * m_view->renderer()->fontHeight();
 
@@ -3009,6 +3012,10 @@
   }
 
   if ( m_imPreeditLength > 0 ) {
+    // reset cursor position before removing text
+    cursor.setPos( cursor.line(), m_imPreeditStart );
+    updateCursor( cursor, true );
+
     m_doc->removeText( cursor.line(), m_imPreeditStart,
                        cursor.line(), m_imPreeditStart + m_imPreeditLength );
   }
@@ -3034,6 +3041,10 @@
   }
 
   if ( m_imPreeditLength > 0 ) {
+    // reset cursor position before removing text
+    cursor.setPos( cursor.line(), m_imPreeditStart );
+    updateCursor( cursor, true );
+
     m_doc->removeText( cursor.line(), m_imPreeditStart,
                        cursor.line(), m_imPreeditStart + m_imPreeditLength );
   }
 
Mais la je ne vois pas comment m'en servir? Modif code source? Et si oui comment? A quoi correspondent les lignes de la forme:"@@ -3034,6 +3041,10 @@"????
 
Merci pour toute indication.

Reply

Marsh Posté le 24-09-2005 à 14:55:29   

Reply

Marsh Posté le 24-09-2005 à 15:00:48    

Il y a une commande patch, lis le manuel.
Par contre après tu vas devoir recompiler, je ne sais pas si c'est vraiment ce que tu veux.

Reply

Marsh Posté le 24-09-2005 à 15:20:33    

Merci je vais aller voir ca.
Ce que je veux c'est simplement installer le patch publier par kde pour corriger ce fucking bug.

Reply

Marsh Posté le 24-09-2005 à 15:27:27    

Bah tu récupère les sources de ta version de KDE, tu utilise ce patch (dans un shell tu fais "man patch" pour savoir comment faire) et tu recompile KDE. Mais est ce que ca vaut vraiment le coup de recompiler KDE pour juste ca ???
 
Le fichier correctif que tu as c'est la différence qu'il existe entre le code source buggé et le corrigé, il montre les lignes ajoutée, modifiée, supprimée...


Message édité par l0ky le 24-09-2005 à 15:27:59
Reply

Marsh Posté le 24-09-2005 à 16:02:36    

Tu peux aussi passer à KDE 3.4.....

Reply

Marsh Posté le 24-09-2005 à 16:12:00    

Merci pour vos réponses je vais essayer de passer à kde3.4 car je suppose comme le patch est pour une version 3.3.2 il doit etre intégré dans la nouvelle version.
Car le bug que j'avais me produisais dans ma fenetre X11 qui m'avait servi à lancer kwrite plusieurs centaines de lignes: "ASSERT: "!m_doc->wrapCursor()" in katerenderer.cpp (626)" ... alors quand tu veux voir tes dernieres commandes c'est vraiment galere!!!  

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed