[kgraphviewer-devel] [KGraphViewer] 40a599c: Work around crash in agread for remote files

Kevin Funk krf at electrostorm.net
Fri Dec 10 18:21:47 CET 2010


commit 40a599c2bfac67b0805de2da6522899e52970e13
branch libkgraphviz
Author: Kevin Funk <krf at electrostorm.net>
Date:   Fri Dec 10 17:08:20 2010 +0100

    Work around crash in agread for remote files

diff --git a/src/kgraphviz/support/loadagraphthread.cpp b/src/kgraphviz/support/loadagraphthread.cpp
index 1d56bdc..93262ae 100644
--- a/src/kgraphviz/support/loadagraphthread.cpp
+++ b/src/kgraphviz/support/loadagraphthread.cpp
@@ -20,14 +20,22 @@
 #include "loadagraphthread.h"
 
 #include <kdebug.h>
+#include <kurl.h>
 
 void LoadAGraphThread::run()
 {
   kDebug() << m_dotFileName;
-  GVC_t *gvc;
-  FILE* fp;
-  gvc = gvContext();
-  fp = fopen(m_dotFileName.toUtf8().data(), "r");
+
+  // FIXME: Fix this for remote files, work-around for crash in agread
+  KUrl url(m_dotFileName);
+  if (!url.isLocalFile()) {
+    kWarning() << "Loading remote files not supported";
+    return;
+  }
+
+  const QString sanitizedFilename = url.path();
+  GVC_t *gvc = gvContext();
+  FILE* fp = fopen(sanitizedFilename.toUtf8().data(), "r");
   m_g = agread(fp);
 }
 
@@ -36,6 +44,7 @@ void LoadAGraphThread::loadFile(const QString& dotFileName)
   kDebug();
   if (isRunning())
     return;
+
   m_dotFileName = dotFileName;
   start();
 }


More information about the kgraphviewer-devel mailing list