ó RÑÕ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|ƒdkS(Ni(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 ƒxU|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®|dkrdS|jƒ|s'dSy+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"\([^ \"]\|\\.\)*"s'\([^ \']\|\\.\)*'s/\*s\*/s0[xX][0-9a-fA-F]*[uUlL]*s0[0-7]*[uUlL]*s[1-9][0-9]*[uUlL]*s\|s[eE][-+]?[0-9]+s\([0-9]+\.[0-9]*\|\.[0-9]+\)\(s\)?s[0-9]+t(t|t)cCs tadS(N(tOutsideCommentProgramtProgram(((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR5ÞscCs1d}x$|t|ƒkr,tj||ƒ}|dkr=Pntjdƒ}t|ƒdkr‹|dkrstaq‹|dkr‹taq‹nt|ƒ}tj|ƒrt|}ttkrötsÛdG|GH||}q nt j|ƒrö|}qön|| ||||}t|ƒ}n||}q W|S(Niis/*s*/sFound in comment:( tlenRPtsearchtgrouptInsideCommentProgramROtDictthas_keyt Docommentst NotInComment(RHtitfoundtntsubst((s,/usr/lib64/python2.7/Tools/scripts/fixcid.pyR7âs2           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 Csyt|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            O   &   %