=== rmw ChangeLog ===

2016-09-18

    Fixed: #44 - Segfault if rmwrc isn't present in SYSCONFDIR

    Fixed: #45 - Restore fails if parent directory of target doesn't exist

2016-09-17

    enhancement: restoring files with only the basename #14

    url_escaping: #20 - escape Path key with URL (encoding) (Patched
    by Bruce Hernandez)
        Formerly this issue was about %20's not being converted to spaces.
    Bruce's patch makes things compliant with the freedesktop.org Trash
    specification:
    https://specifications.freedesktop.org/trash-spec/trashspec-latest.html


2016-09-16

    Fixed #27 - no info file found when restoring symlinks


2016-09-15

	Closed  #41 - add config option: force_not_required
	"force_not_required" in config file means -f or --force will not be
	required on the command line for purge to run.

    Completed - using removable media #12

2016-09-14

	Closed #33 - Requiring -f / --force as an option for purge to
	actually delete files (patched by Parth Suresh and Andy Alt)


2016-09-11

	Closed #30 - disable verbose mode by default (patched by Parth Suresh)
	Closed #29 - last entries in undofile get erased (patched by Bruce Hernandez)


2016-09-09

	Makefile.am : Thanks to parthsuresh - added 4 lines (#28) that will
	hopefully fix issue #21

	Added a function: open_err() : called if there is an error opening
	a file, displays a message.

2016-09-08

	Added a function: close_file(), so I don't have to worry about
	changing the way error messages are displayed.

2016-09-04

	* Issuing another release, due to issue #24

2016-09-03

	* Fixed: Warning about missing automake 1.14 #21

	* restore_rmw.c: I changed a lot of variable names, re-worked the
	function a little, and did a bit of cleaning.

	* Issuing an early release due to issue #21

-- Aug. 30 --

When building, rmw will now use the config.h that's generated by ./configure.

Added make_dir(), which creates directories when parents don't exist;
used it in several areas for code-cleanup (#18) and added related error
checking (#13).

Removed 2 functions: waste_check() and mkdirErr().

Added THANKS file.

-- Aug. 28 --

Added -std=gnu99 -Wall to the Makefile, cleaned up some warnings

Renamed purgeD() to is_time_to_purge()
Added some error checking to that function

Cleaned up get_config_data a little
Fixed the warning: /functions/config_rmw.c:252:7: warning: ‘cfgPtr’ may be used
 uninitialized in this function [-Wmaybe-uninitialized]
   if (fclose (cfgPtr) == EOF)

Development documentation updated


-- Aug. 24, 2016 --

Adding more error checks

Adding more comments

More (minor) code optimization

-- Aug. 23, 2016 --

Files below protected directories are now protected (not thoroughly tested yet)

I deleted 3 functions and moved their contents to main():
*remove_to_waste()
*pre_rmw_check()
*isProtected()

WASTE directories and the rmw data/config dir is protected by default;
no need to add a separate PROTECT entry to the rmw config file

'function_prototypes.h' renamed to 'primary_funcs.c'

-- Aug. 22, 2016 --

Fine-tuning the error-checking.
https://github.com/andy5995/rmw/issues/13


-- Aug. 20, 2016 --

Added a bunch of error checking, mostly for things that rarely go wrong;
but now if they go wrong, the user (or me) will get to see an error number.

There is still a lot more error-checking that can be added.


-- Aug. 17, 2016 --

Documentation (README) updated and expanded, info added to --help option
(There is no 'man' page yet.

Fixed -B bug (https://github.com/andy5995/rmw/issues/9)

-- Aug. 16, 2016

Added a lot more error-checking to rmdir_recursive() (basically I re-wrote
most of the function).

The most annoying problem I've had with rmw over the last few years is
if there are non-writeable files in a directory that is getting purged.
I'd always get the message "unknown error while removing..." Now it's more
specific.

RMDIR_MAX_DEPTH now used. rmdir_recursive() won't go deeper than the
number set in the header file (normally set to 32)

PROTECT= option implemented, but hasn't gone through very much testing yet.
It seems to have a problem if rmw is started with
'HOME=. rmw'. The problem is that the correct realpath isn't returned, so
a match is never made, and therefore protection is ignored.


-- Aug. 11, 2016

Issue #5 implemented
https://github.com/andy5995/rmw/issues/5

Added some pointers, dispatched more globals


-- August 09, 2016

Trying to simplify things, I removed the --add-waste (a) option. I don't
think it adds much to ease-of-use and isn't worth maintaining the code.

-- August 08, 2016

rmw will now create the $HOME/.config dir if it doesn't exist (dev).

-- August 07, 2016

I've gotten rid of more global variables

the w_X paths are now in a structure


-- August 06, 2016 --

The potential mangling of the trash directory string when using "$HOME"
in the config file is now fixed!
https://github.com/andy5995/rmw/issues/2

Release issued.

-- August 05, 2016 --

Release issued.


-- August 04, 2016 --

The trash directory string issues seems to be fixed. I'm not sure why. I
moved some global variables into main() - maybe that helped. ;)

I moved some functions into the main() part of the code.

-- August 02, 2016 --

Addressed issues with how the code had been split, updated Makefile to reflect changes


June 12, 2013

Purge will no longer run if -z or -s option is
given at runtime.


May 7, 2013
Minor changes and code clean-up, committed to SVN
Thanks to ntubski and johnsfine at LQ

May 3, 2013
Changed $HOME/.crmw config directory to $HOME/.config/rmw

May 1, 2013
Fixed problem where rmw doesn't honor --sysconfdir
Switched version numbering system to YYYY.MM.DD.HH format

April 29, 2013
Bugfix: restoring more than 1020 files at a time would fail,
caused by too many open files at once. Added fclose(fp) to
line 353 of funcs.c in Restore Function.

May 03, 2012
Fixed segfault which ocurred if rmw was built on a 64-bit system

Apr 17, 2012

Fixed segfault after 'file not found' (from trying to close an unopened
file)


Apr 12, 2012

Fixed broken Restore function
Eliminated list-remove function


Apr 10, 2012

My good friend Bob died today. Goodbye Bob, and may you find more
peace in death than you found in life. Congratulations on your newfound
relaxation method.

Apr 11, 2012

+Option --warranty and --version

Apr 6, 2012

Eliminated DEPTH_MAX for rmdir_recursive(), function works but doesn't
protect against possible infinite recursion

Symlink restoration fixed?

Apr 5, 2012

Changes to select_restore() so backspace will give user opportunity to
change entry (noted in TODO)


Apr 4, 2012

Refurbished purge function


Apr 3, 2012

Path in info file now the real path without time string appended


Mar 29, 2012

Purging can be turned off by using 'purge_after=0' in configuration file
+option to add Waste directory from command line, -a, --add-waste[parent].dir


Mar 27, 2012

Now storing files (lastpurge and undo_file) in DATADIR ($HOME/.crmw)
config file renamed and moved to $HOME/.crmw/config

+option to bypass protected directories, -B, --bypass


Mar 26, 2012

+option to delete files which are listed in a text file, -L --list-remove

Fixed a few recently created major bugs.

Mar 25, 2012

+Upon restore, time string will be added if a duplicate filename exists
at destination

+option to undo last ReMove, -u, --undo-last

+more error checking

+to get configuration data, rmw will read /etc/rmwrc if $HOME/.rmwc
isn't found

+more buffer overrun protection

Mar 23, 2012

+ --select will allow user to select a file to restore

Mar 21, 2012
+--list waste[parent].dir folders cmd line option
+some buffer overflow protection, still needs more
+specify alternate configuration file at command line (-c)

Mar 20, 2012

DEPTH_MAX definition added to avoid unlimited recursions in rmdir_recursive()

Mar 17, 2012

Support for files larger than 2G enabled in rmw.c
Protection of Waste folders now enabled
'$HOME' or '~' can be used in config file
rmw.c split into main.c, funcs02.c, funcs.c, rmw.c and moved to src/

Mar 13, 2012

Restore function has been restored and rewritten
Now only purges files once day.

Mar 12, 2012

Added support for short and long options

Mar 11, 2012
Added some error-checking
stat now determines which filesystem the file is on

March 9, 2012

Added rmdir_recursive function for use with the purge function

March 9, 2012
DeletedDate= string in info files now uses the same format as Desktop
Trash

Added line [Trash Info] to top of info file
Changed default extension of info files from .rmw to .trashinfo

March 7, 2012
0.01.9pre

Added purge function
Added remove to waste[parent].dir function
Many other minor changes

0.01.6pre
March 24, 2011

1. Added support to ReMove files to Desktop Trash (~/.local/share/Trash...)

0.01.5pre
March 22, 2011

1. Added support for restoring files by base name or by wildcards (-z)
2. Can now read Waste directory from config file
3. Creates <Waste/files> and <Waste/info> if they don't exist
4. Added duplication protection
