
    q&f                         d dl Z d dlZd dlmZmZmZ ddlmZmZm	Z	m
Z
 erddlmZ dZdee   fdZdee   fd	Zd
edefdZdddeeef   fdZy)    N)ListTYPE_CHECKINGTuple   )encodingpycompatutilwin32uis   morereturnc                     g t        j                         } t        j                  j	                  t        j                  j                  |       d      }j                  |       dt        ddffd} |t        j                  j	                  t        j                  j                  |       d             t        j                  j                  d      }|rt        j                  j	                  |d      } |t        j                  j	                  |d             t        j                  j	                  |d      }t        j                  j                  |      rj                  |       t        j                  j	                  |d	      }t        j                  j                  |      rj                  |       t        j                  d
dt        j                        }|rt!        |t              rrt        j"                  |      }|j%                  t&        j(                        D ];  }|j+                         j-                  d      rj                  |       4 ||       = S )z+return default os-specific hgrc search path   mercurial.iniprogrcdr   Nc                    t         j                  j                  |       rht        t	        j
                  |             D ]F  \  }}|j                  d      sj                  t         j                  j                  | |             H y y )Ns   .rc)	ospathisdirsortedr	   listdirendswithappendjoin)r   fkindrcpaths      6/usr/lib/python3/dist-packages/mercurial/scmwindows.py_processdirz!systemrcpath.<locals>._processdir    s`    77==!!$,,w"78 <4::f%MM"'',,w":;< "    s   hgrc.ds   PROGRAMDATAs	   Mercurials   hgrcs   SOFTWARE\Mercurial)r
   executablepathr   r   r   dirnamer   bytesr   environgetisfiler	   	lookupregwinregHKEY_LOCAL_MACHINE
isinstance	localpathsplitr   	ospathseplowerr   )filenameprogrcr   programdatainivaluepr   s          @r   systemrcpathr4      s   F##%HWW\\"''//(35EFF
MM&<U <t < RWW__X6	BC ""&&~6Kggll;=BGGLLi89ggll;(8977>>#MM#ggll;077>>#MM# NN!!	E E5)u%X//0 	Awwy!!"23a A		
 Mr   c                     t        d      } t        j                  j                  | d      t        j                  j                  | d      g}t        j
                  j                  d      }|rc|| k7  r^|j                  t        j                  j                  |d             |j                  t        j                  j                  |d             |S )z3return os-specific hgrc search path to the user dir   ~r   s   .hgrc   USERPROFILE)_legacy_expanduserr   r   r   r   r#   r$   r   )homer   userprofiles      r   
userrcpathr;   I   s    d#DGGLL/0"'',,tX2NOD""&&~6K{d*BGGLL.>?@BGGLLh78Kr   r   c                    | j                  d      s| S dt        |       }}||k  r| |   dvr|dz  }||k  r| |   dvrdt        j                  v rt        j                  d   }ndt        j                  v rt        j                  d   }nYdt        j                  vr| S 	 t        j                  d   }t
        j                  j                  |t        j                  d         }|dk7  r@t
        j                  j                  t
        j                  j                  |      | d|       }|| |d	 z   S # t        $ r d}Y w xY w)
z2Expand ~ and ~user constructs in the pre 3.8 styler6   r   s   \/s   HOMEr7   s   HOMEPATHs	   HOMEDRIVEr   N)	
startswithlenr   r#   KeyErrorr   r   r   r!   )r   inuserhomedrives        r   r8   r8   T   s-    ??4 c$iqA
a%DG6)	Q a%DG6) ("""##G,	8++	+##N3	H,,	,	$$\2E 77<<x'7'7'DEAv77<< 94!9Ed12h  	E	s    D1 1D?>D?r   zuimod.uic                 *    t        j                         S )N)r
   termsizer   s    r   rE   rE   t   s    >>r   )r   r'   typingr   r   r    r   r   r	   r
   r   uimodfallbackpagerr"   r4   r;   r8   intrE    r   r   <module>rL      s~    	     .d5k .bDK U u @ c3h r   