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