~ubuntu-branches/ubuntu/vivid/emscripten/vivid

« back to all changes in this revision

Viewing changes to tests/freetype/src/tools/docmaker/utils.py

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2013-05-02 13:11:51 UTC
  • Revision ID: package-import@ubuntu.com-20130502131151-q8dvteqr1ef2x7xz
Tags: upstream-1.4.1~20130504~adb56cb
ImportĀ upstreamĀ versionĀ 1.4.1~20130504~adb56cb

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#  Utils (c) 2002, 2004, 2007, 2008  David Turner <david@freetype.org>
 
2
#
 
3
 
 
4
import string, sys, os, glob
 
5
 
 
6
# current output directory
 
7
#
 
8
output_dir = None
 
9
 
 
10
 
 
11
# This function is used to sort the index.  It is a simple lexicographical
 
12
# sort, except that it places capital letters before lowercase ones.
 
13
#
 
14
def  index_sort( s1, s2 ):
 
15
    if not s1:
 
16
        return -1
 
17
 
 
18
    if not s2:
 
19
        return 1
 
20
 
 
21
    l1 = len( s1 )
 
22
    l2 = len( s2 )
 
23
    m1 = string.lower( s1 )
 
24
    m2 = string.lower( s2 )
 
25
 
 
26
    for i in range( l1 ):
 
27
        if i >= l2 or m1[i] > m2[i]:
 
28
            return 1
 
29
 
 
30
        if m1[i] < m2[i]:
 
31
            return -1
 
32
 
 
33
        if s1[i] < s2[i]:
 
34
            return -1
 
35
 
 
36
        if s1[i] > s2[i]:
 
37
            return 1
 
38
 
 
39
    if l2 > l1:
 
40
        return -1
 
41
 
 
42
    return 0
 
43
 
 
44
 
 
45
# Sort input_list, placing the elements of order_list in front.
 
46
#
 
47
def  sort_order_list( input_list, order_list ):
 
48
    new_list = order_list[:]
 
49
    for id in input_list:
 
50
        if not id in order_list:
 
51
            new_list.append( id )
 
52
    return new_list
 
53
 
 
54
 
 
55
# Open the standard output to a given project documentation file.  Use
 
56
# "output_dir" to determine the filename location if necessary and save the
 
57
# old stdout in a tuple that is returned by this function.
 
58
#
 
59
def  open_output( filename ):
 
60
    global output_dir
 
61
 
 
62
    if output_dir and output_dir != "":
 
63
        filename = output_dir + os.sep + filename
 
64
 
 
65
    old_stdout = sys.stdout
 
66
    new_file   = open( filename, "w" )
 
67
    sys.stdout = new_file
 
68
 
 
69
    return ( new_file, old_stdout )
 
70
 
 
71
 
 
72
# Close the output that was returned by "close_output".
 
73
#
 
74
def  close_output( output ):
 
75
    output[0].close()
 
76
    sys.stdout = output[1]
 
77
 
 
78
 
 
79
# Check output directory.
 
80
#
 
81
def  check_output():
 
82
    global output_dir
 
83
    if output_dir:
 
84
        if output_dir != "":
 
85
            if not os.path.isdir( output_dir ):
 
86
                sys.stderr.write( "argument" + " '" + output_dir + "' " + \
 
87
                                  "is not a valid directory" )
 
88
                sys.exit( 2 )
 
89
        else:
 
90
            output_dir = None
 
91
 
 
92
 
 
93
def  file_exists( pathname ):
 
94
    """checks that a given file exists"""
 
95
    result = 1
 
96
    try:
 
97
        file = open( pathname, "r" )
 
98
        file.close()
 
99
    except:
 
100
        result = None
 
101
        sys.stderr.write( pathname + " couldn't be accessed\n" )
 
102
 
 
103
    return result
 
104
 
 
105
 
 
106
def  make_file_list( args = None ):
 
107
    """builds a list of input files from command-line arguments"""
 
108
    file_list = []
 
109
    # sys.stderr.write( repr( sys.argv[1 :] ) + '\n' )
 
110
 
 
111
    if not args:
 
112
        args = sys.argv[1 :]
 
113
 
 
114
    for pathname in args:
 
115
        if string.find( pathname, '*' ) >= 0:
 
116
            newpath = glob.glob( pathname )
 
117
            newpath.sort()  # sort files -- this is important because
 
118
                            # of the order of files
 
119
        else:
 
120
            newpath = [pathname]
 
121
 
 
122
        file_list.extend( newpath )
 
123
 
 
124
    if len( file_list ) == 0:
 
125
        file_list = None
 
126
    else:
 
127
        # now filter the file list to remove non-existing ones
 
128
        file_list = filter( file_exists, file_list )
 
129
 
 
130
    return file_list
 
131
 
 
132
# eof