o ]LbG @shddlmZddlZddlmZddlmZddlmZmZddl m Z z_ddl Z idd d d d d dddddddddddddddde j dfdde j dfdde jdfd de jdfd!de jdfd"de jdfd#de jdfd$de jdfiZWneefydZ iZYnwidddd%dd&dd'd d(d!d)d"d*d#d+d$d,dddd-d d.dd/dd0d1d2d3d4d5d6d7d8d9d:d;d<Zid=d>d?dd@d!dAd#dBd"dCd"dDd"dEdFdGd>dHddIddJdKdLddMddNd$dOddPdQidRddSddTdUdVd>dWdFdXd"dYddZd[d\dd]dd^d_d`ddaddbddcdddddedidfd dgddhddid djddkd dlddmddnd>doddpddqddrd dsd dtddud"dvd#idwddxddyd!dzd>d{dFd|d>d}d#d~dFddddFddddddddKdddd>ddddKd#dddZddZddZddZddZddZddZddZddZ ddZ!ddZ"e#dZ$ddZ%ddZ&dZ'ej(rddl)Z)e)j*j+Z,e)j-Z.dZ/Gddde)j0Z1Gddde)j0Z2Gddde)j0Z3dZ4dZ5dZ6d0Z7d.Z8dZ9dZ:d'Z;dZdZ?iddddde8de7d e8e7Bd!e6d"e6e8Bd#e6e7Bd$e8e7Be6Bde9d1dd3e<d5e;dedZ'e9e=e?e>hZ@e,Ae4ZBeBduseBe/krdZ'ne3ZCe,DeBe)EeCsdZ'n eCjFZGe#dejHejIBZJddZKdSdS))absolute_importN)_)getattr)encodingpycompat) stringutilnone)Tssgr0sstandout)Tssmsor underline)Tssmulr sreverse)Tsrevr inverseblink)Tr r dim)Trr bold)Trr s invisible)Tsinvisr sitalic)Tssitmr sblackFr sredsgreensyellowsbluesmagentascyanswhite !"#$%sblack_background(sred_background)sgreen_background*+,-./)yellow_backgroundblue_backgroundpurple_backgroundcyan_backgroundwhite_backgrounds grep.matchsred boldsgrep.linenumbersgrep.revsgrep.seps grep.filenames grep.users grep.dates grep.inserteds green bolds grep.deletedsbookmarks.activesbranches.activesbranches.closeds black boldsbranches.currentsbranches.inactives diff.changeds diff.deletedsdiff.deleted.changedsred bold underlinesdiff.deleted.unchangeds diff.difflines diff.extendeds cyan bolds diff.file_as diff.file_bs diff.hunks diff.insertedsdiff.inserted.changedsgreen bold underlinesdiff.inserted.unchangedsdiff.tabsdiff.trailingwhitespacesbold red_backgroundschangeset.publicschangeset.draftschangeset.secretsdiffstat.deletedsdiffstat.inserteds!formatvariant.name.mismatchconfigs"formatvariant.name.mismatchdefaultsformatvariant.name.uptodates!formatvariant.repo.mismatchconfigs"formatvariant.repo.mismatchdefaultsformatvariant.repo.uptodatesformatvariant.config.specialsformatvariant.config.defaultsformatvariant.defaultshistedit.remainingsui.addremove.addedsui.addremove.removedsui.errors ui.prompts log.changesetspatchbomb.finalsummaryspatchbomb.froms patchbomb.tospatchbomb.subjectspatchbomb.diffstatssrebase.rebasedsrebase.remainingsresolve.resolvedsresolve.unresolveds shelve.ages shelve.newests shelve.names blue bolds status.addeds status.cleans status.copiedsstatus.deletedscyan bold underlinesstatus.ignoredsstatus.modifiedsstatus.removedsstatus.unknownsmagenta bold underline)s tags.normals tags.locals"upgrade-repo.requirement.preservedsupgrade-repo.requirement.addeds upgrade-repo.requirement.removedcCst|dSN)_defaultstylesupdate)uiextname colortabler/1/usr/lib/python3/dist-packages/mercurial/color.pyloadcolortablesr1c CsNtdurdS|dvr dS|jt|dD]1\}}|dr1dt|df}||j|dd<q|drHd d|d d f}||j|d d<qztWntj y_|j YdSw|j D]\}\}}}|sqqg|st t|s|d ||j|=qgt drt ds|dkr|r|td|j dSdS)zDInitialize terminfo data and the terminal if we're in terminfo mode.N)autoterminfocolorcolor.Fr  terminfo.Ts\E sno terminfo entry for %s setafsetabr3s>no terminfo entry for setab/setaf: reverting to ECMA-48 color )curses_terminfoparamsr+_baseterminfoparams configitems startswithintreplace setuptermerrorclearcopyitemstigetstrrsysstrdebugwarnr) r,mode formattedkeyvalnewvalbecr/r/r0_terminfosetupsF      rTcCs.t|}||_|r|dkrt|dSdSdS)zconfigure color on a ui That function both set the colormode for the ui object and read the configuration looking for custom colors and effect definitions.debugN) _modesetup _colormode configstyles)r,rLr/r/r0setups   rYcsdrdSdd}|dkrdS|dk}d}|s1t|r1dddks,|dkr/d}nd}|s7|s7dS|pDtjd d koDdd t d drXdd t j r~ddl m }dkrstrm|rpdndndkr}tr}|ndkrdfdd}dkrjts|dSndkrjndkrtjs|dndS|s|rňrňSdS)Nr4suirUr2Fs--colorsalwaysTsTERMsdumbsmode pageractives pagermoder)win32sansiwin32cs*krrtddSdSdS)Ns(warning: failed to set color mode to %s )rKrr/rMrLrealmoder,r/r0modewarn s z_modesetup..modewarnr3)plainconfigr parsebool configsourcerenvirongetrMrr iswindowsr[ w32effects enablevtmoder=rErT)r,raautoalwaysr[r_r/r]r0rVsf           rVcCs|jt|dD]>\}}d|vs|drq |d|}|rIg}|D]}t||r2||q%|t dt ||fq%d ||j|<q dS)Nr4.)r5r7s:ignoring unknown color/effect %s (configured in color.%s)  ) _stylesr+r*r?r@ configlist valideffectappendrKrrpprintjoin)r,status cfgeffectsgoodrRr/r/r0rX's(     rXcCs |jdkrtS|jdurtSiS)z8Return the effects map for the color mode set on the ui.r\N)rWrh_effectsr,r/r/r0_activeeffects=s  rycCs0|j r |t|vp||jvp|dd|jvS)z(Determine if the effect is valid or not.N)r=ry)r,effectr/r/r0rpFsrpcCsd}|drd}|dd}z |j|\}}}Wn ty#YdSw|r2|r*|Stt|S|r=ttd|Sttd|S) z%Helper function for render_effects().Fs _backgroundTNrzr r;r:)endswithr=KeyErrorr<rHrrItparm)r,r{bgattrrOtermcoder/r/r0 _effect_strMs    rcCs4g}||D] }|s q||||gqd|S)a]Insert start sequence at every occurrence of stop sequence >>> s = _mergeeffects(b'cyan', b'[C]', b'|') >>> s = _mergeeffects(s + b'yellow', b'[Y]', b'|') >>> s = _mergeeffects(b'ma' + s + b'genta', b'[M]', b'|') >>> s = _mergeeffects(b'red' + s, b'[R]', b'|') >>> s '[R]red[M]ma[Y][C]cyan|[R][M][Y]yellow|[R][M]genta|' r )splitextendrs)textstartstoppartstr/r/r0 _mergeeffectscs   rcs|s|Sjrdfdddg|D}td}n&tfdddg|D}dd|d }dtdd }t|||S) z-Wrap text in commands to turn on each effect.r c3s|]}t|VqdSr))r).0r{rxr/r0 zs  z"_render_effects..r csg|] }t|qSr/)rbytestr)rrR) activeeffectsr/r0 s z#_render_effects..[;m)r=rsrrryrrr)r,reffectsrrr/)rr,r0_render_effectsus     rs\x1b\[[0-9;]*mcCs td|S)z@Strip ANSI control codes which could be inserted by colorlabel()r ) _ansieffectresub)rr/r/r0 stripeffectss rcsjdkr"|r |r |drd||ddf}|Sd||f}|Sjdur`g|D]}j|d}|r>|q-t|rH|q-dr`dfd d |dD}|S) z,add color control code according to the moderU s[%s|%s] Ns[%s|%s]r rmcsg|]}t|qSr/)r)rlinerr,r/r0rs zcolorlabel..)rWr|rrnrerqrprs)r,msglabellsr/rr0 colorlabels0          rrc@s eZdZdejfdejfgZdS)_COORDXYN__name__ __module__ __qualname__ctypesc_short_fields_r/r/r/r0rsrc@s0eZdZdejfdejfdejfdejfgZdS) _SMALL_RECTLeftTopRightBottomNrr/r/r/r0rs rc@s.eZdZdefdefdefdefdefgZdS)_CONSOLE_SCREEN_BUFFER_INFOdwSizedwCursorPosition wAttributessrWindowdwMaximumWindowSizeN)rrrr_WORDrrr/r/r/r0rsrll@i@ir$r%r&r')r(sbold_backgroundr r s\033\[([^m]*)m([^\033]*)(.*)c Ks4|dd}t}dd}|D]"}|j|d}|D]} z |t| |}Wqty1Yqwq|ds.mapcolorrsrrrr)rerrrnrhr}r@rematchansiregrouprAflush _kernel32SetConsoleTextAttributestdout) r, writefuncroptsrrrrstyler{msattrr/r/r0 win32print sB         r)L __future__rri18nrrrrgrutilsrr< COLOR_BLACK COLOR_RED COLOR_GREEN COLOR_YELLOW COLOR_BLUE COLOR_MAGENTA COLOR_CYAN COLOR_WHITEr> ImportErrorAttributeErrorrwr*r1rTrYrVrXryrprrrcompilerrrrhrfrwindllkernel32rc_ushortr_INVALID_HANDLE_VALUE Structurerrr_STD_OUTPUT_HANDLE_STD_ERROR_HANDLE_FOREGROUND_BLUE_FOREGROUND_GREEN_FOREGROUND_RED_FOREGROUND_INTENSITY_BACKGROUND_BLUE_BACKGROUND_GREEN_BACKGROUND_RED_BACKGROUND_INTENSITY_COMMON_LVB_REVERSE_VIDEO_COMMON_LVB_UNDERSCOREr GetStdHandlercsbiGetConsoleScreenBufferInfobyrefrr MULTILINEDOTALLrrr/r/r/r0s                          !"#$%&'()*+,-./0123456789:;<=>?@ABCDEM- Q