-
Notifications
You must be signed in to change notification settings - Fork 140
/
Changes
551 lines (379 loc) · 16.5 KB
/
Changes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
History file for ack. https://beyondgrep.com/
NEXT
====================================
2.28 Mon Mar 18 22:48:57 CDT 2019
====================================
[ENHANCEMENTS]
The --help-rgb-colors option now displays the RGB codes organized by
HSL values for easier picking. Thanks, Bill Ricker.
2.26 Sun Mar 17 22:00:00 CDT 2019
====================================
[ENHANCEMENTS]
Added --help-colors and --help-rgb-colors options to display colors
available for color options.
Clarified the docs for --lines option. Thanks, Rob Hoelz. (GH #673)
[FIXES]
Use File::Temp for temp files during tests on Win32. Thanks, Tim Gim Yee.
(GH #671)
2.24 Thu Jun 21 22:41:49 CDT 2018
====================================
No changes since 2.23_03.
2.23_03 Fri Jun 15 23:18:42 CDT 2018
====================================
[ENHANCEMENTS]
Added --ts for Typescript.
[FIXES]
ack would stop searching if there was a file called "0" in the current
directory where ack was invoked. (GH #667)
2.23_02 Sat Jan 6 23:53:03 CST 2018
====================================
[FIXES]
t/ack-n.t was not calling lists_match() correctly.
[ENHANCEMENTS]
Added an optimization to make ack only do a line-by-line search of a
file if there's a match somewhere in the file. This gives ack a 20-30%
in timings of common cases.
2.23_01
====================================
Broken. Deleted.
2.22 Fri Dec 22 16:42:43 CST 2017
====================================
No changes since 2.21_01.
2.21_01 Mon Dec 18 23:40:45 CST 2017
====================================
[FIXES]
Avoid a fatal error that sometimes happened if a file was unreadable.
(GH#520)
[ENHANCEMENTS]
Added support for the Kotlin language.
Sped up file type detection for certain files.
2.20 Sun Dec 10 21:54:55 CST 2017
====================================
No changes since 2.19_01.
2.19_01 Thu Dec 7 23:35:53 CST 2017
====================================
[FIXES]
Changed a construction in the docs that Ubuntu flagged as a misspelling.
[ENHANCEMENTS]
When using submodules, the .git directory will be a file. Make ack
ignore this by default. Thanks, Michele Campeotto. (GH#653)
[INTERNALS]
Replaced all the test data for the test suite with public domain documents.
2.18 Fri Mar 24 14:53:19 CDT 2017
====================================
ack 2.18 will probably be the final release in the ack 2.x series.
I'm going to be starting work on ack 3.000 in earnest. Still,
if you discover problems with ack 2, please report them to
https://github.com/petdance/ack2/issues
If you're interested in ack 3 development, please sign up
for the ack-dev mailing list and/or join the ack Slack. See
https://beyondgrep.com/community/ for details.
[INTERNALS]
Removed the abstraction of App::Ack::Resource and its subclass
App::Ack::Resource::Basic. We are abandoning the idea that we'll have
plugins.
2.17_02 Thu Mar 23 22:25:13 CDT 2017
====================================
[FIXES]
ack no longer throws an undefined variable warning if it's called
from a directory that doesn't exist. (GH #634)
[DOCUMENTATION]
Explain that filetypes must be two characters or longer. (GH #389)
[INTERNALS]
Removed dependency on File::Glob which isn't used.
2.17_01 Wed Mar 15 23:25:28 CDT 2017
====================================
[FIXES]
--context=0 (and its short counterpart -C 0) did not set to context
of 0. This means that a command-line --context=0 couldn't override
a --context=5 in your ackrc. Thanks, Ed Avis. (GH #595)
t/ack-s.t would fail in non-English locales. Thanks, Olivier Mengué.
(GH #485, GH #515)
[ENHANCEMENTS]
--after-context and --before-context (and their short counterparts
-A and -B) no longer require a value to be passed. If no value is
set, they default to 2. (GH #351)
Added .xhtml to the --html filetype. Added .wsdl to the --xml filetype.
Thanks, H.Merijn Brand. (GH #456)
[DOCUMENTATION]
Updated incorrect docs about how ack works. Thanks, Gerhard Poul.
(GH #543)
2.16 Fri Mar 10 13:32:39 CST 2017
====================================
No changes since 2.15_03.
[CONFUSING BEHAVIOR & UPCOMING CHANGES]
The -w has a confusing behavior that it's had since back to ack 1.x
that will be changing in the future. It's not changing in this
version, but this is a heads-up that it's coming.
ack -w is "match a whole word", and ack does this by putting turning
your PATTERN into \bPATTERN\b. So "ack -w foo" effectively becomes
"ack \bfoo\b". Handy.
The problem is that ack doesn't put a \b before PATTERN if it begins
with a non-word character, and won't put a \b after PATTERN if it
ends with a non-word character.
The problem is that if you're searching for "fool" or "foot", but
only as a word, and you do "ack -w foo[lt]" or "ack -w (fool|foot)",
you'll get matches for "football and foolish" which certainly should
not match if you're using -w.
2.15_03 Sun Feb 26 23:07:35 CST 2017
====================================
[ENHANCEMENTS]
Include .cljs, .cljc and .edn files with the --clojure filetype. Thanks,
Austin Chamberlin.
Added .xsd to the --xml filetype. Thanks, Nick Morrott.
Added support for Swift language. Thanks, Nikolaj Schumacher. (GH #512)
The MSYS2 project is now seen as Windows. Thanks, Ray Donnelly. (GH #450)
Expand the definition of OCaml files. Thanks, Marek Kubica. (GH #511)
Add support for Groovy Server Pages. Thanks, Ethan Mallove. (GH #469)
[INTERNALS]
Added test to test --output. Thanks, Varadinsky! (GH #587, GH #590)
[DOCUMENTATION]
Expanded the explanation of how the -w flag works. Thanks, Ed Avis.
(GH #585)
2.15_02 Thu Dec 17 15:51:15 CST 2015
====================================
This is the first dev version in nine months. Many changes have gone
into this, probably more than have been listed here. We need to update
this list, but for now these are fixes we know are in here. My apologies
for not having this changelog accurate.
[FIXES]
Reverted an optimization to make \s work properly again. (GH #572,
GH #571, GH #562, GH #491, GH #498)
Fixed an out-of-date FAQ entry. Thanks, Jakub Wilk. (GH #580)
[ENHANCEMENTS]
The JSP filetype (--jsp) now recognizes .jspf files. Thanks, Sebastien
Feugere. (GH #586)
[INTERNALS]
Added test to make sure subdirs of target subdirs are ignored if
--ignore-dir applies to them. Thanks, Pete Houston. (GH #570)
2.15_01 Fri Feb 13 16:23:54 CST 2015
====================================
[FIXES]
The -l and -c flags would sometimes return inaccurate results due to
a bug introduced in 2.14. Thanks to Elliot Shank for the report! (GH #491)
Behavior when using newlines in a search was inconsistent. Thanks to Yves Chevallier
for the report! (GH #522)
Add minimal requirement of Getopt::Long 2.38, not 2.35, for GetOptionsFromString.
Don't ignore directories that are specified as command line targets (GH #524)
Fix a bug where a regular expression that matches the empty string could cause ack
to go into an infinite loop (GH #542)
[ENHANCEMENTS]
Many optimizations and code cleanups. Thanks, Stephan Hohe.
Added --hpp option for C++ header files. Thankis, Steffen Jaeckel.
ack now supports --ignore-dir=match:.... Thanks, Ailin Nemui! (GitHub ticket #42)
ack also supports --ignore-dir=ext:..., and --noignore-dir supports match/ext as well
2.14 Wed Sep 3 22:48:00 CDT 2014
====================================
[FIXES]
The -s flag would fail to suppress certain warnings. Thanks, Kassio
Borges. (GitHub ticket #439)
The -w flag would fail to work properly with regex features such as
alternation. Thanks to Ed Avis for the report (GitHub ticket #443)
The -g flag should now work faster on larger codebases. Thanks to
Manuel Meurer for the report (GitHub ticket #458)
[ENHANCEMENTS]
ack now ignores JavaScript and CSS source maps. Thanks, Chris
Rebert.
ack now ships with customized shell completion scripts for bash and zsh.
2.13_06 Sat Jan 25 23:36:09 CST 2014
====================================
[FIXES]
More fixes for Windows tests. Thanks to GitHub user @ispedals.
[ENHANCEMENTS]
Add docs for available colors in ack.
2.13_05 Thu Jan 9 22:41:33 CST 2014
====================================
[FIXES]
More whack-a-mole with Windows failures. This time, it's POSIX::mkfifo
dying on Windows instead of returning undef like the docs implied,
or at least that I inferred.
[ENHANCEMENTS]
--create-ackrc keeps the comments that describe each of the options,
and it shows the ack version number.
2.13_04 Sat Jan 4 11:17:28 CST 2014
====================================
[FIXES]
Fixed incorrect deduping of config files under Windows. Thanks,
Denis Howe.
2.13_03 Thu Jan 2 22:23:03 CST 2014
====================================
[FIXES]
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.
[ENHANCEMENTS]
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
====================================
[FIXES]
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
[FIXES]
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.
[INTERNALS]
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
====================================
[SECURITY FIXES]
This version 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.
[ENHANCEMENTS]
Now ignores Eclipse .metadata directory. Thanks, Steffen Jaeckel.
[INTERNALS]
Removed the Git revision tracking in the --version.
2.11_02 Sun Oct 6 12:39:21 CDT 2013
====================================
[FIXES]
2.11_01 was mispackaged. This fixes that.
2.11_01 Sun Sep 29 13:15:41 CDT 2013
====================================
[FIXES]
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
====================================
[ENHANCEMENTS]
Add --perltest for *.t files.
Added Matlab support. Thanks, Zertrin.
[FIXES]
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
====================================
[ENHANCEMENTS]
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.
[FIXES]
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)
2.06
====================================
This mistake of an upload lived for only about 15 minutes.
2.05_01 Tue May 28 10:12:04 CDT 2013
====================================
[ENHANCEMENTS]
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.
[FIXES]
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
McClimon.
[FIXES]
ack was colorizing captured groups even if --nocolor was given.
Thanks, Dale Sedivic.
[ENHANCEMENTS]
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
====================================
[ENHANCEMENTS]
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
McClimon.
[DOCUMENTATION]
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.