Changelog for ack

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.