Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Ack.pm
Original file line number Diff line number Diff line change
Expand Up @@ -341,6 +341,7 @@ File inclusion/exclusion:
-n, --no-recurse No descending into subdirectories
--[no]follow Follow symlinks. Default is off.
-k, --known-types Include only files of types that ack recognizes.
-K, --no-known-types Include all files types.

--type=X Include only X files, where X is a recognized
filetype.
Expand Down
4 changes: 4 additions & 0 deletions ConfigLoader.pm
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,10 @@ sub process_filetypes {
push @{ $opt->{'filters'} }, @filters;
};

$additional_specs{'K|no-known-types'} = sub {
@{ $opt->{'filters'} } = ();
};

return \%additional_specs;
}

Expand Down
6 changes: 6 additions & 0 deletions ack
Original file line number Diff line number Diff line change
Expand Up @@ -1335,6 +1335,12 @@ identically to file type filters as seen in L</"Defining your own types">.
Limit selected files to those with types that ack knows about. This is
equivalent to the default behavior found in ack 1.

=item B<-K>, B<--no-known-types>

Do not limit selected files to those with types that ack knows about. This is
the default behavior found in ack 2, but this allows you to override an earlier
specification of -k or --known-types

=item B<--lines=I<NUM>>

Only print line I<NUM> of each file. Multiple lines can be given with multiple
Expand Down
67 changes: 67 additions & 0 deletions t/ack-no-known-types.t
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
#!perl

use strict;
use warnings;

use File::Find;
use Test::More tests => 2;

use lib 't';
use Util;

prep_environment();

my @files = split "\n", # using qw() produces the warning "Possible attempt to put comments in qw() list"
qq(t/swamp/0
t/swamp/c-header.h
t/swamp/c-source.c
t/swamp/CMakeLists.txt
t/swamp/crystallography-weenies.f
t/swamp/example.R
t/swamp/file.bar
t/swamp/file.foo
t/swamp/fresh.css
t/swamp/groceries/another_subdir/fruit
t/swamp/groceries/another_subdir/junk
t/swamp/groceries/another_subdir/meat
t/swamp/groceries/fruit
t/swamp/groceries/junk
t/swamp/groceries/meat
t/swamp/groceries/subdir/fruit
t/swamp/groceries/subdir/junk
t/swamp/groceries/subdir/meat
t/swamp/html.htm
t/swamp/html.html
t/swamp/incomplete-last-line.txt
t/swamp/javascript.js
t/swamp/lua-shebang-test
t/swamp/Makefile
t/swamp/Makefile.PL
t/swamp/MasterPage.master
t/swamp/not-an-#emacs-workfile#
t/swamp/notaMakefile
t/swamp/notaRakefile
t/swamp/notes.md
t/swamp/options-crlf.pl
t/swamp/options.pl
t/swamp/parrot.pir
t/swamp/perl-test.t
t/swamp/perl-without-extension
t/swamp/perl.cgi
t/swamp/perl.handler.pod
t/swamp/perl.pl
t/swamp/perl.pm
t/swamp/perl.pod
t/swamp/pipe-stress-freaks.F
t/swamp/Rakefile
t/swamp/Sample.ascx
t/swamp/Sample.asmx
t/swamp/sample.asp
t/swamp/sample.aspx
t/swamp/sample.rake
t/swamp/service.svc
t/swamp/stuff.cmake);

ack_sets_match( [ '--no-known-types', '-f', 't/swamp' ], \@files, '--no-known-types test' );

ack_sets_match( [ '-K', '-f', 't/swamp' ], \@files, '-K test' );