� {fc @ sI d Z d d l Z d d l m Z d d l m Z d d l Td d d d g Z e j j d � d d d g Z e j j d � d d d g Z d � Z d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d d � Z d d d � Z d � Z e d k rEe � n d S(! s dyld emulation i����N( t framework_info( t dylib_info( t *t dyld_findt framework_findR R s ~/Library/Frameworkss /Library/Frameworkss /Network/Library/Frameworkss /System/Library/Frameworkss ~/libs /usr/local/libs /libs /usr/libc C s t | t � r | j d � S| S( sC Not all of PyObjC and Python understand unicode paths very well yett utf8( t isinstancet unicodet encode( t s( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt ensure_utf8 s c C sD | d k r t j } n | j | � } | d k r7 g S| j d � S( Nt :( t Nonet ost environt gett split( t envt vart rval( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_env% s c C s% | d k r t j } n | j d � S( Nt DYLD_IMAGE_SUFFIX( R R R R ( R ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_image_suffix- s c C s t | d � S( Nt DYLD_FRAMEWORK_PATH( R ( R ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_framework_path2 s c C s t | d � S( Nt DYLD_LIBRARY_PATH( R ( R ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_library_path5 s c C s t | d � S( Nt DYLD_FALLBACK_FRAMEWORK_PATH( R ( R ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_fallback_framework_path8 s c C s t | d � S( Nt DYLD_FALLBACK_LIBRARY_PATH( R ( R ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_fallback_library_path; s c C s2 t | � } | d k r | S| | d � } | � S( s> For a potential path iterator, add DYLD_IMAGE_SUFFIX semanticsc s sM xF | D]> } | j d � r7 | t d � | d Vn | | V| Vq Wd S( Ns .dylib( t endswitht len( t iteratort suffixt path( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt _injectC s N( R R ( R! R R" R$ ( ( s, /usr/lib64/python2.7/ctypes/macholib/dyld.pyt dyld_image_suffix_search> s c c s� t | � } | d k rJ x/ t | � D] } t j j | | d � Vq% Wn x4 t | � D]&