� �fc@s�ddlZddlZddlZddlTddlZejjZeZej jZ d�Z d�Z dZ d�Zd�Zd�Zd Zd Zd Zd Zd ZdZdZdZededeZdZdedZdeZedeZedeZeeeeefZddj e�dZ!ej"e!�Z#eeefZ$ddj e$�dZ%ej"e%�Z&d�Z'd�Z(da)d�Z*da+d�Z,iZ-iZ.d�Z/e0dkr�e �ndS(i����N(t*cCs�tjd}td|d�td�td�td�td�td�td�td �td �td �td �dS( NisUsage: s/ [-c] [-r] [-s file] ... file-or-directory ... s s*-c : substitute inside comments s:-r : reverse direction for following -s options s+-s substfile : add a file of substitutions s<Each non-empty non-comment line in a substitution file must s>contain exactly two words: an identifier and its replacement. s:Comments start with a # character and end at end of line. s=If an identifier is preceded with a *, it is not substituted s,inside a comment even when -c is specified. (tsystargvterr(tprogname((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pytusage/s           cCsqy#tjtjdd�\}}WnBtjk rg}tdt|�d�t�tjd�nXd}|s�t�tjd�nxY|D]Q\}}|dkr�t�n|dkr�t �n|d kr�t |�q�q�Wxv|D]n}t j j |�rt|�r\d}q\q�t j j|�rGt|d �d}q�t|�r�d}q�q�Wtj|�dS( Niscrs:sOptions error: s iis-cs-rs-ss": will not process symbolic links (tgetoptRRterrorRtstrRtexitt setdocommentst setreversetaddsubsttostpathtisdirt recursedowntislinktfix(toptstargstmsgtbadtopttarg((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pytmain>s6#         s^[a-zA-Z0-9_]+\.[ch]$cCstjt|�S(N(tretmatchtWanted(tname((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pytwanted\scCs9td|f�d}ytj|�}Wn3tjk r_}t|dt|�d�dSX|j�g}x�|D]�}|tjtjfkr�qwntj j ||�}tj j |�r�qwtj j |�r�|j |�qwt|�rwt|�r d}q qwqwWx#|D]}t|�rd}qqW|S(Nsrecursedown(%r) is: cannot list directory: s i(tdbgR tlistdirRRRtsorttcurdirtpardirRtjoinRRtappendRRR(tdirnameRtnamesRtsubdirsRtfullname((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR_s0      c Cs-|dkr!tj}tj}n}yt|d�}Wn0tk rf}t|dt|�d�dSXtjj |�\}}tjj |d|�}d}d}t �xV|j �}|s�Pn|d}x>|dd kr|j �} | s�Pn|| }|d}q�Wt|�} | |kr�|dkr�yt|d �}Wn:tk r�}|j�t|d t|�d�dSX|jd�d}t �t|d �q�ntt|�d�td |�td| �n|dk r�|j| �q�q�W|dkrdS|j�|s(dS|j�y+tj|�} tj|| td@�Wn2tjk r�}t|dt|�d�nXytj||d�Wn2tjk r�}t|dt|�d�nXytj||�Wn3tjk r(}t|dt|�d�dSXdS(Nt-trs: cannot open: s it@ii����s\ tws: cannot create: s: s< s> i�s: warning: chmod failed (s) t~s: warning: backup failed (s: rename failed ((RtstdintstdouttopentIOErrorRRR RtsplitR$tNonet initfixlinetreadlinetfixlinetclosetseektreptreprtwritetstattchmodtST_MODERtrename( tfilenametftgRtheadttailttempnametlinenotlinetnextlinetnewlinetstatbuf((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyRus�                  s (struct )?[a-zA-Z_][a-zA-Z0-9_]+s"([^\n\\"]|\\.)*"s'([^\n\\']|\\.)*'s/\*s\*/s0[xX][0-9a-fA-F]*[uUlL]*s0[0-7]*[uUlL]*s[1-9][0-9]*[uUlL]*t|s[eE][-+]?[0-9]+s([0-9]+\.[0-9]*|\.[0-9]+)(s)?s[0-9]+t(t)cCs tadS(N(tOutsideCommentProgramtProgram(((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR5�scCs7d}x*|t|�kr2tj||�}|dkr=Pn|j�}|jd�}t|�dkr�|dkrtaq�|dkr�taq�nt|�}|tkr%t|}ttkr�t s�dG|GH||}q n|t kr�|}q�n|| ||||}t|�}n||}q W|S(Niis/*s*/sFound in comment:( tlenRPtsearchR4tstarttgrouptInsideCommentProgramROtDictt Docommentst NotInComment(RHtiRtfoundtntsubst((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR7�s4              icCs dadS(Ni(RW(((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR scCs t adS(N(tReverse(((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR sc Cs�yt|d�}Wn<tk rQ}t|dt|�d�tjd�nXd}x�|j�}|sqPn|d}y|jd�}Wntk r�d}nX|| j �}|s�q[nt |�dkr|dd kr|dd |dg|d *n3t |�d kr9t|d |||f�q[nt rN|\}}n |\}}|dd krw|d}n|dd kr�|d}|t |%sX            P   '   %