Fetching contributors…
Cannot retrieve contributors at this time
566 lines (329 sloc) 13.1 KB
=== rmw ChangeLog ===
rmw ChangeLog
* test scripts are now run using 'make test' from the test directory
* fr_FR translation added
* de_DE translation added
libtool removed from configure
Translations added:
[#162] es_MX (Spanish Mexican) translation added /thanks @marioecg
Added test script (test/
[#133] Improve handling of plural forms (for translations);
introduce the use of ngettext
Added test script (test/
Ukrainian (uk) translation added /thanks @Svitlana Galianova
Russian (ru) translation added /thanks @Svitlana Galianova
rmw-0.4.03 released
[#140] Bugfix: rmw will now create the files/ and info/ directories
without displaying an error message. This happened if there was only
one WASTE folder in the config file, and if the files/ and info/
hadn't been created yet.
Portuguese (pt_PT) translation added / thanks @jmrodriguesgoncalves
rmw-0.4.01 released
Polish and Nepali translations added. Thanks @suve and @ramdahal
Nepali man page added.
Finnish translation added / thanks @sapake
The log entry from 2017-12-06 is now obsolete. If purge_after is > 0, rmw
will only show the message "purge has been skipped: use -f or --force"
once a day, regardless of verbosity level. This still improves the behavior
where that message would display every time if --force wasn't used (or if
"force_not_required" was used in the config file).
rmw will now only show the message "purge has been skipped: use -f or
--force" if verbose mode is on.
[#125] Implemented ncurses for --select feature.
[#126] using extra force at runtime (-ff) will now prevent messages
such as "Directory not purged - still contains files" when purging
directories that contain non-writable subdirectories.
new feature for testing added
setting the RMWTRASH environmental variable to "fake-year" will write
the year 1999 to the DeletionDate string in the .trashinfo file.
Ex: `RMWTRASH=fake-year rmw some.txt temp.asc files.doc`
Then run rmw with the purge option: `rmw -fg`
Martijn de Boer tested rmw on his MacOSX system today. To get a complete build,
the only thing he needed was an additional line: '#include <locale.h>`.
I've updated a couple spots on the rmw repo and wiki to indicate the rmw is
a "Linux and MacOS utility".
-t --translate option added
After translations are added, this option will display a translation
of a default configuration file.
strings prepared for translation, portable object template completed
Version number changed to 0.4.00
nl (Nederlands/Dutch) man page and po file added. Thanks @sexybiggetje
[#106] `make install` now installs the following man pages to the
appropriate directories:
* en
* de
* es
* fi
* pl
* pt_BR
Thank you for the tip, @suve.
[#68] File sizes now display when using '--select'
Man pages added!
* Languages: EN, DE, FI, ES, PT, PL
At this time, only the EN man page is installed. I don't know the
proper way to install man pages in other languages.
Restore(): no longer takes type *char[] as an argument, only *char,
which makes for much easier maintenance of code. Affected a few
other functions as well (see diff if really curious).
Renamed mkinfo() to create_trashinfo()
No longer using var: waste_dirs_total & protected_dir_total.
NULL is assigned as the last WASTE folder, so loops check for NULL
to see when it's time to quit.
undo_file (lastrmw) is now removed after -u is used (#58)
-p, --pause option removed
-o, --orphaned option added
create trashinfo files if no corresponding trashinfo is found (#16)
Issue #40 - To empty the trash, preface rmw on the command line
with 'RMWTRASH=empty'. Example:
RMWTRASH=empty rmw ....
Fixed: #44 - Segfault if rmwrc isn't present in SYSCONFDIR
Fixed: #45 - Restore fails if parent directory of target doesn't exist
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 Trash
Fixed #27 - no info file found when restoring symlinks
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
Closed #33 - Requiring -f / --force as an option for purge to
actually delete files (patched by Parth Suresh and Andy Alt)
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 : 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.
Added a function: close_file(), so I don't have to worry about
changing the way error messages are displayed.
* Issuing another release, due to issue #24
* 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():
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.
-- 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 (
-- 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
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
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!
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
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
Added line [Trash Info] to top of info file
Changed default extension of info files from .rmw to .trashinfo
March 7, 2012
Added purge function
Added remove to waste[parent].dir function
Many other minor changes
March 24, 2011
1. Added support to ReMove files to Desktop Trash (~/.local/share/Trash...)
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