Browse Source

Project unix name has been changed, non_zero column field implemented

avkonst 12 years ago
parent
commit
75450087b4
41 changed files with 141 additions and 67 deletions
  1. 1 1
      mainline/collect.py
  2. 1 1
      mainline/core/__init__.py
  3. 1 1
      mainline/core/api.py
  4. 1 1
      mainline/core/cmdparser.py
  5. 1 1
      mainline/core/db/__init__.py
  6. 35 8
      mainline/core/db/loader.py
  7. 1 1
      mainline/core/db/post.py
  8. 54 7
      mainline/core/db/sqlite.py
  9. 1 1
      mainline/core/db/utils.py
  10. 1 1
      mainline/core/dir.py
  11. 1 1
      mainline/core/export/__init__.py
  12. 1 1
      mainline/core/export/convert.py
  13. 1 1
      mainline/core/export/cout.py
  14. 1 1
      mainline/core/export/utils/__init__.py
  15. 1 1
      mainline/core/export/utils/py2txt.py
  16. 1 1
      mainline/core/export/utils/py2xml.py
  17. 1 1
      mainline/core/ext-priority/core.db.post.ini
  18. 1 1
      mainline/core/ext-priority/core.dir.ini
  19. 1 1
      mainline/core/ext-priority/core.log.ini
  20. 1 1
      mainline/core/loader.py
  21. 1 1
      mainline/core/log.py
  22. 1 1
      mainline/core/warn.py
  23. 2 2
      mainline/doc/index-online.html
  24. 1 1
      mainline/doc/index.html
  25. 1 1
      mainline/doc/limitations.txt
  26. 12 12
      mainline/doc/project.html
  27. 1 1
      mainline/doc/style.css
  28. 1 1
      mainline/export.py
  29. 1 1
      mainline/ext/std/code/__init__.py
  30. 1 1
      mainline/ext/std/code/brackets.ini
  31. 1 1
      mainline/ext/std/code/brackets.py
  32. 1 1
      mainline/ext/std/code/complexity.ini
  33. 1 1
      mainline/ext/std/code/complexity.py
  34. 1 1
      mainline/ext/std/code/cpp.ini
  35. 1 1
      mainline/ext/std/code/cpp.py
  36. 1 1
      mainline/ext/std/code/dumper.ini
  37. 1 1
      mainline/ext/std/code/dumper.py
  38. 1 1
      mainline/ext/std/code/test.ini
  39. 1 1
      mainline/ext/std/code/test.py
  40. 1 1
      mainline/limit.py
  41. 2 2
      mainline/readme.txt

+ 1 - 1
mainline/collect.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/__init__.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/api.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/cmdparser.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/db/__init__.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 35 - 8
mainline/core/db/loader.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    
@@ -413,12 +413,15 @@ class PackagerError(Exception):
 
 class PackagerFactory(object):
 
-    def create(self, python_type):
+    def create(self, python_type, non_zero):
         if python_type == None:
             return PackagerFactory.SkipPackager()
         if python_type == int:
-            return PackagerFactory.IntPackager()
-        if python_type == float:
+            if non_zero == False:
+                return PackagerFactory.IntPackager()
+            else:
+                return PackagerFactory.IntNonZeroPackager()
+        if python_type == float and non_zero == False:
             return PackagerFactory.FloatPackager()
         if python_type == str:
             return PackagerFactory.StringPackager()
@@ -450,6 +453,8 @@ class PackagerFactory(object):
             raise core.api.InterfaceNotImplemented(self)
         def get_python_type(self):
             raise core.api.InterfaceNotImplemented(self)
+        def is_non_zero(self):
+            return False
         
     class IntPackager(IPackager):
         def pack(self, unpacked_data):
@@ -469,6 +474,14 @@ class PackagerFactory(object):
         def get_python_type(self):
             return int
     
+    class IntNonZeroPackager(IntPackager):
+        def pack(self, unpacked_data):
+            if unpacked_data == 0:
+                raise PackagerError()
+            return PackagerFactory.IntPackager.pack(self, unpacked_data)
+        def is_non_zero(self):
+            return True
+
     class FloatPackager(IPackager):
         def pack(self, unpacked_data):
             if not isinstance(unpacked_data, float):
@@ -487,6 +500,14 @@ class PackagerFactory(object):
         def get_python_type(self):
             return float
 
+    class FloatNonZeroPackager(FloatPackager):
+        def pack(self, unpacked_data):
+            if unpacked_data == 0:
+                raise PackagerError()
+            return PackagerFactory.FloatPackager.pack(self, unpacked_data)
+        def is_non_zero(self):
+            return True
+
     class StringPackager(IPackager):
         def pack(self, unpacked_data):
             if not isinstance(unpacked_data, str):
@@ -552,7 +573,7 @@ class Namespace(object):
             self.db.create_table(name, support_regions)
         else:
             for column in self.db.iterate_columns(name):
-                self.add_field(column.name, PackagerFactory().get_python_type(column.sql_type))
+                self.add_field(column.name, PackagerFactory().get_python_type(column.sql_type), non_zero=column.non_zero)
         
     def get_name(self):
         return self.name
@@ -560,16 +581,16 @@ class Namespace(object):
     def are_regions_supported(self):
         return self.support_regions
     
-    def add_field(self, field_name, python_type):
+    def add_field(self, field_name, python_type, non_zero=False):
         if not isinstance(field_name, str):
             raise FieldError(field_name, "field_name not a string")
-        packager = PackagerFactory().create(python_type)
+        packager = PackagerFactory().create(python_type, non_zero)
         if field_name in self.fields.keys():
             raise FieldError(field_name, "double used")
         self.fields[field_name] = packager
         
         if self.db.check_column(self.get_name(), field_name) == False:        
-            self.db.create_column(self.name, field_name, packager.get_sql_type())
+            self.db.create_column(self.name, field_name, packager.get_sql_type(), non_zero=non_zero)
     
     def iterate_field_names(self):
         for name in self.fields.keys():
@@ -744,8 +765,12 @@ class Loader(object):
         
         result = AggregatedData(self, path)
         for name in namespaces:
+            namespace = self.get_namespace(name)
             data = self.db.aggregate_rows(name, path_like = final_path_like)
             for field in data.keys():
+                if namespace.get_field_packager(field).is_non_zero() == True:
+                    data[field]['min'] = None
+                    data[field]['avg'] = None
                 result.set_data(name, field, data[field])
         
         return result
@@ -753,6 +778,8 @@ class Loader(object):
     def load_selected_data(self, namespace, fields = None, path = None, path_like_filter = "%", filters = []):
         if self.db == None:
             return None
+        
+        # TODO implement restriction for non_zero fields
 
         final_path_like = path_like_filter
         if path != None:

+ 1 - 1
mainline/core/db/post.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 54 - 7
mainline/core/db/sqlite.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    
@@ -36,10 +36,16 @@ class Database(object):
             self.support_regions = support_regions
     
     class ColumnData(object):
-        def __init__(self, column_id, name, sql_type):
+        def __init__(self, column_id, name, sql_type, non_zero):
             self.id = column_id
             self.name = name
             self.sql_type = sql_type
+            self.non_zero = non_zero
+
+    class TagData(object):
+        def __init__(self, tag_id, name):
+            self.id = tag_id
+            self.name = name
 
     class FileData(object):
         def __init__(self, file_id, path, checksum):
@@ -87,6 +93,10 @@ class Database(object):
     class InternalCleanUpUtils(object):
         
         def clean_up_not_confirmed(self, db_loader):
+            sql = "DELETE FROM __tags__ WHERE (confirmed = 0)"
+            db_loader.log(sql)
+            db_loader.conn.execute(sql)
+
             sql = "SELECT * FROM __tables__ WHERE (confirmed = 0)"
             db_loader.log(sql)
             for table in db_loader.conn.execute(sql).fetchall():
@@ -186,6 +196,9 @@ class Database(object):
             sql = "UPDATE __columns__ SET confirmed = 0"
             self.log(sql)
             self.conn.execute(sql)
+            sql = "UPDATE __tags__ SET confirmed = 0"
+            self.log(sql)
+            self.conn.execute(sql)
             sql = "UPDATE __files__ SET confirmed = 0"
             self.log(sql)
             self.conn.execute(sql)
@@ -209,10 +222,13 @@ class Database(object):
                 sql = "CREATE TABLE __tables__ (id integer NOT NULL PRIMARY KEY, name text NOT NULL, support_regions integer NOT NULL, confirmed integer NOT NULL, UNIQUE (name))"
                 self.log(sql)
                 self.conn.execute(sql)
-                sql = "CREATE TABLE __columns__ (id integer NOT NULL PRIMARY KEY, name text NOT NULL, type text NOT NULL, table_id integer NOT_NULL, confirmed integer NOT NULL, UNIQUE (name, table_id))"
+                sql = "CREATE TABLE __columns__ (id integer NOT NULL PRIMARY KEY, name text NOT NULL, type text NOT NULL, table_id integer NOT_NULL, non_zero integer NOT NULL, confirmed integer NOT NULL, UNIQUE (name, table_id))"
+                self.log(sql)
+                self.conn.execute(sql)
+                sql = "CREATE TABLE __tags__ (id integer NOT NULL PRIMARY KEY, name text NOT NULL UNIQUE, confirmed integer NOT NULL)"
                 self.log(sql)
                 self.conn.execute(sql)
-                sql = "CREATE TABLE __files__ (id integer NOT NULL PRIMARY KEY AUTOINCREMENT, path text NOT NULL, checksum integer NOT NULL, confirmed integer NOT NULL, UNIQUE(path))"
+                sql = "CREATE TABLE __files__ (id integer NOT NULL PRIMARY KEY AUTOINCREMENT, path text NOT NULL, checksum integer NOT NULL, tag1 integer, tag2 integer, tag3 integer, confirmed integer NOT NULL, UNIQUE(path))"
                 self.log(sql)
                 self.conn.execute(sql)
                 sql = "CREATE TABLE __regions__ (file_id integer NOT NULL, region_id integer NOT NULL, name text NOT NULL, begin integer NOT NULL, end integer NOT NULL, line_begin integer NOT NULL, line_end integer NOT NULL, cursor integer NOT NULL, group_id integer NOT NULL, checksum integer NOT NULL, PRIMARY KEY (file_id, region_id))"
@@ -262,7 +278,7 @@ class Database(object):
             return False
         return True
 
-    def create_column(self, table_name, column_name, column_type):
+    def create_column(self, table_name, column_name, column_type, non_zero=False):
         assert(self.read_only == False)
         if column_type == None:
             logging.debug("Skipping column '" + column_name + "' creation for table '" + table_name + "'")
@@ -287,7 +303,7 @@ class Database(object):
         sql = "SELECT id FROM __tables__ WHERE (name = '" + table_name + "')"
         self.log(sql)
         table_id = self.conn.execute(sql).next()['id']
-        sql = "INSERT INTO __columns__ (name, type, table_id, confirmed) VALUES ('" + column_name + "', '" + column_type + "', '" + str(table_id) + "', 1)"
+        sql = "INSERT INTO __columns__ (name, type, table_id, non_zero, confirmed) VALUES ('" + column_name + "', '" + column_type + "', '" + str(table_id) + "', '" + str(int(non_zero)) + "', 1)"
         self.log(sql)
         self.conn.execute(sql)        
 
@@ -299,7 +315,7 @@ class Database(object):
         self.log(sql)
         result = self.conn.execute(sql).fetchall()
         for row in result:
-            yield self.ColumnData(int(row["id"]), str(row["name"]), str(row["type"]))
+            yield self.ColumnData(int(row["id"]), str(row["name"]), str(row["type"]), bool(row["non_zero"]))
 
     def check_column(self, table_name, column_name):
         sql = "SELECT id FROM __tables__ WHERE (name = '" + table_name + "')"
@@ -312,6 +328,37 @@ class Database(object):
             return False
         return True
     
+    def create_tag(self, tag_name):
+        assert(self.read_only == False)
+        
+        sql = "SELECT * FROM __tags__ WHERE (name = '" + tag_name + "' AND confirmed == 0)"
+        self.log(sql)
+        result = self.conn.execute(sql).fetchall()
+        if len(result) != 0:
+            sql = "UPDATE __tags__ SET confirmed = 1 WHERE (name = '" + tag_name + "')"
+            self.log(sql)
+            self.conn.execute(sql)
+            return        
+        
+        sql = "INSERT INTO __tags__ (name, confirmed) VALUES ('" + tag_name + "', 1)"
+        self.log(sql)
+        self.conn.execute(sql)        
+
+    def iterate_tags(self):
+        sql = "SELECT * FROM __tags__ WHERE (confirmed = 1)"
+        self.log(sql)
+        result = self.conn.execute(sql).fetchall()
+        for row in result:
+            yield self.TagData(int(row["id"]), str(row["name"]))
+
+    def check_tag(self, tag_name):
+        sql = "SELECT * FROM __tags__ WHERE (name = '" + tag_name + "' AND confirmed = 1)"
+        self.log(sql)
+        result = self.conn.execute(sql).fetchall()
+        if len(result) == 0:
+            return False
+        return True
+
     def create_file(self, path, checksum):
         assert(self.read_only == False)
         path = self.InternalPathUtils().normalize_path(path)

+ 1 - 1
mainline/core/db/utils.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/dir.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/__init__.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/convert.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/cout.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/utils/__init__.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/utils/py2txt.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/export/utils/py2xml.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/ext-priority/core.db.post.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/core/ext-priority/core.dir.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/core/ext-priority/core.log.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/core/loader.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/log.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/core/warn.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 2 - 2
mainline/doc/index-online.html

@@ -1,7 +1,7 @@
 <!--
 
     Metrix++, Copyright 2009-2013, Metrix++ Project
-    Link: http://swi.sourceforge.net
+    Link: http://metrixplusplus.sourceforge.net
     
     This file is part of Metrix++ Tool.
     
@@ -27,7 +27,7 @@
 <meta http-equiv="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
 <meta http-equiv="pragma" content="no-cache" />
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5" />
-<meta http-equiv="REFRESH" content="0;url=http://swi.svn.sourceforge.net/viewvc/swi/mainline/doc/project.html">
+<meta http-equiv="REFRESH" content="0;url=http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/doc/project.html">
 <title>Metrix++ Index Page</title>
 </head>
 <body>

+ 1 - 1
mainline/doc/index.html

@@ -1,7 +1,7 @@
 <!--
 
     Metrix++, Copyright 2009-2013, Metrix++ Project
-    Link: http://swi.sourceforge.net
+    Link: http://metrixplusplus.sourceforge.net
     
     This file is part of Metrix++ Tool.
     

+ 1 - 1
mainline/doc/limitations.txt

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 12 - 12
mainline/doc/project.html

@@ -2,7 +2,7 @@
 <!--
 
 Metrix++, Copyright 2009-2013, Metrix++ Project
-Link: http://swi.sourceforge.net
+Link: http://metrixplusplus.sourceforge.net
 
 This file is part of Metrix++ Tool.
 
@@ -45,7 +45,7 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
       <td><img src="logo_project.png" alt="Software Index Project Page" /></td>
       <td valign="top">
         <div align="right">
-        <p align="center"><a href="http://sourceforge.net/projects/swi"
+        <p align="center"><a href="http://sourceforge.net/projects/metrixplusplus"
         class="lowImportance"><img
         src="http://sflogo.sourceforge.net/sflogo.php?group_id=275605&amp;type=13"
         alt="Get Software Index at SourceForge.net. Fast, secure and Free Open Source software downloads"
@@ -157,10 +157,10 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
 
                 <p>For the installation of the <span
                 class="normalImportance">Metrix++</span> <a
-                href="http://sourceforge.net/projects/swi/files/">download</a>
+                href="http://sourceforge.net/projects/metrixplusplus/files/">download</a>
                 the archive and unpack it to some folder. Also, there is an
                 option to get the <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/">source
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/">source
                 code</a> from the version conrol system.</p>
 
                 <h4>Prerequisites:</h4>
@@ -199,7 +199,7 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
 
                 <p>Check 'doc/limitations.txt' file distributed with the tool
                 or browse for recent version <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/doc/limitations.txt">online</a>.</p>
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/doc/limitations.txt">online</a>.</p>
 
                 <h4>Basic Workflow</h4>
 
@@ -433,9 +433,9 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
                 <p>Unfortunately, there is no rich documentation at this stage.
                 Briefly, any new plugin starts with creating 2 new files: 'ini'
                 and 'py'. You can copy from other avaialble (for example, <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/ext/std/code/complexity.ini">ini</a>
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/ext/std/code/complexity.ini">ini</a>
                 and <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/ext/std/code/complexity.py">py</a>
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/ext/std/code/complexity.py">py</a>
                 files for the standard complexity plugin) and impelement the
                 logic related to the new metric.</p>
 
@@ -443,12 +443,12 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
 
                 <p>Unfortunately, there is no rich documentation at this stage.
                 Briefly, database API (class Loader implemented in '<a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/core/db/loader.py">core.db.loader</a>')
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/core/db/loader.py">core.db.loader</a>')
                 is a starting point for any new post-analysis tool. There are 2
                 standard tools (<a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/export.py">export.py</a>
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/export.py">export.py</a>
                 and <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/limit.py">limit.py</a>)
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/limit.py">limit.py</a>)
                 available which use this API.</p>
 
                 <h4>New Language Support</h4>
@@ -468,7 +468,7 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
                 </ul>
 
                 <p>Parser for C/C++ language can serve as <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/ext/std/code/cpp.py">an
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/ext/std/code/cpp.py">an
                 example</a>. There useful options are avaialble for
                 trobuleshooting purposes during development:</p>
                 <ul>
@@ -496,7 +496,7 @@ along with Metrix++. If not, see <http://www.gnu.org/licenses/>.
                 <h4>Source Code Repository</h4>
 
                 <p>Source code is in the Subversion <a
-                href="http://swi.svn.sourceforge.net/viewvc/swi/mainline/">repository</a>
+                href="http://metrixplusplus.svn.sourceforge.net/viewvc/metrixplusplus/mainline/">repository</a>
                 used by the project.</p>
               </td>
             </tr>

+ 1 - 1
mainline/doc/style.css

@@ -1,7 +1,7 @@
 /*
 
     Metrix++, Copyright 2009-2013, Metrix++ Project
-    Link: http://swi.sourceforge.net
+    Link: http://metrixplusplus.sourceforge.net
     
     This file is a part of Metrix++ Tool.
     

+ 1 - 1
mainline/export.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/__init__.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/brackets.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/ext/std/code/brackets.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/complexity.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/ext/std/code/complexity.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/cpp.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/ext/std/code/cpp.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/dumper.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/ext/std/code/dumper.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/ext/std/code/test.ini

@@ -1,6 +1,6 @@
 ;
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    

+ 1 - 1
mainline/ext/std/code/test.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 1 - 1
mainline/limit.py

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    

+ 2 - 2
mainline/readme.txt

@@ -1,6 +1,6 @@
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    This file is a part of Metrix++ Tool.
 #    
@@ -26,7 +26,7 @@
      - post processing tools.
 
     Check projects documentation for additional information:
-     - http://swi.sourceforge.net
+     - http://metrixplusplus.sourceforge.net
      - ./doc folder within the distributive
 
     Bug reporting, feature requests and feedback: