
    h                     ,   S SK Jr  S SKJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJrJrJrJr  S SKJrJrJrJr  \
R.                  r\R0                  r\
R2                  r\R4                  r " S S\5      rS	rS
rSrSrS	r Sr!Sr"Sr#Sr$S r%S r&S r'S r(S r)g)    )unicode_literalsN)	text_type)preprocess_paths)windll	Structurebyrefc_uintcreate_unicode_buffer	addressofGetLastErrorFormatError)HWNDUINTLPCWSTRBOOLc            	       H    \ rS rSrS\4S\4S\4S\4S\4S\4S\4S	\4/r	S
r
g)SHFILEOPSTRUCTW    hwndwFuncpFrompTofFlagsfAnyOperationsAbortedhNameMappingslpszProgressTitle N)__name__
__module____qualname____firstlineno__r   r   r   r	   r   _fields___static_attributes__r       hC:\Users\julio\OneDrive\Documentos\Trabajo\Ideas Frescas\venv\Lib\site-packages\send2trash/win/legacy.pyr   r       sG    		$	'		6	 $'	&!	g&	Hr$   r                  @   i   c           
          0 SS_SS_SS_SS_SS_S	S_S
S_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SSSSSSSSS.EnUR                  X 5      $ )Nq   P   r   W   s   t   u   i  v   x      y   o   z   |      }   ~                        i        )            r>   i  i   it  )get)resultresultss     r%   convert_sh_file_opt_resultrN   9   s   dd 	d 	d	
 	e 	d 	d 	d 	d 	d 	d 	d 	d 	d 	d  	d!" 	e#$ 3G8 ;;v&&r$   c                     SU p!U R                  U5      (       d*  U R                  S5      (       a  SnXSS -   nX4$ X-   n X4$ U R                  US-   5      (       a  SnX4$ )zGuess the long-path prefix based on the kind of *path*.
Local paths (C:\folder\file.ext) and UNC names (\\server\folder\file.ext)
are handled.

Return a tuple of the long-path prefix and the prefixed path.
z\\?\z\\\\?\UNCr&   NzUNC\)
startswith)pathprefix	long_paths      r%   prefix_and_pathrU   \   s     "4I??6""??6""!Fab)I  I
 	 
')	*	*r$   c                 L    U S:X  a  SU[        U 5      S -   $ U[        U 5      S $ )zGuess the correct path to pass to the SHFileOperationW() call.
The long-path prefix must be removed, so we should take care of
different long-path prefixes.
rP   \N)len)rS   rR   s     r%   get_awaited_path_from_prefixrY   t   s5    
  d3v;=)))Fr$   c                     [        U 5      u  p[        US S5      nU(       d   [        5       n[        U[	        U5      U5      e[        U5      n[        X%U5        [        XR                  5      $ )Nr   )rU   GetShortPathNameWr   WindowsErrorr   r
   rY   value)	long_namerS   rT   buf_sizeerr_nooutputs         r%   get_short_path_namerb      s`    '	2F D!4H 6;v#6	BB"8,Fi2'==r$   c                 J   [        U 5      n U (       d  g U  Vs/ s H&  n[        U[        5      (       d  [        US5      OUPM(     n nU  Vs/ s H6  n[        R                  " U5      (       d  [        R
                  " U5      OUPM8     n nU  Vs/ s H  n[        U5      PM     n n[        5       nSUl        [        Ul
        [        SR                  U 5      5      nSR                  U 5      n[        U[        U5      S-   5      n[        [        U5      5      Ul        S Ul        [$        [&        -  [(        -  [*        -  Ul        SUl        SUl        S Ul        [5        [7        U5      5      nU(       a!  [9        U5      n[;        S [=        U5      X5      eg s  snf s  snf s  snf )Nmbcsr     r&   )r   
isinstancer   opisabsabspathrb   r   r   	FO_DELETEr   r
   joinrX   r   r   r   r   FOF_ALLOWUNDOFOF_NOCONFIRMATIONFOF_NOERRORUI
FOF_SILENTr   r   r   r   SHFileOperationWr   rN   r\   r   )pathsrR   fileopbufferpath_stringrL   errors          r%   
send2trashrw      s]   U#E^cd^cVZJtY,G,GYtV$TQ^cEdJOP%$RXXd^^RZZ=%EP38954 &5E9FFKFL" #388E?3F))E"K";Fa@F9V,-FLFJ!$66FSFM#$F F#FeFm,F*624U!3UBB G eP9s   -F=FF )*
__future__r   os.pathrR   rh   send2trash.compatr   send2trash.utilr   ctypesr   r   r   r	   r
   r   r   r   ctypes.wintypesr   r   r   r   kernel32r[   shell32rq   r   FO_MOVEFO_COPYrk   	FO_RENAMEFOF_MULTIDESTFILESrp   rn   rm   ro   rN   rU   rY   rb   rw   r   r$   r%   <module>r      s    (  ' ,	 	 	 6 5??.. 
..++ 
i 
 
		 
  'F0	
>*Cr$   