o ]Lb@sPddlmZddlmZddlmZmZ d d d Z       dd d ZdS))absolute_import)_)mdiffpycompatNFdiffc Cst||||ddd|dS)z6return diffopts with all features supported and parsedT)opts untrustedsectiongit whitespaceformatchanging configprefix)difffeatureopts)uir r r rr4/usr/lib/python3/dist-packages/mercurial/diffutil.py diffalloptssrc sdjdffdd }|d|dd|djdd } d d | d <|r|d | d <d d | d<d d} | durd} zJzt| } | dksQ| dkr\td} | | Wn*ty| dksl| dkrod} n| dkrvd} n| dkrtd} | | YnwW| | d<n| | d<w|r|dd| d<|dd| d<|dd| d<|d d!| d!<|rod"| d"<durdnd#} | dur| n|d$d%d&| d$<|d'd%d&| d'<|d(d)d%d&| d*<tjd+it | S),areturn diffopts with only opted-in features parsed Features: - git: git-style diffs - whitespace: whitespace options like ignoreblanklines and ignorews - formatchanging: options that will likely break or cause correctness issues with most diff parsers NcsJr|}|st|tr|S|durr|S||p |dS)N)r )get isinstanceboolplain)keynamegetter forceplainvrr r rr rrr7s zdifffeatureopts..getnodatess show_functionshowfuncsunified)r)rr scontexts experimentalsxdiffsgitsextendedheader.similaritysshowsimilaritysextendedheader.indexr(s.invalid length for extendedheader.index: '%d' sshortr sfullsnones-invalid value for extendedheader.index: '%s' sindexsignore_all_spacesignorewssignore_space_changesignorewsamountsignore_blank_linessignoreblanklinessignore_space_at_eols ignorewseolstextsbinarysnobinaryF)rsnoprefixs word_diffs word-diffsworddiffr) configboolconfigintrwarn ValueErrorrrdiffoptsr strkwargs)rr r r r r rrr buildoptshconfhlenmsgbinaryrrrr$sj       r)NFrr)NFrFFFr) __future__ri18nrrrrrrrrrs