The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
Revision history for Perl module PerlPowerTools

1.044 2024-03-03T09:12:25Z
	* All changes are from Michael Mikonos
	* addbib
		- allow file named 0 for -p (#472)
	
	* apply
		- fix argument handling for %N handling (#436)
		- simplify some internals (#471)
	
	* arch
		- reject all arguments (#438)
	
	* asa
		- fix problem reading a file with a dash in name (#476)
	
	* basename
		- exit with an error for no arguments (#448)
	
	* bc
		- the - is a literal filename now (#444)
		- a couple of internal cleanups (#451)
		- don't print value after array element assignment (#452)
	
	* cat
		- explicitly close files (#423)
		- terminate line number with a tab (#442)
	
	* cmp
		- fix off-by-one error (#450)
		- require at least two arguments (#465)
	
	* colrm
		- some internal improvements (#462)
	
	* cp
		- report correct exit code (#426)
	
	* deroff
		- allow reading from standard input (#474)
	
	* diff
		- reduce internal clutter (#458)
	
	* dirname
		- exit with an error for no arguments (#448)
	
	* ed
		- internal improvements (#418)
		- simply the debug facility (#432)
		- clean up some internals (#437)
		- fix applying a substitution to a single line (#441)
		- improvements to `r filename` and `w filename` (#459)
		- refactor some of the insertion code (#466)
	
	* env
		- print usage for bad options (#461)
	
	* expand
		- fix command line processing regex (#469)
	
	* fish
		- reduce some internal complexity (#449)
	
	* fmt
		- handle -<DIGIT> as option instead of a file (#431)
	
	* fold
		- terminate command-line options with -- (#425)
		- don't treat - as standard input (#447)
	
	* grep
		- remove TCGREP environment var, use GREP_OPTIONS instead (#428)
	
	* head
		- handle - option to be like -n <DIGIT> (#419)
	
	* id
		- remove -h option, although you still get the usage statement (#429)
		- note that -a is ignored (#445)
	
	* install
		- some internal improvements on usage handling (#424)
	
	* kill
		- validate signal number arguments (#454)
	
	* look
		- standardize exit codes (#473)
	
	* maze
		- fix the usage message (#443)
	
	* nl
		- validate the -n argument (#446)
		- specify exactly one file on the command line (#479)
	
	* od
		- some internal improvements (#433)
		- fix offset numbering (#434)
		- support multiple input files (#463)
	
	* paste
		- require at least one filename; - is standard input (#440)
		- internal improvements for handling field separator (#460)
	
	* ping
		- reject unknown arguments (#477)
	
	* primes
		- fail for too many arguments (#470)
	
	* rev
		- terminate args with -- (#439)
	
	* rm
		- document the -v switch (#421)
	
	* shar
		- handle missing or unreadable files (#475)
	
	* sleep
		- fail for extra arguments (#430)
	
	* tac
		- fix some odd cases for -s (#467)
	
	* tail
		- handle -<DIGIT> option to be like `-n <DIGIT>` (#420)
	
	* tee
		- end command line options with -- (#480)
	
	* touch
		- fix usage handling and exit code (#468)
	
	* uname
		- reject any arguments (#478)
	
	* uniq
		- reject unknown command-line options (#422)
	
	* wc
		- terminate argument processing with -- (#427)
		- fix -w to report the right number (#457)
	
	* what
		- invalid options die; no longer supports stdin (#456)
	
	* whoami
		- don't allow arguments (#453)
	
	* xargs
		- -l is an alias for -L (GNU extension) (#435)
	
	* yes
		- remove GNU extensions (we are a BSD clone) (#455)
	
	

1.043 2024-01-25T23:23:48Z
	* All changes are from Michael Mikonos unless otherwise noted
	* ar
		- get rid of getopts.pl (#394)
		- switch to three argument opens (#398)
	* cat
		- fail for -? (#396)
	* cmp
		- simplify some code (#388)
	* col
		- no longer takes arguments; it's just stdin (#407)
	* ed
		- fix some line calculation (#405, #413, #414, #415)
		- allow whitespace in arguments (#411)
		- fail for -? (#417)
	* file
		- switch to three argument opens (#398)
	* fish
		- update some style in the code (#410)
	* fortune
		- unknown options are now fatal (#392)
	* grep
		- remove some stray chars from error messages (#400)
	* hangman
		- don't assume size of word list (#416)
	* head
		- the - is now treated as stdin (#397)
	* ls
		- add strict (#395)
	* od
		- fix line offset numbers in output (#389)
		- fix oddities in output with -b (#391)
	* pom
		- unknown options are now fatal (#390)
	* pr
		- -3x option are now fatal (#393)
	* primes
		- non-numeric data are errors now (#406)
	* sort
		- enough sensible bounds for -F and -y (#412)
	* tail
		- allow both -n1 (combined) and -n 1 (separated) (#399)
	

1.042 2023-12-22T12:45:27Z
	* All changes from Michael Mikonos unless otherwise noted
	* apply
		- require args after command (#374)
		- catch system() failures (#376)
		- handle bad arg count (#384)
		- add the -d option (#385)
	* baseb4
		- check close return value (#362)
	* bc
		- use bignum with e notation (#353)
	* cat
		- Let -b override in (#360)
	* cmp
		- forbid -s with -l (#387)
	* chown
		- show filename in error message (#386)
	* date
		- show usage for bad options (#365)
	* diff
		- die if the args try to compare standard input to a directory (#361)
		- improve options handling (#371)
		- speedup some loops (#372)
	* ed
		- Adjust some error strings (#349)
		- simplify code for r command (#354)
	* env
		- end options with -- (#379)
	* grep
		- make decompression work (#365)
	* find
		- correct usage example (#370)
		- simpler error messages (#375)
	* fmt
		- die for unknown options (#357)
	* head
		- check close return value (#363)
	* hexdump
		- small code improvements (#358)
	* install
		- update usage string (#364)
	* ls
		- fix output for -R (#359)
	* patch
		- die for unknown options (#356)
	* pig
		- add NetBSD compatibility (#369)
	* pr
		- fix incorrect looping with -l (#350)
		- support - as standard input (#351)
		- validate -o argument (#352)
	* printenv
		- update Pod docs (#382)
	* sort
		- better usage (#380)
	* tr
		- improve -d option (#367)
		- use getopts instead of custom code (#368)
		- the -C option is now an alias for -c (#373)
		- remove the -U option (#373)
	* uniq
		- treat -- as end of options (#355)
	* uudecode
		- implement the -i option (#381)
	* uuencode
		- directory argument is a failure (#378)
	* which
		- requires an arguemnt (#383)
	* words
		- directory argument is a failure (#377)

1.041 2023-11-24T17:10:58Z
	* All changes from Michael Mikonos unless otherwise noted
	* arithmetic
		- use getopts (#336)
	* banner
		- use getopts instead of custom parsing (#286)
	* bc
		- don't print 0 for a false condition (#247)
		- allow file named 0 (#282)
		- fix case that eats too much input (#292)

	* cal
		- use getopts instead of custom parsing (#277)
	* chgrp
		- allow -- to end options (#341)
	* chmod
		- allow -- to end options (#347)
	* chown
		- allow -- to end options (#347)
	* cmp
		- exit with 2 on arg failure (#307)
		- handle hex input (#309)
		- support - for stdin (#310)
	* col
		- reject 0 value for -l (#334)
		- add usage (#343)
	* comm
		- use strict (#306)
		- support - for stdin (#327)
	* cut
		- show error for unknown options (#297)
		- disallow -b 0 or -f 0 (#299)
	* date
		- some code cleanups (#287)
		- document -q (#328)
	* diff
		- validate -U and -C args (#308)
		- support - for stdin (#311)
	* ed
		- removed unused code (#315)
		- fix r command addresses (#330)
		- allow r to add newline to last line (#346)
	* expand
		- support - for stdin (#324)
		- don't suppress backspace (#329)
		- don't slurp file (#344)
	* expr
		- use strict (#338)
	* file
		- fix an error message (#285)
	* fortune
		- improve -w handling (#322)
	* hexdump
		- allow file named 0 (#283)
	* id
		- allow uid 0 (#281)
	* install
		- handle directory args correctly (#339)
		- fix exit status precedence problem (#348) (mauke)
	* join
		- support - for stdin (#313)
		- show usage (#345)
	* ln
		- error out for bad options (#331)
	* ls
		- try harder to determine the screen size (#303)
	* mail
		- fix problem writing to mailbox (#279)
		- better handling of temp file (#316)
		- disallow directory for -f (#319)
		- error for uid 0 (#321)
		- remove some duplicated code (#322)
	* mkfifo
		- let -m take one and two digit args (#312)
	* nl
		- use Pod::Usage (#291)
	* patch
		- support - for stdin (#314)
		- fix exit status precedence problem (#348) (mauke)
	* pom
		- leverage libraries to get math functions instead of coding them (#280)
	* pr
		- allow -- to end options (#332)
		- use spaces for margin_spaces (#342)
	* printf
		- support hex arguments (#320)
	* rev
		- warn for directory args (#318)
	* shar
		- fix dependency error with old getopts.pl (#300)
		- ignore directories (#303)
		- support dir arguments from find (#304)
	* spell
		- refactor for better looping (#335)
	* split
		- remove code to handle -? (unkown switch still does same thing) (#278)
	* strings
		- make strict-safe, better validation (#289)
		- read stdin by default (#333)
	* tail
		- stricter checking on numbers for arguments (#284)
		- continue on error (#294)
		- allow 0 as argument (#296)
		- warn for directories (#298)
	* tar
		- disallow directories for -f (#337)
	* tee
		- guard special chars in filename (#290)
	* touch
		- support directories (#326)
	* unexpand
		- support - for stdin (#325)
		- don't slurp file (#340)
	* uuencode
		- support - for stdin (#317)

	* wc
		- report filenames (#295)
	* wump
		- various refactors (#293)
	* xargs
		- support -0 (#288)

1.040 2023-10-02T04:42:58Z
	* All of these improvements are from Michael Mikonos
	* cal
		- add -j, -y switches (#259)
	* chgrp
		- note filename in error messages (#261)
	* dc
		- don't reda stdin if there was a file (#268)
	* env
		- print message wen exec fails (#260)
		- validate -u (#266)
	* look
		- reject mulitple arguments (#274)
	* pr
		- disallow directories as arguments (#264)
	* strings
		- better validation for args (#262)
	* sum
		- add md5 support (#271)
		- add sha{1,256,384,512} (#275)
	* tac
		- fix bug in tac for reading from standard input (#258)
		- add usage message (#269)
		- continue to next file on error (#270)
	* wc
		- keep going if an open fails (#263)
	* which
		- don't return directories (#267)
	* xargs
		- better handling of exec errors (#265)

1.039 2023-09-22T23:46:44Z
	* All of these improvements are from Michael Mikonos
	* arithmetic
		- terminate on end-of-line
	* banner
		- clarify usage (#232)
	* basename
		- fix directory separator handling (#250)
	* bc
		- fix integer precision problem (#236)
	* bcd
		- add -d to decode card (#238)
	* cal
		- improve year formatting (#242)
	* cmp
		- check that both files exist (#249)
	* diff
		- work with directory arguments (#240) (#241)
	* ed
		- fix current line tracking for j, m, t (#225)
		- add wq shortcut (#228)
		- fix handling of bad command 1c0 (#251)
	* expr
		- exit with error for missing argument (#253)
	* fold
		- continue if there's an error (#226)
	* head
		- don't head on directories (#227)
	* ls
		- use standard meaning of -f (turns on -a) (#245)
	* nl
		- validate numeric operations (#229)
		- exit with error for bad filename (#230)
	* paste
		- specify stdin with - (#231)
		- reject unknown options (#235)
	* rmdir
		- include filename in warnings (#243)
	* seq
		- added new command (#257)
	* sort
		- don't continue for unknown options (#255)
	* sum
		- improve code readability (#239)
	* tee
		- handle -n properly (#254)
	* tsort
		- don't support multiple input files (#256)
	* which
		- fix option parsing (#246)
	* xargs
		- fix infinite loop with -n (#248)

1.038 2023-08-27T11:36:25Z
	* All updates are from Michael Mikonos
	* rev - accept ? as a file (#222)
	* cat - exit 1 for bad argments (#223)
	* ed - fix range-specific write (#221) and better handling of maxline (#224)

1.037 2023-07-31T17:09:18Z
	* adjusted several tests
		- find.t checks that its local::lib guess actually exists #220
		- rm tests squash a warning about a redefined exit #216
		- bc tests checked for English error messages, which is
		- not always the case #215
		- bc tests allow for different levels of perl precision
		- (long double and quadmath) #214
	* Michael Mikonos enhanced ed is many ways:
		- Add -s for quieter operation #212
		- Make -j act like the real ed #213
		- better argument checking #217
		- add list (l) command #218
		- fix an edge case with "r file" #219

1.036_002 2023-07-29T20:26:25Z
	* Improve the find.t test to not mistakenly use a non-existent
	path for find2perl #220

1.036_001 2023-07-24T22:11:32Z
	* Clean up some test oddities that CPAN Testers found: #214, #215, #216

1.036 2023-07-22T02:55:31Z
	* All contributions are from Michael Mikonos unless otherwise noted.
	* arithmetic
		- fix a disappearing prompt #183
	* base64
		- improve detection of bad file arguments #202
	* bc
		- various fixes and more intensive testing (Gary Puckering) #167
	* bcd
		- new program #206
	* cp
		- handle many files at one #180
		- completely rewritten by brian d foy
	* ed
		- implement t command (for copy) #207
		- implement m command (move) #205
		- save buffer on SIGHUP #197
		- allow filenames that include a dash #188
		- make opening a directory an error #178
		- implement join command #176
		- fix ed search direction #170
	* expr
		- fix broken >= #181
	* grep
		- disallow directories as argument to -f #192
		- don't implicitly set -r #185
	* install
		- ignore directory is source file list #179
	* od
		- handles non-printables better #208
		- validates radix argument from -A #204
		- add -N switch to limit the input bytes #203
	* printf
		- support \v #186
		- use the standard meaning of %c, not Perl's meaning.
		- This is now the first character of the string #194
	* rm
		- exit with right error code on failure #200
		- ignore directories with no -r #198
	* sleep
		- non-zero exit code on error #182
	* split
		- support reading from standard input #195
	* test
		- improved error messages #184
	* unlink
		- new command #201

1.035 2023-06-15T09:57:49Z
	* Gary Puckering fixed several issues with the units program. These
	were GitHub #161, #162, and #163.

1.034 2023-06-02T14:19:44Z
	* turn on the ed prompt (#160, Michael Mikonos)

1.033_04 2023-05-08T23:57:34Z
	* mimedecoder now requires v5.12 since MIME::Tools uses Test::Deep,
	which recently updated to v5.12
	* Several enhancements from Michael Mikonos
	* ed
		- can report line numbers on print
		- can insert empty buffer
		- can no longer insert before line 0
	* sum
		- now correctly reports 32-bit checksums on 64-bit perls
		- can read from standard input
	* od
		- zero fill input to required byte length
	* bc
		- use Math::BigFloat again
	* echo
		- emit newline by default


1.033_03 2023-04-05T11:43:15Z
	* echo with no arguments now emits a newline, from Michael Mikonos

1.033_02 2023-04-01T20:42:05Z
	* added tests for rev
	* lots of fixes from Michael Mikonos
	* install - now copies by default
	* expr - fixed || bug
	* ed - various fixes for error and value reporting
	* od, rev, head can now read from STDIN
	* rev - fix split before chomp bug
	* morse - re-imagined by Michael Mikonos

1.033_01 2023-03-21T15:23:29Z
	* Added license files for all licenses that appear in the repo
	* lots of fixes from Michael Mikonos
	* od
		- unpack bytes as unsigned in both hex and octal formats
		- -s is renamed to -j (skip offset)
		- exit with error for bad options
	* bc
		- remove feature for evaling arbitrary Perl expressions (very dangerous)
		- autoinit simple variables (instead of warning or dying)
	* xargs
		- make echo the default command if you don't specify one
		- reports system failure in exit
	* grep - support - to mean stdin
	* head - support - to mean stdin
	* dc - remove ! command to run something in a shell
	* hexdump - new tool!

1.032 2023-02-06T15:39:43Z
	* bc will immediately exit when it reads "quit", in line with
	the GNU, and *BSD versions. From Michael Mikonos.

1.031 2023-02-05T16:18:10Z
	* remove t/pod.t from MANIFEST, since that is now in xt/

1.029 2023-02-05T15:53:32Z
	* several enhancements from Michael Mikonos to make exit values come
	in line with the original tool. This one fixes up nl, cat, and whoami
	* Michael Mikonos also fixed a problem in ed where a command was
	doing the wrong thing.

1.028 2022-01-19T05:43:47Z
	* Try to fix Windows's handling of %Z in date - GitHub #98
	* If you find problems, try adjusting the data in script/date and
	open an issue with your changes

1.027 2021-10-11T14:15:02Z
	* Add whoami, originally from Oğuz Ersen. Let me know if you find
	problems with this.
	* Fix a problem with the - special filename in bc, from Michael Mikonos
	* Various improvements to make date work better on Windows (but still
	a long way to go)

1.025 2021-06-16T05:50:50Z
	* Fix sleep do not do its work twice (GitHub #97)

1.024 2021-03-19T19:22:31Z
	* bin/sort again handles the special filename '-' (for stdin)
	GitHub #95.

1.023 2021-02-10T06:23:32Z
	* A fix for `grep -v` from Ed Avis (#69)

1.022 2021-01-11T06:59:31Z
	* Remove the make program and its dependencies, which recently
	became much heavier. Strawberry Perl comes with gmake and it's
	to find make tools for Windows.
	https://github.com/graphviz-perl/Graph/issues/17
	* Remove a bit of fluff sticking around after taking out bin/man
	* Completed the move from Travis CI to Github Actions
	* The uudecode tool now has tests, and with the -o option can
	send its output somewhere else, including stdout
	* Many programs have converted to three argument open calls, but
	many don't have tests beyond compilation. Let me know what breaks.
	https://github.com/briandfoy/PerlPowerTools/issues/75
	* Most uses of indirect object notation are gone
	https://github.com/briandfoy/PerlPowerTools/issues/73 (thanks
	to Ivan Ludvig)

1.021 2021-01-10T01:49:25Z
	* jul added the nl program
	* Dumped Travis CI, added GitHub Actions: everything is green
	* Happy New Year everyone!

1.020 2020-09-15T17:09:32Z
	* Better Windows tests for rot13
	* Exclude bin/man, which is old Perl4 code that needs a lot of work

1.019_03 2020-09-13T16:03:58Z
	* work harder to test rot13 on Windows

1.019_02 2020-08-10T16:43:59Z
	* Fixing up the rot13 test

1.019_01 2020-08-08T21:07:03Z
	* Added rot13 from @marked (#83)
	* Several test fixes by mohawk2 (#86)

1.017 2020-02-16T00:27:01Z
	* Convert to three-argument open in a bunch of places. No new
	utilities or features.

1.016 2019-09-13T13:37:01Z
	* Try very hard to make the find.t test work now that find2perl
	does not come with perl. Look in many places for it and skip
	tests if you can't find it.

1.015 2019-07-22T01:34:34Z
	* test bin/cat

1.014 2019-07-22T01:25:36Z
	* Fix the test for bin/find to use the perl that's running the test

1.013 2018-11-17T14:32:26Z
	* Add tests for the sort program (Shlomi Fish)
	* Add -amin, -cmin and -mmin to `find` command (timgimyee)
	* Fix patch to restore original if the patch fails (timgimyee)
	* patch uses Term::Readline for prompt (timgimyee)
	* clear tries harder on Windows (timgimyee)

1.012_01 2017-01-14T03:50:20Z
	* Adjust prereq version to Test::Trap to not use leading v,
	which I think is confusing some installers.
	* Ideally, Test::Trap will disappear so we don't have the
	dependency: https://github.com/briandfoy/PerlPowerTools/issues/49

1.012 2017-01-11T13:07:08Z
	* Fix a { for v5.24
	* Fix a deprecated use of POSIX::isprint

1.011_03 2016-08-31T17:32:53Z
	* Fix Makefile to work with v5.8
	* Fix some programs to work with v5.26 (escape { in regexes)

1.011_02 2016-08-31T15:12:44Z
	* A Makefile.PL fix for v5.8

1.011_01 2016-08-31T14:25:21Z
	* Escape { in regexes in dc and glob. Perl v5.26 will demand this.

1.011 2016-08-30T16:52:26Z
	* Back out the Term::UI stuff in bin/patch since that module
	isn't core.

1.009 2016-08-30T08:16:23Z
	* Fix some Makefile.PL issues (pauloscustodio)

1.007_01 2016-03-07T19:05:46Z
	* Exit gracefully in robots if Curses isn't installed
	since a die in a BEGIN is a compilation error when
	triggered
	* Skip -x tests on Windows.

1.007 2016-03-06T18:24:26Z
	* Make it easier to install on Windows (Kevin Phair)
	GitHub issue #32/33

1.006 2015-04-20T23:49:58Z
	* Add docs about the default install location to the
	README and module docs.
	* Fix the diff docs (GitHub #20)

1.005 2015-04-17T01:20:12Z
	* Don't install at the same location as perl. Make the
	user think about where to install them so these tools
	don't interfere with the real tools of the same name.

1.004 - 2014-12-20
	* Try to get first come permissions on ppt so I can close those
	tickets (and release something to replace ppt)

1.003 - 2014-12-18
	* Fix all the issues in the old ppt bugs list (https://rt.cpan.org/Dist/Display.html?Queue=ppt)
	* All programs have embedded metadata (Tim Gim Yee)
	* Fixes to wc, paste (Dmitri Tikhonov)
	* The repo is now PerlPowerTools, not the old ppt
	* factor now works correctly (Dana Jacobsen)
	* A typo fix in diff (Sergey Romanov)

1.002_03 - 2014-09-15
	* Add tests for true and false (that's easy!)
	* Start the TODO file with what needs to happen
	* Fix some programs for v5.21 and disappearing syntax

1.002_02 - 2014-09-15
	* Fix syntax deprecations enforced in v5.22

1.02_01 - 2014-09-14
	* Let's try a different way of running the command to compile
	the programs

1.02 - 2014-09-12
	* Trim the distribution, drastically. Let MetaCPAN be the website.

1.01 - 2014-09-12
	* Let's update Perl Power Tools and make it easier to find - call
	it PerlPowerTools instead of ppt
	* I'm not sure all of the programs even ran, but at least they
	compile now
	* I've probably broken some things, but now I want to see what's
	unauthorized.

0.14 - 2004-08-04
	* 'make manifest' skips legit tarballs, fixed with new utillity, Casey West
	* New col and words, Ronald J Kimball
	* Website now includes version number, Casey West

0.13 - 2004-07-23
	* Casey West takes over management.
	* grep/tcgrep - New revision by Paul Johnson
	* sort/sort.pudge - New revision by Chris Nandor
	* html/poem.html - Added, found in LWN archives, Casey West
	* Tom's ambition was found in his mkidx script, exposed by Casey West
	* Most recent known original ppt dist included, Casey West