Hello community,

here is the log from the commit of package kdbg for openSUSE:Factory checked in 
at 2016-10-24 14:44:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdbg (Old)
 and      /work/SRC/openSUSE:Factory/.kdbg.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdbg"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdbg/kdbg.changes        2016-02-24 
18:43:01.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.kdbg.new/kdbg.changes   2016-10-24 
14:44:44.000000000 +0200
@@ -1,0 +2,11 @@
+Sun Oct 23 16:32:35 UTC 2016 - wba...@tmo.at
+
+- Update to 2.5.6:
+  * A popup shows the complete value of variables.
+  * The values printed by GDB for uninitialized references and
+    pointer-to-member variables no longer truncate the variable list.
+  * A few more C++ keywords are now highlighted.
+  * The CMakeLists.txt file was adjusted for newer cmake.
+- Removed fix-build-with-cmake-3_4_3.diff, it's no longer necessary
+
+-------------------------------------------------------------------

Old:
----
  fix-build-with-cmake-3_4_3.diff
  kdbg-2.5.5.tar.gz

New:
----
  kdbg-2.5.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdbg.spec ++++++
--- /var/tmp/diff_new_pack.uy5urq/_old  2016-10-24 14:44:45.000000000 +0200
+++ /var/tmp/diff_new_pack.uy5urq/_new  2016-10-24 14:44:45.000000000 +0200
@@ -17,15 +17,13 @@
 
 
 Name:           kdbg
-Version:        2.5.5
+Version:        2.5.6
 Release:        0
 Summary:        Graphical User Interface for GDB
 License:        GPL-2.0+
 Group:          Development/Tools/Debuggers
 Url:            http://www.kdbg.org/
 Source0:        %{name}-%{version}.tar.gz
-# PATCH-FIX-UPSTREAM fix-build-with-cmake-3_4_3.diff -- Include files 
containing the functions used by the build system
-Patch0:         fix-build-with-cmake-3_4_3.diff
 Patch1:         susepatches.diff
 BuildRequires:  fdupes
 %if 0%{?suse_version} >= 1310
@@ -54,7 +52,6 @@
 %lang_package
 %prep
 %setup -q
-%patch0 -p1
 %patch1 -p1
 
 %build

++++++ kdbg-2.5.5.tar.gz -> kdbg-2.5.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/CMakeLists.txt 
new/kdbg-2.5.6/CMakeLists.txt
--- old/kdbg-2.5.5/CMakeLists.txt       2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/CMakeLists.txt       2016-10-09 11:25:15.000000000 +0200
@@ -1,6 +1,6 @@
 cmake_minimum_required(VERSION 2.6)
 
-set(KDBG_VERSION 2.5.5)
+set(KDBG_VERSION 2.5.6)
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/kdbg/version.h.cmake 
${CMAKE_CURRENT_BINARY_DIR}/kdbg/version.h)
 
 find_package(KDE4 REQUIRED)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/ReleaseNotes-2.5.6 
new/kdbg-2.5.6/ReleaseNotes-2.5.6
--- old/kdbg-2.5.5/ReleaseNotes-2.5.6   1970-01-01 01:00:00.000000000 +0100
+++ new/kdbg-2.5.6/ReleaseNotes-2.5.6   2016-10-09 11:25:15.000000000 +0200
@@ -0,0 +1,18 @@
+KDbg Release Notes for version 2.5.6
+====================================
+
+Changes since 2.5.5
+-------------------
+
+Enhancements
+
+- A popup shows the complete value of variables.
+
+Bug fixes
+
+- The values printed by GDB for uninitialized references and
+  pointer-to-member variables no longer truncate the variable list.
+
+- A few more C++ keywords are now highlighted.
+
+- The CMakeLists.txt file was adjusted for newer cmake.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/CMakeLists.txt 
new/kdbg-2.5.6/kdbg/CMakeLists.txt
--- old/kdbg-2.5.5/kdbg/CMakeLists.txt  2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/CMakeLists.txt  2016-10-09 11:25:15.000000000 +0200
@@ -4,6 +4,7 @@
 
 include_directories(${KDE4_INCLUDES} ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
 include(CheckFunctionExists)
+include(CheckIncludeFiles)
 
 CHECK_INCLUDE_FILES(pty.h HAVE_PTY_H)
 CHECK_INCLUDE_FILES(libutil.h HAVE_LIBUTIL_H)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/exprwnd.cpp 
new/kdbg-2.5.6/kdbg/exprwnd.cpp
--- old/kdbg-2.5.5/kdbg/exprwnd.cpp     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/exprwnd.cpp     2016-10-09 11:25:15.000000000 +0200
@@ -262,6 +262,13 @@
     return 0;
 }
 
+QVariant VarTree::data(int column, int role) const
+{
+    if (role != Qt::ToolTipRole || column != 1)
+       return QTreeWidgetItem::data(column, role);
+    return QVariant(value());
+}
+
 ExprValue::ExprValue(const QString& name, VarTree::NameKind aKind) :
        m_name(name),
        m_varKind(VarTree::VKsimple),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/exprwnd.h 
new/kdbg-2.5.6/kdbg/exprwnd.h
--- old/kdbg-2.5.5/kdbg/exprwnd.h       2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/exprwnd.h       2016-10-09 11:25:15.000000000 +0200
@@ -62,6 +62,8 @@
     QString value() const { return m_baseValue; }
     VarTree* child(int i) const { return 
static_cast<VarTree*>(QTreeWidgetItem::child(i)); }
 
+    virtual QVariant data(int column, int role) const;
+
 private:
     void updateValueText();
     QString m_baseValue;       //!< The "normal value" that the driver reported
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/gdbdriver.cpp 
new/kdbg-2.5.6/kdbg/gdbdriver.cpp
--- old/kdbg-2.5.5/kdbg/gdbdriver.cpp   2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/gdbdriver.cpp   2016-10-09 11:25:15.000000000 +0200
@@ -694,6 +694,18 @@
        strncmp(output, "Internal error: ", 16) == 0;
 }
 
+static void skipSpace(const char*& p)
+{
+    while (isspace(*p))
+       p++;
+}
+
+static void skipDecimal(const char*& p)
+{
+    while (isdigit(*p))
+       p++;
+}
+
 /**
  * Returns true if the output is an error message. If wantErrorValue is
  * true, a new ExprValue object is created and filled with the error message.
@@ -703,8 +715,7 @@
 static bool parseErrorMessage(const char*& output,
                              ExprValue*& variable, bool wantErrorValue)
 {
-    while (isspace(*output))
-        output++;
+    skipSpace(output);
 
     // skip warnings
     while (strncmp(output, "warning:", 8) == 0)
@@ -714,8 +725,7 @@
            output += strlen(output);
        else
            output = end+1;
-        while (isspace(*output))
-            output++;
+        skipSpace(output);
     }
 
     if (isErrorExpr(output))
@@ -762,8 +772,7 @@
      * Parse off white space. gdb sometimes prints white space first if the
      * printed array leaded to an error.
      */
-    while (isspace(*output))
-       output++;
+    skipSpace(output);
 
     // special case: empty string (0 repetitions)
     if (strncmp(output, "Invalid number 0 of repetitions", 31) == 0)
@@ -785,10 +794,8 @@
     if (p == 0) {
        goto error;
     }
-    // skip white space
-    do {
-       p++;
-    } while (isspace(*p));
+    p++;
+    skipSpace(p);
 
     if (*p == '{')
     {
@@ -914,10 +921,8 @@
 static ExprValue* parseVar(const char*& s)
 {
     const char* p = s;
-    
-    // skip whitespace
-    while (isspace(*p))
-       p++;
+
+    skipSpace(p);
 
     QString name;
     VarTree::NameKind kind;
@@ -943,16 +948,14 @@
        }
 
        // go for '='
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        if (*p != '=') {
            TRACE("parse error: = not found after " + name);
            return 0;
        }
        // skip the '=' and more whitespace
        p++;
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
     }
 
     ExprValue* variable = new ExprValue(name, kind);
@@ -1084,8 +1087,7 @@
     if (quote == '\'') {
        // look ahaead for <repeats 123 times>
        const char* q = p+1;
-       while (isspace(*q))
-           q++;
+       skipSpace(q);
        if (strncmp(q, "<repeats ", 9) == 0) {
            p = q+9;
            while (*p != '\0' && *p != '>')
@@ -1100,8 +1102,7 @@
     {
        // look ahead for another quote
        const char* q = p+1;
-       while (isspace(*q))
-           q++;
+       skipSpace(q);
        if (*q == '"' || *q == '\'') {
            // yes!
            p = q;
@@ -1170,13 +1171,53 @@
     s = p;
 }
 
-inline void skipName(const char*& p)
+static void skipName(const char*& p)
 {
     // allow : (for enumeration values) and $ and . (for _vtbl.)
     while (isalnum(*p) || *p == '_' || *p == ':' || *p == '$' || *p == '.')
        p++;
 }
 
+static void skipFunctionName(const char*& p)
+{
+    while (*p)
+    {
+       if (*p == '<') {
+           // skip template parameter list
+           skipNestedAngles(p);
+       } else if (*p == '(') {
+           // this skips "(anonymous namespace)" as well as the formal
+           // parameter list of the containing function if this is a member
+           // of a nested class
+           skipNestedWithString(p, '(', ')');
+       } else if (isalnum(*p) || *p == '_' || *p == ':') {
+           const char* start = p;
+           skipName(p);
+           // check for operator
+           if (p-start >= 8 &&
+               strncmp(p-8, "operator", 8) == 0 &&
+               // do  not mistake this as the tail of some identifier
+               (p-start == 8 || !(isalnum(p[-9]) || p[-9] == '_')))
+           {
+               // skip forward until we find the opening parenthesis
+               // this catches both operator()(...) as well as
+               // type conversion operators, e.g.
+               //  operator char const*() const
+               //  operator void(*)()
+               while (*p && *p != '(')
+                   p++;
+           }
+       } else if (strncmp(p, " const", 6) == 0 &&
+                   // must not mistake "const" as the beginning of
+                   // a subequent identifier
+                   !isalnum(p[6]) &&  p[6] != '_') {
+           p += 6;
+       } else {
+           break;
+       }
+    }
+}
+
 static bool parseName(const char*& s, QString& name, VarTree::NameKind& kind)
 {
     kind = VarTree::NKplain;
@@ -1205,8 +1246,7 @@
            kind = VarTree::NKstatic;
 
            // its a static variable, name comes now
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            s = p;
            skipName(p);
            if (p == s) {
@@ -1240,8 +1280,7 @@
            skipNested(s, '{', '}');
            variable->m_value = QString::fromLatin1(start, s-start);
            variable->m_value += ' ';   // add only a single space
-           while (isspace(*s))
-               s++;
+           skipSpace(s);
            goto repeat;
        }
        else
@@ -1257,8 +1296,7 @@
            }
            s++;
            // final white space
-           while (isspace(*s))
-               s++;
+           skipSpace(s);
        }
     }
     // Sometimes we find a warning; it ends at the next LF
@@ -1266,8 +1304,7 @@
        const char* end = strchr(s, '\n');
        s = end ? end : s+strlen(s);
        // skip space at start of next line
-       while (isspace(*s))
-           s++;
+       skipSpace(s);
        goto repeat;
     } else {
        // examples of leaf values (cannot be the empty string):
@@ -1286,9 +1323,13 @@
        //  (E *) 0xbffff450
        //  red
        //  &parseP (HTMLClueV *, char *)
+       //  &virtual table offset 0, this adjustment 140737488346016
+       //  &virtual Dl::operator char const*() const
        //  Variable "x" is not available.
        //  The value of variable 'x' is distributed...
        //  -nan(0xfffff081defa0)
+       //  @0x100400f08: <error reading variable>
+       //  (void (Templated<double>::*)(Templated<double> * const)) 0x400d74 
<MostDerived::PrintV()>, this adjustment -16
 
        const char*p = s;
     
@@ -1297,8 +1338,7 @@
        if (*p == '(') {
            skipNested(p, '(', ')');
 
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            variable->m_value = QString::fromLatin1(s, p - s);
        }
 
@@ -1342,16 +1382,14 @@
            checkMultiPart = true;
        } else if (isdigit(*p)) {
            // parse decimal number, possibly a float
-           while (isdigit(*p))
-               p++;
+           skipDecimal(p);
            if (*p == '.') {            /* TODO: obey i18n? */
                // In long arrays an integer may be followed by '...'.
                // We test for this situation and don't gobble the '...'.
                if (p[1] != '.' || p[0] != '.') {
                    // fractional part
                    p++;
-                   while (isdigit(*p))
-                       p++;
+                   skipDecimal(p);
                }
            }
            if (*p == 'e' || *p == 'E') {
@@ -1359,8 +1397,7 @@
                // exponent
                if (*p == '-' || *p == '+')
                    p++;
-               while (isdigit(*p))
-                   p++;
+               skipDecimal(p);
            }
 
            // for char variables there is the char, eg. 10 '\n'
@@ -1378,14 +1415,23 @@
            checkMultiPart = p[1] == '\'';
            skipString(p);
        } else if (*p == '&') {
-           // function pointer
            p++;
-           skipName(p);
-           while (isspace(*p)) {
-               p++;
-           }
-           if (*p == '(') {
-               skipNested(p, '(', ')');
+           if (strncmp(p, "virtual ", 8) == 0) {
+               p += 8;
+               if (strncmp(p, "table offset ", 13) == 0) {
+                   p += 13;
+                   skipDecimal(p);
+                   checkMultiPart = true;
+               } else {
+                   skipFunctionName(p);
+               }
+           } else {
+               // function pointer
+               skipName(p);
+               skipSpace(p);
+               if (*p == '(') {
+                   skipNested(p, '(', ')');
+               }
            }
        } else if (strncmp(p, "Variable \"", 10) == 0) {
            // Variable "x" is not available.
@@ -1424,8 +1470,7 @@
 
        while (checkMultiPart) {
            // white space
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            // may be followed by a string or <...>
            // if this was a pointer with a string,
            // reset that pointer flag since we have now a value
@@ -1441,10 +1486,28 @@
            } else if (*p == '<') {
                // if this value is part of an array, it might be followed
                // by <repeats 15 times>, which we don't skip here
-               if (strncmp(p, "<repeats ", 9) != 0) {
+               if (strncmp(p, "<repeats ", 9) == 0)
+                   ;
+               // sometimes, a reference is followed by an error message:
+               //  @0x100400f08: <error reading variable>
+               // in this case, we do not skip the text here, but leave it
+               // for the subsequent parsing pass induced by the reference
+               else if (reference && strncmp(p, "<error reading", 14) == 0)
+                   ;
+               else {
                    skipNestedAngles(p);
                    checkMultiPart = true;
                }
+           } else if (strncmp(p, ", this adjustment ", 18) == 0) {
+               // pointers-to-member are sometimes followed by
+               // a "this adjustment" hint
+               p += 18;
+               if (*p == '-')
+                   p++;
+               skipDecimal(p);
+               // we know that this is not a dereferencable pointer
+               variable->m_varKind = VarTree::VKsimple;
+               ++start;        // skip ',', will be picked up below
            }
            if (p != start) {
                // there is always a blank before the string,
@@ -1459,8 +1522,7 @@
        }
 
        // final white space
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        s = p;
 
        /*
@@ -1478,8 +1540,7 @@
 static bool parseNested(const char*& s, ExprValue* variable)
 {
     // could be a structure or an array
-    while (isspace(*s))
-       s++;
+    skipSpace(s);
 
     const char* p = s;
     bool isStruct = false;
@@ -1494,8 +1555,7 @@
     } else if (isalpha(*p) || *p == '_' || *p == '$') {
        // look ahead for a comma after the name
        skipName(p);
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        if (*p == '=') {
            isStruct = true;
        }
@@ -1537,8 +1597,7 @@
            break;
        // skip the comma and whitespace
        s++;
-       while (isspace(*s))
-           s++;
+       skipSpace(s);
     }
     return var != 0;
 }
@@ -1575,8 +1634,7 @@
            // skip " times>" and space
            s = end+7;
            // possible final space
-           while (isspace(*s))
-               s++;
+           skipSpace(s);
        } else {
            index++;
        }
@@ -1594,8 +1652,7 @@
        }
        // skip the comma and whitespace
        s++;
-       while (isspace(*s))
-           s++;
+       skipSpace(s);
        // sometimes there is a closing brace after a comma
 //     if (*s == '}')
 //         break;
@@ -1689,13 +1746,11 @@
      */
     do {
        skipNestedWithString(p, '(', ')');
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        // skip "const"
        if (strncmp(p, "const", 5) == 0) {
            p += 5;
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
        }
     } while (*p == '(');
 
@@ -1790,8 +1845,7 @@
 
     // frame number
     frameNo = atoi(s);
-    while (isdigit(*s))
-       s++;
+    skipDecimal(s);
     // space and comma
     while (isspace(*s) || *s == ',')
        s++;
@@ -1850,8 +1904,7 @@
        else
        {
            // get Type
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            if (strncmp(p, "breakpoint", 10) == 0) {
                p += 10;
            } else if (strncmp(p, "hw watchpoint", 13) == 0) {
@@ -1861,8 +1914,7 @@
                bp.type = Breakpoint::watchpoint;
                p += 10;
            }
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            if (*p == '\0')
                break;
            // get Disp
@@ -1870,16 +1922,14 @@
        }
        while (*p != '\0' && !isspace(*p))      /* "keep" or "del" */
            p++;
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        if (*p == '\0')
            break;
        // get Enb
        bp.enabled = *p++ == 'y';
        while (*p != '\0' && !isspace(*p))      /* "y" or "n" */
            p++;
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        if (*p == '\0')
            break;
        // the address, if present
@@ -1910,8 +1960,7 @@
        // may be continued in next line
        while (isspace(*p)) {   /* p points to beginning of line */
            // skip white space at beginning of line
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
 
            // seek end of line
            end = strchr(p, '\n');
@@ -1975,8 +2024,7 @@
        ThreadInfo thr;
        // seach look for thread id, watching out for  the focus indicator
        thr.hasFocus = false;
-       while (isspace(*p))             /* may be \n from prev line: see "No 
stack" below */
-           p++;
+       skipSpace(p);                   /* may be \n from prev line: see "No 
stack" below */
 
        // recent GDBs write a header line; skip it
        if (threads.empty() && strncmp(p, "Id   Target", 11) == 0) {
@@ -2002,9 +2050,7 @@
        }
        p = end;
 
-       // skip space
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
 
        /*
         * Now follows the thread's SYSTAG.
@@ -2046,8 +2092,7 @@
                } else {
                    break;
                }
-               while (isspace(*end))
-                   ++end;
+               skipSpace(end);
            }
        }
        thr.threadName = QString::fromLatin1(p, end-p).trimmed();
@@ -2131,8 +2176,8 @@
      *
      * Breakpoint 4 at 0x804f158: lotto739.cpp:95. (3 locations)
      */
-    char* fileEnd, *numStart = 0;
-    char* fileStart = strstr(p, "file ");
+    const char* fileEnd, *numStart = 0;
+    const char* fileStart = strstr(p, "file ");
     if (fileStart != 0)
     {
        fileStart += 5;
@@ -2143,8 +2188,7 @@
     if (numStart == 0 && p[0] == ':' && p[1] == ' ')
     {
        fileStart = p+2;
-       while (isspace(*fileStart))
-           ++fileStart;
+       skipSpace(fileStart);
        fileEnd = strchr(fileStart, ':');
        if (fileEnd != 0)
            numStart = fileEnd + 1;
@@ -2189,8 +2233,7 @@
     }
 
     while (*output != '\0') {
-       while (isspace(*output))
-           output++;
+       skipSpace(output);
        if (*output == '\0')
            break;
        // skip occurrences of "No locals" and "No args"
@@ -2328,8 +2371,7 @@
            // skip number and space
            while (*p && !isspace(*p))
                ++p;
-           while (isspace(*p))
-               ++p;
+           skipSpace(p);
            if (*p == '(') {
                skipNested(p, '(', ')');
                if (strncmp(p, " exited ", 8) == 0) {
@@ -2389,9 +2431,7 @@
            while (*output != '\0' && !isspace(*output)) {      /* non-space */
                output++;
            }
-           while (isspace(*output)) {  /* space */
-               output++;
-           }
+           skipSpace(output);          /* space */
        }
        if (*output == '\0')
            return shlibs;
@@ -2440,8 +2480,7 @@
     {
        RegisterInfo reg;
        // skip space at the start of the line
-       while (isspace(*output))
-           output++;
+       skipSpace(output);
 
        // register name
        const char* start = output;
@@ -2451,9 +2490,7 @@
            break;
        reg.regName = QString::fromLatin1(start, output-start);
 
-       // skip space
-       while (isspace(*output))
-           output++;
+       skipSpace(output);
 
        QString value;
 
@@ -2705,8 +2742,7 @@
        md.address = QString::fromLatin1(start, p-start);
        if (*p != ':') {
            // parse function offset
-           while (isspace(*p))
-               p++;
+           skipSpace(p);
            start = p;
            while (*p != '\0' && !(*p == ':' && isspace(p[1])))
                p++;
@@ -2715,8 +2751,7 @@
        if (*p == ':')
            p++;
        // skip space; this may skip a new-line char!
-       while (isspace(*p))
-           p++;
+       skipSpace(p);
        // everything to the end of the line is the memory dump
        const char* end = strchr(p, '\n');
        if (end != 0) {
@@ -2742,8 +2777,7 @@
     if (*s == '(') {
        skipNested(s, '(', ')');
        // skip space
-       while (isspace(*s))
-           ++s;
+       skipSpace(s);
     }
 
 repeat:
@@ -2767,8 +2801,7 @@
        // a pointer
        // if it's a pointer to a string, remove the string
        const char* end = s;
-       while (isspace(*s))
-           ++s;
+       skipSpace(s);
        if (*s == '"') {
            // a string
            return QString::fromLatin1(start, end-start);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/main.cpp new/kdbg-2.5.6/kdbg/main.cpp
--- old/kdbg-2.5.5/kdbg/main.cpp        2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/main.cpp        2016-10-09 11:25:15.000000000 +0200
@@ -24,7 +24,7 @@
                         KDBG_VERSION,
                         ki18n("A Debugger"),
                         KAboutData::License_GPL, 
-                        ki18n("(c) 1998-2015 Johannes Sixt"),
+                        ki18n("(c) 1998-2016 Johannes Sixt"),
                         KLocalizedString(),    /* any text */
                         "http://www.kdbg.org/";,
                         "j...@kdbg.org");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/sourcewnd.cpp 
new/kdbg-2.5.6/kdbg/sourcewnd.cpp
--- old/kdbg-2.5.5/kdbg/sourcewnd.cpp   2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/sourcewnd.cpp   2016-10-09 11:25:15.000000000 +0200
@@ -820,8 +820,8 @@
     "private",
     "protected",
     "public",
-    "reinterpret_cast",
     "register",
+    "reinterpret_cast",
     "return",
     "short",
     "signed",
@@ -838,9 +838,9 @@
     "typedef",
     "typeid",
     "typename",
-    "using",
     "union",
     "unsigned",
+    "using",
     "virtual",
     "void",
     "volatile",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/testprogs/Makefile 
new/kdbg-2.5.6/kdbg/testprogs/Makefile
--- old/kdbg-2.5.5/kdbg/testprogs/Makefile      2015-02-22 20:54:42.000000000 
+0100
+++ new/kdbg-2.5.6/kdbg/testprogs/Makefile      2016-10-09 11:25:15.000000000 
+0200
@@ -52,7 +52,7 @@
        g++ -o $@ $(CXXFLAGS) $^
 
 templates: templates.cpp
-       g++ -o $@ $(CXXFLAGS) $^
+       g++ -std=c++0x -o $@ $(CXXFLAGS) $^
 
 testfile: testfile.cpp
        g++ -o $@ $(CXXFLAGS) $^ $(QT3INC) $(QT3LIB)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/testprogs/multibrkpt.cpp 
new/kdbg-2.5.6/kdbg/testprogs/multibrkpt.cpp
--- old/kdbg-2.5.5/kdbg/testprogs/multibrkpt.cpp        2015-02-22 
20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg/testprogs/multibrkpt.cpp        2016-10-09 
11:25:15.000000000 +0200
@@ -14,6 +14,9 @@
        void PrintV() {
                cout << __func__ << " val=" << val << endl;
        }
+       virtual void PrintName(int,int) const {
+               cout << __func__ << endl;
+       }
 };
 
 struct MostDerived : Templated<int>, Templated<double>
@@ -28,10 +31,26 @@
                Templated<int>::PrintV();
                Templated<double>::PrintV();
        }
+       virtual void PrintName(int,int) const {
+               cout << __func__ << endl;
+       }
 };
 
 int main()
 {
        MostDerived bothobj;
+
+       // test "this adjustment"
+       void (Templated<int>::*pmf1)();
+       void (Templated<double>::*pmf2)();
+       void (MostDerived::*pmf3)();
+       void (MostDerived::*pmf4)(int,int) const;
+       pmf1 = static_cast<void (Templated<int>::*)()>(&MostDerived::PrintV);
+       // the following has a non-trivial "this adjustment"
+       pmf2 = static_cast<void (Templated<double>::*)()>(&MostDerived::PrintV);
+       pmf3 = &Templated<double>::PrintV;
+       pmf4 = &Templated<double>::PrintName;
+
        bothobj.PrintV();
+       (bothobj.*pmf4)(2, -5);
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/testprogs/templates.cpp 
new/kdbg-2.5.6/kdbg/testprogs/templates.cpp
--- old/kdbg-2.5.5/kdbg/testprogs/templates.cpp 2015-02-22 20:54:42.000000000 
+0100
+++ new/kdbg-2.5.6/kdbg/testprogs/templates.cpp 2016-10-09 11:25:15.000000000 
+0200
@@ -87,6 +87,15 @@
        f(s);
 }
 
+template<class... Args>
+void varargs(const char* sep, Args&&... args)
+{
+       long vals[] = { args... };
+       for (auto v: vals)
+               cout << v << sep;
+       cout << endl;
+}
+
 int main()
 {
        S s1, s2;
@@ -114,4 +123,6 @@
        templS<int> tSi;
        (tSi.*pm2)(1);
        tSi.operator<(1);
+
+       varargs(" : ", 1, short(-2), 4U, '3');
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg/testprogs/testfile.cpp 
new/kdbg-2.5.6/kdbg/testprogs/testfile.cpp
--- old/kdbg-2.5.5/kdbg/testprogs/testfile.cpp  2015-02-22 20:54:42.000000000 
+0100
+++ new/kdbg-2.5.6/kdbg/testprogs/testfile.cpp  2016-10-09 11:25:15.000000000 
+0200
@@ -38,9 +38,10 @@
        Dl(int r);
        virtual int f(int x);
        int operator()(const QString& x, int& y) const;
-       operator const char*() { return 0; }
+       virtual operator const char*() const { return 0; }
        operator PtrFunc*();
        void takeACStr(const char* cstr);
+       double m;
 };
 
 namespace A {
@@ -185,6 +186,8 @@
        int n = 83;
        d1(strref, n);
        PtrFunc* ppf = d1;
+       const char* (Dl::*pmf)() const = &Dl::operator const char*;
+       double (Dl::*pmv) = &Dl::m;
        d1.takeACStr(globarstr);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/kdbg.spec new/kdbg-2.5.6/kdbg.spec
--- old/kdbg-2.5.5/kdbg.spec    2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/kdbg.spec    2016-10-09 11:25:15.000000000 +0200
@@ -49,10 +49,8 @@
 make DESTDIR=$RPM_BUILD_ROOT install
 
 cd $RPM_BUILD_ROOT
-find . -type d | sed '1,2d;s,^\.,\%attr(-\,root\,root) \%dir ,' > \
-       $RPM_BUILD_DIR/file.list.%{name}
 find . -type f | sed -e 's,^\.,\%attr(-\,root\,root) ,' \
-       -e '/\/config\//s|^|%config|' >> \
+       -e '/\/config\//s|^|%config|' > \
        $RPM_BUILD_DIR/file.list.%{name}
 find . -type l | sed 's,^\.,\%attr(-\,root\,root) ,' >> \
        $RPM_BUILD_DIR/file.list.%{name}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/cs.po new/kdbg-2.5.6/po/cs.po
--- old/kdbg-2.5.5/po/cs.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/cs.po     2016-10-09 11:25:15.000000000 +0200
@@ -318,7 +318,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/da.po new/kdbg-2.5.6/po/da.po
--- old/kdbg-2.5.5/po/da.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/da.po     2016-10-09 11:25:15.000000000 +0200
@@ -321,7 +321,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/de.po new/kdbg-2.5.6/po/de.po
--- old/kdbg-2.5.5/po/de.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/de.po     2016-10-09 11:25:15.000000000 +0200
@@ -320,8 +320,8 @@
 msgstr "Ein Debugger"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
-msgstr "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
+msgstr "(c) 1998-2016 Johannes Sixt"
 
 #: main.cpp:31
 msgid "Johannes Sixt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/es.po new/kdbg-2.5.6/po/es.po
--- old/kdbg-2.5.5/po/es.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/es.po     2016-10-09 11:25:15.000000000 +0200
@@ -323,7 +323,7 @@
 msgstr "Un depurador"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/fr.po new/kdbg-2.5.6/po/fr.po
--- old/kdbg-2.5.5/po/fr.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/fr.po     2016-10-09 11:25:15.000000000 +0200
@@ -327,7 +327,7 @@
 msgstr "Un débogueur"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/hr.po new/kdbg-2.5.6/po/hr.po
--- old/kdbg-2.5.5/po/hr.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/hr.po     2016-10-09 11:25:15.000000000 +0200
@@ -320,8 +320,8 @@
 msgstr "Debuger"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
-msgstr "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
+msgstr "(c) 1998-2016 Johannes Sixt"
 
 #: main.cpp:31
 msgid "Johannes Sixt"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/hu.po new/kdbg-2.5.6/po/hu.po
--- old/kdbg-2.5.5/po/hu.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/hu.po     2016-10-09 11:25:15.000000000 +0200
@@ -320,7 +320,7 @@
 msgstr "Nyomkövető"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/it.po new/kdbg-2.5.6/po/it.po
--- old/kdbg-2.5.5/po/it.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/it.po     2016-10-09 11:25:15.000000000 +0200
@@ -454,7 +454,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/ja.po new/kdbg-2.5.6/po/ja.po
--- old/kdbg-2.5.5/po/ja.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/ja.po     2016-10-09 11:25:15.000000000 +0200
@@ -322,7 +322,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/kdbg.pot new/kdbg-2.5.6/po/kdbg.pot
--- old/kdbg-2.5.5/po/kdbg.pot  2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/kdbg.pot  2016-10-09 11:25:15.000000000 +0200
@@ -312,7 +312,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/nb.po new/kdbg-2.5.6/po/nb.po
--- old/kdbg-2.5.5/po/nb.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/nb.po     2016-10-09 11:25:15.000000000 +0200
@@ -321,7 +321,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/nn.po new/kdbg-2.5.6/po/nn.po
--- old/kdbg-2.5.5/po/nn.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/nn.po     2016-10-09 11:25:15.000000000 +0200
@@ -323,7 +323,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/pl.po new/kdbg-2.5.6/po/pl.po
--- old/kdbg-2.5.5/po/pl.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/pl.po     2016-10-09 11:25:15.000000000 +0200
@@ -320,7 +320,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/pt.po new/kdbg-2.5.6/po/pt.po
--- old/kdbg-2.5.5/po/pt.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/pt.po     2016-10-09 11:25:15.000000000 +0200
@@ -314,7 +314,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/ro.po new/kdbg-2.5.6/po/ro.po
--- old/kdbg-2.5.5/po/ro.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/ro.po     2016-10-09 11:25:15.000000000 +0200
@@ -315,7 +315,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/ru.po new/kdbg-2.5.6/po/ru.po
--- old/kdbg-2.5.5/po/ru.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/ru.po     2016-10-09 11:25:15.000000000 +0200
@@ -317,7 +317,7 @@
 msgstr "Отладчик"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/sk.po new/kdbg-2.5.6/po/sk.po
--- old/kdbg-2.5.5/po/sk.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/sk.po     2016-10-09 11:25:15.000000000 +0200
@@ -317,7 +317,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/sr.po new/kdbg-2.5.6/po/sr.po
--- old/kdbg-2.5.5/po/sr.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/sr.po     2016-10-09 11:25:15.000000000 +0200
@@ -321,7 +321,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/sv.po new/kdbg-2.5.6/po/sv.po
--- old/kdbg-2.5.5/po/sv.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/sv.po     2016-10-09 11:25:15.000000000 +0200
@@ -321,7 +321,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/tr.po new/kdbg-2.5.6/po/tr.po
--- old/kdbg-2.5.5/po/tr.po     2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/tr.po     2016-10-09 11:25:15.000000000 +0200
@@ -322,7 +322,7 @@
 msgstr ""
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kdbg-2.5.5/po/zh_CN.po new/kdbg-2.5.6/po/zh_CN.po
--- old/kdbg-2.5.5/po/zh_CN.po  2015-02-22 20:54:42.000000000 +0100
+++ new/kdbg-2.5.6/po/zh_CN.po  2016-10-09 11:25:15.000000000 +0200
@@ -319,7 +319,7 @@
 msgstr "一个基于GDB的图形界面调试器"
 
 #: main.cpp:27
-msgid "(c) 1998-2015 Johannes Sixt"
+msgid "(c) 1998-2016 Johannes Sixt"
 msgstr ""
 
 #: main.cpp:31


Reply via email to