N
οωO5c       s    d  Z  k Z k Z d   Z d   Z d   Z d   Z d   Z d d g  d  Z e	 d	  Z
 g  d
  Z d   Z d   Z d   Z e d j o e   n d S(   s%   Mailcap file handling.  See RFC 1524.c     s¬   h  }  x t   d r } y t | d  } Wn
 q n Xt |  } | i   xO | i   d r? } |  i
 |  o | | |  | <n |  | | | |  | <q] Wq W|  Sd S(   sΉ   Return a dictionary containing the mailcap database.
    
    The dictionary maps a MIME type (in all lowercase,
    e.g. 'text/plain') to a list of corresponding mailcap entries.

    i    s   rN(   s   capss   listmailcapfiless   mailcaps   opens   fps   readmailcapfiles   morecapss   closes   keyss   keys   has_key(   s   capss   mailcaps   fps   morecapss   keys1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   getcaps	 s       
 c     s~   t  i i d  o# t  i d }  t i |  d  } nA t  i i d  o t  i d } n d } | d d d d g } | Sd	 S(
   s7   Return a list of all mailcap files found on the system.s   MAILCAPSs   :s   HOMEs   .s	   /.mailcaps   /etc/mailcaps   /usr/etc/mailcaps   /usr/local/etc/mailcapN(   s   oss   environs   has_keys   strs   strings   splitfieldss   mailcapss   home(   s   strs   mailcapss   homes1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   listmailcapfiles s     c    sn  h  } x]d oU|  i   } | o Pn | d d j p t i |  d j o q	 n | } xD | d d j o1 |  i   } | o
 d } n | d  | } q` Wt |  \ } } | o | o q	 n t i
 | d  } x3 t t |   d r } t i | |  | | <qσ Wt i t i | d   } | i |  o | | i |  n | g | | <q	 W| Sd  S(	   Ni   i    s   #s    i   s   \
s   
s   /(   s   capss   fps   readlines   lines   strings   strips   nextlines	   parselines   keys   fieldss   splitfieldss   typess   ranges   lens   js   lowers
   joinfieldss   has_keys   append(   s   fps   capss   lines   nextlines   keys   fieldss   typess   js1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   readmailcapfile2 s6      '  
 c 
   sN  g  } d t |   f \ } } xA | | j  o3 t |  | |  \ } } | i |  | d } q! Wt |  d j  o t t f Sn | d | d | d f \ } } } h  | d <} x | d r} } t i | d  } | d j  o | } d }	 n+ t i | |   } t i | | d  }	 | i |  o n |	 | | <qΏ W| | f Sd  S(   Ni    i   i   s   views   =s    (   s   fieldss   lens   lines   is   ns
   parsefields   fields   appends   Nones   keys   views   rests   strings   finds   fkeys   fvalues   strips   has_key(
   s   lines   fieldss   is   ns   fields   keys   views   rests   fkeys   fvalues1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys	   parselineP s.     $	 
c    sz   | } xS | | j  oE |  | } | d j o Pn& | d j o | d } n | d } q	 Wt i |  | | ! | f Sd  S(   Ns   ;s   \i   i   (   s   is   starts   ns   lines   cs   strings   strip(   s   lines   is   ns   starts   cs1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys
   parsefieldj s     
c 	   s€   t  |  | |  } x | d rw } | i d  o> t | d | |  } | o t i |  d j o q n n t | | | | |  } | | f Sq Wt t f Sd S(   s  Find a match for a mailcap entry.
    
    Return a tuple containing the command line, and the mailcap entry
    used; (None, None) if no match is found.  This may invoke the
    'test' command of several matching entries before deciding which
    entry to use.

    i    s   testN(   s   lookups   capss   MIMEtypes   keys   entriess   es   has_keys   substs   filenames   plists   tests   oss   systems   commands   None(	   s   capss   MIMEtypes   keys   filenames   plists   entriess   es   tests   commands1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys	   findmatchy s     	 s   views	   /dev/nullc    s   g  } |  i |  o | |  | } n t i | d  } | d d } |  i |  o | |  | } n | t j	 o t	 | d  |  } n | Sd  S(   Ns   /i    s   /*c    s   |  i |  S(   N(   s   es   has_keys   key(   s   es   keys1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   <lambda> s    (
   s   entriess   capss   has_keys   MIMEtypes   strings   splitfieldss	   MIMEtypess   keys   Nones   filter(   s   capss   MIMEtypes   keys   entriess	   MIMEtypess1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   lookup s    c 
   sz  d } d t |   f \ } } xQ| | j  oC|  | } | d } | d j o: | d j o |  | | d !} | d } n | | } nε |  | } | d } | d j o | | } nΆ | d j o | | } n | d j o | | } n | d j od | } x- | | j  o |  | d	 j o | d } qW|  | | !}	 | d } | t
 |	 |  } n | d | } q! W| Sd  S(
   Ns    i    i   s   %s   \s   ss   ts   {s   }(   s   ress   lens   fields   is   ns   cs   filenames   MIMEtypes   starts   names	   findparams   plist(
   s   fields   MIMEtypes   filenames   plists   ress   is   ns   cs   starts   names1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   subst s4      
c    s`   t  i |   d }  t |   } x6 | d r, } t  i | |   |  j o | | Sn q( Wd Sd  S(   Ns   =i    s    (   s   strings   lowers   names   lens   ns   plists   p(   s   names   plists   ns   ps1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys	   findparamΉ s    	 c  	   s   k  }  t   } |  i d o t |  d  Sn xΙ t d t |  i  d  d rͺ } |  i | | d !} t |  d j  o d GHd  Sn | d } | d } t | | d |  \ } } | o d Gt GHn- d G| GHt i |  } | o d G| GHn qN Wd  S(	   Ni   i   i    s"   usage: mailcap [MIMEtype file] ...s   views   No viewer found fors
   Executing:s   Exit status:(   s   syss   getcapss   capss   argvs   shows   ranges   lens   is   argss   MIMEtypes   files	   findmatchs   commands   es   types   oss   systems   sts(	   s   syss   capss   is   argss   MIMEtypes   files   commands   es   stss1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   testΔ s(    	
 

	c    sΚ   d GHx t    d r } d | GHq WH|  o t   }  n d GHH|  i   } | i   xm | d rc } | GH|  | } xK | d rA } | i   } | i   x! | d r } d | G| | GHq’ WHq} Wq_ Wd  S(   Ns   Mailcap files:i    s   	s   Mailcap entries:s     %-15s(   s   listmailcapfiless   fns   capss   getcapss   keyss   ckeyss   sorts   types   entriess   es   k(   s   capss   fns   ckeyss   types   entriess   es   keyss   ks1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   showΪ s.       
	 
	 
	 s   __main__N(   s   __doc__s   oss   strings   getcapss   listmailcapfiless   readmailcapfiles	   parselines
   parsefields	   findmatchs   Nones   lookups   substs	   findparams   tests   shows   __name__(    s1   /var/tmp/python-root/usr/lib/python1.5/mailcap.pys   ? s   					 			