24VARIABLE_NAME =
'aSVGScript'
27 return 'static const char %s%d[] =' % ( VARIABLE_NAME, n )
29script_name = os.path.basename( sys.argv[0] )
30infile_name = sys.argv[1]
31outfile_name = sys.argv[2]
35if(
not os.path.isfile( infile_name ) ):
36 print (
'%s: error: file "%s" not found' % ( script_name, infile_name ) )
39infile = open( infile_name,
'r' )
40in_lines = [line.rstrip()
for line
in infile.readlines()]
45is_multiline_comment =
False
50 index = line.find(
'"')
52 print (
'%s: warning: processed file contains \'"\' at %d:%d' % ( script_name, lineNumber, index ) )
57 if( is_multiline_comment
and sline.endswith(
'*/' ) ):
58 is_multiline_comment =
False
61 if( is_multiline_comment ):
64 if( sline.startswith(
'//' ) ):
67 if( sline.startswith(
'/*' )
and sline.endswith(
'*/' ) ):
70 if( ( sline.startswith(
'/*' )
and not sline.startswith(
'/*****' ) )
71 or sline.startswith(
'/******' ) ):
72 is_multiline_comment =
True
76 dline = line.replace(
'NAVDBG.on',
'NAVDBG.off' )
77 dline = dline.replace(
'ANIMDBG.on',
'ANIMDBG.off' )
78 dline = dline.replace(
'DebugPrinter.on',
'DebugPrinter.off' )
80 escaped_line =
'%s' % dline
81 escaped_line = escaped_line.rstrip().lstrip()
84 if( escaped_line ==
'' ):
89 if( emptyLineCount > 2 ):
93 escaped_line = escaped_line.replace(
'\\',
'\\\\' )
94 escaped_line = escaped_line.replace(
'\n',
'\\n')
95 escaped_line = escaped_line.replace(
'\t',
'\\t' )
97 valid_lines.append( escaped_line )
101total_valid_lines = len (valid_lines) + 2
102total_fragments = total_valid_lines / MAX_LINES
103if( ( total_valid_lines % MAX_LINES ) != 0 ):
109out_lines.append(
'' )
110out_lines.append(
'#define N_SVGSCRIPT_FRAGMENTS %d' % total_fragments )
111out_lines.append(
'' )
113out_lines.append(
'"<![CDATA[\\n\\' )
116for line
in valid_lines:
117 out_lines.append( line +
'\\n\\' )
118 if( i == MAX_LINES ):
121 out_lines.append(
'";' )
122 out_lines.append(
'' )
124 out_lines.append(
'"\\' )
127out_lines.append(
']]>";' )
128out_lines.append(
'' )
130out_lines.append(
'static const char * g_SVGScripts[N_SVGSCRIPT_FRAGMENTS] = {')
131for j
in range(0, fragment+1):
132 out_lines.append(
" %s%d," % (VARIABLE_NAME, j))
133out_lines.append(
'};')
135outfile = open( outfile_name,
'w' )
136if(
not os.path.isfile( outfile_name ) ):
137 print (
'%s: error: I cannot create file "%s"' % ( script_name, outfile_name ) )
142header_info =
'/* !! This file is auto-generated, do not edit !! */'
144outfile.write( header_info +
'\n\n' )
146for line
in out_lines:
147 outfile.write( line +
'\n' )