1
1
TBD
2
2
===
3
- Unreleased changes. Release notes have not yet been written.
3
+ ripgrep 13 is a new major version release of ripgrep that primarily contains
4
+ bug fixes. There is also a fix for a security vulnerability on Windows
5
+ ([ CVE-2021 -3013] ( https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3013 ) ),
6
+ some performance improvements and some minor breaking changes.
7
+
8
+ A new short flag, ` -. ` , has been added. It is an alias for the ` --hidden ` flag,
9
+ which instructs ripgrep to search hidden files and directories.
10
+
11
+ ripgrep is now using a new
12
+ [ vectorized implementation of ` memmem ` ] ( https://github.com/BurntSushi/memchr/pull/82 ) ,
13
+ which accelerates many common searches. If you notice any performance
14
+ regressions (or major improvements), I'd love to hear about them through an
15
+ issue report!
16
+
17
+ Also, for Windows users targeting MSVC, Cargo will now build fully static
18
+ executables of ripgrep. The release binaries for ripgrep 13 have been compiled
19
+ using this configuration.
20
+
21
+ ** BREAKING CHANGES** :
22
+
23
+ ** Binary detection output has changed slightly.**
4
24
5
25
In this release, a small tweak has been made to the output format when a binary
6
26
file is detected. Previously, it looked like this:
@@ -15,12 +35,100 @@ Now it looks like this:
15
35
FOO: binary file matches (found "\0" byte around offset XXX)
16
36
```
17
37
38
+ ** vimgrep output in multi-line now only prints the first line for each match.**
39
+
40
+ See [ issue 1866] ( https://github.com/BurntSushi/ripgrep/issues/1866 ) for more
41
+ discussion on this. Previously, every line in a match was duplicated, even
42
+ when it spanned multiple lines. There are no changes to vimgrep output when
43
+ multi-line mode is disabled.
44
+
45
+ ** In multi-line mode, --count is now equivalent to --count-matches.**
46
+
47
+ This appears to match how ` pcre2grep ` implements ` --count ` . Previously, ripgrep
48
+ would produce outright incorrect counts. Another alternative would be to simply
49
+ count the number of lines---even if it's more than the number of matches---but
50
+ that seems highly unintuitive.
51
+
52
+ ** FULL LIST OF FIXES AND IMPROVEMENTS:**
53
+
54
+ Security fixes:
55
+
56
+ * [ CVE-2021 -3013] ( https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-3013 ) :
57
+ Fixes a security hole on Windows where running ripgrep with either the
58
+ ` -z/--search-zip ` or ` --pre ` flags can result in running arbitrary
59
+ executables from the current directory.
60
+ * [ VULN #1773 ] ( https://github.com/BurntSushi/ripgrep/issues/1773 ) :
61
+ This is the public facing issue tracking CVE-2021 -3013. ripgrep's README
62
+ now contains a section describing how to report a vulnerability.
63
+
64
+ Performance improvements:
65
+
66
+ * [ PERF #1657 ] ( https://github.com/BurntSushi/ripgrep/discussions/1657 ) :
67
+ Check if a file should be ignored first before issuing stat calls.
68
+ * [ PERF memchr #82 ] ( https://github.com/BurntSushi/memchr/pull/82 ) :
69
+ ripgrep now uses a new vectorized implementation of ` memmem ` .
70
+
71
+ Feature enhancements:
72
+
73
+ * Added or improved file type filtering for ASP, Bazel, dvc, FlatBuffers,
74
+ Futhark, minified files, Mint, pofiles (from GNU gettext) Racket, Red, Ruby,
75
+ VCL, Yang.
76
+ * [ FEATURE #1404 ] ( https://github.com/BurntSushi/ripgrep/pull/1404 ) :
77
+ ripgrep now prints a warning if nothing is searched.
78
+ * [ FEATURE #1613 ] ( https://github.com/BurntSushi/ripgrep/pull/1613 ) :
79
+ Cargo will now produce static executables on Windows when using MSVC.
80
+ * [ FEATURE #1680 ] ( https://github.com/BurntSushi/ripgrep/pull/1680 ) :
81
+ Add ` -. ` as a short flag alias for ` --hidden ` .
82
+ * [ FEATURE #1842 ] ( https://github.com/BurntSushi/ripgrep/issues/1842 ) :
83
+ Add ` --field-{context,match}-separator ` for customizing field delimiters.
84
+ * [ FEATURE #1856 ] ( https://github.com/BurntSushi/ripgrep/pull/1856 ) :
85
+ The README now links to a
86
+ [ Spanish translation] ( https://github.com/UltiRequiem/traducciones/tree/master/ripgrep ) .
87
+
18
88
Bug fixes:
19
89
20
90
* [ BUG #1277 ] ( https://github.com/BurntSushi/ripgrep/issues/1277 ) :
21
91
Document cygwin path translation behavior in the FAQ.
92
+ * [ BUG #1739 ] ( https://github.com/BurntSushi/ripgrep/issues/1739 ) :
93
+ Fix bug where replacements were buggy if the regex matched a line terminator.
94
+ * [ BUG #1311 ] ( https://github.com/BurntSushi/ripgrep/issues/1311 ) :
95
+ Fix multi-line bug where a search & replace for ` \n ` didn't work as expected.
96
+ * [ BUG #1401 ] ( https://github.com/BurntSushi/ripgrep/issues/1401 ) :
97
+ Fix buggy interaction between PCRE2 look-around and ` -o/--only-matching ` .
98
+ * [ BUG #1412 ] ( https://github.com/BurntSushi/ripgrep/issues/1412 ) :
99
+ Fix multi-line bug with searches using look-around past matching lines.
100
+ * [ BUG #1577 ] ( https://github.com/BurntSushi/ripgrep/issues/1577 ) :
101
+ Fish shell completions will continue to be auto-generated.
102
+ * [ BUG #1642 ] ( https://github.com/BurntSushi/ripgrep/issues/1642 ) :
103
+ Fixes a bug where using ` -m ` and ` -A ` printed more matches than the limit.
104
+ * [ BUG #1703 ] ( https://github.com/BurntSushi/ripgrep/issues/1703 ) :
105
+ Clarify the function of ` -u/--unrestricted ` .
106
+ * [ BUG #1708 ] ( https://github.com/BurntSushi/ripgrep/issues/1708 ) :
107
+ Clarify how ` -S/--smart-case ` works.
108
+ * [ BUG #1730 ] ( https://github.com/BurntSushi/ripgrep/issues/1730 ) :
109
+ Clarify that CLI invocation must always be valid, regardless of config file.
22
110
* [ BUG #1741 ] ( https://github.com/BurntSushi/ripgrep/issues/1741 ) :
23
111
Fix stdin detection when using PowerShell in UNIX environments.
112
+ * [ BUG #1756 ] ( https://github.com/BurntSushi/ripgrep/pull/1756 ) :
113
+ Fix bug where ` foo/** ` would match ` foo ` , but it shouldn't.
114
+ * [ BUG #1765 ] ( https://github.com/BurntSushi/ripgrep/issues/1765 ) :
115
+ Fix panic when ` --crlf ` is used in some cases.
116
+ * [ BUG #1638 ] ( https://github.com/BurntSushi/ripgrep/issues/1638 ) :
117
+ Correctly sniff UTF-8 and do transcoding, like we do for UTF-16.
118
+ * [ BUG #1816 ] ( https://github.com/BurntSushi/ripgrep/issues/1816 ) :
119
+ Add documentation for glob alternate syntax, e.g., ` {a,b,..} ` .
120
+ * [ BUG #1847 ] ( https://github.com/BurntSushi/ripgrep/issues/1847 ) :
121
+ Clarify how the ` --hidden ` flag works.
122
+ * [ BUG #1866 ] ( https://github.com/BurntSushi/ripgrep/issues/1866#issuecomment-841635553 ) :
123
+ Fix bug when computing column numbers in ` --vimgrep ` mode.
124
+ * [ BUG #1868 ] ( https://github.com/BurntSushi/ripgrep/issues/1868 ) :
125
+ Fix bug where ` --passthru ` and ` -A/-B/-C ` did not override each other.
126
+ * [ BUG #1869 ] ( https://github.com/BurntSushi/ripgrep/pull/1869 ) :
127
+ Clarify docs for ` --files-with-matches ` and ` --files-without-match ` .
128
+ * [ BUG #1878 ] ( https://github.com/BurntSushi/ripgrep/issues/1878 ) :
129
+ Fix bug where ` \A ` could produce unanchored matches in multiline search.
130
+ * [ BUG 94e4b8e3] ( https://github.com/BurntSushi/ripgrep/commit/94e4b8e3 ) :
131
+ Fix column numbers with ` --vimgrep ` is used with ` -U/--multiline ` .
24
132
25
133
26
134
12.1.1 (2020-05-29)
0 commit comments