summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Allen <dan.j.allen@gmail.com>2021-02-05 02:52:47 -0700
committerGitHub <noreply@github.com>2021-02-05 02:52:47 -0700
commita1505efca095aa6a8ab33fb34a0937cd26cbe822 (patch)
treee198381a2f9ed7ac1f7e68f0a355bc4a40cf18ce
parent1cb06932cbd5b0d777d3e444d6fc113a12a54c88 (diff)
resolves #3932 honor list of tags following negated wildcard on include directive (PR #3933)
-rw-r--r--lib/asciidoctor/reader.rb5
-rw-r--r--test/reader_test.rb4
2 files changed, 5 insertions, 4 deletions
diff --git a/lib/asciidoctor/reader.rb b/lib/asciidoctor/reader.rb
index d7d2229d..e471a5e1 100644
--- a/lib/asciidoctor/reader.rb
+++ b/lib/asciidoctor/reader.rb
@@ -1138,9 +1138,10 @@ class PreprocessorReader < Reader
else
select = base_select = wildcard = inc_tags.delete '**'
end
+ elsif inc_tags.key? '*'
+ select = base_select = !(wildcard = inc_tags.delete '*')
else
- select = base_select = !(inc_tags.value? true)
- wildcard = inc_tags.delete '*'
+ select = base_select = false
end
begin
reader.call inc_path, read_mode do |f|
diff --git a/test/reader_test.rb b/test/reader_test.rb
index be4b623d..c0b8c35f 100644
--- a/test/reader_test.rb
+++ b/test/reader_test.rb
@@ -1304,7 +1304,7 @@ class ReaderTest < Minitest::Test
test 'include directive skips lines all tagged regions except ones enabled when value of tags attribute is negated wildcard' do
input = <<~'EOS'
----
- include::fixtures/tagged-class.rb[tags=**;!*;init]
+ include::fixtures/tagged-class.rb[tags=!*;init]
----
EOS
@@ -1323,7 +1323,7 @@ class ReaderTest < Minitest::Test
test 'include directive does not include tag that has been included then excluded' do
input = <<~'EOS'
----
- include::fixtures/tagged-class.rb[tags=**;!*;init;!init]
+ include::fixtures/tagged-class.rb[tags=!*;init;!init]
----
EOS