diff-lcs 1.2.5 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +6 -14
  2. data/.rspec +0 -1
  3. data/Code-of-Conduct.md +74 -0
  4. data/Contributing.md +118 -0
  5. data/History.md +319 -0
  6. data/{License.rdoc → License.md} +0 -0
  7. data/Manifest.txt +15 -8
  8. data/README.rdoc +18 -19
  9. data/Rakefile +57 -24
  10. data/autotest/discover.rb +3 -1
  11. data/bin/htmldiff +7 -4
  12. data/bin/ldiff +4 -1
  13. data/lib/diff-lcs.rb +1 -1
  14. data/lib/diff/lcs.rb +188 -254
  15. data/lib/diff/lcs/array.rb +1 -1
  16. data/lib/diff/lcs/backports.rb +9 -0
  17. data/lib/diff/lcs/block.rb +1 -1
  18. data/lib/diff/lcs/callbacks.rb +15 -12
  19. data/lib/diff/lcs/change.rb +33 -36
  20. data/lib/diff/lcs/htmldiff.rb +17 -16
  21. data/lib/diff/lcs/hunk.rb +156 -74
  22. data/lib/diff/lcs/internals.rb +43 -40
  23. data/lib/diff/lcs/ldiff.rb +51 -75
  24. data/lib/diff/lcs/string.rb +1 -1
  25. data/spec/change_spec.rb +31 -7
  26. data/spec/diff_spec.rb +24 -20
  27. data/spec/fixtures/aX +1 -0
  28. data/spec/fixtures/bXaX +1 -0
  29. data/spec/fixtures/ds1.csv +50 -0
  30. data/spec/fixtures/ds2.csv +51 -0
  31. data/spec/fixtures/ldiff/output.diff +4 -0
  32. data/spec/fixtures/ldiff/output.diff-c +7 -0
  33. data/spec/fixtures/ldiff/output.diff-e +3 -0
  34. data/spec/fixtures/ldiff/output.diff-f +3 -0
  35. data/spec/fixtures/ldiff/output.diff-u +5 -0
  36. data/spec/hunk_spec.rb +54 -43
  37. data/spec/issues_spec.rb +147 -17
  38. data/spec/lcs_spec.rb +24 -22
  39. data/spec/ldiff_spec.rb +87 -0
  40. data/spec/patch_spec.rb +182 -180
  41. data/spec/sdiff_spec.rb +91 -91
  42. data/spec/spec_helper.rb +143 -58
  43. data/spec/traverse_balanced_spec.rb +177 -177
  44. data/spec/traverse_sequences_spec.rb +63 -63
  45. metadata +87 -143
  46. checksums.yaml.gz.sig +0 -0
  47. data.tar.gz.sig +0 -3
  48. data/.autotest +0 -3
  49. data/.gemtest +0 -0
  50. data/.hoerc +0 -2
  51. data/.travis.yml +0 -22
  52. data/Contributing.rdoc +0 -64
  53. data/Gemfile +0 -20
  54. data/History.rdoc +0 -152
  55. metadata.gz.sig +0 -2
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MzljM2UzMmE0YTUxNThjMDI3NjU4YjU3MDk5MDE2YjkzNDJhOGMyZA==
5
- data.tar.gz: !binary |-
6
- MTgwZTAzMjJlNzFjMGU2ZDY2NWEyM2IxODMxNTM5NmZkMzVlYWQ4Mg==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- ZDdhZGFiOTRhZjMxYTM0YTQyNWRhOGFmMjI2ZDUxMWI0ZmY5ZTNlNDllZjg4
10
- Y2M5YTc1NDAwNmE0Y2NkYjkyYTNhMGY1ZGQzM2QyYzA1Mzg5NTIyMTdjZDhl
11
- NzI4MzNiNDEyODY2NDI5NDE3NmVhYjI3MzExOTAyZGU2YmRiZjA=
12
- data.tar.gz: !binary |-
13
- Y2JiMjIyNzFiYmFkYTM1MDU0YThjYjA0YjhkYzc5OTk2Zjg1MDQ0MGY2ZmRi
14
- NjQ5N2MzZDJkZjQ2NzA3MGYzMTI3ZjcyMGIwOTMyNTZhMTg5ZDFlOWY5MDlj
15
- NzQ0ZDQzYTEwMjI5NWE4MzY5ZGExNDhkYTFlMDA0MGYwZjhmYmI=
2
+ SHA256:
3
+ metadata.gz: 20a82b46de7966bb69d8293ece23c885ff05a3a6f1828d99466079026200e3bd
4
+ data.tar.gz: af785a974e010578214c66694d3e2fd232b26a452d41049a55a9127c07f4b4d4
5
+ SHA512:
6
+ metadata.gz: 1f9ef284f2af3cb47d73100700dbfc39ac16802735f6751637025ed803604b7e27272b34ed1deccc2ddc4813b6e170c7ae2b3012afb094fc5e72d446866455e4
7
+ data.tar.gz: 0b5b56817c536cd55c52e43f2e9ac5b70d76ef1edf9dcf1e7639917da16fcd65f1bf4472df7c44d8d44603c2f5caa2748ce6ddbd41bb7b0215ad3fd0c38fb49a
data/.rspec CHANGED
@@ -1,2 +1 @@
1
1
  --colour
2
- --format documentation
@@ -0,0 +1,74 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, gender identity and expression, level of experience,
9
+ nationality, personal appearance, race, religion, or sexual identity and
10
+ orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at [http://contributor-covenant.org/version/1/4][version]
72
+
73
+ [homepage]: http://contributor-covenant.org
74
+ [version]: http://contributor-covenant.org/version/1/4/
@@ -0,0 +1,118 @@
1
+ ## Contributing
2
+
3
+ I value any contribution to Diff::LCS you can provide: a bug report, a
4
+ feature request, or code contributions. Code contributions to Diff::LCS are
5
+ especially <del>welcome</del>encouraged. Because Diff::LCS is a complex
6
+ codebase, there are a few guidelines:
7
+
8
+ - Code changes _will not_ be accepted without tests. The test suite is
9
+ written with [RSpec][].
10
+ - Match my coding style.
11
+ - Use a thoughtfully-named topic branch that contains your change. Rebase
12
+ your commits into logical chunks as necessary.
13
+ - Use [quality commit messages][].
14
+ - Do not change the version number; when your patch is accepted and a release
15
+ is made, the version will be updated at that point.
16
+ - Submit a GitHub pull request with your changes.
17
+ - New or changed behaviours require appropriate documentation.
18
+
19
+ ### Test Dependencies
20
+
21
+ Diff::LCS uses Ryan Davis’s [Hoe][] to manage the release process, and it
22
+ adds a number of rake tasks. You will mostly be interested in:
23
+
24
+ ```sh
25
+ $ rake
26
+ ```
27
+
28
+ which runs the tests the same way that:
29
+
30
+ ```sh
31
+ $ rake spec
32
+ ```
33
+
34
+ will do.
35
+
36
+ To assist with the installation of the development dependencies, I have
37
+ provided a Gemfile pointing to the (generated) `diff-lcs.gemspec` file. This
38
+ will permit you to do:
39
+
40
+ ```sh
41
+ $ bundle install
42
+ ```
43
+
44
+ to get the development dependencies. If you aleady have `hoe` installed, you
45
+ can accomplish the same thing with:
46
+
47
+ ```sh
48
+ $ rake newb
49
+ ```
50
+
51
+ This task will install any missing dependencies, run the tests/specs, and
52
+ generate the RDoc.
53
+
54
+ You can run tests with code coverage analysis by running:
55
+
56
+ ```sh
57
+ $ rake spec:coverage
58
+ ```
59
+
60
+ ### Workflow
61
+
62
+ Here's the most direct way to get your work merged into the project:
63
+
64
+ - Fork the project.
65
+ - Clone down your fork (`git clone git://github.com/<username>/diff-lcs.git`).
66
+ - Create a topic branch to contain your change (`git checkout -b my_awesome_feature`).
67
+ - Hack away, add tests. Not necessarily in that order.
68
+ - Make sure everything still passes by running `rake`.
69
+ - If necessary, rebase your commits into logical chunks, without errors.
70
+ - Push the branch up (`git push origin my_awesome_feature`).
71
+ - Create a pull request against halostatue/diff-lcs and describe what your
72
+ change does and the why you think it should be merged.
73
+
74
+ ### Contributors
75
+
76
+ - Austin Ziegler created Diff::LCS.
77
+
78
+ Thanks to everyone else who has contributed code or bug reports to Diff::LCS:
79
+
80
+ - @ginriki
81
+ - @joshbronson
82
+ - @kevinmook
83
+ - @mckaz
84
+ - Akinori Musha
85
+ - Artem Ignatyev
86
+ - Brandon Fish
87
+ - Camille Drapier
88
+ - Cédric Boutillier
89
+ - Gregg Kellogg
90
+ - Jagdeep Singh
91
+ - Jason Gladish
92
+ - Jon Rowe
93
+ - Josef Strzibny
94
+ - Josep (@apuratepp)
95
+ - Josh Bronson
96
+ - Jun Aruga
97
+ - Kenichi Kamiya
98
+ - Kensuke Nagae
99
+ - Kevin Ansfield
100
+ - Koichi Ito
101
+ - Mark Friedgan
102
+ - Michael Granger
103
+ - Myron Marston
104
+ - Nicolas Leger
105
+ - Oleg Orlov
106
+ - Paul Kunysch
107
+ - Pete Higgins
108
+ - Peter Wagenet
109
+ - Philippe Lafoucrière
110
+ - Ryan Lovelett
111
+ - Scott Steele
112
+ - Simon Courtois
113
+ - Tomas Jura
114
+ - Vít Ondruch
115
+
116
+ [rspec]: http://rspec.info/documentation/
117
+ [quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
118
+ [hoe]: https://github.com/seattlerb/hoe
@@ -0,0 +1,319 @@
1
+ # History
2
+
3
+ ## 1.4.4 / 2020-07-01
4
+
5
+ - Fixed an issue reported by Jun Aruga in the Diff::LCS::Ldiff binary text
6
+ detection. [#44][]
7
+ - Fixed a theoretical issue reported by Jun Aruga in Diff::LCS::Hunk to raise
8
+ a more useful exception. [#43][]
9
+ - Added documentation that should address custom object issues as reported in
10
+ [#35][].
11
+
12
+ - Fixed more diff errors, in part reported in [#65][].
13
+
14
+ - The use of `Numeric#abs` is incorrect in `Diff::LCS::Block#diff_size`.
15
+ The diff size _must_ be accurate for correct change placement.
16
+ - When selecting @max_diff_size in Diff::LCS::Hunk, choose it based on
17
+ `block.diff_size.abs`.
18
+ - Made a number of changes that will, unfortunately, increase allocations
19
+ at the cost of being safe with frozen strings.
20
+ - Add some knowledge that when `Diff::LCS::Hunk#diff` is called, that we
21
+ are processing the _last_ hunk, so some changes will be made to how the
22
+ output is generated.
23
+
24
+ - `old`, `ed`, and `reverse_ed` formats have no differences.
25
+ - `unified` format will report `` given the
26
+ correct conditions, at most once. Unified range reporting also
27
+ differs for the last hunk such that the `length` of the range is
28
+ reduced by one.
29
+ - `context` format will report `\No newline at end of file` given the
30
+ correct conditions, up to once per "file". Context range reporting also
31
+ differs for the last hunk such that the `end` part of the range is
32
+ reduced by one to a minimum of one.
33
+
34
+ - Added a bunch more tests for the cases above, and fixed `hunk_spec.rb` so
35
+ that the phrase being compared isn't nonsense French.
36
+
37
+ - Updated formatting.
38
+ - Added a Rake task to assist with manual testing on Ruby 1.8.
39
+
40
+ ## 1.4.3 / 2020-06-29
41
+
42
+ - Fixed several issues with the 1.4 on Rubies older than 2.0. Some of this was
43
+ providing useful shim functions to Hoe 3.x (which dropped these older
44
+ Rubies a while ago). Specifically:
45
+
46
+ - Removed Array#lazy from a method in Diff::LCS::Hunk.
47
+ - Changed some unit tests to use old-style Symbol-keyed hashes.
48
+ - Changed some unit test helper functions to no longer use keyword
49
+ parameters, but only a trailing options hash.
50
+ - Made the use of `psych` dependent on `RUBY_VERSION >= 1.9`.
51
+
52
+ Resolves [#63][].
53
+
54
+ ## 1.4.2 / 2020-06-23
55
+
56
+ - Camille Drapier fixed a small issue with RuboCop configuration. [#59][]
57
+ - Applied another fix (and unit test) to fix an issue for the Chef team.
58
+ [#60][], [#61][]
59
+
60
+ ## 1.4.1 / 2020-06-23
61
+
62
+ - Fix an issue where diff sizes could be negative, and they should be. [#57][],
63
+ [#58][]
64
+
65
+ ## 1.4 / 2020-06-23
66
+
67
+ - Ruby versions lower than 2.4 are soft-deprecated and will not be run as
68
+ part of the CI process any longer.
69
+ - Akinora MUSHA (knu) added the ability for Diff::LCS::Change objects to be
70
+ implicitly treated arrays. Originally provided as pull request [#47][],
71
+ but it introduced a number of test failures as documented in [#48][], and
72
+ remediation of Diff::LCS itself was introduced in [#49][].
73
+ - Resolved [#5][] with some tests comparing output from `system` calls to
74
+ `bin/ldiff` with some pre-generated output. Resolved [#6][] with these
75
+ tests.
76
+ - Resolved a previously undetected `bin/ldiff` issue with `--context` output
77
+ not matching `diff --context` output.
78
+ - Resolved an issue with later versions of Ruby not working with an `OptParse`
79
+ specification of `Numeric`; this has been changed to `Integer`.
80
+ - Brandon Fish added truffleruby in [#52][].
81
+ - Fixed two missing classes as reported in [#53][].
82
+
83
+ ## 1.3 / 2017-01-18
84
+
85
+ - Bugs fixed:
86
+
87
+ - Fixed an error for bin/ldiff --version. Fixes issue [#21][].
88
+ - Force Diff::LCS::Change and Diff::LCS::ContextChange to only perform
89
+ equality comparisons against themselves. Provided by Kevin Mook in
90
+ pull request [#29][].
91
+ - Fix tab expansion in htmldiff, provided by Mark Friedgan in
92
+ pull request [#25][].
93
+ - Silence Ruby 2.4 Fixnum deprecation warnings. Fixxues issue [#38][] and
94
+ [pull request#36][].
95
+ - Ensure that test dependencies are loaded properly. Fixes issue [#33][]
96
+ and pull request [#34][].
97
+ - Fix issue [#1][] with incorrect intuition of patch direction. Tentative
98
+ fix, but the previous failure cases pass now.
99
+
100
+ - Tooling changes:
101
+
102
+ - Added SimpleCov and Coveralls support.
103
+ - Change the homepage (temporarily) to the GitHub repo.
104
+ - Updated testing and gem infrastructure.
105
+ - Modernized the specs.
106
+
107
+ - Cleaned up documentation.
108
+
109
+ - Added a Code of Conduct.
110
+
111
+ ## 1.2.5 / 2013-11-08
112
+
113
+ - Bugs fixed:
114
+
115
+ - Comparing arrays flattened them too far, especially with
116
+ Diff::LCS.sdiff. Fixed by Josh Bronson in pull request [#23][].
117
+
118
+ ## 1.2.4 / 2013-04-20
119
+
120
+ - Bugs fixed:
121
+
122
+ - A bug was introduced after 1.1.3 when pruning common sequences at the
123
+ start of comparison. Paul Kunysch (@pck) fixed this in
124
+ pull request [#18][]. Thanks!
125
+
126
+ - The Rubinius (1.9 mode) bug in [rubinius/rubinius#2268][] has been
127
+ fixed by the Rubinius team two days after it was filed. Thanks for
128
+ fixing this so quickly!
129
+
130
+ - Switching to Raggi's hoe-gemspec2 for gemspec generation.
131
+
132
+ ## 1.2.3 / 2013-04-11
133
+
134
+ - Bugs Fixed:
135
+
136
+ - The new encoding detection for diff output generation (added in 1.2.2)
137
+ introduced a bug if the left side of the comparison was the empty set.
138
+ Originally found in [rspec/rspec-expectations#238][] and
139
+ [rspec/rspec-expectations#239][]. Jon Rowe developed a reasonable
140
+ heuristic (left side, right side, empty string literal) to avoid this
141
+ bug.
142
+ - There is a known issue with Rubinius in 1.9 mode reported in
143
+ [rubinius/rubinius#2268][] and demonstrated in the Travis CI builds.
144
+ For all other tested platforms, diff-lcs is considered stable. As soon
145
+ as a suitably small test-case can be created for the Rubinius team to
146
+ examine, this will be added to the Rubinius issue around this.
147
+
148
+ ## 1.2.2 / 2013-03-30
149
+
150
+ - Bugs Fixed:
151
+
152
+ - Diff::LCS::Hunk could not properly generate a difference for comparison
153
+ sets that are not US-ASCII-compatible because of the use of literal
154
+ regular expressions and strings. Jon Rowe found this in
155
+ [rspec/rspec-expectations#219][] and provided a first pass
156
+ implementation in pull request [#15][]. I've reworked it because of
157
+ test failures in Rubinius when running in Ruby 1.9 mode. This coerces
158
+ the added values to the encoding of the old dataset (as determined by
159
+ the first piece of the old dataset).
160
+ - Adding Travis CI testing for Ruby 2.0.
161
+
162
+ ## 1.2.1 / 2013-02-09
163
+
164
+ - Bugs Fixed:
165
+
166
+ - As seen in [rspec/rspec-expectations#200][], the release of
167
+ Diff::LCS 1.2 introduced an unnecessary public API change to
168
+ Diff::LCS::Hunk (see the change at
169
+ [rspec/rspec-expectations@3d6fc82c][] for details). The new method name
170
+ (and behaviour) is more correct, but I should not have renamed the
171
+ function or should have at least provided an alias. This release
172
+ restores Diff::LCS::Hunk#unshift as an alias to #merge. Note that the
173
+ old #unshift behaviour was incorrect and will not be restored.
174
+
175
+ ## 1.2.0 / 2013-01-21
176
+
177
+ - Minor Enhancements:
178
+
179
+ - Added special case handling for Diff::LCS.patch so that it handles
180
+ patches that are empty or contain no changes.
181
+ - Added two new methods (#patch_me and #unpatch_me) to the includable
182
+ module.
183
+
184
+ - Bugs Fixed:
185
+
186
+ - Fixed issue [#1][] patch direction detection.
187
+ - Resolved issue [#2][] by handling `string[string.size, 1]` properly (it
188
+ returns `""` not `nil`).
189
+ - Michael Granger (ged) fixed an implementation error in
190
+ Diff::LCS::Change and added specs in pull request [#8][]. Thanks!
191
+ - Made the code auto-testable.
192
+ - Vít Ondruch (voxik) provided the latest version of the GPL2 license
193
+ file in pull request [#10][]. Thanks!
194
+ - Fixed a documentation issue with the includable versions of #patch! and
195
+ #unpatch! where they implied that they would replace the original
196
+ value. Given that Diff::LCS.patch always returns a copy, the
197
+ documentation was incorrect and has been corrected. To provide the
198
+ behaviour that was originally documented, two new methods were added to
199
+ provide this behaviour. Found by scooter-dangle in issue [#12][].
200
+ Thanks!
201
+
202
+ - Code Style Changes:
203
+
204
+ - Removed trailing spaces.
205
+ - Calling class methods using `.` instead of `::`.
206
+ - Vít Ondruch (voxik) removed unnecessary shebangs in pull request [#9][].
207
+ Thanks!
208
+ - Kenichi Kamiya (kachick) removed some warnings of an unused variable in
209
+ lucky pull request [#13][]. Thanks!
210
+ - Embarked on a major refactoring to make the files a little more
211
+ manageable and understand the code on a deeper level.
212
+ - Adding to http://travis-ci.org.
213
+
214
+ ## 1.1.3 / 2011-08-27
215
+
216
+ - Converted to 'hoe' for release.
217
+ - Converted tests to RSpec 2.
218
+ - Extracted the body of htmldiff into a class available from
219
+ diff/lcs/htmldiff.
220
+ - Migrated development and issue tracking to GitHub.
221
+ - Bugs fixed:
222
+
223
+ - Eliminated the explicit use of RubyGems in both bin/htmldiff and
224
+ bin/ldiff. Resolves issue [#4][].
225
+ - Eliminated Ruby warnings. Resolves issue [#3][].
226
+
227
+ ## 1.1.2 / 2004-10-20
228
+
229
+ - Fixed a problem reported by Mauricio Fernandez in htmldiff.
230
+
231
+ ## 1.1.1 / 2004-09-25
232
+
233
+ - Fixed bug #891 (Set returned from patch command does not contain last equal
234
+ part).
235
+ - Fixed a problem with callback initialisation code (it assumed that all
236
+ callbacks passed as classes can be initialised; now, it rescues
237
+ NoMethodError in the event of private :new being called).
238
+ - Modified the non-initialisable callbacks to have a private #new method.
239
+ - Moved ldiff core code to Diff::LCS::Ldiff (diff/lcs/ldiff.rb).
240
+
241
+ ## 1.1.0 / -
242
+
243
+ - Eliminated the need for Diff::LCS::Event and removed it.
244
+ - Added a contextual diff callback, Diff::LCS::ContextDiffCallback.
245
+ - Implemented patching/unpatching for standard Diff callback output formats
246
+ with both #diff and #sdiff.
247
+ - Extensive documentation changes.
248
+
249
+ ## 1.0.4
250
+
251
+ - Fixed a problem with bin/ldiff output, especially for unified format.
252
+ Newlines that should have been present weren't.
253
+ - Changed the .tar.gz installer to generate Windows batch files if ones do
254
+ not exist already. Removed the existing batch files as they didn't work.
255
+
256
+ ## 1.0.3
257
+
258
+ - Fixed a problem with #traverse_sequences where the first difference from
259
+ the left sequence might not be appropriately captured.
260
+
261
+ ## 1.0.2
262
+
263
+ - Fixed an issue with ldiff not working because actions were changed from
264
+ symbols to strings.
265
+
266
+ ## 1.0.1
267
+
268
+ - Minor modifications to the gemspec, the README.
269
+ - Renamed the diff program to ldiff (as well as the companion batch file) so
270
+ as to not collide with the standard diff program.
271
+ - Fixed issues with RubyGems. Requires RubyGems > 0.6.1 or >= 0.6.1 with the
272
+ latest CVS version.
273
+
274
+ ## 1.0
275
+
276
+ - Initial release based mostly on Perl's Algorithm::Diff.
277
+
278
+ [rubinius/rubinius#2268]: https://github.com/rubinius/rubinius/issues/2268
279
+ [rspec/rspec-expectations#239]: https://github.com/rspec/rspec-expectations/issues/239
280
+ [rspec/rspec-expectations#238]: https://github.com/rspec/rspec-expectations/issues/238
281
+ [rspec/rspec-expectations#219]: https://github.com/rspec/rspec-expectations/issues/219
282
+ [rspec/rspec-expectations@3d6fc82c]: https://github.com/rspec/rspec-expectations/commit/3d6fc82c
283
+ [rspec/rspec-expectations#200]: https://github.com/rspec/rspec-expectations/pull/200
284
+ [#1]: https://github.com/halostatue/diff-lcs/issues/1
285
+ [#2]: https://github.com/halostatue/diff-lcs/issues/2
286
+ [#3]: https://github.com/halostatue/diff-lcs/issues/3
287
+ [#4]: https://github.com/halostatue/diff-lcs/issues/4
288
+ [#5]: https://github.com/halostatue/diff-lcs/issues/5
289
+ [#6]: https://github.com/halostatue/diff-lcs/issues/6
290
+ [#8]: https://github.com/halostatue/diff-lcs/pull/8
291
+ [#9]: https://github.com/halostatue/diff-lcs/pull/9
292
+ [#10]: https://github.com/halostatue/diff-lcs/pull/10
293
+ [#12]: https://github.com/halostatue/diff-lcs/issues/12
294
+ [#13]: https://github.com/halostatue/diff-lcs/pull/13
295
+ [#15]: https://github.com/halostatue/diff-lcs/pull/15
296
+ [#18]: https://github.com/halostatue/diff-lcs/pull/18
297
+ [#21]: https://github.com/halostatue/diff-lcs/issues/21
298
+ [#23]: https://github.com/halostatue/diff-lcs/pull/23
299
+ [#25]: https://github.com/halostatue/diff-lcs/pull/25
300
+ [#29]: https://github.com/halostatue/diff-lcs/pull/29
301
+ [#33]: https://github.com/halostatue/diff-lcs/issues/33
302
+ [#34]: https://github.com/halostatue/diff-lcs/pull/34
303
+ [#35]: https://github.com/halostatue/diff-lcs/issues/35
304
+ [#36]: https://github.com/halostatue/diff-lcs/pull/36
305
+ [#38]: https://github.com/halostatue/diff-lcs/issues/38
306
+ [#43]: https://github.com/halostatue/diff-lcs/issues/43
307
+ [#44]: https://github.com/halostatue/diff-lcs/issues/44
308
+ [#47]: https://github.com/halostatue/diff-lcs/pull/47
309
+ [#48]: https://github.com/halostatue/diff-lcs/issues/48
310
+ [#49]: https://github.com/halostatue/diff-lcs/pull/49
311
+ [#52]: https://github.com/halostatue/diff-lcs/pull/52
312
+ [#53]: https://github.com/halostatue/diff-lcs/issues/53
313
+ [#57]: https://github.com/halostatue/diff-lcs/issues/57
314
+ [#58]: https://github.com/halostatue/diff-lcs/pull/58
315
+ [#59]: https://github.com/halostatue/diff-lcs/pull/59
316
+ [#60]: https://github.com/halostatue/diff-lcs/issues/60
317
+ [#61]: https://github.com/halostatue/diff-lcs/pull/61
318
+ [#63]: https://github.com/halostatue/diff-lcs/issues/63
319
+ [#65]: https://github.com/halostatue/diff-lcs/issues/65