Tue Dec 20 19:48:57 2011  Google Inc. <opensource@google.com>

	* google-gflags: version 1.7
	* Add CommandLineFlagInfo::flag_ptr pointing to current storage (musji)
	* PORTING: flush after writing to stderr, needed on cygwin
	* PORTING: Clean up the GFLAGS_DLL_DECL stuff better
	* Fix a bug in StringPrintf() that affected large strings (csilvers)
	* Die at configure-time when g++ isn't installed

Fri Jul 29 19:05:21 2011  Google Inc. <opensource@google.com>

	* google-gflags: version 1.6
	* BUGFIX: Fix a bug where we were leaving out a required $(top_srcdir)
	* Fix definition of clstring (jyrki)
	* Split up flag declares into its own file (jyrki)
	* Add --version support (csilvers)
	* Update the README for gflags with static libs
	* Update acx_pthread.m4 for nostdlib
	* Change ReparseCommandLineFlags to return void (csilvers)
	* Some doc typofixes and example augmentation (various)

Mon Jan 24 16:11:35 2011  Google Inc. <opensource@google.com>

	* google-gflags: version 1.5
	* Better reporting of current vs default value (handler)
	* Add API for cleaning up of memory at program-exit (jmarantz)
	* Fix macros to work inside namespaces (csilvers)
	* Use our own string typedef in case string is redefined (csilvers)
	* Updated to autoconf 2.65

Wed Oct 13 17:40:12 2010  Google Inc. <opensource@google.com>

	* google-gflags: version 1.4
	* Add a check to prevent passing 0 to DEFINE_string (jorg)
	* Reduce compile (.o) size (jyrki)
	* Some small changes to quiet debug compiles (alexk)
	* PORTING: better support static linking on windows (csilvers)
	* DOCUMENTATION: change default values, use validators, etc.
	* Update the NEWS file to be non-empty
	* Add pkg-config (.pc) files for libgflags and libgflags_nothreads

Mon Jan  4 18:09:30 2010  Google Inc. <opensource@google.com>

	* google-gflags: version 1.3
	* PORTABILITY: can now build and run tests under MSVC (csilvers)
	* Remove the python gflags code, which is now its own package (tansell)
	* Clarify that "last flag wins" in the docs (csilvers)
	* Comment danger of using GetAllFlags in validators (wojtekm)
	* PORTABILITY: Some fixes necessary for c++0x (mboerger)
	* Makefile fix: $(srcdir) -> $(top_srcdir) in one place (csilvres)
	* INSTALL: autotools to autoconf v2.64 + automake v1.11 (csilvers)

Thu Sep 10 12:53:04 2009  Google Inc. <opensource@google.com>

	* google-gflags: version 1.2
	* PORTABILITY: can now build and run tests under mingw (csilvers)
	* Using a string arg for a bool flag is a compile-time error (rbayardo)
	* Add --helpxml to gflags.py (salcianu)
	* Protect against a hypothetical global d'tor mutex problem (csilvers)
	* BUGFIX: can now define a flag after 'using namespace google' (hamaji)

Tue Apr 14 12:35:25 2009  Google Inc. <opensource@google.com>

	* google-gflags: version 1.1
	* Add both foo and nofoo for boolean flags, with --undefok (andychu)
	* Better document how validators work (wojtekm)
	* Improve binary-detection for bash-completion (mtamsky)
	* Python: Add a concept of "key flags", used with --help (salcianu)
	* Python: Robustify flag_values (salcianu)
	* Python: Add a new DEFINE_bool alias (keir, andrewliu)
	* Python: Do module introspection based on module name (dsturtevant)
	* Fix autoconf a bit better, especially on windows and solaris (ajenjo)
	* BUG FIX: gflags_nothreads was linking against the wrong lib (ajenjo)
	* BUG FIX: threads-detection failed on FreeBSD; replace it (ajenjo)
	* PORTABILITY: Quiet an internal compiler error with SUSE 10 (csilvers)
	* PORTABILITY: Update deb.sh for more recenty debuilds (csilvers)
	* PORTABILITY: #include more headers to satify new gcc's (csilvers)
	* INSTALL: Updated to autoconf 2.61 and libtool 1.5.26 (csilvers)

Fri Oct  3 15:16:46 2008  Google Inc. <opensource@google.com>

	* google-gflags: version 1.0
	* Add a missing newline to an error string (bcmills)
	* (otherwise exactly the same as gflags 1.0rc2)

Thu Sep 18 12:58:05 2008  Google Inc. <opensource@google.com>

	* google-gflags: version 1.0rc2
	* Report current flag values in --helpxml (hdn)
	* Fix compilation troubles with gcc 4.3.3 (simonb)
	* BUG FIX: I was missing a std:: in DECLARE_string (csilvers)
	* BUG FIX: Clarify in docs how to specify --bool flags (csilvers)
	* BUG FIX: Fix --helpshort for source files not in a subdir (csilvers)
	* BUG FIX: Fix python unittest for 64-bit builds (bcmills)
	
Tue Aug 19 16:15:48 2008

	* google-gflags: version 1.0rc1
	* Move #include files from google/ to gflags/ (csilvers)
	* Small optimizations to reduce binary (library) size (jyrki)
	* BUGFIX: forgot a std:: in one of the .h files (csilvers)
	* Speed up locking by making sure calls are inlined (ajenjo)
	* 64-BIT COMPATIBILITY: Use %PRId64 instead of %lld (csilvers)
	* PORTABILITY: fix Makefile to work with Cygwin (ajenjo)
	* PORTABILITY: fix code to compile under Visual Studio (ajenjo)
	* PORTABILITY: fix code to compile under Solaris 10 with CC (csilvers)

Mon Jul 21 23:01:38 2008  Google Inc. <opensource@google.com>

	* google-gflags: version 0.9
	* Add the ability to validate a command-line flag (csilvers)
	* Add completion support for commandline flags in bash (daven)
	* Add -W compile flags to Makefile, when using gcc (csilvers)
	* Allow helpstring to be NULL (cristianoc)
	* Improved documentation of classes in the .cc file (csilvers)
	* Fix python bug with AppendFlagValues + shortnames (jjtswan)
	* Use bool instead of int for boolean flags in gflags.py (bcmills)
	* Simplify the way we declare flags, now more foolproof (csilvers)
	* Better error messages when bool flags collide (colohan)
	* Only evaluate DEFINE_foo macro args once (csilvers)

Wed Mar 26 15:20:18 2008  Google Inc. <opensource@google.com>

	* google-gflags: version 0.8
	* Export DescribeOneFlag() in the API
	* Add support for automatic line wrapping at 80 cols for gflags.py
	* Bugfix: do not treat an isolated "-" the same as an isolated "--"
	* Update rpm spec to point to Google Code rather than sourceforge (!)
	* Improve documentation (including documenting thread-safety)
	* Improve #include hygiene
	* Improve testing
	
Thu Oct 18 11:33:20 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.7
	* Deal even more correctly with libpthread not linked in (csilvers)
	* Add STRIP_LOG, an improved DO_NOT_SHOW_COMMANDLINE_HELP (sioffe)
	* Be more accurate printing default flag values in --help (dsturtevant)
	* Reduce .o file size a bit by using shorter namespace names (jeff)
	* Use relative install path, so 'setup.py --home' works (csilvers)
	* Notice when a boolean flag has a non-boolean default (bnmouli)
	* Broaden --helpshort to match foo-main.cc and foo_main.cc (hendrie)
	* Fix "no modules match" message for --helpshort, etc (hendrie)

Wed Aug 15 07:35:51 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.6
	* Deal correctly with case that libpthread is not linked in (csilvers)
	* Update Makefile/tests so we pass "make distcheck" (csilvers)
	* Document and test that last assignment to a flag wins (wan)

Tue Jun 12 15:23:42 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.5
	* Include all m4 macros in the distribution (csilvers)
	* Python: Fix broken data_files field in setup.py (sidlon)
	* Python: better string serliaizing and unparsing (abo, csimmons)
	* Fix checks for NaN and inf to work with Mac OS X (csilvers)
	
Thu Apr 19 15:15:07 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.4
	* Remove is_default from GetCommandLineFlagInfo (csilvers)
	* Portability fixes: includes, strtoll, gcc4.3 errors (csilvers)
	* A few doc typo cleanups (csilvers)

Wed Mar 28 12:15:56 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.3
	* python portability fix: use popen instead of subprocess (csilvers)
	* Add is_default to CommandLineFlagInfo (pchien)
	* Make docs a bit prettier (csilvers)
	* Actually include the python files in the distribution! :-/ (csilvers)

Mon Jan 22 15:33:06 2007  Google Inc. <opensource@google.com>

	* google-gflags: version 0.2
	* added support for python commandlineflags, as well as c++
	* gflags2man, a script to turn flags into a man page (dchristian)

Wed Dec 13 12:37:19 2006  Google Inc. <opensource@google.com>

	* google-gflags: initial release:
	The gflags package contains a library that implements commandline
	flags processing.  As such it's a replacement for getopt().  It
	has increased flexibility, including built-in support for C++
	types like string, and the ability to define flags in the source
	file in which they're used.
