Restructure * handling
diff --git a/codespell_lib/_codespell.py b/codespell_lib/_codespell.py index edf259e..90ef32f 100755 --- a/codespell_lib/_codespell.py +++ b/codespell_lib/_codespell.py
@@ -534,7 +534,7 @@ for uri in re.findall(uri_regex, line): for uri_word in extract_words(uri, word_regex, ignore_word_regex): - if "*" in uri_ignore_words or uri_word in uri_ignore_words: + if uri_word in uri_ignore_words: check_words.remove(uri_word) @@ -605,9 +605,17 @@ fixed_words = set() asked_for = set() + # If all URI spelling errors will be ignored, erase any URI before + # extracting words. Otherwise, apply ignores after extracting words. + # This ensures that if a URI ignore word occurs both inside a URI and + # outside, it will still be a spelling error. + if "*" in uri_ignore_words: + line = uri_regex.sub(' ', line) check_words = extract_words(line, word_regex, ignore_word_regex) - apply_uri_ignore_words(check_words, line, word_regex, - ignore_word_regex, uri_regex, uri_ignore_words) + if "*" not in uri_ignore_words: + apply_uri_ignore_words(check_words, line, word_regex, + ignore_word_regex, uri_regex, + uri_ignore_words) for word in check_words: lword = word.lower()