� zfc@s�dZddlZddlZddlZddgZejd�jZdefd��YZ d�Z d �Z d �Z d �Z d �Zd dgd�Zdd�Zgd�Zd�Zd�Zd�Zedkr�e�ndS(s%Mailcap file handling. See RFC 1524.i����Ntgetcapst findmatchs[^\xa1-\xff\w@+=:,./-]tUnsafeMailcapInputcBseZdZRS(s)Warning raised when refusing unsafe input(t__name__t __module__t__doc__(((s/usr/lib64/python2.7/mailcap.pyR scCs�i}x�t�D]�}yt|d�}Wntk r?qnX|�t|�}WdQXxE|j�D]7\}}||kr�|||s0  "    c Cs g}dt|�}}x?||krZt|||�\}}|j|�|d}qWt|�dkrqdS|d|d|d}}}i|d6}xu|D]m}|jd�}|dkr�|}d} n$|| j�}||dj�} ||krq�| ||�R(RR/tfilter(R RARREt MIMEtypes((s/usr/lib64/python2.7/mailcap.pyR>�s   c Cs�d}dt|�}}x�||kr�||}|d}|dkr|dkrr|||d!}|d}n||}q||}|d}|dkr�||}q|dkr�||}q|dkr t|�r�d|f}tj|t�dS||}q|d kr�|} x*||krI||d krI|d}q W|| |!} |d}t| |�} t| �r�d | | f}tj|t�dS|| }q|d|}qW|S( NRiit%s\tstts9Refusing to substitute MIME type %r into a shell command.t{t}s=Refusing to substitute parameter %r (%s) into a shell command(R#R;R<R=RR/t findparam( R3RARBRCtresR1R2R9RDR8tnametparam((s/usr/lib64/python2.7/mailcap.pyR?�sH                   cCsO|j�d}t|�}x,|D]$}|| j�|kr#||Sq#WdS(NR-R(R%R#(RRRCR2tp((s/usr/lib64/python2.7/mailcap.pyRP�s    c Cs�ddl}t�}|jds0t|�dSx�tdt|j�d�D]�}|j||d!}t|�dkr�dGHdS|d}|d}t||d|�\}}|s�dGtGHqLdG|GHtj |�}|rLd G|GHqLqLWdS( Ni����iis"usage: mailcap [MIMEtype file] ...iR,sNo viewer found fors Executing:s Exit status:( tsysRtargvtshowR"R#RttypeRR@( RUR R1targsRAtfileRGRFtsts((s/usr/lib64/python2.7/mailcap.pyR:�s&    "    cCs�dGHxt�D]}d|GHqWH|s5t�}ndGHH|j�}|j�xg|D]_}|GH||}xG|D]?}|j�}|j�x|D]}d|G||GHq�WHqtWqXWdS(NsMailcap files:s sMailcap entries:s %-15s(RRtkeystsort(R tfntckeysRXRERFR\tk((s/usr/lib64/python2.7/mailcap.pyRWs&          t__main__(RRR<tret__all__tcompiletsearchR;tWarningRRRR R!R.RR/R>R?RPR:RWR(((s/usr/lib64/python2.7/mailcap.pyts&       &   )