aboutsummaryrefslogtreecommitdiff
path: root/freetype/src/tools
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-12-21 15:22:51 +0000
committermarha <marha@users.sourceforge.net>2009-12-21 15:22:51 +0000
commit1ee02cd0419021c3d4950af2619da39c6e9c47f0 (patch)
treef5b61f7d9e151c7a64cff51399560ffb77800349 /freetype/src/tools
parentd8432fdd4f13e9f9d1d44f5482faeb56562661a9 (diff)
downloadvcxsrv-1ee02cd0419021c3d4950af2619da39c6e9c47f0.tar.gz
vcxsrv-1ee02cd0419021c3d4950af2619da39c6e9c47f0.tar.bz2
vcxsrv-1ee02cd0419021c3d4950af2619da39c6e9c47f0.zip
Updated to freetype-2.3.11
Diffstat (limited to 'freetype/src/tools')
-rw-r--r--freetype/src/tools/chktrcmp.py114
-rw-r--r--freetype/src/tools/docmaker/content.py2
-rw-r--r--freetype/src/tools/test_afm.c2
3 files changed, 116 insertions, 2 deletions
diff --git a/freetype/src/tools/chktrcmp.py b/freetype/src/tools/chktrcmp.py
new file mode 100644
index 000000000..d0f342e6b
--- /dev/null
+++ b/freetype/src/tools/chktrcmp.py
@@ -0,0 +1,114 @@
+#!/usr/bin/env python
+#
+# Check trace components in FreeType 2 source.
+# Author: suzuki toshiya, 2009
+#
+# This code is explicitly into the public domain.
+
+
+import sys
+import os
+import re
+
+SRC_FILE_LIST = []
+USED_COMPONENT = {}
+KNOWN_COMPONENT = {}
+
+SRC_FILE_DIRS = [ "src" ]
+TRACE_DEF_FILES = [ "include/freetype/internal/fttrace.h" ]
+
+
+# --------------------------------------------------------------
+# Parse command line options
+#
+
+for i in range( 1, len( sys.argv ) ):
+ if sys.argv[i].startswith( "--help" ):
+ print "Usage: %s [option]" % sys.argv[0]
+ print "Search used-but-defined and defined-but-not-used trace_XXX macros"
+ print ""
+ print " --help:"
+ print " Show this help"
+ print ""
+ print " --src-dirs=dir1:dir2:..."
+ print " Specify the directories of C source files to be checked"
+ print " Default is %s" % ":".join( SRC_FILE_DIRS )
+ print ""
+ print " --def-files=file1:file2:..."
+ print " Specify the header files including FT_TRACE_DEF()"
+ print " Default is %s" % ":".join( TRACE_DEF_FILES )
+ print ""
+ exit(0)
+ if sys.argv[i].startswith( "--src-dirs=" ):
+ SRC_FILE_DIRS = sys.argv[i].replace( "--src-dirs=", "", 1 ).split( ":" )
+ elif sys.argv[i].startswith( "--def-files=" ):
+ TRACE_DEF_FILES = sys.argv[i].replace( "--def-files=", "", 1 ).split( ":" )
+
+
+# --------------------------------------------------------------
+# Scan C source and header files using trace macros.
+#
+
+c_pathname_pat = re.compile( '^.*\.[ch]$', re.IGNORECASE )
+trace_use_pat = re.compile( '^[ \t]*#define[ \t]+FT_COMPONENT[ \t]+trace_' )
+
+for d in SRC_FILE_DIRS:
+ for ( p, dlst, flst ) in os.walk( d ):
+ for f in flst:
+ if c_pathname_pat.match( f ) != None:
+ src_pathname = os.path.join( p, f )
+
+ line_num = 0
+ for src_line in open( src_pathname, 'r' ):
+ line_num = line_num + 1
+ src_line = src_line.strip()
+ if trace_use_pat.match( src_line ) != None:
+ component_name = trace_use_pat.sub( '', src_line )
+ if component_name in USED_COMPONENT:
+ USED_COMPONENT[component_name].append( "%s:%d" % ( src_pathname, line_num ) )
+ else:
+ USED_COMPONENT[component_name] = [ "%s:%d" % ( src_pathname, line_num ) ]
+
+
+# --------------------------------------------------------------
+# Scan header file(s) defining trace macros.
+#
+
+trace_def_pat_opn = re.compile( '^.*FT_TRACE_DEF[ \t]*\([ \t]*' )
+trace_def_pat_cls = re.compile( '[ \t\)].*$' )
+
+for f in TRACE_DEF_FILES:
+ line_num = 0
+ for hdr_line in open( f, 'r' ):
+ line_num = line_num + 1
+ hdr_line = hdr_line.strip()
+ if trace_def_pat_opn.match( hdr_line ) != None:
+ component_name = trace_def_pat_opn.sub( '', hdr_line )
+ component_name = trace_def_pat_cls.sub( '', component_name )
+ if component_name in KNOWN_COMPONENT:
+ print "trace component %s is defined twice, see %s and fttrace.h:%d" % \
+ ( component_name, KNOWN_COMPONENT[component_name], line_num )
+ else:
+ KNOWN_COMPONENT[component_name] = "%s:%d" % \
+ ( os.path.basename( f ), line_num )
+
+
+# --------------------------------------------------------------
+# Compare the used and defined trace macros.
+#
+
+print "# Trace component used in the implementations but not defined in fttrace.h."
+cmpnt = USED_COMPONENT.keys()
+cmpnt.sort()
+for c in cmpnt:
+ if c not in KNOWN_COMPONENT:
+ print "Trace component %s (used in %s) is not defined." % ( c, ", ".join( USED_COMPONENT[c] ) )
+
+print "# Trace component is defined but not used in the implementations."
+cmpnt = KNOWN_COMPONENT.keys()
+cmpnt.sort()
+for c in cmpnt:
+ if c not in USED_COMPONENT:
+ if c != "any":
+ print "Trace component %s (defined in %s) is not used." % ( c, KNOWN_COMPONENT[c] )
+
diff --git a/freetype/src/tools/docmaker/content.py b/freetype/src/tools/docmaker/content.py
index 0d76d19de..b398955b8 100644
--- a/freetype/src/tools/docmaker/content.py
+++ b/freetype/src/tools/docmaker/content.py
@@ -540,7 +540,7 @@ class DocBlock:
while start < end and not string.strip( source[end] ):
end = end - 1
- if start == end:
+ if start == end and not string.strip( source[start] ):
self.code = []
else:
self.code = source[start:end + 1]
diff --git a/freetype/src/tools/test_afm.c b/freetype/src/tools/test_afm.c
index d53cb3325..f5f99363c 100644
--- a/freetype/src/tools/test_afm.c
+++ b/freetype/src/tools/test_afm.c
@@ -63,7 +63,7 @@
int
dummy_get_index( const char* name,
- FT_UInt len,
+ FT_Offset len,
void* user_data )
{
if ( len )