History file for ack.  http://beyondgrep.com/

2.13_03 Thu Jan  2 22:23:03 CST 2014
More build fixes for Windows.  Windows config finder fixes from
James McCoy.

t/ack-named-pipes.t uses POSIX::mkfifo instead of the external
command, which should be more portable.  Thanks, Pete Krawczyk.

Now ignores Cabal (Haskell) sandboxes.  Thanks, Fraser Tweedale.

Added filetypes for Jade, Smarty and Stylus.  Thanks, Raúl Gundín.

2.13_02 Fri Dec 27 12:54:27 CST 2013
The building of ack-standalone relied on the output of `perldoc
-l`, which I apparently can't rely on having been installed.  I've
changed the way that the squash program finds File::Next.

2.13_01 Wed Dec 25 13:36:08 CST 2013
So this is Christmas
And what have you done
I'm sitting here hacking
On ack 2.13_01
   -- via Pete Krawczyk

Issue #313: ack would fail when trying to check files for readability
on some networked filesystems, or on Mac OS X with ACLs.  Now it
uses the filetest pragma.  Thanks, Jonathan Perret.

ack's entire test suite now runs under Perl's -T taint flag.  We'll
build more security tests on top of this.

Added some checks to the squash program that I hope will turn up
errors in the Windows builds.

2.12    Tue Dec  3 07:05:02 CST 2013
This verison of ack prevents the --pager, --regex and --output
options from being used from project-level ackrc files.  It is
possible to execute malicious code with these options, and we want
to prevent the security risk of acking through a potentially malicious
codebase, such as one downloaded from an Internet site or checked
out from a code repository.

The --pager, --regex and --output options may still be used from
the global /etc/ackrc, your own private ~/.ackrc, the ACK_OPTIONS
environment variable, and of course from the command line.

Now ignores Eclipse .metadata directory.  Thanks, Steffen Jaeckel.

Removed the Git revision tracking in the --version.

2.11_02 Sun Oct  6 12:39:21 CDT 2013
2.11_01 was mispackaged.  This fixes that.

2.11_01 Sun Sep 29 13:15:41 CDT 2013
Fixed a race condition in t/file-permission.t that was causing
failures if tests were run in parallel.

2.10    Tue Sep 24 16:24:11 CDT 2013
Add --perltest for *.t files.

Added Matlab support.  Thanks, Zertrin.

Fix the test suite for Win32.  Many thanks to Christian Walde for
bringing the severity of this issue to our attention, as well as
providing a Win32 development environment for us to work with.

Fixed Win32-detection in the Makefile.PL.  Thanks, Michael Beijen
and Alexandr Ciornii.

More compatibility fixes for Perl 5.8.8.

2.08    Thu Aug 22 23:11:45 CDT 2013
ack now ignores CMake's build/cache directories by default.  Thanks,
Volodymyr Medvid.

Add shebang matching for --lua files.

Add documentation for --ackrc.

Add Elixir filetype.

Add --cathy option.  Thanks to Joe McMahon.

Add some helpful debugging tips when an invalid option is found.
Thanks to Charles Lee.

Ignore PDF files by default, because Perl will detect them as text.

Ignore .gif, .jpg, .jpeg and .png files.  They won't normally be
selected, but this is an optimization so that ack doesn't have to
open them to know.

Ack's colorizing of output would get confused with multiple sets
of parentheses.  This has been fixed.  (Issue #276)

Ack would get confused when trying to colorize the output in
DOS-format files.  This has been fixed.  (Issue #145)

This mistake of an upload lived for only about 15 minutes.

2.05_01 Tue May 28 10:12:04 CDT 2013
We now ignore the node_modules directories created by npm.  Thanks,
Konrad Borowski.

--pager without an argument implies --pager=$PAGER.

--perl now recognizes Plack-style .psgi files.  Thanks, Ron Savage.

Added filetypes for Coffescript, JSON, LESS, and Sass.

Command-line options now override options set in ackrc files.

ACK_PAGER and ACK_PAGER_COLOR now work as advertised.

Fix a bug resulting in uninitialized variable warnings when more
than one capture group was specified in the search pattern.

Make sure ack is happy to build and test under cron and other
console-less environments.

Colored output is now supported and on by default on Windows.

2.04    Fri Apr 26 22:47:55 CDT 2013
ack now runs on a standard Perl 5.8.8 install with no module updates.
The minimum Perl requirement for ack is now explicitly 5.8.8.  Anything
before 5.8.8 will not work, and we've added checks.  Thanks, Michael

ack was colorizing captured groups even if --nocolor was given.
Thanks, Dale Sedivic.

The --shell file type now recognizes the fish shell.

We now ignore minified CSS or Javascript, in the form of either *.css.min
or *.min.css, or *.js.min or *.min.js.

Added support for the Dart language.

ack 2.02 was much slower than ack 1.96, up to 8x slower in some cases.
These slowdowns have been mostly eliminated, and in some cases ack 2.04
is now faster than 1.96.

2.02    Thu Apr 18 23:51:52 CDT 2013
The firstlinematch file type detection option now only searches the
first 250 characters of the first line of the file.  Otherwise, ack
would read entire text files that were only one line long, such as
minified JavaScript, and that would be slow.  Thanks, Michael

Many clarifications and cleanups.  Thanks, Michael McClimon.

2.00    Wed Apr 17 22:49:41 CDT 2013

The first version of ack 2.0.

# Incompatibilities with ack 1.x

ack 2 makes some big changes in its behaviors that could trip up
users who are used to the idiosyncracies of ack 1.x.  These changes
could affect your searching happiness, so please read them.

* ack's default behavior is now to search all files that it identifies
as being text.  ack 1.x would only search files that were of a file
type that it recognized.

* Removed the `-a` and `-u` options since the default is to search
all text files.

* Removed the `--binary` option.  ack 2.0 will not find and search
through binary files.

* Removed the `--skipped` option.

* Removed the `--invert-file-match` option.  `-v` now works with
`-g`.  To list files that do not match `/foo/`

    ack -g foo -v

* `-g` now obeys all regex options: `-i`, `-w`, `-Q`, `-v`

* Removed the `-G` switch, because it was too confusing to have two
regexes specified on the command line.  Now you use the `-x` switch
to pipe filenames from one `ack` invocation into another.

To search files with filename matching "sales" for the string "foo":

    ack -g sales | ack -x foo

# New features in ack 2.0

ack 2.0 will:

* By default searches all text files, as identified by Perl's `-T` operator
    * We will no longer have a `-a` switch.

* improved flexibility in defining filetype selectors
    * name equality ($filename eq 'Makefile')
    * glob-style matching (`*.pl` identifies a Perl file)
    * regex-style matching (`/\.pl$/i` identifies a Perl file)
    * shebang-line matching (shebang line matching `/usr/bin/perl/`
    identifies a Perl file)

* support for multiple ackrc files
    * global ackrc (/etc/ackrc)
        * https://github.com/petdance/ack/issues/#issue/79
    * user-specific ackrc (~/.ackrc)
    * per-project ackrc files (~/myproject/.ackrc)

* you can use --dump to figure which options are set where

* all inclusion/exclusion rules will be in the ackrc files
    * ack 2.0 has a set of definitions for filetypes, directories to
      include or exclude, etc, *but* these are only included so you don't
      need to ship an ackrc file to a new machine.  You may tell ack to
      disregard these defaults if you like.

* In addition to the classic `--thpppt` option to draw Bill the
Cat, `ack --bar` will draw (of course) Admiral Ackbar.