File fix-crash.patch of Package kdesvn

From 921e6f656a265cf51fdde5b536e3d7acbf168a05 Mon Sep 17 00:00:00 2001
From: Christian Ehrlicher <Ch.Ehrlicher@gmx.de>
Date: Mon, 27 Feb 2017 19:47:11 +0100
Subject: Bug 375655 - KDESVN related crash perhaps while right-clicking in
 Dolphin This happens when a '@' is in the path - '@' is interpreted as the
 revision separator inside subversion and must be quoted (with an additional
 '@' at the end)

---
 src/kdesvnd/kdesvnd.cpp     | 12 +++++++++---
 src/svnqt/client_status.cpp |  4 ++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/kdesvnd/kdesvnd.cpp b/src/kdesvnd/kdesvnd.cpp
index 9f9ea7d..d0382db 100644
--- a/src/kdesvnd/kdesvnd.cpp
+++ b/src/kdesvnd/kdesvnd.cpp
@@ -77,7 +77,10 @@ QStringList kdesvnd::getTopLevelActionMenu(const QStringList &urlList) const
     QList<QUrl> urls;
     urls.reserve(urlList.size());
     Q_FOREACH(const QString &str, urlList) {
-        urls += QUrl(str);
+        if (str.contains(QLatin1Char('@')))
+            urls += QUrl(str + QLatin1Char('@'));
+        else
+            urls += QUrl(str);
     }
 
     return getActionMenu(urls, true);
@@ -89,7 +92,10 @@ QStringList kdesvnd::getActionMenu(const QStringList &urlList) const
     QList<QUrl> urls;
     urls.reserve(urlList.size());
     Q_FOREACH(const QString &str, urlList) {
-        urls += QUrl(str);
+        if (str.contains(QLatin1Char('@')))
+            urls += QUrl(str + QLatin1Char('@'));
+        else
+            urls += QUrl(str);
     }
     return getActionMenu(urls, false);
 }
@@ -170,7 +176,7 @@ QStringList kdesvnd::getActionMenu(const QList<QUrl> &list, bool toplevel) const
 QStringList kdesvnd::getSingleActionMenu(const QString &what) const
 {
     QList<QUrl> l;
-    l.append(QUrl(what));
+    l.append(QUrl(what.contains(QLatin1Char('@')) ? what + QLatin1Char('@') : what));
     return getActionMenu(l, false);
 }
 
diff --git a/src/svnqt/client_status.cpp b/src/svnqt/client_status.cpp
index 53b6206..72b21db 100644
--- a/src/svnqt/client_status.cpp
+++ b/src/svnqt/client_status.cpp
@@ -419,6 +419,10 @@ Client_impl::info(const Path &_p,
                                _buf,
                                pool);
     checkErrorThrow(error);
+    if (!truepath)
+    {
+        throw ClientException("no path given!");
+    }
     if (peg_revision.kind() == svn_opt_revision_unspecified) {
         if ((svn_path_is_url(_p.cstr())) && (pegr.kind == svn_opt_revision_unspecified)) {
             pegr.kind = svn_opt_revision_head;
-- 
cgit v0.11.2

openSUSE Build Service is sponsored by