e f @sdZddlZddgZddZddZdd Zd d Zd d ZddgddZdddZ gddZ ddZ ddZ ddZ edkre ndS)z%Mailcap file handling. See RFC 1524.Ngetcaps findmatchcCsi}xtD]}yt|d}Wntk r@wYnX|t|}WdQXxE|jD]7\}}||kr|||)r rr s zlookup..)r)r r:r r=Z MIMEtypesr)r rr7s   r7c Csfd}dt|}}xF||kra||}|d}|dkr|dkru|||d}|d}n||}q||}|d}|dkr||}q|dkr||}q|dkr||}q|dkrP|}x*||kr||d kr|d}qW|||} |d}|t| |}q|d|}qW|S) Nrrr)%r3st{})r! findparam) r0r:r;r<resr.r/r5r4namerrrr8s6              r8cCs[|jd}t|}x8|D]0}|d|j|kr#||dSq#WdS)Nr+r)r#r!)rIr<r/prrrrGs   rGc Csddl}t}|jdds6t|dSxtdt|jdD]}|j||d}t|dkrtddS|d}|d}t||d|\}}|stdtqRtd|t j |}|rRtd|qRqRWdS) Nrr)rz"usage: mailcap [MIMEtype file] ...r*zNo viewer found forz Executing:z Exit status:) sysrargvshowr r!printrtyperr9) rKr r.argsr:filer?r>stsrrrr6s&   "    r6cCstdxtD]}td|qWt|sEt}ntdtt|}xl|D]d}t|||}xG|D]?}t|}x#|D]}td|||qWtqWqiWdS)NzMailcap files: zMailcap entries:z %-15s)rNrrsorted)r fnZckeysrOr=r>keyskrrrrMs"          rM__main__)__doc__r__all__rrrrr,rr7r8rGr6rM__name__rrrrs     &