Plan 9 from Bell Labs’s /usr/web/sources/contrib/jas/root/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyc

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


��c@sGddlZddlZddlZddlZddlZddlZddlmZmZm	Z	m
Z
mZddlm
Z
mZmZddlmZddlmZmZmZmZddlmZmZmZddlmZmZddlmZdd	lmZdd
lm Z ddd
ddddddddddddddddddgZ!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&e'd%�Z(d&�Z)d'�Z*e*Z+d(�Z,d)�Z-d*�Z.d+�Z/d,�Z0d-�Z1d.�Z2e2Z3d/�Z4d0�Z5d1�Z6d2�Z7d3�Z8d4�Z9d5�Z:d6�ZdS(7i�N(terrortencodingtarchivalt	templaterttemplatefilters(tshortthextnullid(tbinary(t	paritygent
staticfiletget_contactt
ErrorResponse(tHTTP_OKtHTTP_FORBIDDENtHTTP_NOT_FOUND(tgraphmodtpatch(thelp(tscmutil(t_tlogtrawfiletfilet	changelogtshortlogt	changesettrevtmanifestttagst	bookmarkstbranchestsummarytfiledifftdifft
comparisontannotatetfilelogtarchivetstatictgraphRcCsDd|jkr0|jddr0t|||�St|||�SdS(NRi(tformR%R(twebtreqttmpl((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyRs c
Cs�|jddt�}tj|j|jjddg�d�}|sot|||�}|jt	|j
�|Sytj|j|�}Wn]tj
k
r�}y-t|||�}|jt	|j
�|SWq�tk
r�|�q�nX|j�}|j�}d}	|rItj|�d}	|	dkrIt|�r=dp@d}	qIn|	jd�rl|	d	tj7}	n|jt	|	|d
|�gS(NR*t	guessmimeRtisapplication/binarys
text/plainstext/s; charset="%s"tbody(t
configbooltFalsetwebutilt	cleanpathtrepoR)tgetRtrespondR
tctypetfilectxRtLookupErrorRtpathtdatat	mimetypest
guess_typetNoneRt
startswithR(
R*R+R,R-R:tcontenttfctxtinstttexttmt((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR#s4+
c s,|j�}|j��t|j��t��rYtj|�dpId}d|�n��fd�}|dd|dtj|�d|�d	|j	�d
|j
�d|j�d|j�d
|j
�d|j�dtj|�dtj|�dtj|�dtj|�d|j�j|��S(Nisapplication/octet-streams(binary:%s)c3saxZt�jt��D]C\}}i|d6d|dd6d|dd6�j�d6VqWdS(Ntlinesl%ditlineids% 6dt
linenumbertparity(t	enumeratet
splitlinestTruetnext(tlinenott(RHRC(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pytlinesLs
"
tfilerevisionRR:RCRtnodetauthortdatetdesctextratbranchtparenttchildtrenametpermissions(R:R;R	tstripecountRR<R=R2tupRRtuserRStdescriptionRUtnodebranchnodefaulttparentstchildrent
renamelinkRtflags(R*R,RAtfRDRO((RHRCs?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
_filerevisionCs,
		cCs�tj|j|jjddg�d�}|sAt|||�Sy#t||tj|j|��SWnDtj	k
r�}yt|||�SWq�t
k
r�|�q�XnXdS(NRR.i(R2R3R4R)R5RReR8RR9R(R*R+R,R:RB((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyRcs+#
csG|jdd��j�d|jkrnt|jjd�g�d��t�d����jdd<ntj�jd�}t�dd�|d<�|d<tj�jd�}�d|d<�|d<�����fd�}�jd}t�j	���d	d
�d|j
�d|d
�jd�d|d|�S(NRitrevcountitsessionvarsic#;sd}tj}|��j�}�fd�}x�|�D]�}d}xi|D]a}|||j��kp�|||j��kp�||dj|j���ksMd}PqMqMW|r�q:n|d7}|j�}tj	�j
�d|�}	tj�|j�|�j�}
�dd�j
�d|j�d	tj|�d
tj|�d|	d|j�d|j�d
|j�d|
d|j�dt|�dtj�j
|�dtj�j
|�dtj�j
|�dtj�j
|��V|�kr:Pq:q:WdS(Nic3s��jj}x�tt�j�ddd�D]t}g}xE|jtd|d�|d�D] }�j|}|j|�q\W|j�x|D]}|Vq�Wq,WdS(Niii��(R4Rtxrangetlentrevstmaxtappendtreverse(tcltitltjtctxte(R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pytrevgen�s&*


t itchangelogtagtsearchentryRHRRRWRXRTRURStfilesRRQRRtinbranchR(RtlowertsplitR]R^tjoinRxRQR2tshowtagR4t
listfilediffstmaxfilesRLR`RaRURSRRtnodetagsdicttnodebookmarksdicttnodeinbranchtnodebranchdict(tmaptcountRztqwRtRrtmisstqtntshowtagsRx(RHtqueryRfR,R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
changelistsH	
!
!	ttiptsearchR�RQtentriestarchivestmorevarstlessvars(R)t
maxchangestintR5RktdefaultstcopyR4R	R[Rtarchivelist(R*R+R,R�R�R�R�((RHR�RfR,R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt_searchos$	"

4
csYd|jkr'tj�j|�}n^d|jkrJ|jdd}nd}y�j|}Wn!tjk
r�t�|��SX�����fd��|r��jp��j}d|jkrt	|jj
d|g�d�}t|d�}|�jdd<nt
j
�jd�}t|d	d�|d<t
j
�jd�}|d	|d<t�j�}	|j�}
td|
|d��t|	�|���d}
t�jd
����tj�j�j|
||	�}�|r�p�d
|d|j�d|
d|	d�fd�d�fd�d�jd�d|d|d|�
S(NRQRiR�c;s�g}g}��kr7�jjj��d�}n|rZx|D]}qDW|f}nxY|D]Q}�j|}|j�}tj�j�d|�}tj�|j�|�j�}	|j	i�j
�d6|j�d6tj||d�d6tj
||d�d6|d6|j�d6|j�d6|j�d	6|	d
6|d6t|�d6tj�j|�d
6tj�j|�d6tj�j|�d6tj�j|�d6�qaWxt|�D]}
|
Vq�WdS(NiRvRHRRRWRXRTRURSRxRRQRRRyR(R4RRjRQR2R}R~RxRRlRLR]R`RaR^RURSRR�R�R�R�treversed(t
latestonlyR�RpRjtrRoRrR�R�RxRs(tendRHtstartR,R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s<


!




RfiRgitoffsetRRt	changenavt
changesetsR�cs�dt|�S(NR�(R1(tx(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt<lambda>stlatestentrycs�dt|�S(NR�(RK(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�sR�R�R�(R)R2t	changectxR4Rt	RepoErrorR�tmaxshortchangesR�R�R5RkR�R�RiRtminR	R[trevnavtgenRR�(R*R+R,RRrthiRfR�R�R�tposR�((R�R�RHR�R,R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s@""
!cCst|||dt�S(NR(RRK(R*R+R,((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyRsc0s�tj|j|�}tj|j|�}|dkrE|j�}ntj|j|d|j��}tj|j|d|j��}tj	|�}g}t
|j�}	xst|j
��D]_\}
}||kr�dp�d}|j||d|j�d|d|
dd	|	j���q�W|jd
dd�}
d|jkrY|jdd
}
nt
|j�}	tj|j|||d|	|
�}t
|j�}	tj||��tj||�|	�}|dd|d|j�d|j�dtj|�dtj|�d|j�d|d|d|d|j�d|j�d|j�d|j�d|d�fd�d|d|j|j��dtj|j|j��dtj|j|j��d tj	|�d!tj |j|�d"tj!|j|��S(#Ntchangesettagtchangesetbookmarktfilenodelinkt
filenolinkRQRtblocknoiRHR*tstyletpaperiRR"RRWRXtbasenodetchangesetbranchRRRTRURSRxtdiffsummarycs
tj��S(N(R2R�(R�(tdiffstatgen(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�4stdiffstatR�RRRVRyR("R2R�R4t
basechangectxR>tp1R}RQtshowbookmarkR_R	R[RIRxRlRRLtconfigR)tdiffsR�R�RR`RaR]R^RURSR�R�R�R�R�(R*R+R,RrtbasectxR�t
showbookmarkst
showbranchRxRHR�RdttemplateR�R�R�((R�s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyRs\!$	cCs|S(s�Hook for mapping a path in the repository to a path in the
    working copy.

    Extensions (e.g., largefiles) can override this to remap files in
    the virtual file system presented by the manifest command below.((R:((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
decodepath?scs�tj|j|��tj|j|jjddg�d�}�j���j�}i�i�t|j	��|r�|ddkr�|d7}nt
|�}d|�x��j�D]�\}}t|�}|| |kr��n||}	|	j
d�}
t
|
�dkr|�|	<q��}xN|
dd!D]?}||krRi||<n||}t
|�dkr3Pq3q3Wd|d<q�W�r��r��r�ttd|��n����fd�}
���fd	�}|d
d�j�dt|�d
�dtj��d�j�d|
d|d|jt|��dtj|j|�dtj|j|�dtj|j��dtj|j���S(NRR.ii�t/ispath not found: c;s~xwt��D]i}�|}�j|�}i|d6�j�d6|d6|j�d6|j�d6�j|�d6Vq
WdS(NRRHtbasenameRStsizeRZ(tsortedR8RLRSR�Rc(R�RdtfullRA(RrRxtmfRH(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pytfilelistns




c;s�x�t��D]�}g}�|}xWt|t�r|t|�dkr||j�d\}}|rs|j|�n|}q&Wd�|f}i�j�d6|d6dj|�d6|d6Vq
WdS(	Niis%s%sRHR:R�t	emptydirsR�(R�t
isinstancetdictRititemsRlRLR|(R�tdR�thtktvR:(tabspathtdirsRH(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pytdirlistzs
$
RRRQR:R\tupparitytfentriestdentriesR�RRRyR(R2R�R4R3R)R5RRQR	R[Rit	iteritemsR�R{R>RRRRR\RLR�R�R�R�R�(R*R+R,R:RQRpR�R�RdtremaintelementsR�telemR�R�((R�RrR�RxR�RHs?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyRGsX+





	cs�tt�jj����t�j�����fd��|ddt�jjj��d�fd�d�fd�d�fd	��S(
Nc;s��}|r@g�D]$\}}|dkr||f^q}n|rS|d }nxN|D]F\}}i�j�d6|d6�j|j�d6t|�d6VqZWdS(NR�iRHttagRSRQ(RLR4RSR(tnotipR�R�RNR�R�(RoRHR*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s4
RRQR�cs�tt|�S(N(R1(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��stentriesnotipcs�tt|�S(N(RKR1(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sR�cs�tt|�S(N(RK(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s(	tlistR�R4ttagslistR	R[RRR�(R*R+R,((R�RoRHR*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s	c	s�g�jjj�D]}|d�jkr|^q�t�j�����fd��|ddt�jjj��d�fd�d�fd��S(	Nic;sy|rt��g}nt��}xN|D]F\}}i�j�d6|d6�j|j�d6t|�d6Vq+WdS(NRHtbookmarkRSRQ(R�R�RLR4RSR(R�R�RNR�R�(RoRHR*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sRRQR�cs�dt|�S(NR�(R1(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sR�cs�dt|�S(NR�(RK(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s(R4t
_bookmarksR�R	R[RRR�(R*R+R,tb((R�RoRHR*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s8	c	s�g��jj��t�j��d�������fd��|ddt�jjj��d�fd�d�fd��S(	NcSs|j�|j�fS(N(tclosesbranchR(Rr((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sc;sd}�sIx:�jj�j�D] \}}�j�j|�q"Wnx�t�d�dt�D]�}|dkr�||kr�dS|d7}�jj|j��s�d}n!|j��kr�d}nd}i�j	�d6|j�d	6|d
6|j
�d6|j�d6VqbWdS(
NitkeyRmitclosedtinactivetopenRHRVtstatusRQRS(R4t
branchtagsR�RlR�RKtbranchheadsRVRQRLRRS(tlimitR�R�RNR�RrR�(theadsRHtsortkeyttipsR*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s$"
		

RRQR�cs
�d|�S(Ni((R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sR�cs
�d|�S(Ni((R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s(R4R�R	R[RRR�(R*R+R,((R�R�RHR�R�R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s	!c	st�jj������fd�}�fd�}�fd�}����fd�}�jd}t�j�}td|�j��t|��j���dd�jd	d
d�dt�j�p�dd
|j	�d|d|d|d|d|j
�d�jd��	S(Nc;s�t�j�}d}x|�D]t\}}|dkr:qn|d7}|dkrTPn�dd|j�d|dt|�d	�j|j��VqWdS(
NiR�ii
ttagentryRHR�RQRS(R	R[RLRR4RS(R�RHR�R�R�(RoR,R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
tagentries�s
	c;s�t�j�}g�jjj�D]}|d�jkr"|^q"}xXt|�d D]F\}}i|j�d6|d6�j|j�d6t|�d6VqXWdS(Nii
RHR�RSRQ(	R	R[R4R�R�R�RLRSR(R�RHR�tmarksR�R�(R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s8c;s�t�j�}�jj�}g|j�D]+\}}�jjj|�||f^q+}xWt|�D]I\}}}i|j�d6|d6t	|�d6�j|j
�d6VqiWdS(NRHRVRQRS(R	R[R4R�R�RRR�RLRRS(R�RHR�RNR�RpR�(R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s>
c;sHt�jd���}g}g}��krP�jjj��d�}nx�D]�}�j|}|j�}t|�}|j�dd|j�d|j	�d|j
�d|j�d|j�d	|d
|dt
j�j|�dt
j�j|�d
t
j�j|�dt
j�j|���qWW|j�|VdS(NR�it
shortlogentryRHRRRTRURSRRQRRRyR(R	R[R4RRjRQRRlRLR]R^RURSR2R�R�R�R�Rm(R�RHRpRjRoRrR�thn(R�R�R,R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�
s0

	
R�iR RTR*R^tunknowntownert
lastchangeRRRRRQR�(R�R4R�RiRkR�R�R�RRSRR�(	R*R+R,R�RRR�R�R�((R�RoR�R,R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR �s&	
	cCs�d\}}ytj|j|�}Wn^tk
r�tj|j|�}tj|j|jdd�}||j�kr��q�nX|dk	r�|j	�}|j
�}|j�}n|j	�}t|j�}|j
ddd�}d|jkr|jdd}ntj|j||d|g||�}	|rHtj|�pKg}
|rZ|p]|}|dd|dt|�d|j�d	|j�d
|j�d|j�d|j�d
|
dtj|�dtj|�dtj|�d|	�S(NRiR*R�R�R!RQRRSRTRURRRYRVRWRXR"(NN(R>R2R8R4R9R�R3R)RxRQR:R	R[R�R�RbRRRSR^RUR]R_R`Ra(R*R+R,RARrR:R�RHR�R�RY((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR!6sB
 
'	c$Cs�tj|j|�}d|jkr6ttd��ntj|j|jdd�}||krutj||�pxg}d�}d|jkr�||jdd�}n||jddd��}d	�}||krc||}	|	j	�}
|	j
�}||	�}|	j�}
|
s2d
}t}d}q�|
d}|j	�}|j
�}||�}nJd
}
t}d}|j�d|}	|	j	�}|	j
�}||	�}tj
||||�}|dd|dt|j��d
|j�d|j�d|j�d|j�d|j�d|dtj|�dtj|	�dtj|	�d|dt|�d|
dt|�d|�S(NRsfile not givenicSs|dkrdpt|�S(NR�i�(R�(R�((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�gstcontextR*tcomparisoncontextt5cSsmt|j��r]tj|j��d}|s:d}ntd�|t|j��fgS|j�j�S(Nisapplication/octet-streams(binary file %s, hash: %s)(	RR;R<R=R:RRtfilenodeRJ(RdRD((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt	filelinesms	#i�tfilecomparisonRQRRSRTRURRRYRVRWRXtleftrevtleftnodetrightrevt	rightnodeR#(((R2R�R4R)RRR3RbR�tfilerevR�R`RtcompareRRQRRSR^RUR]R_Ra(R*R+R,RrR:RYtparsecontextR�R�RAR�Rt
rightlinesR`R�R�t	leftlinestpfctxR#((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR#`sb %		
	
	cs$tj|j|���j�}t|j��tj|jjdt	dd�����fd�}|dd|d|dtj
|�d�j�d	�j�d
�j
�d�j�d�j�d
�j�dtj��dtj��dtj��dtj��d�j�j|��S(Nt	untrustedtsectionR$c	;smd}t�j��rhtj�j��dp4d}t�j�j��dfd|fg�}n$t�j	dt
dt
d���}x�|D]�\}\\}}}|j�}||kr�|}ni�j�d6|j
�d	6|j�d
6|j�d6|j�d6|j�d
6|j�d6|d6|d6d|dd6d|dd6|j�d6Vq�WdS(Nisapplication/octet-streamis(binary:%s)tfollowRGtdiffoptsRHRQRRRRTRURt
targetlineREsl%dRFs% 6dtrevdate(R>RR;R<R=R:RIR8RR$RKR�RLRRR]R^RURS(	R�tlastRDRORMRdRRptfnode(R
RARH(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR$�s0	





tfileannotateRR:RRQRRRSRTRURYRVRWRXRZ(R2R8R4R:R	R[RR
tuiRKR\RRR]RSR^RURbR_R`RaRRc(R*R+R,RdR$((R
RARHs?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR$�s(!	cs�y1tj�j|���j���j�}Wn�tjk
rtj�j|jdd���jj	��}t
|�}|s��ntj�j|�j�}|j
d�}||kr��n|d}x#|j
|�|kr�d8}q�W�jj�|j
|���nX�j}d|jkryt|jjd|g�d�}t|d�}||jdd<ntj|jd�}	t|dd�|	d<tj|jd�}
|d|
d<�j�d}td�j�|d��t|�|��t�jd����������fd��tj�j�j��}|j�d||�}
|d	d�d
�j�d|
d�fd
�d�fd�d|d|
d|	�S(NRiiRfRgiR�c	;s�g}�j}|jj��d�}|rKx|D]}q5W|f}nx|D]}�j|�}|ji�j�d6|d6�d6|j�d6|j�d6|j�d6t	j
|�d6t	j|�d	6t	j|�d
6|j
�d6|j�d6t	j||j��d
6t	j||j��d6t	j|�d6t	j||�d6t	j||�d6�qRWxt|�D]}|VqyWdS(NiRHRRRQRRRSRYRWRXRTRURRRVRyR(R4RRjR8RlRLRR]RSR2RbR`RaR^RUR�RQR�R_R�R�R�(	R�R�RpR4RjR�RotiterfctxRs(R�RdRARHR�R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��s8	






R%RQtnavR�cs�dt|�S(NR�(R1(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�sR�cs�dt|�S(NR�(RK(R�(R�(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�sR�R�(R2R8R4R:R%RR9R3R)RRiR�RtlinkrevR�R�R5RkR�R�RR�R	R[t
filerevnavR�R(R*R+R,tfltnumrevsRtfirsttfrevRfR�R�R�R�R((R�R�RdRARHR�R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR%�sL 
"	" !cCs�|jjddg�d}|jdd�}|jdd}||jkrjd|}tt|��n||kp�|jdd|t�s�d|}tt	|��nt
jd	d
tj
j|j��}|jj|�}|}	||ks�dkrt|�}	nd||	f}
tj|j|�}g}d}
|jjd
d�}|r�|dg}tj||dd�}
|r�|j�j�D]}|
|�r�|^q�}|s�ttd|d��q�q�|j|\}}}}dd|
|ffg}|r.|jd|f�n|jj|�|jt|�tj |j|||d|
d|
d|jdd��gS(NttypeiR*t
allow_archiveRQsUnsupported archive type: %stallowsArchive type not allowed: %ss\W+t-R�s%s-%sRspath:tdefaultR:sfile(s) not found: %ssContent-Dispositionsattachment; filename=%s%ssContent-Encodingtprefixtmatchfntsubrepostarchivesubrepos(!R)R5R>t
configlistR�RRR0R1RtretsubtosR:R�treponameR4tlookupRR2R�RtmatchRtkeyst
archive_specsRltheaderstextendR6R
RR&(R*R+R,ttype_tallowedR�tmsgR&tcnodetarch_versiontnameRrtpatsRRRdRxtmimetypetartypet	extensionRR+((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR&sL

$1cCs�|jdd}|jddddt�}|s�|jpDtj�}t|t�rb|g}ng|D]}tj	j
|d�^qi}nt|||�gS(NRiR*R'R(R)R�R>R1ttemplatepathRR�tstrR%R:R|R
(R*R+R,tfnameR'ttptp((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR'Ps+c"s�tj�j|�}|j�}d}�j}d|jkr�t|jjd|g�d�}t|d�}||j	dd<nt
j
|j	d�}t|dd�|d<t
j
|j	d�}|d|d<t�j�}	|}
td|
|d�}t|	||�}|d}
ttd|	d�||�}
td||�}tj
�j�j|
||	�}g�||kr�t�jjj|d|��}tj�j|�}ttj|�j���nd�}��fd��|��}t��}|d|d	}|d
d|d|d|
d
|d|d|d|d|d|d|d||d|d|d�fd�d�fd�d|j�d|�S(Ni'RfiiRgic
Ss�d}x�|D]�\}}}}}|tjkr7q
nt|tg|D]}|d^qGpcdg�tg|D]}|d^qpp�dg��}q
W|S(Nii(Rt	CHANGESETRk(ttreetcolstidRRrtvtxtedgestedge((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
getcolumns~s/3csgg}d}xT�D]L\}}}}}|tjkr=qnt|�}	tj|j��}
tj|j��}tj	tj
|��}tj	tj|j���}|j
�}
y�jj|
�}Wntjk
r�d}nX|
||j�kf}
|r=|j|	|||||
|
|j�|j�f	�ng|D]M}td|dd|dd|ddddd|d	d
|d�^qD}|jtd|	d|dd|ddddd
|d|d|dd|d|d|
dtj�j|j��dtj�j|�dtj�j|�dtj�j|j���
�|d7}qW|S(NitcoltnextcolitcoloriitwidthitbcoloriRQRAtrowtnextrowRTR]tageRRRyR(RR<R8RRKRSt	firstlineR^tcgitescapetnonemptytpersonR]RVR4t	branchtipRtRepoLookupErrorR>RQRlRRR�R2R�R�R�R�(t	usetuplesR�R;RIR?RRrR@RARQRKRTR]RVt
branchnodeRBtedgedata(R=R*(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt	graphdata�sL
W

iR(RtuprevR�R�tdownrevR>trowstcanvaswidthttruecanvasheighttcanvasheightt	bg_heighttjsdatacs
�t|�S(N(RK(R�(RV(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��stnodescs
�t|�S(N(R1(R�(RV(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��sRQR�(R2R�R4RR�R)R�R5RkR�R�RiR�R�R�R�RRjRt	dagwalkertcoloredR(R*R+R,RrRR]RfR�R�R�R�R�R�RWRXR�RjtdagRCR>RYR\((RVR=R*s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR(]sN	"
 !"		0
cCs?|dj}|r/t|�jd�d}ntd�}|S(Nis
s(no help text available)(t__doc__RR{(Rstdoc((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt_getdoc�s

c
s�ddlm}|jjddg�d}|s:d�}gg��d�}x�|jj�D]�\}}t|�}	d|	ksa|jd�r�qan||�}
|
jd	�r��j	|
d
|	f�qa�j	|
|	f�qaW�j
��j
��fd�}�fd�}|d
d|d|d|dd�Stj�}
t
|
_ytj|
|�}	Wn tjk
r�tt��nX|dd|d|	�S(Ni�(tcommandsRQic{s8x1tjD]&\}}}i|dd6|d6Vq
WdS(NittopicR (thelpmodt	helptable(R�R�R R((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyttopics�scSs|jd�dS(Nt|i(R{(ts((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR��st
DEPRECATEDtdebugt^ic;s.x'�D]\}}i|d6|d6VqWdS(NRgR ((R�tcRd(tearly(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
earlycommands�sc;s.x'�D]\}}i|d6|d6VqWdS(NRgR ((R�RpRd(tother(s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt
othercommands�st
helptopicsRjRrRtttitletIndexRRgRd(t	mercurialRfR)R5R>ttableR�ReR?RltsortR2twsgiuiRKtverboseRhthelp_RtUnknownCommandRR(R*R+R,Rft	topicnameRjtprimaryRpRsRdtcmdRrRttu((RqRss?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyR�s6	
	


	(;R%R<R#RMR�R2RxRRRRRtmercurial.nodeRRRtmercurial.utilRtcommonR	R
RRR
RRRRRRhRtmercurial.i18nRt__all__RRReRR�R1RRRRR�RRRRR R!R"R#R$R%R&R'R(Re(((s?/sys/lib/python2.7/site-packages/mercurial/hgweb/webcommands.pyt<module>sL<("		 	 		KK		5		R				T	(	@	3	L	1	
	h	

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.