1
2
3
4
5
6 import os
7 import pprint
8 import instruction
11 """
12 The instance of this class holds a list of user defined directories.
13 L{include_t} and {precompiled_header_t} code creators use it to generate
14 relative include directives.
15 """
20
21 @staticmethod
23 return os.path.normpath( os.path.normcase( path ) )
24
26 self._user_defined = map( self.normalize, self._user_defined )
27 return self._user_defined
29 self._user_defined = includes
30 user_defined = property( _get_user_defined, _set_user_defined )
31
33 self._std = map( self.normalize, self._std )
34 return self._std
37 std = property( _get_std, _set_std )
38
44
47
49 lcp = ''
50 for predefined_header in headers:
51 dname = os.path.commonprefix( [ predefined_header, header ] )
52 if dname == predefined_header and len( dname ) > len( lcp ):
53 lcp = dname
54 if not lcp:
55 return header
56 new_header = header[ len( lcp ): ]
57 if lcp and new_header and new_header[0] in '/\\':
58 new_header = new_header[1:]
59 return new_header
60
65
67 desc = ["std directories: " + pprint.pformat( self.std )]
68 temp = pprint.pformat( self.user_defined )
69 if os.linesep not in temp:
70
71
72 temp = temp.replace( '\n', os.linesep )
73 desc.append( "user defined directories: " + temp )
74 return os.linesep.join( desc )
75