瀏覽代碼

Project unix name has been changed, non_zero column field implemented

avkonst 12 年之前
父節點
當前提交
75450087b4
共有 41 個文件被更改,包括 141 次插入67 次删除
  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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    This file is a part of Metrix++ Tool.
 #    
 #    

+ 1 - 1
mainline/core/__init__.py

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

+ 1 - 1
mainline/core/api.py

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

+ 1 - 1
mainline/core/cmdparser.py

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

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

@@ -1,6 +1,6 @@
 #
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    This file is a part of Metrix++ Tool.
 #    
 #    
@@ -36,10 +36,16 @@ class Database(object):
             self.support_regions = support_regions
             self.support_regions = support_regions
     
     
     class ColumnData(object):
     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.id = column_id
             self.name = name
             self.name = name
             self.sql_type = sql_type
             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):
     class FileData(object):
         def __init__(self, file_id, path, checksum):
         def __init__(self, file_id, path, checksum):
@@ -87,6 +93,10 @@ class Database(object):
     class InternalCleanUpUtils(object):
     class InternalCleanUpUtils(object):
         
         
         def clean_up_not_confirmed(self, db_loader):
         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)"
             sql = "SELECT * FROM __tables__ WHERE (confirmed = 0)"
             db_loader.log(sql)
             db_loader.log(sql)
             for table in db_loader.conn.execute(sql).fetchall():
             for table in db_loader.conn.execute(sql).fetchall():
@@ -186,6 +196,9 @@ class Database(object):
             sql = "UPDATE __columns__ SET confirmed = 0"
             sql = "UPDATE __columns__ SET confirmed = 0"
             self.log(sql)
             self.log(sql)
             self.conn.execute(sql)
             self.conn.execute(sql)
+            sql = "UPDATE __tags__ SET confirmed = 0"
+            self.log(sql)
+            self.conn.execute(sql)
             sql = "UPDATE __files__ SET confirmed = 0"
             sql = "UPDATE __files__ SET confirmed = 0"
             self.log(sql)
             self.log(sql)
             self.conn.execute(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))"
                 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.log(sql)
                 self.conn.execute(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.log(sql)
                 self.conn.execute(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.log(sql)
                 self.conn.execute(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))"
                 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 False
         return True
         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)
         assert(self.read_only == False)
         if column_type == None:
         if column_type == None:
             logging.debug("Skipping column '" + column_name + "' creation for table '" + table_name + "'")
             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 + "')"
         sql = "SELECT id FROM __tables__ WHERE (name = '" + table_name + "')"
         self.log(sql)
         self.log(sql)
         table_id = self.conn.execute(sql).next()['id']
         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.log(sql)
         self.conn.execute(sql)        
         self.conn.execute(sql)        
 
 
@@ -299,7 +315,7 @@ class Database(object):
         self.log(sql)
         self.log(sql)
         result = self.conn.execute(sql).fetchall()
         result = self.conn.execute(sql).fetchall()
         for row in result:
         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):
     def check_column(self, table_name, column_name):
         sql = "SELECT id FROM __tables__ WHERE (name = '" + table_name + "')"
         sql = "SELECT id FROM __tables__ WHERE (name = '" + table_name + "')"
@@ -312,6 +328,37 @@ class Database(object):
             return False
             return False
         return True
         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):
     def create_file(self, path, checksum):
         assert(self.read_only == False)
         assert(self.read_only == False)
         path = self.InternalPathUtils().normalize_path(path)
         path = self.InternalPathUtils().normalize_path(path)

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

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

+ 1 - 1
mainline/core/dir.py

@@ -1,6 +1,6 @@
 #
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    This file is a part of Metrix++ Tool.
 ;    
 ;    

+ 1 - 1
mainline/core/loader.py

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

+ 1 - 1
mainline/core/log.py

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

+ 1 - 1
mainline/core/warn.py

@@ -1,6 +1,6 @@
 #
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
     Metrix++, Copyright 2009-2013, Metrix++ Project
-    Link: http://swi.sourceforge.net
+    Link: http://metrixplusplus.sourceforge.net
     
     
     This file is part of Metrix++ Tool.
     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="expires" content="Tue, 01 Jan 1980 1:00:00 GMT" />
 <meta http-equiv="pragma" content="no-cache" />
 <meta http-equiv="pragma" content="no-cache" />
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-5" />
 <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>
 <title>Metrix++ Index Page</title>
 </head>
 </head>
 <body>
 <body>

+ 1 - 1
mainline/doc/index.html

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

+ 1 - 1
mainline/doc/limitations.txt

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

+ 12 - 12
mainline/doc/project.html

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

+ 1 - 1
mainline/doc/style.css

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

+ 1 - 1
mainline/export.py

@@ -1,6 +1,6 @@
 #
 #
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    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
 ;    Metrix++, Copyright 2009-2013, Metrix++ Project
-;    Link: http://swi.sourceforge.net
+;    Link: http://metrixplusplus.sourceforge.net
 ;    
 ;    
 ;    This file is a part of Metrix++ Tool.
 ;    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
 #    Metrix++, Copyright 2009-2013, Metrix++ Project
-#    Link: http://swi.sourceforge.net
+#    Link: http://metrixplusplus.sourceforge.net
 #    
 #    
 #    This file is a part of Metrix++ Tool.
 #    This file is a part of Metrix++ Tool.
 #    
 #    

+ 1 - 1
mainline/limit.py

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

+ 2 - 2
mainline/readme.txt

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