ChangeLog
*********

2014-08-26  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.4.2.

	* .version:
	  - Store version in plain text file.
	  - Remove old file.
	* build-aux/git-generate-revision.sh:
	  - Add script to get revision number from git logs.
	* build-aux/git-generate-version.sh:
	  - Add script to get version number from git tags.
	* configure.ac:
	  - Read version number from file.
	  - Read version from script output.
	  - Set dist-zip by default and disable dist-gzip.
	  - Enable silent make rules.
	* fswatch.cpp:
	  - Add the MovedFrom and MovedTo elements to fsw_event_flag.

2014-08-21  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.4.1.1.

	* configure.ac:
	  - Bump v. 1.4.1.1.
	  - Add type check for std::unique_ptr in <memory>.

2014-08-21  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.4.1.

	* configure.ac: Bump v. 1.4.1.

2014-08-17  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable mini release 1.4.0.

	* .gitignore: Do not track files automatically generated by libtool.
	* ChangeLog: Updated.
	* Makefile.am:
	  - Add libfswatch module to configure.ac and Makefile.am.
	  - Update distributed document data.
	  - Remove local cleanup hook becase it broke builds on the root
	  directory.
	* NEWS: Update.
	* README.freebsd: Update and rename fsw to fswatch.
	* README.gnu-build-system: Updated instructions.
	* README.md:
	  - Update.
	  - Update repository URL.
	  - Add usage example of the -m option.
	  - Update installation section with information about MacPorts and
	    Homebrew.
	* README.osx: Update and rename fsw to fswatch.
	* autogen.sh: Update to forward arguments to autoreconf.
	* configure.ac:
	  - Bump v. 1.4.0.
	  - Add libfswatch module to configure.ac and Makefile.am.
	* event.cpp: Remove elements migrated to libfswatch.
	* event.h: Remove elements migrated to libfswatch.
	* fsevent_monitor.cpp: Remove elements migrated to libfswatch.
	* fsevent_monitor.h: Remove elements migrated to libfswatch.
	* fswatch.7: Update mane page.
	* fswatch.cpp:
	  - Update all monitors to register themselves into the factory.
	  - Update fswatch so that users can specify the monitor to be used by
	  name.
	  - -k and -p options were removed.
	* fswatch.h:
	  - Add FSW_EXIT_MONITOR_NAME error code.
	* fswatch_exception.cpp: Remove elements migrated to libfswatch.
	* fswatch_exception.h: Remove elements migrated to libfswatch.
	* fswatch_map.h: Remove elements migrated to libfswatch.
	* fswatch_set.h: Remove elements migrated to libfswatch.
	* inotify_monitor.cpp: Remove elements migrated to libfswatch.
	* inotify_monitor.h: Remove elements migrated to libfswatch.
	* kqueue_monitor.cpp: Remove elements migrated to libfswatch.
	* kqueue_monitor.h: Remove elements migrated to libfswatch.
	* monitor.cpp: Remove elements migrated to libfswatch.
	* monitor.h: Remove elements migrated to libfswatch.
	* path_utils.cpp: Remove elements migrated to libfswatch.
	* path_utils.h: Remove elements migrated to libfswatch.
	* poll_monitor.cpp: Remove elements migrated to libfswatch.
	* poll_monitor.h: Remove elements migrated to libfswatch.
	* libfswatch: Merge from fsw.

2014-07-26  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.3.9.

	* ChangeLog: Updated.
	* configure.ac: Bump v. 1.3.9.
	* fsevent_monitor.cpp:
	  - Check filters only on the file path and not on scanned parent
	    directories.
	* fswatch.7:
	  - Move -i option to -I.
	  - Add -i, --include option and basic implementation to support the
	    use of an include regexp.
	* fswatch.cpp:
	  - Move -i option to -I.
	  - Add -i, --include option and basic implementation to support the
	    use of an include regexp.
	  - Change the filter rules so that the first wins, no matter whether
	    it's an exclusion or an inclusion filter.
	* kqueue_monitor.cpp:
	  - Check filters only on the file path and not on scanned parent
	    directories for the kqueue monitor.
	  - Refactor kqueue monitor directory scanning implementation.
	* monitor.cpp:
	  - Add -i, --include option and basic implementation to support the
	    use of an include regexp.
	* monitor.cpp:
	  - Add -i, --include option and basic implementation to support the
	    use of an include regexp.
	  - Change the filter rules so that the first wins, no matter whether
	    it's an exclusion or an inclusion filter.
	* monitor.h:
	  - Add -i, --include option and basic implementation to support the
	    use of an include regexp.
	  - Change the filter rules so that the first wins, no matter whether
	    it's an exclusion or an inclusion filter.
	* poll_monitor.cpp:
	  - Refactor poll monitor directory scanning implementation.
	  - Directory names must be filtered when events are fired because
	    they are not filtered while scanning.

2014-07-04  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	* ChangeLog: Update.
	* configure.ac:
	  - Bump v. 1.3.7.
	* inotify_monitor.cpp:
	  - Print diagnostic messages in verbose mode only. 

2014-06-24  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	* ChangeLog: Update.
	* configure.ac:
	  - Bump v. 1.3.6.
	* fsevent_monitor.cpp: Remove usages of C++11 initializer lists so that
	  fswatch builds with older compilers.

2014-06-13  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.3.7:

	* ChangeLog: Update.
	* Makefile.am:
	  - Create install-exec-hook.
	  - Link the shell-specific wrapper to fswatch-run.
	* configure.ac:
	  - Bump v. 1.3.6.
	  - Check if ZSH and Bash are available.
	  - Prepare Automake variable to link fswatch-run with the correct
	    wrapper.
	* scripts/fswatch-run-bash: Add fswatch-run wrapper for Bash.
	* scripts/fswatch-run-zsh: Add fswatch-run wrapper for ZSH.

2014-06-04  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.3.5:

	* ChangeLog: Update.
	* configure.ac: Bump v. 1.3.5.
	* fswatch.cpp: Write usage to standard error when invalid arguments
	  are specified.

2014-05-30  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.3.4:

	* ChangeLog: Update.
	* configure.ac: Bump v. 1.3.4.
	* scripts/fswatch-run: Remove a quotation from xargs arguments to run a 
	  command with arguments.

2014-05-29  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable minor release 1.3.3:

	* ChangeLog: Update.
	* Makefile.am: Add fswatch-run to the script installation list.
	* README.md:
	  - Add link to the release page (Issue 22).
	  - Add section about compatibility issues with v. 0.x.
	  - Add information about fswatch-run in README.
	* configure.ac: Bump v. 1.3.3.
	* scripts/fswatch-run: Add shell script to mimic the behaviour of 
	  earlier fswatch versions and launch the specified command when change
	  events are received.
	* fswatch.7: Update man page.
	* fswatch.cpp: Add -o/--one-per-batch option to print a single message 
	  with the number of change events in the current batch.

2014-04-27  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable major release 1.3.2:

	* Makefile.am: Update source files.
	* configure.ac:
	  - Set the C++ compiler search list to {clang++, g++}.
	  - Reconfigure the project as C++.
	  - Bump v. 1.3.2.
	  - Bump revision 1.3.2-1.
	* event.cpp: Added.
	* event.h: Added.
	* fsevent_monitor.cpp: Added.
	* fsevent_monitor.h: Added.
	* fswatch.cpp: Rename from fswatch.c.
	* fswatch.h: Added.
	* fswatch_exception.cpp: Added.
	* fswatch_exception.h: Added.
	* fswatch_log.cpp: Added.
	* fswatch_log.h: Added.
	* fswatch_map.h: Added.
	* inotify_monitor.cpp: Added.
	* inotify_monitor.h: Added.
	* kqueue_monitor.cpp: Added.
	* kqueue_monitor.h: Added.
	* monitor.cpp: Added.
	* monitor.h: Added.
	* path_utils.cpp: Added.
	* path_utils.h: Added.
	* poll_monitor.cpp: Added.
	* poll_monitor.h: Added.

2014-04-18  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	merging fsw with fswatch:

	* .gitignore:
	  - Exclude GNU Build System, NetBeans and Eclipse CDT files.
	* autogen.sh: Add initial version.
	* configure.ac: Add initial version.
	* Makefile.am: Add initial version.

2014-18-03  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.4.0:

	* ChangeLog:
	  - Update.
	* configure.ac:
	  - Bump version to 1.4.0.
	  - Add AC_CHECK_HEADERS([sys/inotify.h]).
	* inotify_monitor.cpp:
	  - Add inotify monitor.
	* inotify_monitor.h:
	  - Add inotify monitor.
	* README:
	  - Update to reflect the addition of the inotify monitor.

2014-18-03  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.3.1:
	
	* .gitignore:
	  - Ignore NetBeans project files.
	* ChangeLog:
	  - Update.
	* configure.ac:
	  - Bump version to 1.3.1.
	  - Remove error on failed kqueue check.
	  - Check for struct stat.st_mtime and struct stat.st_mtimespec.
	* event.cpp:
	  - Reformat.
	* fsevent_monitor.cpp:
	  - Reformat.
	* fsevent_monitor.h:
	  - Reformat.
	* fsw.7:
	  - Replace watcher with monitor in the docs.
	* fsw.cpp:
	  - Reformat.
	* fsw.h:
	  - Define FSW_EXIT_ENFILE.
	* fsw_exception.cpp:  
	  - Reformat.
	* fsw_exception.h:
	  - Reformat.
	* kqueue_monitor.cpp:
	  - Fix bug in kqueue_monitor resulting in event loss when a child
	    directory of an observed directory was deleted.
	  - Reformat.
	* kqueue_monitor.h:
	  - Reformat.
	* Makefile.am:
	  - Add README.* files to dist_doc_DATA.
	* monitor.cpp:
	  - Reformat.
	* monitor.h:
	  - Reformat.
	* path_utils.cpp:
	  - Exit with FSW_EXIT_ENFILE when no file descriptors are left either
	    at the process or system level.
	* path_utils.cpp:
	  - Reformat.
	* poll_monitor.cpp:
	  - Reformat.
	  - Update code to use FSW_MTIME and FSW_CTIME.
	* poll_monitor.h:
	  - Reformat.
	  - Add FSW_MTIME and FSW_CTIME preprocessor macro to use the correct
	    struct stat time fields.
	* README:
	  - Remove file and create a symbolic link to README.md.
	  - Replace watcher with monitor in the docs.
	* README.bsd:
	  - Replace watcher with monitor in the docs.
	* README.freebsd:
	  - Replace watcher with monitor in the docs.
	* README.md:
	  - Replace watcher with monitor in the docs.

2014-03-02  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable minor release 1.3.0:
	
	* ChangeLog:
	  - Update.
	* configure.ac:
	  - Bump version to 1.3.0.
	  - Add AC_CONFIG_AUX_DIR to segregate configuration utilities in an
	    auxiliary directory.
	  - Add AC_CHECK_FUNCS([regcomp]) to check for the availability of the
	    regcomp function in <regex.h>.
	  - Remove the check of having either CoreServices or sys/event.h for
	    fsw to compile.
	* event.cpp:
	  - Remove using namespace statements from header files.
	* event.h:
	  - Update events so that their ordinals are a bit mask.
	  - Remove using namespace statements from header files.
	* fseventwatcher.cpp:
	  - Remove using namespace statements from header files.
	* fseventwatcher.h:
	  - Remove using namespace statements from header files.
	* fsw.7:
	  - Update man page.
	* fsw.cpp:
	  - Optionally support exclude filters and regular expressions (-i, -e
	    and -E) only if regcomp is available (HAVE_REGCOMP is defined).
	  - Add -0/--print0 to use the ASCII NUL character (\0) as a line
	    separator.
	  - Use ostringstream to concatecate strings.
	  - Fix bug when getopt_long is not available.
	  - Reimplement -n/--numeric to dump platform independent event codes.
	  - Add -x/--event-flags to print event flags.
	  - Update -n/--numeric so that it turns -x on.
	  - Add -L/--follow-links to follow symbolic links.
	  - Update after name refactoring.
	* fsw.h:
	  - Remove using namespace statements from header files.
	* fsw_exception.h
	  - Remove using namespace statements from header files.
	* fsw_map.h:
	  - Remove using namespace statements from header files.
	* fsw_monitor.cpp:
	  - Rename from fsw_watcher.cpp.
	  - Update after name refactoring.
	* fsw_monitor.h:
	  - Rename from fsw_watcher.h.
	  - Update after name refactoring.
	* fsw_set.h:
	  - Remove using namespace statements from header files.
	* kqueue_monitor.cpp
	  - Remane from kqueue_watcher.cpp.
	  - Update after name refactoring.
	  - Use ::fstat instead of ::stat if a file descriptor is available.
	  - Reimplement -n/--numeric to dump platform independent event codes.
	  - Remove using namespace statements from header files.
	  - Implement -L/--follow-links to follow symbolic links.
	* kqueue_monitor.h:
	  - Rename from kqueue_watcher.h
	  - Update after name refactoring.
	  - Remove using namespace statements from header files.
	* Makefile.am:
	  - Update rename files.
	* monitor.cpp:
	  - Rename from watcher.cpp.
	  - Optionally support exclude filters and regular expressions (-i, -e
	    and -E) only if regcomp is available (HAVE_REGCOMP is defined).
	  - Fix missing import.
	  - Remove using namespace statements from header files.
	  - Implement -L/--follow-links to follow symbolic links.
	* monitor.h:
	  - Rename from watcher.h.
	  - Optionally support exclude filters and regular expressions (-i, -e
	    and -E) only if regcomp is available (HAVE_REGCOMP is defined).
	  - Fix missing import.
	  - Remove using namespace statements from header files.
	  - Implement -L/--follow-links to follow symbolic links.
	* NEWS:
	  - Update.
	* path_utils.h:
	  - Remove using namespace statements from header files.
	* poll_monitor.cpp:
	  - Rename from poll_watcher.cpp.
	  - Update after name refactoring.
	  - Use ::fstat instead of ::stat if a file descriptor is available.
	  - Reimplement -n/--numeric to dump platform independent event codes.
	  - Fix missing import.
	  - Remove using namespace statements from header files.
	  - Implement -L/--follow-links to follow symbolic links.
	* poll_monitor.h:
	  - Rename from poll_watcher.h.
	  - Update after name refactoring.
	  - Remove using namespace statements from header files.
	* README:
	  - Update memory requirement description.
	* README.md:
	  - Update memory requirement description.

2014-02-25  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.2.2:

	* configure.ac:
	  - Bump version to 1.2.2.
	  - Add AC_CHECK_HEADERS([unordered_set]).
	* fsevent_watcher.cpp: check paths with exclude filters.
	* fsw.cpp: add -e/--exclude option to define exclude filters with
	  regular expressions.
	* fsw_set: typedef fsw_set to std::unordered_set when available,
	  otherwise to std::set.
	* kqueue_watcher.cpp:
	  - Check paths with exclude filters.
	  - Use sets instead of maps when feasible.
	* kqueue_watcher.h: use sets instead of maps when feasible.
	* Makefile.am: added fsw_set.h to fsw_SOURCES.
	* poll_watcher.cpp: check paths with exclude filters.
	* watcher.cpp: add accept_path() method to check if a path should be
	  accepted according to the exclude filters.
	* watcher.h: add accept_path() method to check if a path should be
	  accepted according to the exclude filters.
	
2014-02-24  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.2.1:
	
	* configure.ac: bump version to 1.2.1.
	* fsw.7: updated.
	* m4/ax_cxx_namespaces.m4: added to check for C++ compiler namespace
	  support.
	* poll_watcher.cpp: optimise internal storage to reduce memory
	  requirements.
	* poll_watcher.h: optimise internal storage to reduce memory
	  requirements.
	* README:
	  - Updated.
	  - Use markdown syntax.
	* README.md: updated.
	
2014-02-20  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable minor release 1.2.0:
	
	* ChangeLog: updated.
	* configure.ac: add AC_CHECK_HEADERS([unordered_map]).
	* fsw.7: updated.
	* fsw_map.h: define fsw_hash_map as an std::unordered_map if this type
	  exists otherwise as std::map. 
	* Makefile.am:
	  - Add poll_watcher.cpp and poll_watcher.h to fsw_SOURCES.
	  - Add fsw_map.h to fsw_SOURCES.
	* NEWS: updated.
	* path_utils.cpp: added.
	* path_utils.h: added.
	* poll_watcher.cpp: added.
	* poll_watcher.h: added.

2014-02-20  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable minor release 1.1.0:
	
	* autogen.sh: add script to bootstrap the GNU Build System.
	* ChangeLog: updated.
	* configure.ac:
	  - Bump version to 1.1.0.
	  - Check for either FSEvents (CoreServices/CoreServices.h) or kqueue
	    (sys/event.h) to be available.
	  - Remove OS check and check for available headers instead.
	  - Require strict C++11 conformance mode for the compiler.
	  - Search for clang++ and g++ compilers.
	  - Add AC_PROG_CC after autoscan complains.
	  - Add sys/time.h to the list of AC_CHECK_HEADERS.
	  - Add AC_TYPE_UINT32_T.
	  - Add AC_CHECK_FUNCS([modf],,AC_MSG_ERROR([...])).
	  - Add AC_TYPE_MOD_T.
	  - Add AC_CHECK_FUNCS([realpath]) and fail if missing.
	* fsevent_watcher.cpp:
	  - Check for all the existing FSEventFlagName flags.
	  - Map platform-specific event flags to generic event flags. 
	* fsw.7: updated.
	* fsw.cpp:
	  - Use watcher base class.
	  - Fix includes so that fsw builds on FreeBSD (v. 10.0 was checked).
	  - Use static linkage whenever possible.
	  - Add -r/--recursive option.
	  - Normalize paths with ::realpath.
	  - Add -k/--kqueue option to use a kqueue watcher when more than one
	    kind of watcher is available.
	* fsw_log.cpp: added wrapper function triggering perror() only if the
	  application is in verbose mode.
	* fsw_log.h: added wrapper function triggering perror() only if the
	  application is in verbose mode.
	* kqueue_watcher.cpp:
	  - Add kqueue-based watcher for systems with kqueue.
	  - Map platform-specific event flags to generic event flags.
	  - Check presence of the EV_ERROR event flag and print an error if
	    found.
	  - Implement -r/--recursive directory walking.
	  - Look for EV_ERROR in struct kevent::flags.
	* kqueue_watcher.h: add kqueue-based watcher for systems with kqueue.
	* Makefile.am:
	  - Add new files.
	  - Use conditional to use the -framework linker flag on OS X.
	* NEWS: updated.
	* README: updated.
	* README.bsd: added.
	* README.freebsd: added.
	* README.gnu-build-system: added.
	* README.osx: added.
	* watcher.cpp: add watcher base class.
	* watcher.h: add watcher base class.

2014-02-14  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.7.

	* configure.ac: bump version number to 1.0.7.
	* fsevent_watcher.cpp: throw fsw_exception instead of int.
	* fsw.cpp:
	  - Define fsw_exception.
	  - Throw fsw_exception instead of int.
	* fsw.h: declare fsw_exception.
	
2014-02-11  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.6.

	* configure.ac: bump version number to 1.0.6.
	* fsw_log.cpp: rename from log.cpp.
	* fsw_log.h: rename from log.h. 

2014-02-10  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.5.
	
	* configure.ac: bump version number to 1.0.5.
	* Makefile.am: add fsw man page.
	* fsevent_watcher.h: add class to encapsulate watcher logic.
	* fsevent_watcher.cpp: add class to encapsulate watcher logic.
	* fsw.cpp: move watcher code into fsevent_watcher class and refactor.

2014-02-10  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.4.
	
	* configure.ac: bump version number to 1.0.4.
	* fsw.cpp:
	  - Format date with user-specified format with -t/--time-format.
	  - Convert time to UTC time with -u/--utc-time.

2014-02-10  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.3.
	
	* configure.ac: bump version number to 1.0.3.
	* fsw.cpp:
	  - Improve the event flag printing function.
	  - Add verbose output with -v/--verbose.
	* fsw.h: export definition of bool is_verbose().
	* log.cpp:
	  - Add.
	  - Implement fsw_log(const char *) writing to stdout.
	* log.h:
	  - Add.
	  - Export definition of void fsw_log(const char *).

2014-02-10  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.2.
	
	* configure.ac:
	  - Bump version number to 1.0.2.
	  - Check that host_os >= darwin 10.0 and fails otherwise.
	  - Add stdlib.h to AC_CHECK_HEADERS.
	  - Add AC_FUNC_STRTOD.
	* fsw.cpp: add support for latency configuration with -l/--latency.
	* fsw.cpp: reorganize code.
	* fsw.h: add.
	* fsw.h: define exit codes.
	  
2014-02-10  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable micro release 1.0.1.

	* configure.ac: bump version number to 1.0.1.
	* AUTHORS: update.
	* ChangeLog: update.
	* COPYING: update.
	* INSTALL: add.
	* NEWS: update.
	* README: update.

2014-02-09  Enrico M. Crisostomo  <enrico.m.crisostomo@gmail.com>

	release: stable minor release 1.0.0.
	
	* configure.ac: add initial version.
	* Makefile.am: add initial version.
	* fsw.cpp: add initial version.	 
