# diffobj

## v0.3.7-8

* Fix tests for changes to `structure()` in r90216.
* Require R 4.1 or greater so we can drop the internal `c.factor` implementation
  in favor of the base R implementation.
* Fix docs to pass new `_R_CHECK_RD_CONTENTS_USAGE_` CRAN flag.

## v0.3.6

* Fix bad xrefs in docs (h/t CRAN team).
* [#159](https://github.com/brodieG/diffobj/issues/154): make it clearer how to
  adjust diff panel headers/titles (aka banners).

## v0.3.5

* Options automatically fallback to factory defaults if they are unset (h/t
  @gadenbui).
* [#158](https://github.com/brodieG/diffobj/issues/158): Calling `diff*` with
  `do.call` now works without warnings.
* [#117](https://github.com/brodieG/diffobj/issues/117): Fix guide detection
  with very wide wrapped data.frames (h/t @bastician, @overvolting).

## v0.3.4

* Add a print method for `ses_dat` return values that makes it easier to
  interpret the diff.
* [#152](https://github.com/brodieG/diffobj/issues/152): Rewrite the
  fall-back "O(n)" algorithm that kicks in when there are `max.diffs`
  differences to be more robust (h/t @hadley, @DanChaltiel, @gadenbui).
* Related to #152: `max.diffs=0` used to mean the same as `max.diffs=-1` (i.e.
  unlimited), but this was undocumented and an error.  `max.diffs=0` will now
  immediately fall back to the "O(n)" algorithm.

## v0.3.3

* Implement experimental .Rout / .Rout.save testing.
* Fix `all.equal` test breakages from
  [r79555](https://github.com/r-devel/r-svn/commit/66d016544fe9deb64aa74ae55fa3edfcb721b1c4).

## v0.3.1-2

* [#150](https://github.com/brodieG/diffobj/issues/150): Make tests compatible
  with new `testthat` release (h/t @hadley).
* Remove pre-built vignettes and note `testthat` change to `waldo` release.

## v0.3.0

* [#143](https://github.com/brodieG/diffobj/issues/143): Add `ses_dat` to
  provide a more computable version of `ses` (h/t @hadley).
* [#144](https://github.com/brodieG/diffobj/issues/144): Re-encode strings to
  UTF-8 prior to comparison to avoid spurious encoding-only differences (h/t
  @hadley).
* [#142](https://github.com/brodieG/diffobj/issues/142): Typos in
  `standardGeneric` in trim/guide generic definitions.
* Drop attributes from inputs to `diffChr` (revealed as an issue by #142).
* Banish ghosts of `stringsAsFactors`.

## v0.2.4

* Tests explicitly set `stringsAsFactors=TRUE` so they don't fail with the
  anticipated changed for R4.0.
* [#140](https://github.com/brodieG/diffobj/issues/140): Bad link in `?ses`.

## v0.2.3

This is a bugfix release.

* [#136](https://github.com/brodieG/diffobj/issues/136): Documentation for
  `ignore.white.space` (h/t @flying-sheep) and `max.diffs` parameters listed
  incorrect defaults.
* [#135](https://github.com/brodieG/diffobj/issues/135): Incorrect handling of
  potential meta data strings when unwrapping atomics would cause a "wrong sign
  in by argument" error (h/t @flying-sheep).  We also fixed other bugs related
  to the handling of meta data in atomic vectors that were uncovered while
  debugging this issue.
* [#134](https://github.com/brodieG/diffobj/issues/134): Forwarding `...` to
  `diff*` functions no longer breaks substitution of arguments for diff banners
  (h/t @noamross)..
* [#133](https://github.com/brodieG/diffobj/issues/133): `diffFile` considers
  files with equal content but different locations to be `all.equal` now (h/t
  @noamross).
* [#132](https://github.com/brodieG/diffobj/issues/132): Duplicate pager slot
  for baseline `Pager` removed (h/t Bill Dunlap).

There are also several other small internal changes that in theory should not
affect user facing behavior.

## v0.2.2

* Set `RNGversion()` due to changes to sampling mechanism.

## v0.2.0-1

### Features

* [#129](https://github.com/brodieG/diffobj/issues/129): Allow pager
  specification via lists rather than full `Pager` objects for easier changes to
  defaults.  As part of this we changed `StyleRaw` objects to use default
  pager instead of `PagerOff`.
* [#126](https://github.com/brodieG/diffobj/issues/126): Add embedding diffs in
  Shiny to vignette.
* [#119](https://github.com/brodieG/diffobj/issues/119): `ignore.whitespace` now
  also ignores white space differences adjoining punctuation.
* [#118](https://github.com/brodieG/diffobj/issues/118): New option to preserve
  temporary diff file output when using pager (see `?Pager`).
* [#114](https://github.com/brodieG/diffobj/issues/114): New options `strip.sgr`
  and `sgr.supported` allow finer control of what happens when input already
  contains ANSI CSI SGR and how ANSI CSI SGR is handled in string manipulations.
  Related to this, `options(crayon.enabled=TRUE)` is no longer set when
  capturing output prior to diff as it used to be.  By default pre-existing ANSI
  CSI SGR is stripped with a warning prior to comparison.

### Bugs

* [#131](https://github.com/brodieG/diffobj/issues/131): Fix missing slot in S4
  class definition (discovered by Bill Dunlap).
* [#127](https://github.com/brodieG/diffobj/issues/127): Width CSS conflicts
  with bootstrap (reported by @eckyu, debugged/fixed by @cpsievert).

## v0.1.11

* [#123](https://github.com/brodieG/diffobj/issues/123): Compatibility with R3.1
  (@krlmlr).
* [#121](https://github.com/brodieG/diffobj/issues/121): Vignette describing how
  to embed diffs in Rmd documents (@JBGruber).
* [#115](https://github.com/brodieG/diffobj/issues/115): Declare HTML page diff
  encoding/charset as UTF-8 (@artemklevtsov).

## v0.1.10

* Comply with CRAN directive to remove references to packages not in
  depends/imports/suggests in tests (these were run optionally before).
* Fix bugs in corner case handling when we hit `max.diffs`.

## v0.1.9

* Fix test failures caused by changes in tibble output

## v0.1.8

* [#111](https://github.com/brodieG/diffobj/issues/111): Fixed guides with
  `row.names=FALSE` (thank you @[Henrik
  Bengtsson](https://github.com/HenrikBengtsson)).
* [#113](https://github.com/brodieG/diffobj/issues/113): Adapt tests to new
  `str` return values (thank you @[Martin
  Mächler](https://github.com/mmaechler)).

## v0.1.7

* Fix tests for next `testthat` release.
* [#107](https://github.com/brodieG/diffobj/issues/107): Diffs on quoted
  language
* [#108](https://github.com/brodieG/diffobj/issues/108): Problems caused by
  copying `crayon` functions
  ([@seulki-choi](https://stackoverflow.com/users/7788015/seulki-choi),
  @gaborcsardi)
* [#100](https://github.com/brodieG/diffobj/issues/100): R_useDynamicSymbols
* [#97](https://github.com/brodieG/diffobj/issues/97): 2D Guidelines fixes for
  data.table, tibble
* [#96](https://github.com/brodieG/diffobj/issues/96): Warnings when comparing
  large data tables.
* [#94](https://github.com/brodieG/diffobj/issues/94): Guide detection problems
  in nested lists.
* [#105](https://github.com/brodieG/diffobj/issues/105): Copyright tweaks.

## v0.1.6

* [#87](https://github.com/brodieG/diffobj/issues/87): `diffobj` is now GPL (>=2)
  instead of GPL-3.
* [#81](https://github.com/brodieG/diffobj/issues/81): Better handling of mixed
  UTF-8 / ASCII strings, reported by [jennybc](https://github.com/jennybc)
* [#88](https://github.com/brodieG/diffobj/issues/88): correctly handle trimming
  when empty lists are involved, reported by [wch](https://github.com/wch)
* [#77](https://github.com/brodieG/diffobj/issues/77): `diffObj` now favors
  dispatching to `diffPrint` unless `diffPrint` output is large
* [#82](https://github.com/brodieG/diffobj/issues/82): `diffChr` and `ses` now
  treat `NA` as "NA" (needed with change in `nchar(NA)` in base R)
* [#85](https://github.com/brodieG/diffobj/issues/85): Improved alignment of
  unwrapped atomic vector diffs
* [#83](https://github.com/brodieG/diffobj/issues/83): Improve pager auto
  detection (note now ANSI output is only allowed by default if terminal
  supports ANSI colors and the system pager is `less`, see `?Pager` for details)
* [#92](https://github.com/brodieG/diffobj/issues/92),
  [#80](https://github.com/brodieG/diffobj/issues/80),
  [#45](https://github.com/brodieG/diffobj/issues/45): basic implementation of
  S4 guidelines and trimming (full resolution eventually with
  [#33](https://github.com/brodieG/diffobj/issues/33))
* [#84](https://github.com/brodieG/diffobj/issues/84): simplify how to call
  `diffChr` for improved performance, including "optimization" of
  `convert.hz.whitespace`.
* [#64](https://github.com/brodieG/diffobj/issues/64): fix line limit in corner
  case
* More robust handling of external `diff*` methods and of how `diffObj` calls
  `diffStr` and `diffPrint`

## v0.1.5

* [#71](https://github.com/brodieG/diffobj/issues/71): Buggy diffs b/w data
  frames when one has sequential row numbers and the other does not, loosely
  related to [#38](https://github.com/brodieG/diffobj/issues/38)
* [#69](https://github.com/brodieG/diffobj/issues/69): Improve performance on
  outputs with large print/show output, and other assorted minor optimizations
* [#72](https://github.com/brodieG/diffobj/issues/72): Warn when `style`
  parameter overrides other user supplied parameters
* [#70](https://github.com/brodieG/diffobj/issues/70): Improve word contrast in YB
  HTML mode
* [#63](https://github.com/brodieG/diffobj/issues/63): Show `all.equal` output
  when objects are not `all.equal` but there are no visible differences
* Add Mean Relative Indifference vignette and update vignette styling

## v0.1.4

* [#67](https://github.com/brodieG/diffobj/issues/67): Fix CRAN Binaries
* Clarified that C code is heavily modified and incompatible with original
  `libmba` implementation

## v0.1.3

* First version on CRAN
* [#51](https://github.com/brodieG/diffobj/issues/51): use RStudio viewport to display HTML diffs when running in RStudio (h/t Noam Ross)
* [#54](https://github.com/brodieG/diffobj/issues/54): [#55](https://github.com/brodieG/diffobj/issues/55), scale HTML output to viewport width (see `?Style`)
* [#53](https://github.com/brodieG/diffobj/issues/53): default term colors computed on run instead of on package load
* [#56](https://github.com/brodieG/diffobj/issues/56): disable wrap for HTML output
* HTML output now captured with default width 80 since there is no explicit relationship between HTML viewport width and `getOption("width")`
* The `style` parameter now accepts lists to use as instantiation arguments for `Style` objects (see `?Style`)
* Fix subtle rendering and formatting application flaws
* Switch Travis shields to SVG per Gábor Csárdi
* Improve in-hunk alignment of partially matching lines
* Compile with `-pedantic`, fix related warnings [Arun](https://stackoverflow.com/users/559784/arun)
* Improved coverage and more robust testing
* Several internal structure changes to accommodate improvements

## v0.1.2

* [#46](https://github.com/brodieG/diffobj/issues/46): Guide and Trim Problems with Lists
* [#47](https://github.com/brodieG/diffobj/issues/47): Output Format in non-ANSI Terminals Without Browser (reported by [Frank](https://github.com/brodieG/diffobj/issues/47))
* [#48](https://github.com/brodieG/diffobj/issues/48): `make_blocking` Default prompt Confusing (reported by [Frank](https://github.com/brodieG/diffobj/issues/47))
* [#49](https://github.com/brodieG/diffobj/issues/49): In-Hunk Word Diffs Issues when Unwrap-diffing Atomics
* [#50](https://github.com/brodieG/diffobj/issues/50): CSS Lost in Rstudio Server Sessions (reported by [Steven Beaupré](https://chat.stackoverflow.com/users/4064778/steven-beaupre))

## v0.1.1

* Turn off unwrapping for _named_ atomic vectors (see [#43](https://github.com/brodieG/diffobj/issues/43))
* [#44](https://github.com/brodieG/diffobj/issues/44): Proper handling of NULL objects in `diffStr`
* [#41](https://github.com/brodieG/diffobj/issues/41): Compilation Issues in Winbuilder

## v0.1.0

* Initial Release
