8Qc @sddlZddlZddlZddlZddlZejjZejjZ ejj Z ej Z ejZejZejZej ZejZZejZeZedjZdZdZdZej ej ej ejkrejZ!ej Z"n9ej ej#ej ejkr<ej$Z!ej#Z"ndej%fdYZ&dej%fdYZ'd Z(d Z)d Z*d Z+d Z,dZ-dZ.dZ/dZ0dej%fdYZ1dej%fdYZ2dZ3dZ4dej%fdYZ5dej%fdYZ6dej%fdYZ7edjZ8eeeejeeegej9_:eej9_;eejgej<_:e ej<_;egej=_:e ej=_;y(eeejgej>_:e ej>_;Wne?k rnXeegej@_:e ej@_;ee egejA_:eejA_;eejgejB_:e ejB_;gejC_:eejC_;eejegejD_:eejD_;eeejeje eejeejejg ejE_:e ejE_;egejF_:dejF_;gejH_:eejH_;ejIe eZJeJe gejK_:e ejK_;egejL_:eejL_;eejgejM_:e ejM_;ejejge jN_:e e jN_;eejge jO_:ee jO_;eejPge jQ_:e e jQ_;ejIe ee"ZReRe"ge jS_:e e jS_;dZTdZUd ZVd!ZWd"ZXd#ZYd$ZZd%Z[d&Z\gZ]d'Z^d(Z_d)Z`d*Zad+Zbd,ZcdS(-iNiiWizt _FILETIMEcBs eZdefdefgZRS(t dwLowDateTimetdwHighDateTime(t__name__t __module__t_DWORDt_fields_(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR's t_BY_HANDLE_FILE_INFORMATIONc BsheZdefdefdefdefdefdefdefdefdefd efg ZRS( tdwFileAttributestftCreationTimetftLastAccessTimetftLastWriteTimetdwVolumeSerialNumbert nFileSizeHight nFileSizeLowtnNumberOfLinkstnFileIndexHight nFileIndexLow(RRRRR(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR+s         iiiiiii iit _STARTUPINFOcBseZdefdefdefdefdefdefdefdefdefd efd efd efd efd efdejfdefdefdefgZRS(tcbt lpReservedt lpDesktoptlpTitletdwXtdwYtdwXSizetdwYSizet dwXCountCharst dwYCountCharstdwFillAttributetdwFlagst wShowWindowt cbReserved2t lpReserved2t hStdInputt hStdOutputt hStdError( RRRt_LPSTRt_WORDtctypestc_char_pt_HANDLER(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyRJs$                 t_PROCESS_INFORMATIONcBs2eZdefdefdefdefgZRS(thProcessthThreadt dwProcessIdt dwThreadId(RRR)RR(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR*^s   it_COORDcBs&eZdejfdejfgZRS(tXtY(RRR'tc_shortR(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR/gs t _SMALL_RECTcBs>eZdejfdejfdejfdejfgZRS(tLefttToptRighttBottom(RRR'R2R(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR3ks   t_CONSOLE_SCREEN_BUFFER_INFOcBs;eZdefdefdefdefdefgZRS(tdwSizetdwCursorPositiont wAttributestsrWindowtdwMaximumWindowSize(RRR/R&R3R(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyR8qs     icCs/tj}t|jd||jfdS(Ns%s: %s(R'tWinErrortOSErrorterrnotstrerror(tnameterr((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt _raiseoserrors cCstj|dttBtBdttd}|tkrBt |nz9t }tj |t j |svt |n|SWdtj|XdS(Ni(t _kernel32t CreateFileAt_FILE_SHARE_READt_FILE_SHARE_WRITEt_FILE_SHARE_DELETEtNonet_OPEN_EXISTINGt_FILE_FLAG_BACKUP_SEMANTICSt_INVALID_HANDLE_VALUERDRtGetFileInformationByHandleR'tbyreft CloseHandle(RBtfhtfi((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt _getfileinfos      cCsHy&tj||ds%t|nWntk rCt|nXdS(N(REtCreateHardLinkARJRDtAttributeError(tsrctdst((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytoslinks  cCs t|jS(s-return number of hardlinks for the given file(RSR(RB((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytnlinksscCsLt|}t|}|j|jkoK|j|jkoK|j|jkS(sDReturns whether path1 and path2 refer to the same file or directory.(RSR RR(tpath1tpath2tres1tres2((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytsamefiles   cCs(t|}t|}|j|jkS(s7Returns whether path1 and path2 are on the same device.(RSR (RZR[R\R]((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt samedevices  cCsttjtt|}|rdz5t}tj|tj|rO|jt kSWdtj |Xntj t kS(sOreturn True if pid is still running or unable to determine, False otherwiseN( REt OpenProcesst_PROCESS_QUERY_INFORMATIONtFalseRtGetExitCodeProcessR'ROtvaluet _STILL_ACTIVERPt GetLastErrort_ERROR_INVALID_PARAMETER(tpidthtstatus((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyttestpids cCstd}tj|d}tjdtj||}|dkrOtjn||krmtjtn|jS(sreturn full path of hg.exeiXiiN( R'tcreate_string_bufferREtGetModuleFileNameARJROR>t_ERROR_INSUFFICIENT_BUFFERRd(tsizetbuftlen((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytexecutablepaths   cCsYtd}tj|jd}tjtj|tj|sRtjn|jS(sreturn name of current useri,i(RR'RlRdt _advapi32t GetUserNameAROR>(RoRp((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytgetusers  $ cCsNd}trdSt|}tj|tj|tsJtjndS(sRegister a termination handler for console events including CTRL+C. python signal handlers do not work well with socket operations. cSstjddS(Ni(REt ExitProcess(tevent((s3/sys/lib/python2.7/site-packages/mercurial/win32.pythandlersN(t_signalhandlert_SIGNAL_HANDLERtappendREtSetConsoleCtrlHandlertTrueR'R>(RxRi((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytsetsignalhandler s   cCs/d}tj}tjt||dS(NcSsIt}tj|tj|||jkrEtj|ttSt S(N( Rt_user32tGetWindowThreadProcessIdR'RORdt ShowWindowt_SW_HIDERbR}(thwndRhtwpid((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytcallbacks  (REtGetCurrentProcessIdRt EnumWindowst _WNDENUMPROC(RRh((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt hidewindows  cCssd}tjt}|dks-|tkr1|St}tj|tj|sY|S|j j |j j }|S(NiO( REt GetStdHandlet_STD_ERROR_HANDLERJRMR8tGetConsoleScreenBufferInfoR'ROR<R6R4(twidtht screenbuftcsbi((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt termwidth&s  c Cst}tjt|_t}d}x,tjD]!}|d|tj|f7}q4W|shd}n|d7}tj|}tjj dd}|d|}t j d|ddt t|tjtj|tj| }|stjn|jS(Nts%s=%sttCOMSPECscmd.exes /c (RR'tsizeofRR*tostenviront subprocesst list2cmdlinetgetREtCreateProcessARJRbt_CREATE_NO_WINDOWtgetcwdROR>R-(targstsitpitenvtktcomspectres((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyt spawndetached8s$    * cCstjj|r+ttjd|nxtdD]e}d|tjddf}ytj ||PWq8t k r}|jtj krqq8Xq8Wttj dytj |WnFt k r t j|tytj |Wq t k rq XnXdS(s3try to implement POSIX' unlink semantics on Windowss'Unlinking directory not permitted: '%s'i s%s-%08xils"No usable temporary filename foundN(RtpathtisdirtIOErrorR@tEPERMtxrangetrandomtrandinttrenameR?tEEXISTtunlinkREtSetFileAttributesAt_FILE_ATTRIBUTE_NORMAL(tfttriesttempte((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyRXs(   cCs*tj||r&tj|tndS(N(RtmkdirRERt#_FILE_ATTRIBUTE_NOT_CONTENT_INDEXED(Rt notindexed((s3/sys/lib/python2.7/site-packages/mercurial/win32.pytmakedirs (dR'R@RRRtwindlltkernel32REtadvapi32Rstuser32Rtc_longt_BOOLtc_ushortR&tc_ulongRtc_uintt_UINTt_LONGR(t_LPCSTRR%tc_void_pR)t_HWNDRdRMt_ERROR_SUCCESSRgRnRt_WPARAMt_LPARAMt c_longlongt c_ulonglongt StructureRRRGRHRIRKRLRRRaReRR*RRR/R3R8RRFtargtypestrestypeRNRPRTRURR`RcRfRmRRvRJRt WINFUNCTYPERzR|RRRtRtc_intRRRRDRSRXRYR^R_RkRrRuRyR~RRRRR(((s3/sys/lib/python2.7/site-packages/mercurial/win32.pyts<          $  $                                   4