Sync trunk.
[reactos.git] / lib / 3rdparty / freetype / src / tools / docmaker / docbeauty.py
1 #!/usr/bin/env python
2 #
3 # DocBeauty (c) 2003, 2004, 2008 David Turner <david@freetype.org>
4 #
5 # This program is used to beautify the documentation comments used
6 # in the FreeType 2 public headers.
7 #
8
9 from sources import *
10 from content import *
11 from utils import *
12
13 import utils
14
15 import sys, os, time, string, getopt
16
17
18 content_processor = ContentProcessor()
19
20
21 def beautify_block( block ):
22 if block.content:
23 content_processor.reset()
24
25 markups = content_processor.process_content( block.content )
26 text = []
27 first = 1
28
29 for markup in markups:
30 text.extend( markup.beautify( first ) )
31 first = 0
32
33 # now beautify the documentation "borders" themselves
34 lines = [" /*************************************************************************"]
35 for l in text:
36 lines.append( " *" + l )
37 lines.append( " */" )
38
39 block.lines = lines
40
41
42 def usage():
43 print "\nDocBeauty 0.1 Usage information\n"
44 print " docbeauty [options] file1 [file2 ...]\n"
45 print "using the following options:\n"
46 print " -h : print this page"
47 print " -b : backup original files with the 'orig' extension"
48 print ""
49 print " --backup : same as -b"
50
51
52 def main( argv ):
53 """main program loop"""
54
55 global output_dir
56
57 try:
58 opts, args = getopt.getopt( sys.argv[1:], \
59 "hb", \
60 ["help", "backup"] )
61 except getopt.GetoptError:
62 usage()
63 sys.exit( 2 )
64
65 if args == []:
66 usage()
67 sys.exit( 1 )
68
69 # process options
70 #
71 output_dir = None
72 do_backup = None
73
74 for opt in opts:
75 if opt[0] in ( "-h", "--help" ):
76 usage()
77 sys.exit( 0 )
78
79 if opt[0] in ( "-b", "--backup" ):
80 do_backup = 1
81
82 # create context and processor
83 source_processor = SourceProcessor()
84
85 # retrieve the list of files to process
86 file_list = make_file_list( args )
87 for filename in file_list:
88 source_processor.parse_file( filename )
89
90 for block in source_processor.blocks:
91 beautify_block( block )
92
93 new_name = filename + ".new"
94 ok = None
95
96 try:
97 file = open( new_name, "wt" )
98 for block in source_processor.blocks:
99 for line in block.lines:
100 file.write( line )
101 file.write( "\n" )
102 file.close()
103 except:
104 ok = 0
105
106
107 # if called from the command line
108 #
109 if __name__ == '__main__':
110 main( sys.argv )
111
112
113 # eof