
    z%iu$                        	 d dl Z d dlZd dlZddgZdZ ej
                  eed       d Z ej                  d      j                  Z
 G d	 d
e      Zd Zd Zd Zd Zd Zd Zddg fdZddZg fdZd Zd Zd Zedk(  r e        yy)    Ngetcaps	findmatchztThe {name} module is deprecated and will be removed in Python {remove}. See the mimetypes module for an alternative.)      )removec                     d| v rd| d   fS y)Nlinenor   )   r    )entrys    ;/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/mailcap.pylineno_sort_keyr      s    5%/!!    z[^\xa1-\U0010FFFF\w@+=:,./-]c                       e Zd Zy)UnsafeMailcapInputN)__name__
__module____qualname__r   r   r   r   r      s    3r   r   c                     	 i } d}t               D ]V  }	 t        |d      }|5  t        ||      \  }}d d d        j	                         D ]  \  }}|| vr|| |<   | |   |z   | |<    X | S # t        $ r Y fw xY w# 1 sw Y   IxY w)Nr   r)listmailcapfilesopenOSError_readmailcapfileitems)capsr	   mailcapfpmorecapskeyvalues          r   r   r      s     DF#% .	gs#B  	</F;Hf	<"..* 	.JC$;!S	 I-S			.. K  			< 	<s   A+A:+	A76A7:B	c                      	 dt         j                  v r4t         j                  d   } | j                  t         j                        }|S dt         j                  v rt         j                  d   }nd}|dz   dddg}|S )NMAILCAPSHOME.z	/.mailcapz/etc/mailcapz/usr/etc/mailcapz/usr/local/etc/mailcap)osenvironsplitpathsep)pathstrmailcapshomes      r   r   r   9   sw    ARZZ**Z(==, O RZZ::f%D D;&"$<>Or   c                 \    	 t        j                  dt        d       t        | d       \  }}|S )Nz2readmailcapfile is deprecated, use getcaps instead   )warningswarnDeprecationWarningr   )r   r   _s      r   readmailcapfiler3   K   s.    IMMF$a)r4(GD!Kr   c                 *   	 i }| j                         x}r|d   dk(  s|j                         dk(  r.|}|dd  dk(  r%| j                         }|sd}|d d |z   }|dd  dk(  r%t        |      \  }}|r|sp|
||d<   |dz  }|j                  d	      }t	        t        |            D ]  }||   j                         ||<    d	j                  |      j                         }||v r||   j                  |       n|g||<   | j                         x}r||fS )
Nr   # z\

r	   r
   /)	readlinestrip	parseliner(   rangelenjoinlowerappend)	r   r	   r   linenextliner    fieldstypesjs	            r   r   r   S   sA    D++-
$
7c>TZZ\R/rsmv%{{}HX9x'D rsmv%
  oV%F8aKF		#s5z" 	(AQx~~'E!H	(hhuo##%$;IV$DI5 ++-
$
6 <r   c                 z   	 g }dt        |       }}||k  r,t        | ||      \  }}|j                  |       |dz   }||k  r,t        |      dk  ry|d   |d   |dd  }}}d|i}|D ]P  }|j                  d      }|dk  r|}d}	n)|d | j	                         }||dz   d  j	                         }	||v rL|	||<   R ||fS )Nr   r
   r.   NNview=r6   )r>   
parsefieldrA   findr;   )
rB   rD   infieldr    rI   restfkeyfvalues
             r   r<   r<   z   s    
 Fc$iqA
a%dAq)qeaC a% 6{QQiF12JtCd^F "JJsOq5DF!9??$D1Q34[&&(F6>!F4L" ;r   c                 ~    	 |}||k  r!| |   }|dk(  rn|dk(  r|dz   }n|dz   }||k  r!| || j                         |fS )N;\r.   r
   )r;   )rB   rM   rN   startcs        r   rK   rK      sb    9E
a%G8$Y!A!A a% a= !##r   rI   z	/dev/nullc                    	 t        |      r!d|d}t        j                  |t               yt	        | ||      }|D ]M  }d|v r.t        |d   ||      }||rt        j                  |      dk7  r5t        ||   |||      }	|	I|	|fc S  y)Nz&Refusing to use mailcap with filename z . Use a safe temporary filename.rH   testr   )_find_unsafer/   r0   r   lookupsubstr&   system)
r   MIMEtyper    filenameplistmsgentrieserY   commands
             r   r   r      s     H\dfc-.T8S)G 	Q;6He4D|		$1,#(E:A:	 r   c                     g }|| v r|| |   z   }|j                  d      }|d   dz   }|| v r|| |   z   }||D cg c]	  }||v s| }}t        |t              }|S c c}w )Nr9   r   z/*)r    )r(   sortedr   )r   r^   r    rb   	MIMEtypesrc   s         r   r[   r[      s    G4DN*s#I|d"H4DN*
%2122W/2GN 3s   	AAc                 *   d}dt        |       }}||k  r| |   }|dz   }|dk7  r|dk(  r| ||dz    }|dz   }||z   }n| |   }|dz   }|dk(  r||z   }n|dk(  r||z   }n|dk(  r2t        |      r!d|d	}t        j                  |t               y ||z   }nz|d
k(  rm|}	||k  r| |   dk7  r|dz   }||k  r	| |   dk7  r| |	| }
|dz   }t        |
|      }t        |      r$d|d|
d}t        j                  |t               y ||z   }n|dz   |z   }||k  r|S )Nr6   r   r
   %rU   stz!Refusing to substitute MIME type z into a shell command.{}z!Refusing to substitute parameter z (z) into a shell command)r>   rZ   r/   r0   r   	findparam)rO   r^   r_   r`   resrM   rN   rW   ra   rV   nameparams               r   r\   r\      se   
Cc%jqA
a%!H!A#a8Dy!AaCLac!'CaAac!CxAgcHnc)YacCMM#'9:Hnc!eaC!A !eaCU1~aC!$.&]bdhiCMM#'9:Ek
 Ci!mE a%F Jr   c                     | j                         dz   } t        |       }|D ]  }|d | j                         | k(  s||d  c S  y)NrJ   r6   )r@   r>   )rp   r`   rN   ps       r   rn   rn      sN    ::<#DD	A Ra5;;=D QR5L r   c                     dd l } t               }| j                  dd  st        |       y t	        dt        | j                        d      D ]  }| j                  ||dz    }t        |      dk  rt        d        y |d   }|d   }t        ||d|      \  }}|st        dt               ^t        d|       t        j                  |      }t        j                  |      }|st        d|        y )	Nr   r
   r.   z"usage: mailcap [MIMEtype file] ...rI   zNo viewer found forz
Executing:zExit status:)sysr   argvshowr=   r>   printr   typer&   r]   waitstatus_to_exitcode)	ru   r   rM   argsr^   filerd   rc   stss	            r   rY   rY     s    9D88AB<T
1c#((mQ' +xx!A#t9q=677AwtXvt<
'.,())G$C++C0Cnc*+r   c                 X   t        d       t               D ]  }t        d|z           t                | s
t               } t        d       t                t        |       }|D ]G  }t        |       | |   }|D ]0  }t        |      }|D ]  }t        d|z  ||           t                2 I y )NzMailcap files:	zMailcap entries:z  %-15s)rx   r   r   rf   )r   fnckeysry   rb   rc   keysks           r   rw   rw     s    	
 2%r	"22	G		
	G4LE dt* 	A!9D +i!mQqT*+G		r   __main__)N)r&   r/   re__all___DEPRECATION_MSG_deprecatedr   r   compilesearchrZ   Warningr   r   r   r3   r   r<   rK   r   r[   r\   rn   rY   rw   r   r   r   <module>r      s    + 	  	[
!#    X/ @ rzz9:AA4 44$%N>$  #);b 6 ,. 'R+." zF r   