rev 4247 - trunk/packages/kdenetwork/debian/patches

Christopher Martin chrsmrtn at costa.debian.org
Sun Jul 30 01:25:44 UTC 2006


Author: chrsmrtn
Date: 2006-07-30 01:25:42 +0000 (Sun, 30 Jul 2006)
New Revision: 4247

Added:
   trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r567759.diff
Log:
New branch pull.


Added: trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r567759.diff
===================================================================
--- trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r567759.diff	2006-07-30 01:17:17 UTC (rev 4246)
+++ trunk/packages/kdenetwork/debian/patches/01_kdenetwork_branch_r567759.diff	2006-07-30 01:25:42 UTC (rev 4247)
@@ -0,0 +1,970 @@
+#DPATCHLEVEL=0
+--- krfb/krfb/xupdatescanner.cc	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/krfb/xupdatescanner.cc	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -140,7 +140,7 @@
+ 	tilesX = (width + tileWidth - 1) / tileWidth;
+ 	tilesY = (height + tileHeight - 1) / tileHeight;
+ 	tileMap = new bool[tilesX * tilesY];
+-        tileRegionMap = new struct TileChangeRegion[tilesX * tilesY];
++	tileRegionMap = new struct TileChangeRegion[tilesX * tilesY];
+ 
+ 	unsigned int i;
+ 	for (i = 0; i < tilesX * tilesY; i++)
+@@ -203,8 +203,8 @@
+ 		XDestroyImage(scanline);
+ 		XDestroyImage(tile);
+ 	}
+-	delete tileMap;
+-        delete tileRegionMap;
++	delete [] tileMap;
++	delete [] tileRegionMap;
+ }
+ 
+ 
+--- krfb/krfb/eventsrc	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/krfb/eventsrc	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -626,7 +626,7 @@
+ Comment[hu]=A meghívott fél érvénytelen jelszót küldött. A csatlakozás nem sikerült.
+ Comment[is]=Boðinn aðili sendi ógilt lykilorð. Tengingu hafnað
+ Comment[it]=La parte invitata ha inviato una password non valida. Connessione rifiutata.
+-Comment[ja]=招待された人が不正なパスワードを送ってきました。接続は拒否されました。
++Comment[ja]=招待された人が不正なパスワードを送ってきました。接続を拒否しました。
+ Comment[km]=ភាគី​ដែល​បាន​អញ្ជើញ បាន​ផ្ញើ​ពាក្យ​សម្ងាត់​មិន​ត្រឹមត្រូវ ។ ការ​តភ្ជាប់​ត្រូវ​បាន​បដិសេធ ។
+ Comment[lt]=Pakviestoji pusė atsiuntė neteisingą slaptažodį. Ryšys nutrauktas.
+ Comment[mk]=Поканетата страна испрати невалидна лозинка. Поврзувањето е одбиено.
+@@ -685,7 +685,7 @@
+ Name[hu]=ÚjKapcsolatTartva
+ Name[is]=NýTengingÁBið
+ Name[it]=Nuova connessione da tenere
+-Name[ja]=維持中の新規接続
++Name[ja]=保留中の新規接続
+ Name[km]=ការ​ត​ភ្ជាប់​ថ្មី កំពុង​ស្ថិត​នៅ​ក្នុង​ការ​រង់​ចាំ
+ Name[lt]=Naujas kvietimas ryšiui sulaikytas
+ Name[mk]=Нова врска на чекање
+@@ -743,7 +743,7 @@
+ Comment[hu]=Csatlakozási kérés, megerősítés szükséges
+ Comment[is]=Beiðni um tengingu, notandi verður að samþykkja
+ Comment[it]=Connessione richiesta, l'utente deve accettare
+-Comment[ja]=接続が要求されています。ユーザは受け入れなければなりません。
++Comment[ja]=接続が要求されています。ユーザが許可しなければなりません。
+ Comment[km]=បាន​ស្នើ​ការ​ត​ភ្ជាប់​,​ អ្នក​ប្រើ​ត្រូវ​តែ​ទទួលយក
+ Comment[lt]=Kvietimas ryšiui išsiųstas, naudotojas turi priimti kvietimą
+ Comment[mk]=Побарано е поврзување, корисникот мора да прифати
+@@ -802,7 +802,7 @@
+ Name[hu]=ÚjKapcsolatAutoElfogadva
+ Name[is]=NýTengingSjálfvirktSamþykkt
+ Name[it]=Accettata nuova connessione automatica
+-Name[ja]=新規接続の新規受け入れ
++Name[ja]=新規接続の自動受け入れ
+ Name[km]=បាន​ទទួល​យក​ការ​ត​ភ្ជាប់​ថ្មី​ដោយ​ស្វ័យ​ប្រវត្តិ
+ Name[lt]=Naujas kvietimas ryšiui automatiškai priimtas
+ Name[mk]=Ново поврзување автоматски прифатено
+@@ -861,7 +861,7 @@
+ Comment[hu]=Automatikusan létrejött az új kapcsolat
+ Comment[is]=Nýjar tengingar sjálfkrafa samþykktar
+ Comment[it]=Stabilita nuova connessione automaticamente
+-Comment[ja]=新規接続は自動的に確立されます
++Comment[ja]=新規接続を自動的に確立しました
+ Comment[km]=បាន​បង្កើត​ការ​ត​ភ្ជាប់​ថ្មី​ដោយ​ស្វ័យ​ប្រវត្តិ
+ Comment[lt]=Naujas ryšys užmegztas automatiškai
+ Comment[mk]=Автоматски е воспоставено ново поврзување
+@@ -982,7 +982,7 @@
+ Comment[hu]=Foglalt, a csatlakozási kérés visszautasítva
+ Comment[is]=Uptekinn, tengingu hafnað
+ Comment[it]=Occupato, connessione rifiutata
+-Comment[ja]=ビジーです。接続は拒否されました
++Comment[ja]=ビジーです、接続を拒否しました
+ Comment[km]=រវល់​,​បោះបង់​ការ​ត​ភ្ជាប់
+ Comment[lt]=Užimta, kvietimas ryšiui atmestas
+ Comment[mk]=Зафатено, поврзувањето е одбиено
+--- krfb/libvncserver/sraRegion.h	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/libvncserver/sraRegion.h	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -1,4 +1,3 @@
+-
+ #ifndef SRAREGION_H
+ #define SRAREGION_H
+ 
+@@ -38,6 +37,8 @@
+ extern unsigned long sraRgnCountRects(const sraRegion *rgn);
+ extern Bool sraRgnEmpty(const sraRegion *rgn);
+ 
++extern sraRegion *sraRgnBBox(const sraRegion *src);
++
+ /* -=- rectangle iterator */
+ 
+ typedef struct sraRectangleIterator {
+@@ -58,4 +59,7 @@
+ extern Bool sraClipRect(int *x, int *y, int *w, int *h,
+ 			int cx, int cy, int cw, int ch);
+ 
++extern Bool sraClipRect2(int *x, int *y, int *x2, int *y2,
++			int cx, int cy, int cx2, int cy2);
++
+ #endif
+--- krfb/libvncserver/sraRegion.c	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/libvncserver/sraRegion.c	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -33,7 +33,7 @@
+ sraSpanList *sraSpanListDup(const sraSpanList *src);
+ void sraSpanListDestroy(sraSpanList *list);
+ 
+-sraSpan *
++static sraSpan *
+ sraSpanCreate(int start, int end, const sraSpanList *subspan) {
+   sraSpan *item = (sraSpan*)malloc(sizeof(sraSpan));
+   item->_next = item->_prev = NULL;
+@@ -43,7 +43,7 @@
+   return item;
+ }
+ 
+-sraSpan *
++static sraSpan *
+ sraSpanDup(const sraSpan *src) {
+   sraSpan *span;
+   if (!src) return NULL;
+@@ -51,7 +51,7 @@
+   return span;
+ }
+ 
+-void
++static void
+ sraSpanInsertAfter(sraSpan *newspan, sraSpan *after) {
+   newspan->_next = after->_next;
+   newspan->_prev = after;
+@@ -59,7 +59,7 @@
+   after->_next = newspan;
+ }
+ 
+-void
++static void
+ sraSpanInsertBefore(sraSpan *newspan, sraSpan *before) {
+   newspan->_next = before;
+   newspan->_prev = before->_prev;
+@@ -67,32 +67,34 @@
+   before->_prev = newspan;
+ }
+ 
+-void
++static void
+ sraSpanRemove(sraSpan *span) {
+   span->_prev->_next = span->_next;
+   span->_next->_prev = span->_prev;
+ }
+ 
+-void
++static void
+ sraSpanDestroy(sraSpan *span) {
+   if (span->subspan) sraSpanListDestroy(span->subspan);
+   free(span);
+ }
+ 
+-void
++#ifdef DEBUG
++static void
+ sraSpanCheck(const sraSpan *span, const char *text) {
+   /* Check the span is valid! */
+   if (span->start == span->end) {
+-    printf("%s:%d-%d\n", text, span->start, span->end); 
+-    exit(0);
++    printf(text); 
++    printf(":%d-%d\n", span->start, span->end);
+   }
+ }
++#endif
+ 
+ /* -=- SpanList routines */
+ 
+-void sraSpanPrint(const sraSpan *s);
++static void sraSpanPrint(const sraSpan *s);
+ 
+-void
++static void
+ sraSpanListPrint(const sraSpanList *l) {
+   sraSpan *curr;
+   if (!l) {
+@@ -115,8 +117,8 @@
+     sraSpanListPrint(s->subspan);
+ }
+ 
+-sraSpanList *
+-sraSpanListCreate() {
++static sraSpanList *
++sraSpanListCreate(void) {
+   sraSpanList *item = (sraSpanList*)malloc(sizeof(sraSpanList));
+   item->front._next = &(item->back);
+   item->front._prev = NULL;
+@@ -155,7 +157,7 @@
+   free(list);
+ }
+ 
+-void
++static void
+ sraSpanListMakeEmpty(sraSpanList *list) {
+   sraSpan *curr, *next;
+   while (list->front._next != &(list->back)) {
+@@ -171,7 +173,7 @@
+   list->back._next = NULL;
+ }
+ 
+-Bool
++static Bool
+ sraSpanListEqual(const sraSpanList *s1, const sraSpanList *s2) {
+   sraSpan *sp1, *sp2;
+ 
+@@ -180,7 +182,7 @@
+       return 1;
+     } else {
+       printf("sraSpanListEqual:incompatible spans (only one NULL!)\n");
+-      exit(1);
++      return FALSE;
+     }
+   }
+ 
+@@ -204,12 +206,12 @@
+   }    
+ }
+ 
+-Bool
++static Bool
+ sraSpanListEmpty(const sraSpanList *list) {
+   return (list->front._next == &(list->back));
+ }
+ 
+-unsigned long
++static unsigned long
+ sraSpanListCount(const sraSpanList *list) {
+   sraSpan *curr = list->front._next;
+   unsigned long count = 0;
+@@ -224,11 +226,12 @@
+   return count;
+ }
+ 
+-void
++static void
+ sraSpanMergePrevious(sraSpan *dest) {
+   sraSpan *prev = dest->_prev;
+-  while ((prev->end == dest->start) &&
+-	 (prev->_prev) &&
++ 
++  while ((prev->_prev) &&
++	 (prev->end == dest->start) &&
+ 	 (sraSpanListEqual(prev->subspan, dest->subspan))) {
+     /*
+     printf("merge_prev:");
+@@ -244,11 +247,11 @@
+   }
+ }    
+ 
+-void
++static void
+ sraSpanMergeNext(sraSpan *dest) {
+   sraSpan *next = dest->_next;
+-  while ((next->start == dest->end) &&
+-	 (next->_next) &&
++  while ((next->_next) &&
++	 (next->start == dest->end) &&
+ 	 (sraSpanListEqual(next->subspan, dest->subspan))) {
+ /*
+ 	  printf("merge_next:");
+@@ -264,7 +267,7 @@
+   }
+ }
+ 
+-void
++static void
+ sraSpanListOr(sraSpanList *dest, const sraSpanList *src) {
+   sraSpan *d_curr, *s_curr;
+   int s_start, s_end;
+@@ -274,7 +277,7 @@
+       return;
+     } else {
+       printf("sraSpanListOr:incompatible spans (only one NULL!)\n");
+-      exit(1);
++      return;
+     }
+   }
+ 
+@@ -354,7 +357,7 @@
+   }
+ }
+ 
+-Bool
++static Bool
+ sraSpanListAnd(sraSpanList *dest, const sraSpanList *src) {
+   sraSpan *d_curr, *s_curr, *d_next;
+ 
+@@ -363,7 +366,7 @@
+       return 1;
+     } else {
+       printf("sraSpanListAnd:incompatible spans (only one NULL!)\n");
+-      exit(1);
++      return FALSE;
+     }
+   }
+ 
+@@ -434,7 +437,7 @@
+   return !sraSpanListEmpty(dest);
+ }
+ 
+-Bool
++static Bool
+ sraSpanListSubtract(sraSpanList *dest, const sraSpanList *src) {
+   sraSpan *d_curr, *s_curr;
+ 
+@@ -443,7 +446,7 @@
+       return 1;
+     } else {
+       printf("sraSpanListSubtract:incompatible spans (only one NULL!)\n");
+-      exit(1);
++      return FALSE;
+     }
+   }
+ 
+@@ -584,6 +587,38 @@
+   }
+ }
+ 
++sraRegion *sraRgnBBox(const sraRegion *src) {
++  int xmin=((unsigned int)(int)-1)>>1,ymin=xmin,xmax=1-xmin,ymax=xmax;
++  sraSpan *vcurr, *hcurr;
++
++  if(!src)
++    return sraRgnCreate();
++
++  vcurr = ((sraSpanList*)src)->front._next;
++  while (vcurr != &(((sraSpanList*)src)->back)) {
++    if(vcurr->start<ymin)
++      ymin=vcurr->start;
++    if(vcurr->end>ymax)
++      ymax=vcurr->end;
++    
++    hcurr = vcurr->subspan->front._next;
++    while (hcurr != &(vcurr->subspan->back)) {
++      if(hcurr->start<xmin)
++	xmin=hcurr->start;
++      if(hcurr->end>xmax)
++	xmax=hcurr->end;
++      hcurr = hcurr->_next;
++    }
++
++    vcurr = vcurr->_next;
++  }
++
++  if(xmax<xmin || ymax<ymin)
++    return sraRgnCreate();
++
++  return sraRgnCreateRect(xmin,ymin,xmax,ymax);
++}
++
+ Bool
+ sraRgnPopRect(sraRegion *rgn, sraRect *rect, unsigned long flags) {
+   sraSpan *vcurr, *hcurr;
+@@ -656,7 +691,7 @@
+   sraRectangleIterator *i =
+     (sraRectangleIterator*)malloc(sizeof(sraRectangleIterator));
+   if(!i)
+-    return(0);
++    return NULL;
+ 
+   /* we have to recurse eventually. So, the first sPtr is the pointer to
+      the sraSpan in the first level. the second sPtr is the pointer to
+@@ -665,7 +700,7 @@
+   i->sPtrs = (sraSpan**)malloc(sizeof(sraSpan*)*DEFSIZE);
+   if(!i->sPtrs) {
+     free(i);
+-    return(0);
++    return NULL;
+   }
+   i->ptrSize = DEFSIZE;
+   i->sPtrs[0] = &(s->front);
+@@ -673,7 +708,7 @@
+   i->ptrPos = 0;
+   i->reverseX = 0;
+   i->reverseY = 0;
+-  return(i);
++  return i;
+ }
+ 
+ sraRectangleIterator *sraRgnGetReverseIterator(sraRegion *s,Bool reverseX,Bool reverseY)
+@@ -688,13 +723,13 @@
+   return(i);
+ }
+ 
+-Bool sraReverse(sraRectangleIterator *i)
++static Bool sraReverse(sraRectangleIterator *i)
+ {
+   return( ((i->ptrPos&2) && i->reverseX) ||
+      (!(i->ptrPos&2) && i->reverseY));
+ }
+ 
+-sraSpan* sraNextSpan(sraRectangleIterator *i)
++static sraSpan* sraNextSpan(sraRectangleIterator *i)
+ {
+   if(sraReverse(i))
+     return(i->sPtrs[i->ptrPos]->_prev);
+@@ -730,8 +765,8 @@
+   }
+ 
+   if((i->ptrPos%4)!=2) {
+-    fprintf(stderr,"sraRgnIteratorNext: offset is wrong (%d%%4!=2)\n",i->ptrPos);
+-    exit(-1);
++    printf("sraRgnIteratorNext: offset is wrong (%d%%4!=2)\n",i->ptrPos);
++    return FALSE;
+   }
+ 
+   r->y1 = i->sPtrs[i->ptrPos-2]->start;
+@@ -773,6 +808,28 @@
+   return (*w>0) && (*h>0);
+ }
+ 
++Bool
++sraClipRect2(int *x, int *y, int *x2, int *y2,
++	    int cx, int cy, int cx2, int cy2) {
++  if (*x < cx)
++    *x = cx;
++  if (*y < cy)
++    *y = cy;
++  if (*x >= cx2)
++    *x = cx2-1;
++  if (*y >= cy2)
++    *y = cy2-1;
++  if (*x2 <= cx)
++    *x2 = cx+1;
++  if (*y2 <= cy)
++    *y2 = cy+1;
++  if (*x2 > cx2)
++    *x2 = cx2;
++  if (*y2 > cy2)
++    *y2 = cy2;
++  return (*x2>*x) && (*y2>*y);
++}
++
+ /* test */
+ 
+ #ifdef SRA_TEST
+@@ -805,7 +862,7 @@
+ 	   rect.x2-rect.x1,rect.y2-rect.y1,
+ 	   rect.x1,rect.y1);
+   sraRgnReleaseIterator(i);
+-  printf("\n20x10+0+0 600x30+0+10 590x10+10+40 30x150+10+50 250x150+350+50 590x100+10+200\n\n");
++  printf("\n20x10+0+0 600x30+0+10 590x10+10+40 30x150+10+50 250x150+350+50 590x100+10+200 \n\n");
+ 
+   i = sraRgnGetReverseIterator(region,1,0);
+   while(sraRgnIteratorNext(i, &rect))
+@@ -813,7 +870,7 @@
+ 	   rect.x2-rect.x1,rect.y2-rect.y1,
+ 	   rect.x1,rect.y1);
+   sraRgnReleaseIterator(i);
+-  printf("\n20x10+0+0 600x30+0+10 590x10+10+40 250x150+350+50 30x150+10+50 590x100+10+200\n\n");
++  printf("\n20x10+0+0 600x30+0+10 590x10+10+40 250x150+350+50 30x150+10+50 590x100+10+200 \n\n");
+ 
+   i = sraRgnGetReverseIterator(region,1,1);
+   while(sraRgnIteratorNext(i, &rect))
+@@ -821,8 +878,12 @@
+ 	   rect.x2-rect.x1,rect.y2-rect.y1,
+ 	   rect.x1,rect.y1);
+   sraRgnReleaseIterator(i);
+-  printf("\n590x100+10+200 250x150+350+50 30x150+10+50 590x10+10+40 600x30+0+10 20x10+0+0\n\n");
++  printf("\n590x100+10+200 250x150+350+50 30x150+10+50 590x10+10+40 600x30+0+10 20x10+0+0 \n\n");
+ 
++  sraRgnDestroy(region);
++  sraRgnDestroy(region1);
++  sraRgnDestroy(region2);
++
+   return(0);
+ }
+ #endif
+--- krfb/kcm_krfb/kcmkrfb.desktop	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/kcm_krfb/kcmkrfb.desktop	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -149,7 +149,7 @@
+ Keywords[hu]=munkaasztal-megosztás,krfb,vnc,megosztás,krdc,csatlakozás távoli munkaasztalhoz,meghívás,port,slp,meghívás nélkül
+ Keywords[is]=skjáborðsmiðlun,miðlun,krfb,vnc,rdp,krdc,fjarvinnsla,remote desktop connection,rdp
+ Keywords[it]=condivisione desktop,krfb,vnc,condivisione,krdc,connessione desktop remoto,invito,porta,slp,non invitato
+-Keywords[ja]=デスクトップ共有,krfb,vnc,共有,rdp,krdc,リモートデスクトップ接続,invitation,port,slp,uninvited
++Keywords[ja]=デスクトップ共有,krfb,vnc,共有,rdp,krdc,リモートデスクトップ接続,招待,ポート,slp,uninvited
+ Keywords[km]=ការ​ចែក​រំ​លែក​ផ្ទៃ​តុ,krfb,vnc,ការ​ចែក​រំលែក,krdc,ការ​ត​ភ្ជាប់​ផ្ទៃ​តុ​ពី​ចម្ងាយ,អញ្ជើញ,ច្រក,slp,មិន​បាន​អញ្ជើញ
+ Keywords[lt]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,dalinimasis darbastaliu,nutolusio darbastalio prijungimas,kvietimas,ryšys,nekviestas,jungtis,prievadas,dalintis,pasidalinti,jungimasis,prisijungti,kviesti
+ Keywords[mk]=desktop sharing,krfb,vnc,sharing,krdc,remote desktop connection,invitation,port,slp,uninvited,делење на површината,krfb,vnc,делење,krdc,поврзување со оддалечена  површина,покана,порта,slp,непоканет
+--- krfb/kinetd/kinetd.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ krfb/kinetd/kinetd.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -45,6 +45,8 @@
+ 	m_srvreg(srvreg),
+ 	m_dnssdreg(0)
+ {
++	m_dnssdRegistered = false;
++
+ 	m_uuid = createUUID();
+ 	loadConfig(s);
+ 
+--- kopete/plugins/history/kopete_history.desktop	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/plugins/history/kopete_history.desktop	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -54,7 +54,7 @@
+ Name[nl]=Geschiedenis
+ Name[nn]=Historie
+ Name[pl]=Historia
+-Name[pt]=Historial
++Name[pt]=Histórico
+ Name[pt_BR]=História
+ Name[ro]=Istoric
+ Name[ru]=Журнал разговоров
+--- kopete/plugins/history/kopete_history_config.desktop	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/plugins/history/kopete_history_config.desktop	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -50,7 +50,7 @@
+ Name[nl]=Geschiedenis
+ Name[nn]=Historie
+ Name[pl]=Historia
+-Name[pt]=Historial
++Name[pt]=Histórico
+ Name[pt_BR]=História
+ Name[ro]=Istoric
+ Name[ru]=Журнал разговоров
+--- kopete/protocols/oscar/liboscar/ssimodifytask.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/liboscar/ssimodifytask.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -216,6 +216,10 @@
+ 	{
+ 		WORD ackCode = b->getWord();
+ 		kdDebug(OSCAR_RAW_DEBUG) << "Acknowledgement code is " << ackCode << endl;
++		
++		if ( ackCode != 0x0000 )
++			freeIdOnError();
++		
+ 		switch( ackCode )
+ 		{
+ 		case 0x0000:
+@@ -448,6 +452,31 @@
+ 	setSuccess( 0, QString::null );
+ }
+ 
++void SSIModifyTask::freeIdOnError()
++{
++	if ( m_oldItem.isValid() && m_newItem.isValid() )
++	{
++		if ( m_opSubject == Contact || m_opSubject == NoSubject )
++		{
++			if ( m_oldItem.bid() != m_newItem.bid() )
++				m_ssiManager->removeID( m_newItem );
++		}
++		else if ( m_opSubject == Group )
++		{
++			if ( m_oldItem.gid() != m_newItem.gid() )
++				m_ssiManager->removeID( m_newItem );
++		}
++	}
++	else if ( m_newItem.isValid() && !m_oldItem )
++	{
++		if ( m_opSubject == Group || m_opSubject == Contact ||
++		     m_opSubject == NoSubject )
++		{
++			m_ssiManager->removeID( m_newItem );
++		}
++	}
++}
++
+ void SSIModifyTask::sendEditStart()
+ {
+ 	SNAC editStartSnac = { 0x0013, 0x0011, 0x0000, client()->snacSequence() };
+--- kopete/protocols/oscar/liboscar/ssimanager.h	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/liboscar/ssimanager.h	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -111,6 +111,9 @@
+ 	bool newItem( const Oscar::SSI& item );
+ 	bool removeItem( const Oscar::SSI& item );
+ 
++	void addID( const Oscar::SSI& item );
++	void removeID( const Oscar::SSI& item );
++
+ signals:
+ 	
+ 	//! Emitted when we've added a new contact to the list
+@@ -128,6 +131,8 @@
+ 	void modifyError( const QString& error );
+ 	
+ private:
++	WORD findFreeId( const QValueList<WORD>& idList, WORD fromId ) const;
++		
+ 	SSIManagerPrivate* d;
+ 	Oscar::SSI m_dummyItem;
+ };
+--- kopete/protocols/oscar/liboscar/ssimodifytask.h	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/liboscar/ssimodifytask.h	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -118,6 +118,9 @@
+ 	//! Update the SSI Manager with the new data
+ 	void updateSSIManager();
+ 	
++	//! Helper function to free id on error
++	void freeIdOnError();
++		
+ 	//! Send the SSI edit start packet
+ 	void sendEditStart();
+ 	
+--- kopete/protocols/oscar/liboscar/client.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/liboscar/client.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -183,6 +183,8 @@
+ void Client::close()
+ {
+ 	d->active = false;
++	d->awayMsgRequestTimer->stop();
++	d->awayMsgRequestQueue.clear();
+ 	d->connections.clear();
+ 	deleteStaticTasks();
+ 
+--- kopete/protocols/oscar/liboscar/ssimanager.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/liboscar/ssimanager.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -29,6 +29,8 @@
+ {
+ public:
+ 	QValueList<Oscar::SSI> SSIList;
++	QValueList<WORD> groupIdList;
++	QValueList<WORD> itemIdList;
+ 	WORD lastModTime;
+ 	WORD maxContacts;
+ 	WORD maxGroups;
+@@ -71,18 +73,47 @@
+ 		while ( it != d->SSIList.end() && d->SSIList.count() > 0 )
+ 			it = d->SSIList.remove( it );
+ 	};
++	
++	d->itemIdList.clear();
++	d->groupIdList.clear();
++	d->nextContactId = 0;
++	d->nextGroupId = 0;
+ }
+ 
+ WORD SSIManager::nextContactId()
+ {
+-	d->nextContactId++;
+-	return d->nextContactId;
++	if ( d->nextContactId == 0 )
++		d->nextContactId++;
++	
++	d->nextContactId = findFreeId( d->itemIdList, d->nextContactId );
++	if ( d->nextContactId == 0xFFFF )
++	{
++		kdWarning(OSCAR_RAW_DEBUG) << k_funcinfo << "No free id!" << endl;
++		return 0xFFFF;
++	}
++	
++	if ( d->itemIdList.contains( d->nextContactId ) == 0 )
++		d->itemIdList.append( d->nextContactId );
++		
++	return d->nextContactId++;
+ }
+ 
+ WORD SSIManager::nextGroupId()
+ {
+-	d->nextGroupId++;
+-	return d->nextGroupId;
++	if ( d->nextGroupId == 0 )
++		d->nextGroupId++;
++	
++	d->nextGroupId = findFreeId( d->groupIdList, d->nextGroupId );
++	if ( d->nextGroupId == 0xFFFF )
++	{
++		kdWarning(OSCAR_RAW_DEBUG) << k_funcinfo << "No free group id!" << endl;
++		return 0xFFFF;
++	}
++	
++	if ( d->groupIdList.contains( d->nextGroupId ) == 0 )
++		d->groupIdList.append( d->nextGroupId );
++	
++	return d->nextGroupId++;
+ }
+ 
+ WORD SSIManager::numberOfItems() const
+@@ -379,10 +410,9 @@
+ 	if ( !group.name().isEmpty() ) //avoid the group with gid 0 and bid 0
+ 	{	// the group is really new
+ 		kdDebug( OSCAR_RAW_DEBUG ) << k_funcinfo << "Adding group '" << group.name() << "' to SSI list" << endl;
+-		if ( group.gid() > d->nextGroupId )
+-			d->nextGroupId = group.gid();
+ 		
+ 		d->SSIList.append( group );
++		addID( group );
+ 		emit groupAdded( group );
+ 		return true;
+ 	}
+@@ -394,6 +424,8 @@
+ 	QString groupName = group.name();
+ 	kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Removing group " << group.name() << endl;
+ 	int remcount = d->SSIList.remove( group );
++	removeID( group );
++	
+ 	if ( remcount == 0 )
+ 	{
+ 		kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "No groups removed" << endl;
+@@ -420,16 +452,10 @@
+ 
+ bool SSIManager::newContact( const Oscar::SSI& contact )
+ {
+-	//what to validate?
+-	if ( contact.bid() > d->nextContactId )
+-	{
+-		kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Setting next contact ID to " << contact.bid() << endl;
+-		d->nextContactId = contact.bid();
+-	}
+-	
+ 	if ( d->SSIList.findIndex( contact ) == -1 )
+ 	{
+ 		kdDebug( OSCAR_RAW_DEBUG ) << k_funcinfo << "Adding contact '" << contact.name() << "' to SSI list" << endl;
++		addID( contact );
+ 		d->SSIList.append( contact );
+ 		emit contactAdded( contact );
+ 	}
+@@ -442,6 +468,7 @@
+ {
+ 	QString contactName = contact.name();
+ 	int remcount = d->SSIList.remove( contact );
++	removeID( contact );
+ 	
+ 	if ( remcount == 0 )
+ 	{
+@@ -470,15 +497,61 @@
+ 	//no error checking for now
+ 	kdDebug(OSCAR_RAW_DEBUG) << k_funcinfo << "Adding item " << item.toString() << endl;
+ 	d->SSIList.append( item );
++	addID( item );
+ 	return true;
+ }
+ 
+ bool SSIManager::removeItem( const Oscar::SSI& item )
+ {
+ 	d->SSIList.remove( item );
++	removeID( item );
++	
+ 	return true;
+ }
+ 
++void SSIManager::addID( const Oscar::SSI& item )
++{
++	if ( item.type() == ROSTER_GROUP )
++	{
++		if ( d->groupIdList.contains( item.gid() ) == 0 )
++			d->groupIdList.append( item.gid() );
++	}
++	else
++	{
++		if ( d->itemIdList.contains( item.bid() ) == 0 )
++			d->itemIdList.append( item.bid() );
++	}
++}
++
++void SSIManager::removeID( const Oscar::SSI& item )
++{
++	if ( item.type() == ROSTER_GROUP )
++	{
++		d->groupIdList.remove( item.gid() );
++	
++		if ( d->nextGroupId > item.gid() )
++			d->nextGroupId = item.gid();
++	}
++	else
++	{
++		d->itemIdList.remove( item.bid() );
++		
++		if ( d->nextContactId > item.bid() )
++			d->nextContactId = item.bid();
++	}
++}
++
++WORD SSIManager::findFreeId( const QValueList<WORD>& idList, WORD fromId ) const
++{
++	for ( WORD id = fromId; id < 0x8000; id++ )
++	{
++		if ( idList.contains( id ) == 0 )
++			return id;
++	}
++	
++	return 0xFFFF;
++}
++
+ #include "ssimanager.moc"
+ 
+ //kate: tab-width 4; indent-mode csands;
+--- kopete/protocols/oscar/oscarcontact.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/oscarcontact.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -79,6 +79,10 @@
+ void OscarContact::setSSIItem( const Oscar::SSI& ssiItem )
+ {
+ 	m_ssiItem = ssiItem;
++
++	if ( !m_ssiItem.alias().isEmpty() )
++		setProperty( Kopete::Global::Properties::self()->nickName(), m_ssiItem.alias() );
++
+ 	emit updatedSSI();
+ }
+ 
+--- kopete/protocols/oscar/icq/icqcontact.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/oscar/icq/icqcontact.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -199,7 +199,7 @@
+ 	if ( ( ( hasProperty( Kopete::Global::Properties::self()->nickName().key() )
+ 	         && nickName() == contactId() )
+ 	     || !hasProperty( Kopete::Global::Properties::self()->nickName().key() ) ) &&
+-	     !m_requestingNickname )
++	     !m_requestingNickname && m_ssiItem.alias().isEmpty() )
+ 	{
+ 		m_requestingNickname = true;
+ 		int time = ( KApplication::random() % 20 ) * 1000;
+@@ -293,7 +293,7 @@
+ 	kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "received long info from engine" << endl;
+ 
+ 	ICQGeneralUserInfo genInfo = mAccount->engine()->getGeneralInfo( contact );
+-	if ( !genInfo.nickname.isEmpty() )
++	if ( m_ssiItem.alias().isEmpty() && !genInfo.nickname.isEmpty() )
+ 		setNickName( genInfo.nickname );
+ 	emit haveBasicInfo( genInfo );
+ 
+@@ -326,7 +326,7 @@
+ 	else
+ 		removeProperty(mProtocol->lastName);
+ 	*/
+-	if ( !shortInfo.nickname.isEmpty() )
++	if ( m_ssiItem.alias().isEmpty() && !shortInfo.nickname.isEmpty() )
+ 	{
+ 		kdDebug(14153) << k_funcinfo <<
+ 			"setting new displayname for former UIN-only Contact" << endl;
+--- kopete/protocols/irc/ircprotocol.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/protocols/irc/ircprotocol.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -935,8 +935,6 @@
+ 
+ void IRCProtocol::slotNewNetwork()
+ {
+-	// create a new network struct
+-	IRCNetwork *net = new IRCNetwork;
+ 	// give it the name of 'New Network' (incrementing number if needed)
+ 	QString netName = QString::fromLatin1( "New Network" );
+ 	if ( m_networks.find( netName ) )
+@@ -949,6 +947,8 @@
+ 		if ( newIdx == 100 ) // pathological case
+ 			return;
+ 	}
++	// create a new network struct
++	IRCNetwork *net = new IRCNetwork;
+ 	net->name = netName;
+ 	// and add it to the networks dict and list
+ 	m_networks.insert( net->name, net );
+@@ -960,8 +960,6 @@
+ 
+ void IRCProtocol::slotNewHost()
+ {
+-	// create a new host
+-	IRCHost *host = new IRCHost;
+ 	// prompt for a name
+ 	bool ok;
+ 	QString name = KInputDialog::getText(
+@@ -976,6 +974,8 @@
+ 			KMessageBox::sorry(netConf, i18n( "A host already exists with that name" ) );
+ 			return;
+ 		}
++		// create a new host
++		IRCHost *host = new IRCHost;
+ 		// set defaults on others
+ 		host->host = name;
+ 		host->port = 6667;
+--- kopete/kopete/eventsrc	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kopete/kopete/eventsrc	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -844,7 +844,7 @@
+ Name[km]=សំបុត្រ MSN
+ Name[lt]=MSN Paštas
+ Name[mk]=MSN-пошта
+-Name[nb]=MSN epost
++Name[nb]=MSN e-post
+ Name[nds]=MSN-Nettpost
+ Name[nn]=MSN-e-post
+ Name[pl]=Poczta MSN
+@@ -1228,6 +1228,7 @@
+ Comment[nb]=Tilkoblingen er tapt
+ Comment[nds]=De Verbinnen is afreten
+ Comment[nl]=De verbinding is verbroken
++Comment[nn]=Sambandet er stengt
+ Comment[pl]=Połączenie zostało przerwane
+ Comment[pt]=A ligação foi-se abaixo
+ Comment[pt_BR]=A ligação foi-se abaixo
+@@ -1466,6 +1467,7 @@
+ Comment[nb]=Det har oppstått en intern feil ved tjenesten
+ Comment[nds]=Dat hett binnen den Deenst en Fehler geven
+ Comment[nl]=Er deed zich een interne fout op de server voor
++Comment[nn]=Det har skjedd ein feil internt i tenesta
+ Comment[pl]=Wystąpił błąd wewnętrzny usługi
+ Comment[pt]=Ocorreu um erro interno do serviço
+ Comment[pt_BR]=Ocorreu um erro interno do serviço
+@@ -1500,6 +1502,7 @@
+ Name[km]=សន្ទនា​រក ឬ កេះកៀវ
+ Name[lt]=Švilptelėjimas
+ Name[nds]=Anstoot
++Name[nn]=Pirk
+ Name[pl]=Pobudka/kuksaniec
+ Name[pt]=Apitar/Tocar
+ Name[pt_BR]=Pedir Atenção (Buzinar/Tremer)
+@@ -1533,6 +1536,7 @@
+ Comment[nb]=En kontakt har sendt deg en buzz/nudge
+ Comment[nds]=En Bruker will wat vun Di.
+ Comment[nl]=Een contact heeft u een buzz/nudge gestuurd.
++Comment[nn]=Ein kontakt har pirka borti deg.
+ Comment[pl]=Użytkownik wysłał ci pobudkę/kuksańca.
+ Comment[pt]=Um contacto enviou-lhe um toque/apito.
+ Comment[pt_BR]=Um contato lhe enviou um pedido de atenção.
+--- knewsticker/newsscroller.cpp	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ knewsticker/newsscroller.cpp	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -129,7 +129,7 @@
+ };
+ 
+ NewsScroller::NewsScroller(QWidget *parent, ConfigAccess *cfg, const char *name)
+-	: QFrame(parent, name),
++	: QFrame(parent, name, WNoAutoErase),
+ 	m_cfg(cfg),
+ 	m_scrollTimer(new QTimer(this)),
+ 	m_activeHeadline(0),
+@@ -258,8 +258,8 @@
+ 	
+ 	if (contentsRect().contains(pt))
+ 		updateActive(pt);
+-	
+-	repaint(false);
++
++	update();
+ }
+ 
+ void NewsScroller::enterEvent(QEvent *)
+@@ -337,7 +337,7 @@
+ 	}
+ 
+ 	if (updateActive(e->pos()))
+-		repaint(false);
++		update();
+ }
+ 
+ void NewsScroller::wheelEvent(QWheelEvent *e)
+@@ -360,7 +360,7 @@
+ 
+ 	if (m_activeHeadline) {
+ 		m_activeHeadline = 0;
+-		repaint(false);
++		update();
+ 	}
+ }
+ 
+@@ -488,7 +488,7 @@
+ 			m_offset = - scrollHeight();
+ 	}
+ 
+-	repaint(false);
++	update();
+ }
+ 
+ int NewsScroller::scrollWidth() const
+--- kget/eventsrc	(.../tags/KDE/3.5.4/kdenetwork)	(revision 567759)
++++ kget/eventsrc	(.../branches/KDE/3.5/kdenetwork)	(revision 567759)
+@@ -57,6 +57,7 @@
+ Comment[nb]=En ny nedlasting er lagt til
+ Comment[nds]=En niege Överdregen wöör toföögt
+ Comment[nl]=Er is een nieuwe download toegevoegd
++Comment[nn]=Ei ny nedlasting er lagd til
+ Comment[pl]=Nowe zlecenie pobrania pliku zostało dodane
+ Comment[pt]=Foi adicionada uma nova transferência
+ Comment[pt_BR]=Um novo download foi adicionado
+@@ -96,6 +97,7 @@
+ Name[nb]=NedlastingStartet
+ Name[nds]=DaalladenHettStart
+ Name[nl]=DownloadGestart
++Name[nn]=NedlastingStarta
+ Name[pl]=Pobieranie rozpoczęte
+ Name[pt_BR]=DownloadIniciado
+ Name[ru]=ЗапускЗагрузки




More information about the pkg-kde-commits mailing list