LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File merge-svn-diff.patch of Package kdelibs3 (Project KDE:KDE3)

diff -wruN kdelibs-3.5.10/kdecore/fakes.c kdelibs-svn/kdecore/fakes.c
--- kdelibs-3.5.10/kdecore/fakes.c	2006-07-22 12:16:41.000000000 +0400
+++ kdelibs-svn/kdecore/fakes.c	2010-05-03 23:36:00.647761000 +0400
@@ -340,24 +340,69 @@
 }
 #endif
 
+/*
+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ * $OpenBSD: strlcat.c,v 1.2 1999/06/17 16:28:58 millert Exp $
+ * $FreeBSD: src/lib/libc/string/strlcat.c,v 1.2.4.2 2001/07/09 23:30:06 obrien Exp $
+ * $DragonFly: src/sys/libkern/strlcat.c,v 1.5 2007/06/07 23:45:02 dillon Exp $
+ */
+ 
+/*
+ * Appends src to string dst of size siz (unlike strncat, siz is the
+ * full size of dst, not space left).  At most siz-1 characters
+ * will be copied.  Always NUL terminates (unless siz <= strlen(dst)).
+ * Returns strlen(initial dst) + strlen(src); if retval >= siz,
+ * truncation occurred.
+ */
 #ifndef HAVE_STRLCAT
-KDECORE_EXPORT unsigned long strlcat(char* d, const char* s, unsigned long bufsize)
+KDECORE_EXPORT unsigned long strlcat(char *dst, const char *src, unsigned long siz)
 {
-    char *cp;
-    unsigned long ret, len1, len2 = strlen(s);
+    char *d = dst;
+    const char *s = src;
+    unsigned long n = siz;
+    unsigned long dlen;
+    
+    /* Find the end of dst and adjust bytes left but don't go past end */
+    while (n-- != 0 && *d != '\0')
+	d++;
+    dlen = d - dst;
+    n = siz - dlen;
 
-    cp = memchr (d, '\0', bufsize);
-    if (!cp)
-	return bufsize + len2;
-    len1 = cp - d;
-    ret = len1 + len2;
-    if (ret >= bufsize) {
-        len2 = bufsize - len1 - 1;
-        memcpy(cp, s, len2);
-        cp[len2] = '\0';
-    } else
-        memcpy(cp, s, len2 + 1);
+    if (n == 0)
+	return(dlen + strlen(s));
+    while (*s != '\0') {
+	if (n != 1) {
+	    *d++ = *s;
+	    n--;
+	}
+	s++;
+    }
+    *d = '\0';
 
-    return ret;
+    return(dlen + (s - src));       /* count does not include NUL */
 }
 #endif
diff -wruN kdelibs-3.5.10/kdecore/kdebug.cpp kdelibs-svn/kdecore/kdebug.cpp
--- kdelibs-3.5.10/kdecore/kdebug.cpp	2006-10-01 21:33:38.000000000 +0400
+++ kdelibs-svn/kdecore/kdebug.cpp	2010-05-20 21:23:12.913617000 +0400
@@ -249,13 +249,21 @@
 
   const int BUFSIZE = 4096;
   char buf[BUFSIZE];
+  buf[0] = '\0';
+
+  static bool printTimeStamp = !(QCString(getenv("KDE_DEBUG_TIMESTAMP")).isEmpty());
+  if ( printTimeStamp ) {
+      const QString ts = QDateTime::currentDateTime().time().toString() + ' ';
+      strlcat( buf, ts.latin1(), BUFSIZE );
+  }
+
   if ( !kDebug_data->aAreaName.isEmpty() ) {
-      strlcpy( buf, kDebug_data->aAreaName.data(), BUFSIZE );
+      strlcat( buf, kDebug_data->aAreaName.data(), BUFSIZE );
       strlcat( buf, ": ", BUFSIZE );
       strlcat( buf, data, BUFSIZE );
   }
   else
-      strlcpy( buf, data, BUFSIZE );
+      strlcat( buf, data, BUFSIZE );
 
 
   // Output
diff -wruN kdelibs-3.5.10/kdecore/kstringhandler.cpp kdelibs-svn/kdecore/kstringhandler.cpp
--- kdelibs-3.5.10/kdecore/kstringhandler.cpp	2007-10-08 13:51:55.000000000 +0400
+++ kdelibs-svn/kdecore/kstringhandler.cpp	2009-06-26 17:13:01.595454000 +0400
@@ -558,7 +558,7 @@
   QString result;
   const QChar *unicode = str.unicode();
   for ( uint i = 0; i < str.length(); ++i )
-    result += ( unicode[ i ].unicode() < 0x21 ) ? unicode[ i ] :
+    result += ( unicode[ i ].unicode() <= 0x21 ) ? unicode[ i ] :
         QChar( 0x1001F - unicode[ i ].unicode() );
 
   return result;
diff -wruN kdelibs-3.5.10/kdeui/kdatetbl.cpp kdelibs-svn/kdeui/kdatetbl.cpp
--- kdelibs-3.5.10/kdeui/kdatetbl.cpp	2007-10-08 13:52:12.000000000 +0400
+++ kdelibs-svn/kdeui/kdatetbl.cpp	2009-05-22 19:15:52.096107000 +0400
@@ -47,6 +47,7 @@
 #include "kdatetbl.h"
 #include "kpopupmenu.h"
 #include <qdatetime.h>
+#include <qguardedptr.h>
 #include <qstring.h>
 #include <qpen.h>
 #include <qpainter.h>
@@ -1007,7 +1008,10 @@
   popup(pos);
   repaint();
   d->exec = true;
+  const QGuardedPtr<QObject> that = this;
   qApp->enter_loop();
+  if ( !that )
+    return QDialog::Rejected;
   hide();
   return result;
 }
diff -wruN kdelibs-3.5.10/kio/kio/karchive.cpp kdelibs-svn/kio/kio/karchive.cpp
--- kdelibs-3.5.10/kio/kio/karchive.cpp	2008-02-13 12:41:06.000000000 +0300
+++ kdelibs-svn/kio/kio/karchive.cpp	2009-12-01 15:51:00.667192000 +0300
@@ -588,7 +588,9 @@
 
 void KArchiveDirectory::addEntry( KArchiveEntry* entry )
 {
-  Q_ASSERT( !entry->name().isEmpty() );
+  if( entry->name().isEmpty() )
+    return;
+
   if( m_entries[ entry->name() ] ) {
       kdWarning() << "KArchiveDirectory::addEntry: directory " << name()
                   << " has entry " << entry->name() << " already" << endl;