Changelog for ack
1.69_01
[ENHANCEMENTS]
Added -A, -B and -C options for showing context after, before
and around your match, respectively. Thanks very much to Torsten
Blix for writing code and tests for this most popular request.
Skips directory autom4te.cache, a cache for autoconf tools, and
cover_db, used by Devel::Cover.
[FEATURES REMOVED]
ack used to check for options that didn't make sense together,
like "ack -l --group", and wouldn't run. Now, with the ability
to have options in the environment, and in your .ackrc file, I
was getting a lot of conflicts that didn't make sense. If I
specify "ack -l --group" on the command line, I should get an
error, but if I do "ack -l" and I have "--group" in my .ackrc,
that shouldn't throw an error.
So I know what I want the behavior to be, but I don't know how
I want to code it. So, in the meantime, I'm removing the
feature.
1.68 Tue Oct 16 14:58:27 CDT 2007
[FIXES]
Implemented --with-filename and --no-filename, which were
documented but never implemented. Thanks to Nigel Metheringham
for the heads-up.
[ENHANCEMENTS]
Added Erlang support.
[INTERNALS]
Added tests for ack -h and -H.
1.67_02 Sun Oct 7 14:50:38 CDT 2007
[FIXES]
ack no longer uses -T, but the tests still use it.
Check for ~/_ackrc, too.
--passthru would highlight every single zero-width space between
characters. Oops. The effect would be to have your output be
15x larger than necessary.
[ENHANCEMENTS]
Added still more sanity checks on option conflicts.
The output for -v negative searching now matches regular searching.
1.67_01 Wed Sep 26 13:36:18 CDT 2007
[FIXES]
Color coding no longer "smears" the following line if the colored
part of the match wraps to the next line.
[ENHANCEMENTS]
Support for an .ackrc file.
Little bitty speed enhancements inside. Nothing major, but it
all adds up, especially on something as commonly-used as ack.
ack now runs under -T (taint mode). This is just a good idea,
although there's nothing that ack does that executes code. Thanks to
Bill Ricker for bringing this up via what turns out to be a non-issue,
but still nudged me to do this.
1.66 Fri Aug 24 00:04:02 CDT 2007
[FIXES]
New Macs are shipping with Test::Harness 1.85, and ack's test
confuse it. I added a requirement of Test::Harness 2.50. The
specific version is somewhat arbitrary.
The -o and --output switches now properly show all matches on
a line, not just the first one.
[ENHANCEMENTS]
Added the -1 switch, which makes ack only give one match of
whatever it is you're looking for, and stop searching after it
finds it. Say that you know there's a Perl file with "foo" in
the name, you can do
ack -1 --perl -g foo
and ack will show the first file matching "foo", and stop once
it finds the file.
[INTERNALS]
Split up more of the code into functions in App::Ack. This is
to make things easier for Gabor Szabo's wack project.
1.65_01 Fri Aug 10 00:28:55 CDT 2007
[ENHANCEMENTS]
Added --passthru switch, to print all lines, whether or not they
match. This is something that could potentially get used a lot,
so I'm not sure that --passthru is the best name. I'm open to
suggestions.
Added FORTRAN support. Thanks, Tod Hagan.
Now ignores .pc directories for the Quilt patch management
system. Thanks, Dirk Jagdmann.
The -i switch now works with the -g switch. Thanks, Leland Johnson.
1.64 Tue Jul 17 10:51:47 CDT 2007
[ENHANCEMENTS]
Sped up searching by using the /o flag. Duh!
Added --hh for C header files.
Specifically excluding a type with --no-whatever trumps its
inclusion in --something-else. For example, if you want to
search .c files, but excluding .h files, you can use --cc
--no-hh. (In fact, that's the very reason I wrote this feature.)
Added -g=regex to let you do -f listings, but filter out only
those files matching the regex. This is exactly the same as
"ack -f | ack regex".
The standalone version of ack gets unused functions pruned out
from it.
Removed the discussion of -A, -B and -C which doesn't work yet.
1.63_03 Thu Jun 14 09:47:39 CDT 2007
[FIXES]
The tests didn't clear ACK_OPTIONS before running, so if you
set this useful environment variable, your tests would fail.
Thanks, Michael Hendricks.
[ENHANCEMENTS]
Added a filetype of "--text", which matches any text file. This
is off by default, just as --binary is.
Added a filetype of "--skipped", which matches any file that
ack skips, like core dumps and backup files. It will NOT
include files that are in ignored directories like blib/ and
.svn/
1.63_02 Thu Jun 14 09:39:23 CDT 2007
Buggy release. Ignore.
1.63_01 Tue Jun 5 2007
[THINGS THAT MAY BREAK FOR YOU]
The changes I made to detect if ack is outputting to the screen
may break some automated build tools. If so, please contact
me. That's why this is a dev release.
[FIXES]
Colorized output to the screen is now the default, correctly.
I got rid of the is_interactive() I took from IO::Interactive
and just checked for C<-t *STDOUT>, because that's what we're
really checking for: Is the output going to the screen?
1.62 Mon May 21 15:22:19 CDT 2007
[THINGS THAT MAY BREAK FOR YOU]
The extensions .tt and .ttml are no longer part of the --perl
type. They are now only in the --tt type.
[FIXES]
RT #26953: Util.pm was in the wrong directory, but only the
Perl from Darwinports complained, because apparently most other
Perl installs have "." in @INC.
RT #25391: Fixed test failures under Win32.
Spelled Slaven Rezić's name properly. Look, my first utf-8 string!
[ENHANCEMENTS]
Added .properties extension for --java.
Added -L as a negation to -l. This is equivalent to -l -v.
Added more GNU-style long opts. Thanks to Ævar Arnfjörð Bjarmason,
my second utf-8 string.
1.60 Fri Mar 9 22:34:15 CST 2007
[FIXES]
ack should behave better when running under a shell now.
[ENHANCEMENTS]
ack now recognizes makefiles and Visual Basic files.
Added new extensions for Mason per
http://masonhq.com/?FAQ:ServerConfiguration#h-what_filename_extensions_should_i_use_for_mason_components_
Thanks, Elias Lutfallah.
Added .rxml to --ruby. Thanks, Ian Langworth.
Added .php3, .php4 and .php5 to --php5. Added --jsp extensions.
Thanks, Stephen Steneker.
Teeny speed optimizations on some regexes.
Changed App::Ack::should_ignore to ::is_searchable() (and
reversed the meaning).
Added error checking on file closes.
Improved how it knows if it's running interactive by stealing
is_interactive() from IO::Interactive.
[DOCUMENTATION]
Added example of using with vim. Thanks, Mark Stosberg.
1.58 Thu Jan 18 22:46:36 CST 2007
[THINGS THAT MAY BREAK FOR YOU]
The PHP list of extensions no longer includes .htm and .html.
[FIXES]
Directories with a file named "0" would stop ack's searching.
[ENHANCEMENTS]
Added a --tcl flag. Thanks, Matt Diephouse.
1.56 Wed Jan 17 12:55:38 CST 2007
[FIXES]
Now correctly handles filetypes of files with multiple periods.
[ENHANCEMENTS]
Added .xs to the list of --cc files.
Warning messages now include the name "ack" at the beginning
of them.
Now skips .git directories.
1.54 Sun Jan 7 22:34:57 CST 2007
[THINGS THAT MAY BREAK FOR YOU]
ack no longer follows symlinks by default, except for starting
points specified on the command line.
[ENHANCEMENTS]
Added the --follow/--nofollow switches for following symlinks.
Added .sty and .cls to the --tex files. Thanks, Uwe Voelker.
[FIXES]
t/filetypes.t would fail sometimes based on hash order.
1.52 Fri Dec 22 00:41:45 CST 2006
[FIXES]
In 1.51_01, I changed how we check the -B of a file, but it's
not reliable. Perl's -B operator acts differently if you call
-B $filename vs. -B $fh.
[ENHANCEMENTS]
I changed some internal code to figure out a file's extension.
By using my own, instead of File::Basename, I cut out over 50%
of the run time on my test of acking through a large tree.
When using -a, it's not necessary to determine the filetype
before searching, only if we should ignore the file or not.
This cut out an additional 10% or so of execution time when
doing -a searces.
[INTERNALS]
We no longer need to build a list of all used suffixes. This
makes startup quicker.
1.51_01 Mon Dec 18 12:59:28 CST 2006
Development version. I'm putting this out so hardcore ack users
can test out some new features.
[FIXES]
Tests now pass under Windows.
[FEATURES]
You can now set the colors for display with the ACK_COLOR_MATCH
and ACK_COLOR_FILENAME environment variables.
[ENHANCEMENTS]
ack-standalone now builds with a shebang line of "#!/usr/bin/env
perl", which is more compatible. Of course, you're welcome to
change it to whatever you like.
I now check for binaryness on the already-open file, rather
than reopening it from the filesystem. This gave me about a
1% speedup in my tests.
Started adding sanity checks to the options. For instance, it
doesn't make sense to use -l and -C together, so ack will
complain about that.
Added a --sort-files option.
[INTERNALS]
More testing on XML and PHP detection courtesy Bill Ricker.
Lots of refactoring of search() in preparation for showing
context around matches.