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.