Hi, In the other thread (search for ... 0ca9a2b from bartek-w) he provided a regex with two more changes beyond adding \n. Here are all three regexes:
pre-r245683 match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line) r245683 match = re.search('^\+\+\+\ \"?(.*?/){%s}([^ \t\"]*)' % args.p, line) bartek-w match = re.search('^+++\ \"?(.?/){%s}([^ \t\"\n])' % args.p, line) in bartek-w version, + are not escaped which I do not understand why as + is a special character in Python regex (see https://docs.python.org/2/library/re.html) and and the star after [^ \t\"\n] is missing. Not wishing to break any working code I asked for the broken diff example to test against before comitting and so far didn't get a reply. Anyhow, adding the \n is safe and I've commited it now on r246575 but I'm still not clear about the other two regex changes. I'll update the bug report accordingly. Yaron 2015-09-01 18:52 GMT+03:00 Alexander Kornienko <ale...@google.com>: > > Looks like this patch broke handling of multiple files: https://llvm.org/PR24637 > > Can you take a look at this? > > On Fri, Aug 21, 2015 at 12:56 PM, Yaron Keren <yaron.ke...@gmail.com> wrote: >> >> Whenever is any special character in the filename, such as space or backslash (Windows), some examples: >> >> On Windows: >> --- ".\\a.cpp" 2015-08-21 00:22:57.885370200 +0300 >> +++ b.cpp 2015-08-21 01:05:28.726269900 +0300 >> >> --- ./a.cpp 2015-08-21 00:22:57.885370200 +0300 >> +++ b.cpp 2015-08-21 01:05:28.726269900 +0300 >> >> --- "a a.cpp" 2015-08-21 00:22:57.885370200 +0300 >> +++ b.cpp 2015-08-21 01:05:28.726269900 +0300 >> >> On Linux: >> ~$ diff -U0 ./a.cpp b\ b.cpp >> --- ./a.cpp 2015-08-14 00:27:03.569276652 +0300 >> +++ "b b.cpp" 2015-08-21 13:54:26.787896719 +0300 >> >> filename with space will break current clang-tidy-diff.py on all platforms, the regular expression does not match quotes. >> There is surely some Python package to process filenames correctly if this ever become a problem. >> >> >> 2015-08-21 13:37 GMT+03:00 Alexander Kornienko <ale...@google.com>: >>> >>> On Fri, Aug 21, 2015 at 11:27 AM, Yaron Keren via cfe-commits < cfe-commits@lists.llvm.org> wrote: >>>> >>>> Author: yrnkrn >>>> Date: Fri Aug 21 04:27:24 2015 >>>> New Revision: 245683 >>>> >>>> URL: http://llvm.org/viewvc/llvm-project?rev=245683&view=rev >>>> Log: >>>> Tweak clang-tidy-diff.py to recognize "filename" in the diff ourput >>> >>> >>> Out of curiosity, when does this happen? (I mean quotes around the file name) >>> >>>> >>>> >>>> >>>> >>>> Modified: >>>> clang-tools-extra/trunk/clang-tidy/tool/clang-tidy-diff.py >>>> >>>> Modified: clang-tools-extra/trunk/clang-tidy/tool/clang-tidy-diff.py >>>> URL: http://llvm.org/viewvc/llvm-project/clang-tools-extra/trunk/clang-tidy/tool/clang-tidy-diff.py?rev=245683&r1=245682&r2=245683&view=diff >>>> ============================================================================== >>>> --- clang-tools-extra/trunk/clang-tidy/tool/clang-tidy-diff.py (original) >>>> +++ clang-tools-extra/trunk/clang-tidy/tool/clang-tidy-diff.py Fri Aug 21 04:27:24 2015 >>>> @@ -67,7 +67,7 @@ def main(): >>>> filename = None >>>> lines_by_file = {} >>>> for line in sys.stdin: >>>> - match = re.search('^\+\+\+\ (.*?/){%s}(\S*)' % args.p, line) >>>> + match = re.search('^\+\+\+\ \"?(.*?/){%s}([^ \t\"]*)' % args.p, line) >>>> if match: >>>> filename = match.group(2) >>>> if filename == None: >>>> >>>> >>>> _______________________________________________ >>>> cfe-commits mailing list >>>> cfe-commits@lists.llvm.org >>>> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits >>> >>> >
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits