From 908bc52237ffe6fc2b4b736b588e329d85b31514 Mon Sep 17 00:00:00 2001 From: Anatoli Babenia Date: Sat, 13 Nov 2021 18:19:45 +0300 Subject: [PATCH] `g++` workaround could still strip ++ if more ++ were encountered This replaces cycle logic in #312 with regex. --- lib/cheat_wrapper.py | 21 +++------------------ lib/cheat_wrapper_test.py | 4 ++++ 2 files changed, 7 insertions(+), 18 deletions(-) diff --git a/lib/cheat_wrapper.py b/lib/cheat_wrapper.py index 602342c..fdcaff6 100644 --- a/lib/cheat_wrapper.py +++ b/lib/cheat_wrapper.py @@ -27,24 +27,9 @@ def _add_section_name(query): return query if ' ' in query: return re.sub(r' +', '/', query, count=1) - elif '+' in query: - delim = "+" - - index = 0 - length = len(query) - while index != length: - - index = query.index(delim, index) + 1 - - try: - comparison = query.index(delim, index) - except ValueError: - comparison = -1 - - if (index != comparison and index != length): - return "%s/%s" % (query[:index-1], query[index:]) - - return query + if '+' in query: + # replace only single + to avoid catching g++ and friends + return re.sub(r'([^\+])\+([^\+])', r'\1/\2', query, count=1) def cheat_wrapper(query, request_options=None, output_format='ansi'): """ diff --git a/lib/cheat_wrapper_test.py b/lib/cheat_wrapper_test.py index 9d85be5..72449ab 100644 --- a/lib/cheat_wrapper_test.py +++ b/lib/cheat_wrapper_test.py @@ -13,6 +13,7 @@ btrfs~volume python/copy+file python/rosetta/:list emacs:go-mode/:list +g++g++ """ split = """ @@ -22,6 +23,9 @@ python/copy file python file python/file +python+file +python/file + g++ -O1 g++/-O1 """