Changelog for ack

NEXT
    Please note that I have moved the bug/issue queue to Google
    Code at http://code.google.com/p/ack/issues/list.  The RT queue
    at rt.cpan.org will no longer be maintained.

    [FIXES]
    The test suite will now run with a TTY, and as part of the
    Debian packaging process.

    [ENHANCEMENTS]
    Skips Mercurial's .hg and Bazaar's .bzr directories.  Thanks,
    Ori Avtalion.

    Added .cc, .hpp, and .hh for C++.  Thanks, Kevin Riggle.


1.70        Sun Nov  4 21:13:55 CST 2007
    [ENHANCEMENTS]
    Added --lines argument.

    [FIXES]
    Added -1 to the --help output.  Thanks Elliot Shank.

    Added sanity checks for -m, --after_context and --before_context.

    -m and -C didn't play nicely together.  Now they do.


1.69_01     Fri Oct 26 2007
    [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.

