# New data-cleaning features, Windows mlr.exe, limited localtime support, and bugfixes ## Features: * The new [**clean-whitespace**](http://johnkerl.org/miller/doc/reference-verbs.html#clean-whitespace) verb resolves https://github.com/johnkerl/miller/issues/190 from @aborruso. Along with the new functions [**strip**](http://johnkerl.org/miller/doc/reference-dsl.html#strip), [**lstrip**](http://johnkerl.org/miller/doc/reference-dsl.html#lstrip), [**rstrip**](http://johnkerl.org/miller/doc/reference-dsl.html#rstrip), [**collapse_whitespace**](http://johnkerl.org/miller/doc/reference-dsl.html#collapse_whitespace), and [**clean_whitespace**](http://johnkerl.org/miller/doc/reference-dsl.html#clean_whitespace), there is coarser-grained and finer-grained control over whitespace within field names and/or values. See the linked-to documentation for examples. * The new [**altkv**](http://johnkerl.org/miller/doc/reference-verbs.html#altkv) verb resolves https://github.com/johnkerl/miller/issues/184 which was originally opened via an email request. This supports mapping value-lists such as `a,b,c,d` to alternating key-value pairs such as `a=b,c=d`. * The new [**fill-down**](http://johnkerl.org/miller/doc/reference-verbs.html#fill-down) verb resolves https://github.com/johnkerl/miller/issues/189 by @aborruso See the linked-to documentation for examples. * The [**uniq**](http://johnkerl.org/miller/doc/reference-verbs.html#verb) verb now has a **uniq -a** which resolves https://github.com/johnkerl/miller/issues/168 from @sjackman. * The new [**regextract**](http://johnkerl.org/miller/doc/reference-dsl.html#regextract) and [**regextract_or_else**](http://johnkerl.org/miller/doc/reference-dsl.html#regextract_or_else) functions resolve https://github.com/johnkerl/miller/issues/183 by @aborruso. xxx. * The new [**ssub**](http://johnkerl.org/miller/doc/reference-dsl.html#ssub) function arises from https://github.com/johnkerl/miller/issues/171 by @dohse, as a simplified way to avoid escaping characters which are special to regular-expression parsers. * There are [**localtime**] functions in response to https://github.com/johnkerl/miller/issues/170 by @sitaramc, as follows. However note that as discussed on https://github.com/johnkerl/miller/issues/170 these do not undo one another in all circumstances. This is a non-issue for timezones which do not do DST. Otherwise, please use with disclaimers. * [**localdate**](http://johnkerl.org/miller/doc/reference-dsl.html#localdate) * [**localtime2sec**](http://johnkerl.org/miller/doc/reference-dsl.html#localtime2sec) * [**sec2localdate**](http://johnkerl.org/miller/doc/reference-dsl.html#sec2localdate) * [**sec2localtime**](http://johnkerl.org/miller/doc/reference-dsl.html#sec2localtime) * [**strftime_local**](http://johnkerl.org/miller/doc/reference-dsl.html#strftime_local) * [**strptime_local**](http://johnkerl.org/miller/doc/reference-dsl.html#strptime_local) ## Builds: * Windows build-artifacts are now available in Appveyor at https://ci.appveyor.com/project/johnkerl/miller/build/artifacts, and will be attached to this and future releases. This reseolvs https://github.com/johnkerl/miller/issues/167, https://github.com/johnkerl/miller/issues/148, and https://github.com/johnkerl/miller/issues/109. * Travis builds at https://travis-ci.org/johnkerl/miller/builds now run on OSX as well as Linux. * An Ubuntu 17 build issue was fixed by @singalen on https://github.com/johnkerl/miller/issues/164. ## Documentation: * put/filter documentation was confusing as reported by @NikosAlexandris on https://github.com/johnkerl/miller/issues/169. * The new FAQ entry http://johnkerl.org/miller-releases/miller-head/doc/faq.html#How_to_rectangularize_after_joins_with_unpaired? resolves https://github.com/johnkerl/miller/issues/193 by @aborruso. * The new cookbook entry http://johnkerl.org/miller/doc/cookbook.html#Options_for_dealing_with_duplicate_rows arises from https://github.com/johnkerl/miller/issues/168 from @sjackman. * The unsparsify documentation had some words missing as reported by @tst2005 on https://github.com/johnkerl/miller/issues/194. * There was a typo in the cookpage page http://johnkerl.org/miller/doc/cookbook.html#Full_field_renames_and_reassigns as fixed by @tst2005 in https://github.com/johnkerl/miller/pull/192. ## Bugfixes: * There was a memory leak for TSV-format files only as reported by @treynr on https://github.com/johnkerl/miller/issues/181. * Dollar sign in regular expressions were not being escaped properly as reported by @dohse on https://github.com/johnkerl/miller/issues/171.