
This is part of the Objectify project documentation.
Copyright (C) 2009   J. Scott Edwards
See the file README for copying conditions.


2009-09-21  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30.5 release.


2009-09-20  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: fixed sync_archive and copy_0029_to_0030.c.
	<SVN-4370> <SVN-4373>

	* testing/ChangeLog: renamed prep_disk to prep_archive in test scripts
	and added tests for sync_archive.
	<SVN-4372> <SVN-4374>
	
	* src/lib/archive/ChangeLog: fix modified flag.
	<SVN-4371>


2009-09-19  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: added code to make sure everything is kosher
	before proceeding with sync.
	<SVN-4365>

	* doc/http/ChangeLog: added index.html and about.html back into the
	http/www.worldwide-database.org/ directory, they were somehow lost when
	the directories were rearranged for the Alpha_30.4 release.
	<SVN-4362>

	* README: added GNU Free Documentation License from
	http://www.gnu.org/licenses/fdl-1.3.txt
	* ChangeLog: added GFDL copyright notice. 
	* ChangeLog-2006: added GFDL copyright notice. 
	* ChangeLog-2007: added GFDL copyright notice. 
	* ChangeLog-2008: added GFDL copyright notice. 
	* HISTORY: added GFDL copyright notice. 
	* INSTALL: added GFDL copyright notice. 
	* KNOWN_BUGS: added GFDL copyright notice. 
	* RELEASE_CHECKLIST: added GFDL copyright notice. 
	* RELEASE_NOTES: added GFDL copyright notice. 
	* TODO: added GFDL copyright notice. 
	* TSU_NOTIFICATION: added GFDL copyright notice. 
	<SVN-4361>


2009-09-12  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: moved verification in sync_archive.
	<SVN-4358>

	* src/lib/archive/ChangeLog: fixed so modified flag is cleared after
	disk_io has flushed to disk.
	<SVN-4355> <SVN-4356>


2009-08-29  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* doc/man/prep-archive.txt: first attempt to make a man page.
	<SVN-4359>


2009-08-21  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: renamed diff_sparse to diff_archive and
	prep_disk to prep_archive.  Added code to sync_archive to compare the
	chunk_info tables and tried to get diff_archive to work.
	<SVN-4349> <SVN-4350> <SVN-4352> <SVN-4353>


2009-08-20  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: Fixed Bug #2841052.
	<SVN-4345>


2009-08-17  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: changed sync_archive to sync instead of
	just copying.
	<SVN-4347>


2009-08-16  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/lib/objectify/ChangeLog: upped limit of import files from one
	gigabyte to eight gigabytes.
	<SVN-4342>


2009-08-15  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30.4 release.
	<SVN-4341>

	* testing/ChangeLog: fixed test_import_export.sh to get it's test files
	from the new directory structure.
	<SVN-4337>

	* testing/ChangeLog: changed remainder of the tests to deal with new
	directory structure.
	<SVN-4336>

	* src/apps/util/ChangeLog: renamed compress_sparse to compress_archive
	and expand_sparse to restore_archive.
	* testing/ChangeLog: renamed compress_sparse to compress_archive
	and expand_sparse to restore_archive.
	<SVN-4335>


2009-08-14  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: add ignore-times option to usage print.


2009-08-13  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/util/ChangeLog: clarified warning message in sync_archive.
	* src/lib/archive/ChangeLog: Fix assert from yesterdays fix.


2009-08-12  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/lib/archive/ChangeLog: Fix Bug #2835563.
	* testing/ChangeLog: changed to deal with new directory structure.


2009-08-11  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/lib/archive/ChangeLog: Fix Bug #2835563.


2009-08-10  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/lib/archive/ChangeLog: Fix Bug #2834542.


2009-08-09  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/apps/file/ChangeLog: Fix Bug #2834462.
	* src/lib/objectify/ChangeLog: Fix Bug #2834458.


2009-08-08  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* configure.ac: renamed src/apps/utils to src/apps/util and attic to
	src/attic.

	* Makefile.in: fixed to build correctly in new directory structure.
	<SVN-4310>


2009-08-07  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in: changed to build programs by calling Makefiles in new
	src/lib and src/apps dirctories.
	<SVN-4305>

	* src/apps/utils renamed to src/apps/util.
	<SVN-4304>


2009-08-06  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* configure.ac (AC_CONFIG_FILES): added Makefiles for the new source
	directories: src/apps/data/, src/apps/file/, src/apps/public/,
	src/apps/utils/, src/lib/objectify/, and changed http/ to src/http/.
	<SVN-4296>
	
	* fine/: moved under the new src directory.
	<SVN-4285>

	* http/: moved under the new src directory.
	<SVN-4284>
	* http/ChangeLog: split out changes made to the files in
	http/www.worldwide-database.org/ to doc/http/ChangeLog and left changes
	to the Makefile.in and list_files_cgi.c in http/ChangeLog.
	<SVN-4283>
	* http/www.worldwide-database.org/: moved to the new doc/http
	directory.
	<SVN-4282>


2009-08-05  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (uninstall): fixed to use $(prefix) instead of hardcoded
	"/usr/local" in path.
	<SVN-4274>


2009-08-04  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objects.h: moved from src/lib/objectify directory to include
	directory.
	<SVN-4271>

	* add_password.c: moved to new src/apps/utils directory.
	* check_archive.c: moved to new src/apps/utils directory.
	* combine_backup_files.c: moved to new src/apps/utils directory.
	* compress_sparse.c: moved to new src/apps/utils directory.
	* copy_0029_to_0030.c: moved to new src/apps/utils directory.
	* diff_compressed.c: moved to new src/apps/utils directory.
	* diff_sparse.c: moved to new src/apps/utils directory.
	* disk_usage.c: moved to new src/apps/utils directory.
	* dump_header.c: moved to new src/apps/utils directory.
	* expand_sparse.c: moved to new src/apps/utils directory.
	* patch_compressed.c: moved to new src/apps/utils directory.
	* prep_disk.c: moved to new src/apps/utils directory.
	* recrypt.c: moved to new src/apps/utils directory.
	* sync_archive.c: moved to new src/apps/utils directory.
	* update_files_0028.c: moved to new src/apps/utils directory.
	
	* wrapper.c: moved to new src/apps/public directory.
	<SVN-4264>

	* check_files.c: moved to new src/apps/file directory.
	* disc_list.c: moved to new src/apps/file directory.
	* export_file.c: moved to new src/apps/file directory.
	* identify_disc.c: moved to new src/apps/file directory.
	* import_file.c: moved to new src/apps/file directory.
	* list_discs.c: moved to new src/apps/file directory.
	* list_files.c: moved to new src/apps/file directory.
	* log_disc.c: moved to new src/apps/file directory.
	* remove_file.c: moved to new src/apps/file directory.
	* rename_file.c: moved to new src/apps/file directory.
	* verify_file.c: moved to new src/apps/file directory.
	<SVN-4263>
	
	* export_c_structs.c: moved to new src/apps/public directory.
	<SVN-4262>

	* check_objects.c: moved to new src/apps/data directory.
	* computer.c: moved to new src/apps/data directory.
	* dump_obj.c: moved to new src/apps/data directory.
	<SVN-4261>


2009-08-03  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* src/attic/: created new directory.
	* attribute.c: moved to new src/attic directory.
	<SVN-4259>

	* reference.c: moved to new src/lib/archive directory.
	* progress_bar.c: moved to new src/lib/archive directory.
	<SVN-4254>

	* acronym.c: moved to new src/lib/objectify directory.
	* address.c: moved to new src/lib/objectify directory.
	* class_definition.h: moved to new src/lib/objectify directory.
	* class_definition.c: moved to new src/lib/objectify directory.
	* date.c: moved to new src/lib/objectify directory.
	* device.c: moved to new src/lib/objectify directory.
	* dialog.c: moved to new src/lib/objectify directory.
	* disc.c: moved to new src/lib/objectify directory.
	* file.c: moved to new src/lib/objectify directory.
	* financial.c: moved to new src/lib/objectify directory.
	* language.c: moved to new src/lib/objectify directory.
	* name.c: moved to new src/lib/objectify directory.
	* number.c: moved to new src/lib/objectify directory.
	* objectify.c: moved to new src/lib/objectify directory.
	* objects.h: moved to new src/lib/objectify directory.
	* objects.c: moved to new src/lib/objectify directory.
	* person.c: moved to new src/lib/objectify directory.
	* phone.c: moved to new src/lib/objectify directory.
	* reference_list.c: moved to new src/lib/objectify directory.
	* security.h: moved to new src/lib/objectify directory.
	* security.c: moved to new src/lib/objectify directory.
	* spelling.c: moved to new src/lib/objectify directory.
	* url.c: moved to new src/lib/objectify directory.
	* us_state.c: moved to new src/lib/objectify directory.
	* word.c: moved to new src/lib/objectify directory.
	<SVN-4253>

	* include/: created new directory.
	* config.h.in: moved to new include directory.
	* gen_id.h: moved to new include directory.
	* log.h: moved to new include directory.
	* mem_alloc.h: moved to new include directory.
	* objectify.h: moved to new include directory.
	* progress_bar.h: moved to new include directory.
	* reference.h: moved to new include directory.
	* reference_list.h: moved to new include directory.
	* storage.h: moved to new include directory.
	* strlcxx.h: moved to new include directory.
	* time_stamp.h: moved to new include directory.
	* types.h: moved to new include directory.
	* user_config.h: moved to new include directory.
	<SVN-4252>

	* src/apps/: created new directory.
	* src/apps/data: created new directory.
	* src/apps/file: created new directory.
	* src/apps/public: created new directory.
	* src/apps/utils: created new directory.
	<SVN-4251>
	
	* backup.c: deleted again because it was resurrected when I updated to
	get the changes made in a different task.
	<SVN-4249>


2009-08-02  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made in a different working copy that had not --
	-- had files moved yet, backup.c was still in the root directory.   --
	
	* backup.c (Dummy_Block): deleted, it used ObjRef which we don't want
	to use in this code.
	(is_zero_reference): new function that tests to see if the reference in
	a block is zero.
	(ref_to_uint64): new function that converts the 8-byte reference in a
	block to a uint64.
	(compare_id): changed to pass in a pointer to the block instead of a
	pointer to an ObjRef.
	(sort_file): changed to deal with block reference IDs as 8 bytes
	instead of ObjRefs because ObjRefs are only defined in the Objectify
	level code.  <SVN-4231>


2009-08-01  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* backup.h: moved to new src/lib/archive directory.
	* backup.c: moved to new src/lib/archive directory.
	* bit_map.h: moved to new src/lib/archive directory.
	* bit_map.c: moved to new src/lib/archive directory.
	* chunk_info.h: moved to new src/lib/archive directory.
	* chunk_info.c: moved to new src/lib/archive directory.
	* crc32.h: moved to new src/lib/archive directory.
	* crc32.c: moved to new src/lib/archive directory.
	* disk_io.h: moved to new src/lib/archive directory.
	* disk_io.c: moved to new src/lib/archive directory.
	* gen_id.h: moved to new src/lib/archive directory.
	* gen_id.c: moved to new src/lib/archive directory.
	* header.h: moved to new src/lib/archive directory.
	* header.c: moved to new src/lib/archive directory.
	* log.h: moved to new src/lib/archive directory.
	* log.c: moved to new src/lib/archive directory.
	* mem_alloc.h: moved to new src/lib/archive directory.
	* mem_alloc.c: moved to new src/lib/archive directory.
	* storage.h: moved to new src/lib/archive directory.
	* storage.c: moved to new src/lib/archive directory.
	* strlcxx.h: moved to new src/lib/archive directory.
	* strlcxx.c: moved to new src/lib/archive directory.
	* time_stamp.h: moved to new src/lib/archive directory.
	* time_stamp.c: moved to new src/lib/archive directory.
	* types.h: moved to new src/lib/archive directory.
	* user_config.h: moved to new src/lib/archive directory.
	* user_config.c: moved to new src/lib/archive directory.
	<SVN-4245>
	
	* gnu/: moved to new src/lib directory.
	<SVN-4244>

	* next_gen/: moved under new src directory.
	<SVN-4243>

	* configure.ac: Moved config.h into the include directory, moved the
	gnu directory under the new src/lib directory, and added
	src/lib/archive/Makefile.
	<SVN-4240>

	* compress_sparse.c (main): removed the old 'counts' array and code
	that printed how many blocks were used in each sixteenth of the
	archive.
	* copy_0029_to_0030.c (main): removed the old 'counts' array and code
	that printed how many blocks were used in each sixteenth of the
	archive.
	* sync_archive.c (main): removed the old 'counts' array and code that
	printed how many blocks were used in each sixteenth of the archive.
	<SVN-4229>
	
	* ChangeLog (this file): split up into ChangeLog-2006 (the old
	CHANGE_LOG file from the Alpha_05 release), ChangeLog-2007,
	ChangeLog-2008, and retained the entries for 2009 in this file.
	<SVN-4226>
	

2009-07-31  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30.3 release.

	* objectify.c (nwos_create_root): Fix Bug #2827375 - Fixed to test for
	duplicate pass phrase before allowing a new pass phrase to be created.
	<SVN-4219>

	* disk_usage.c (print_usage): added optional [archive].
	(main): changed to allow passing in an archive on the command line.
	<SVN-4217>  <SVN-4218>

	* disk_usage.c (verbose): changed to local variable in main and renamed
	to 'graph'.
	(print_usage): changed "--verbose" to "--graph".
	(main): changed to only call display_graph if --graph option was given
	on the command line.  <SVN-4216>

	* check_archive.c (print_usage): added optional --verbose and archive.
	(main): changed to allow passing in an archive on the command line.
	<SVN-4215>

	* disk_io.h (nwos_ready): deleted external declaration.
	* objecitfy.c (nwos_ready): changed to static.  <SVN-4214>

	* disk_io.h (verbose): renamed to nwos_verbosity_level.
	* objectify.c (verbose): moved to disk_io.c file and renamed to
	nwos_verbosity_level.
	* disk_io.c (nwos_verbosity_level): moved 'verbose' global variable
	from objectify.c and renamed.
	* file.c (find_matching_file_from_size_md5_sha1): changed verbose to
	nwos_verbosity_level.
	* check_archive.c (verbose): changed from global variable to local
	variable in main function.
	* disk_usage.c (verbose): changed to static.
	<SVN-4213>


2009-07-30  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* sync_archive.c (control_c_handler): changed to use 'fputs' to print
	"^C" instead of 'write' to eliminate compiler warning.  Also added an
	'fflush' after.  <SVN-4212>

	* check_archive.c (main): verbose option that when enabled prints the
	chunk_info table for each chunk.  <SVN-4207> <SVN-4208>

	* check_archive.c (main): added code to calculate MD5 checksum on
	blocks in chunk and verify it matches checksum stored in chunk_info
	table.  <SVN-4205>
	* Makefile.in: (check_archive): added md5.o.  <SVN-4206>


2009-07-29  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* check_archive.c (main): fixed to work correctly with new 64-bit
	references in blocks (0xfffffffe in upper bytes).  <SVN-4202>

	* disk_usage.c (bits_in_byte, calculate_blocks_used): removed, no
	longer used.
	(main): removed call to calculate_blocks_used that compared the used
	block count in the chunk_info table with the number of bits set in the
	bit map.  <SVN-4201>

	* Makefile.in (PROGS): renamed check_block_maps to check_archive.
	(check_block_maps): renamed to check_archive.
	* check_block_maps.c: renamed to check_archive.c.  <SVN-4200>

	* sync_archive.c (control_c_received): new variable that is set to true
	when user has hit control-C.
	(control_c_handler): new function that handles SIGINT.
	(main): added code to set signal to catch control-C and exit write
	chunk loop when control_c_received is true.  <SVN-4199>


2009-07-26  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* sync_archive.c (main): Changed so that the source archive is optional
	on the command line and if it is not specified use the default archive
	as the source.  <SVN-4195>
	
	* prep_disk.c (main): changed to allow passing an archive on the
	command line to prep instead of the default.  <SVN-4194>

	* sync_archive.c (main): Fix Bug #2827366 - changed to print error
	message and exit if the source and destination specified are the same.
	<SVN-4193>
	
	* person.c (nwos_add_person): Fix Bug #2814112 - print warning message
	if a person with the same first and last names already exists and the
	middle name doesn't distinguish them.  <SVN-4192>


2009-07-25  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.c (nwos_initialize_disk_io): Fix Bug #2827240 - changed to
	print private path when the private header fails instead of the public
	path. <SVN-4188>

	* all make, source, configuration, and script files were changed so
	that the header says both New World OS and Objectify projects and the
	CVS logs were removed because Subversion doesn't support the Log
	keyword.  <SVN-4184, SVN-4186>


2009-07-21  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30.2 release.

	* sync_archive.c (main): fix Bug #2824790 - copied code from
	expand_sparse.c to increase the number of chunks in the destination
	archive if it is a file.

	* sync_archive.c (main): added erase and start progress bar calls
	around code that prints the empty reference warning.

	* sync_archive.c (main): fix Bug #2824305 - changed to loop over
	USABLE_BLOCKS_PER_CHUNK instead of BLOCKS_IN_CHUNK and add
	BIT_MAP_BLOCKS to chunk base.

	* disk_usage.c (display_graph): fix Bug #2824303 - changed to subtract
	the BASE_32_BIT_PRIVATE from the chunk_info reference.


2009-07-19  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30.1 release.

	* update_files_0028.c (main): changed include of disk_io.h to
	objectify.h and wrapped call to nwos_set_security_level with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable security level stuff for now.

	* disc.c (nwos_create_disc_list, nwos_create_disc_copy)
	(nwos_create_storage_location): added ifdef VERIFY_WRITE around code
	that reads back the block to verify it was written correctly.  This
	code fails now that nwos_write_block changes the upper 4 bytes of the
	reference to 0xfffffffe.
	* disc_list.c (check_for_previous_version_and_link): added ifdef
	VERIFY_WRITE around code that reads back the block to verify it was
	written correctly.
	* financial.c (nwos_find_or_create_account_number): added ifdef
	VERIFY_WRITE around code that reads back the block to verify it was
	written correctly.
	* number.c (nwos_create_cardinal_number)
	(nwos_create_ordinal_number): added ifdef VERIFY_WRITE around code that
	reads back the block to verify it was written correctly.
	* rename_file.c (create_new_path): added ifdef VERIFY_WRITE around code
	that reads back the block to verify it was written correctly.
	* spelling.c (nwos_create_public_spelling)
	(nwos_create_private_spelling): added ifdef VERIFY_WRITE around code
	that reads back the block to verify it was written correctly.
	* update_files_0028.c (main): added ifdef VERIFY_WRITE around code that
	reads back the block to verify it was written correctly.
	* url.c (nwos_create_url): added ifdef VERIFY_WRITE around code that
	reads back the block to verify it was written correctly.


2009-07-18  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* expand_sparse.c (main): added a hack to scan the compressed file, if
	it is a 0029 or older, and count the number of chunks needed for it.
	This is necessary because the chunk count can be different between
	versions 0029 and 0030.

	* expand_sparse.c (main): changed the 'num_blocks' variable to
	uint64 instead of int so that it matches the used_private_blocks
	variable.

	* diff_compressed.c (main): added code to change upper 4 bytes of
	blocks from an 0029 or earlier compressed file to 0xfffffffe and to
	change them back to zeros if the block has to go around the loop again.
	* patch_compressed.c (main): added code to change upper 4 bytes of
	blocks from an 0029 or earlier compressed file to 0xfffffffe and to
	change them back to zeros if the block has to go around the loop again.


2009-07-17  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.c (find_new_random_chunk_location): changed lower_ref and
	upper_ref to uint64 MINIMUM_PRIVATE_REFERENCE and
	MAXIMUM_PRIVATE_REFEENCE to MINIMUM_32_BIT_PRIVATE_REFERENCE and
	MAXIMUM_32_BIT_PRIVATE_REFEENCE.
	(nwos_check_blocks_available): changed MAXIMUM_PRIVATE_REFERENCE to
	MAXIMUM_32_BIT_PRIVATE_REFEENCE.
	
	* diff_compressed.c (main): changed to test for zeros in the upper word
	of the reference if the version is less than 0030 and for 0xfffffffe
	otherwise.
	* patch_compressed.c (main): changed to test for zeros in the upper
	word of the reference if the version is less than 0030 and for
	0xfffffffe otherwise.

	* diff_compressed.c (main): fixed so that if the upper word of the
	reference isn't zero it prints the message to stderr and exits with an
	error.
	* patch_compressed.c (main): fixed so that if the upper word of the
	reference isn't zero it prints the message to stderr and exits with an
	error.

	* compress_sparse.c (main): changed to loop over
	USABLE_BLOCKS_PER_CHUNK instead of BLOCKS_IN_CHUNK.

	* compress_sparse.c (main): added chunk reference and block number to
	block with void reference warning print out.  Also added erase and
	restore progress bar when printing warning.


2009-07-16  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* reference.h (BASE_32_BIT_PRIVATE, MINIMUM_32_BIT_PRIVATE_REFERENCE)
	(MAXIMUM_32_BIT_PRIVATE_REFERENCE): new defines for the 32-bit space
	within the 64-bit space.
	* storage.c (nwos_read_block): change to test upper 4 bytes of
	reference for 0xfffffffe if version is private and version is greater
	than 0029.
	(nwos_write_block): added code to change upper 4 bytes of reference to
	0xfffffffe if not in PUBLIC_MODE.
	* chunk_info.c (nwos_initialize_chunk_info): because "ref" in
	chunk_info is now 64-bits, changed test for temporary space to compare
	with MAXIMUM_32_BIT_PRIVATE_REFERENCE.
	(nwos_uint64_ref_to_info_index): changed name from
	nwos_uint32_ref_to_info_index and changed "ref" parameter to uint64.
	Also changed to use MINIMUM_32_BIT_PRIVATE_REFERENCE and
	MAXIMUM_32_BIT_PRIVATE_REFERENCE for verifying reference is in range.
	(nwos_uint32_ref_to_info_index): new function that changes a 32-bit
	reference to a 64-bit reference and then calls
	nwos_uint64_ref_to_info_index.
	(nwos_allocate_new_chunk): renamed input parameter from "ref" to
	"uint32_ref" and added a new uint64 local variable named "ref" which
	is generated from the 32-bit input parameter.  Also changed to use
	MINIMUM_32_BIT_PRIVATE_REFERENCE and MAXIMUM_32_BIT_PRIVATE_REFERENCE
	where needed.
	* file.c (nwos_create_file_path, nwos_create_md5, nwos_create_sha1)
	(nwos_create_sha256, nwos_create_sha512)
	(nwos_find_or_create_path_and_file_association): added ifdef
	VERIFY_WRITE around code that reads back the block to verify it was
	written correctly.  This code fails now that nwos_write_block changes
	the upper 4 bytes of the reference to 0xfffffffe.


2009-07-13  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_30 release.

	PLEASE NOTE: the downloads have been moved to the Objectify project
	on SourceForge: "http://sourceforge.net/projects/objectify".  The
	downloads for the older Alpha_2x releases are under the New World OS
	project on SourceForge: "http://sourceforge.net/projects/nwos".


2009-07-12  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* header.c (check_disk_header): fixed to not test for the file
	type_code if the file is prior to 0030.

	* disk_usage.c (main): changed to 64 bit variables that contain values
	that involve a number of blocks.  Fixed print statements to include
	'll' in the format when printing a number of blocks variable.

	* Makefile.in (PROGS): added dump_header.
	(dump_header): new target.
	* dump_header.c: New program that dumps the header of a file.


2009-07-11  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* types.h (nwos_uint64_to_8_uint8): new function to convert from uint64
	to 8 separate bytes.
	* header.h (Disk_Header): changed total chunks back to 4 bytes and
	moved the used chunks next to it.  Deleted the 4 byte 'unused' and
	'reserved' members.  Moved the block offset in the space after the
	type code.
	(nwos_total_private_blocks): deleted no longer used.
	(nwos_used_public_blocks, nwos_used_private_blocks): changed to 64 bits
	instead of 32 bits.
	* header.c (nwos_total_private_blocks): deleted no longer used.
	(nwos_used_public_blocks, nwos_used_private_blocks): changed to 64 bits
	instead of 32 bits.
	(nwos_load_public_data): changed to load nwos_used_public_blocks as 64
	bits instead of 32 bits.
	(nwos_store_public_data): changed to store nwos_used_public_blocks as
	64 bits instead of 32 bits.
	(nwos_load_private_data): changed to load nwos_used_private_blocks as
	64 bits instead of 32 bits and deleted code that calculated total
	private blocks from the total private chunks, the total private blocks
	was redundant.
	(nwos_store_private_data): changed to store nwos_used_private_blocks as
	64 bits instead of 32 bits.
	* bit_map.c (find_bit_map_in_cache): changed assert to use total chunks
	instead of total blocks to verify offset is in range.
	* chunk_info.c (nwos_initialize_chunk_info)
	(nwos_initialize_chunk_info): changed 'used_blocks' variable from 32 to
	64 bits and fixed print statement to use 'll' for the used blocks.
	* disk_io.c (nwos_initialize_disk_io, nwos_terminate_disk_io): fixed
	print statement to use 'll' for the used blocks.
	(nwos_write_empty_chunk): deleted code that recomputed the total
	private blocks.
	(nwos_private_space_used): deleted function, it was not used.
	(nwos_write_bit_map, nwos_read_bit_map): changed assert to test chunk
	index instead of start block of chunk.
	* gen_id.c (nwos_check_blocks_available): changed 'total_blocks' from
	uint32 to uint64, deleted assert that verified that total chunks and
	blocks correlated, and fixed print statement to use 'll' for the total
	and used blocks.
	* check_block_maps.c (main): changed used, free, and total block
	variables from uint32 to uint64 and fixed print statements by adding
	'll' for the blocks.
	* compress_sparse.c (main): changed to calculate total blocks from the
	total chunks instead of using nwos_total_private_blocks which was
	deleted.
	* copy_0029_to_0030.c (main): fixed print statements by adding 'll' to
	format when printing number of blocks.
	* expand_sparse.c (main): changed 'used_private_blocks' to 64 bits,
	fixed to read 32 bit used blocks from older headers and convert to 64
	bits, and added 'll' to format in print statements when printing number
	of blocks.
	* sync_archive.c (main): changed 'used_private_blocks' to 64 bits, and
	added 'll' to format in print statements when printing number of
	blocks.

	* header.h (nwos_check_disk_header): added a type_code parameter.
	* header.c (check_disk_header): renamed the old nwos_check_disk_header
	function to this, made it static, added three type_code parameters and
	code to test to see if the type_code in the header matches one of the
	them.
	(nwos_check_disk_header): new function that calls check_disk_header
	with NULLs for the two extra type codes.
	(nwos_load_public_data): changed to pass TYPE_CODE_COMPRESSED,
	TYPE_CODE_DISK, and TYPE_CODE_FILE to nwos_check_disk_header.
	* diff_compressed (main): changed to pass TYPE_CODE_COMPRESSED to the
	nwos_check_disk_header calls.

	* Makefile.in (export_c_structs): added new header.c file.


2009-07-10  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.c (nwos_terminate_disk_io): added call to clear buffer to
	zero before writing header into it.

	* backup.c (nwos_initialize_backup, nwos_terminate_backup): changed to
	write TYPE_CODE_DIFF into the new type_code of the header.
	* compress_sparse.c (main): changed to write TYPE_CODE_COMPRESSED
	into the new type_code of the header.
	* diff_compressed.c (main): changed to write TYPE_CODE_DIFF into the
	new type_code of both of the headers.
	* patch_compressed.c (main): changed to write TYPE_CODE_DIFF into the
	new type_code of both of the headers.


2009-07-05  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* check_files.c (main): added check to skip checking file if the file
	data isn't stored in the archive.

	* bit_map.c (read_bit_map_into_cache): commented out print to stderr
	when the MD5 sum of a chunk is tested.

	* header.h (TYPE_CODE_COMPRESSED, TYPE_CODE_DIFF, TYPE_CODE_DISK)
	(TYPE_CODE_FILE, TYPE_CODE_PUBLIC): added definitions for.
	(Disk_Header): changed reserved from 8 bytes to 4 bytes and added
	type_code.
	* prep_disk (main): added code to write TYPE_CODE_FILE or
	TYPE_CODE_DISK to header depending on type of archive (file or disk).

	* patch_compressed (convert_0022_to_0029_header_to_0030_header): added
	#if 0 around it because it is not used right now.  It is also incorrect
	because it doesn't adjust for the different sizes (32-bit vs. 64-bit)
	of the variables.
	(main): removed calls to convert_0022_to_0029_header_to_0030_header
	because it was broken and I don't think we need to do that anyway.


2009-07-04  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* expand_sparse.c: added include of the disk_io.h file.
	* prep_disk.c: changed to include new header.h file instead of the
	disk_io.h file.
	* sync_archive.c: changed to include new header.h file instead of the
	disk_io.h file.


2009-07-03  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (patch_compressed): added header.o and time_stamp.o.
	* patch_compressed: changed to include the new header.h file instead of
	the disk_io.h file.
	(main): changed to call the new nwos_check_disk_header function instead
	of checking the header inline.


2009-07-02  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (diff_compressed): added header.o and time_stamp.o.
	* diff_compressed: changed to include the new header.h file instead of
	the disk_io.h file.
	(main): changed to call the new nwos_check_disk_header function instead
	of checking the header inline.
	* disk_usage: changed to include the new header.h file instead of the
	disk_io.h file.

	* header.c: removed includes for gen_id.h, log.h and reference.h
	because they aren't needed.
	(nwos_load_public_data, nwos_load_private_data, nwos_store_public_data)
	(nwos_store_private_data): moved all code that did logged the blocks
	used back to the disk_io.c file.
	* disk_io.c (nwos_initialize_disk_io, nwos_terminate_disk_io): moved
	code that logged the blocks used back from the header.c file.
	
	* header.h (nwos_check_disk_header): added external declaration for.
	* header.c (nwos_check_disk_header): new function that checks the magic
	number and the version in the header.
	(nwos_load_public_data, nwos_load_private_data): changed to call the
	new nwos_check_disk_header function instead of testing the magic number
	and version inline.

	* storage.c (nwos_public_disk_header, nwos_private_disk_header): moved
	external declarations to the header.h file.
	* header.h (nwos_public_disk_header, nwos_private_disk_header): moved
	external declarations from the storage.c file.
	* disk_io.c (nwos_public_disk_header, nwos_private_disk_header): moved
	to the header.c file.
	(nwos_initialize_disk_io): changed to read the header blocks into a
	buffer instead of directly to the public and private headers and then
	pass the buffer to the load functions in the header.c file.
	(nwos_terminate_disk_io): changed to call the store functions in the
	header.c file with a buffer instead of reading the public and private
	headers directly.
	* header.c (nwos_public_disk_header, nwos_private_disk_header): moved
	from the storage.c file.
	(nwos_load_public_data, nwos_load_private_data): changed to copy the
	header from the passed in buffer.
	(nwos_store_public_data, nwos_store_private_data): changed to copy the
	header into the passed in buffer.
	* check_block_maps.c (main): changed to not copy the header into a disk
	header structure, instead just pass the buffer to the load private data
	function and it copies it.
	* compress_sparse.c (main): changed to not copy the header into a disk
	header structure, instead just pass the buffer to the load private data
	function and it copies it.


2009-06-27  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on June 26th and 27th --
	-- but not checked into CVS until June 30th.     --
	
	* Makefile.in (OBJS, check_block_maps, compress_sparse): added header.o
	file.
	* disk_io.h (nwos_total_public_blocks, nwos_disk_header): deleted no
	longer used.
	(MAGIC_NUMBER, Disk_Header, Disk_Header_0022_to_0029, Disk_Header_0021)
	(Disk_Header_0016_to_0020,  nwos_total_private_blocks)
	(nwos_used_public_blocks, nwos_used_private_blocks)
	(nwos_total_private_chunks, nwos_used_private_chunks)
	(nwos_block_offset_to_chunks): moved to new header.h file.
	* header.h (MAGIC_NUMBER, Disk_Header, Disk_Header_0022_to_0029)
	(Disk_Header_0021, Disk_Header_0016_to_0020, nwos_total_private_blocks)
	(nwos_used_public_blocks, nwos_used_private_blocks)
	(nwos_total_private_chunks, nwos_used_private_chunks)
	(nwos_block_offset_to_chunks): moved from disk_io.h file.
	(nwos_version_string): moved from disk_io.c file and renamed from
	version_string.
	(nwos_load_public_data, nwos_store_public_data, nwos_load_private_data)
	(nwos_store_private_data): added external declarations for.
	* add_password.c: added include of new header.h file.
	* backup.h: changed to include new header.h file instead of the
	disk_io.h file.
	* bit_map.c: added include of new header.h file.
	* check_block_maps.c: added include of new header.h file.
	(main.c): changed to use new functions in header.c file to check and
	load the header information instead of doing it inline in this file.
	* chunk_info.c: added include of new header.h file.
	* combine_backup_files.c: added include of new header.h file.
	(nwos_terminate_chunk_info): removed call to write the used private
	chunks back to the header, that is now done in the
	nwos_store_private_data function in header.c.
	* compress_sparse.c: added include of new header.h file.
	(main.c): changed to use new functions in header.c file to check and
	load the header information instead of doing it inline in this file.
	* disk_io.c: added include of new header.h file.
	(nwos_archive_version): moved to the objectify.c file.
	(nwos_disk_header): split into nwos_public_disk_header and
	nwos_private_disk_header.
	(nwos_public_disk_header, nwos_private_disk_header): separate headers
	for the public and private headers.
	(version_string): moved to new header.c file and renamed to
	nwos_version_string.
	(nwos_total_private_chunks): deleted no longer used.
	(nwos_total_private_blocks, nwos_used_public_blocks)
	(nwos_used_private_blocks, nwos_block_offset_to_chunks)
	(nwos_used_private_chunks): moved to new header.c file.
	(nwos_archive_version): moved to objectify.c file.
	(nwos_initialize_disk_io): changed to access nwos_public_disk_header
	and nwos_private_disk_header instead of using the same storage area for
	both the public and private headers.  Moved code that dealt with the
	disk header to the new nwos_load_public_data and
	nwos_load_private_data functions in the new header.c file.
	(nwos_terminate_disk_io): changed to access nwos_public_disk_header and
	nwos_private_disk_header instead of using the same storage area for
	both the public and private headers.  Moved code that dealt with the
	disk header to the new nwos_store_public_data and
	nwos_store_private_data functions in the new header.c file.
	* header.c (nwos_total_private_blocks, nwos_used_public_blocks)
	(nwos_used_private_blocks, nwos_block_offset_to_chunks)
	(nwos_total_private_chunks, nwos_used_private_chunks): moved from the
	disk_io.h file.
	(nwos_version_string): moved from the disk_io.c file and renamed from
	version_string.
	(nwos_load_public_data, nwos_load_private_data): new functions created
	from code taken from the nwos_initialize_disk_io function.
	(nwos_store_public_data, nwos_store_private_data): new functions
	created from code taken from the nwos_terminate_disk_io function.
	* objectify.c: added include of new header.h file.
	(nwos_archive_version): moved from the disk_io.c file.
	* storage.c (nwos_public_disk_header, nwos_private_disk_header): added
	external declarations for because having them in disk_io.h wouldn't be
	kosher.
	(nwos_initialize_storage): changed to initialize backup with either
	nwos_public_disk_header or nwos_private_disk_header depending upon the
	mode.
	(nwos_terminate_storage): changed to terminate backup with either
	nwos_public_disk_header or nwos_private_disk_header depending upon the
	mode.
	

2009-06-23  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* chunk_info.h (CHUNK_INFO_MD5_VERIFIED_MASK): added new flag.
	(nwos_chunk_md5_has_been_verified, nwos_set_chunk_md5_verified)
	(nwos_clear_chunk_md5_verified): added external declarations for.
	* chunk_info.c (nwos_chunk_md5_has_been_verified) new function to
	test the MD5 verified flag.
	(nwos_set_chunk_md5_verified): new function to set the MD5 verified
	flag.
	(nwos_clear_chunk_md5_verified): new function to clear the MD5
	verified flag.
	* bit_map.c (write_bit_map): added call to clear the chunk MD5
	verified flag.
	(read_bit_map_into_cache): changed to only verify the chunk MD5 sums
	at random, instead of verifying each one.  Sets the verified flag in
	the chunk_info table when it has been verified.


2009-06-13  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* chunk_info.c (nwos_allocate_new_chunk): added code to set chunk MD5
	digest to zero after inserting new chunk into table. 

	* gen_id.h (nwos_allocate_new_chunk): moved to the chunk_info.h file.
	* chunk_info.h (nwos_allocate_new_chunk): moved from the gen_id.h file
	because it is defined in the chunk_info.c file now.
	
	* Makefile.in: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* configure.ac: merged log comments from Alpha_29_10_branch,
	Alpha_29.11 release.  Actual changes from Alpha_29.11 release were not
	included.
	* add_password.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* address.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* changed.txt: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* computer.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* configure.ac: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* copy_0029_to_0030.c: merged changes from Alpha_29_10_branch,
	Alpha_29.11 release.  (Note: changes were to sync_archive.c in the
	Alpha_29_10_branch.)
	* dialog.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* disc_list.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* expand_sparse.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* financial.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* gen_id.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	(nwos_check_blocks_available): changed to call new nwos_chunk_is_full
	and nwos_blocks_used_in_chunk functions instead of accessing the
	chunk_info table directly.
	* list_discs.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* log_disc.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* objectify.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.  Also added include of disk_io.h file to define stuff needed
	to write an empty chunk for create root when called by add_password.
	* objectify.h: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* objects.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.  (Note: change was made to objectify.c on the
	alpha_29_10_branch, but the function was moved in the main trunk.)
	* person.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* phone.c: merged changes from Alpha_29_10_branch, Alpha_29.11 release.
	* prep_disk.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* reference_list.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* remove_file.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.
	* sync_archive.c: merged changes from Alpha_29_10_branch, Alpha_29.11
	release.


2009-06-09  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* Version Alpha_29.11 release.

	* gen_id.c (number_of_chunk_islands): new function that counts all of
	the islands of chunks.
	(find_smallest_chunk_island): new function that finds the chunk island
	with the fewest number of chunks.
	(nwos_check_blocks_available): changed to not allocate a new random
	chunk everytime based upon how many chunk islands there already are.

	* gen_id.c (find_new_random_chunk_location): renamed from
	find_new_chunk_location and made static.


2009-06-08  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* gen_id.c (find_new_chunk_location): Fix Bug #2803265 - Leaves small
	amount of space at the end of each chunk.  Changed so that even if the
	estimated number of blocks is small it will allow two chunks.  Before
	if the number of blocks was less than 1/3 of a chunk it would require
	it to fit in one chunk.  This caused it to skip space at the end of a
	chunk and start in the next chunk, thereby leaving an empty space at
	the end of some chunks.


2009-06-07  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* gen_id.c (find_new_chunk_location): new function that scans the chunk
	info table, finds the largest empty space and picks a random location
	in that space.
	(nwos_check_blocks_available): Fix Bug #2734284 - Prints warning
	message about chunks not contiguous.  Changed so that it only prints
	the warning message if the archive is on a disk (or partition) and
	there are no more chunks available.  Otherwise it calls the new
	find_new_chunk_location function and allocates all new chucks.

	* add_password.c (main): Fix Bug #2802374 - add_password fails if
	archive is a file.  Changed to not check for disk full if the archive
	is a file.
	* objectify.c (nwos_create_root): change assert to allocate a new chunk
	if archive is a file.


2009-06-06  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* gen_id.c (nwos_check_blocks_available): added a hack so that it finds
	a random location for the private class definition object and it's
	associated reference list object instead of putting them at the first
	two locations in the chunk.

	* dialog.c (get_answer): Fix Bug #2740516 - Compiler warnings about
	fgets.  Changed to check return value and exit if end of file or error.
	(nwos_ask_user, nwos_ask_yes_or_no): changed to call new get_answer
	function instead of calling fgets directly.
	* disc_list.c (get_disc_id): new function that calls fgets and checks
	the return value for errors or end of input.
	(main): changed to call new get_disc_id function instead of fgets.
	* expand_sparse.c (main): changed to check return value from fgets and
	exit if error or end of input is returned.
	* log_disc.c (get_number): new function that calls fgets and checks the
	return value for errors or end of input.
	(main): changed to call new get_number function to read input instead
	of calling fget.
	* prep_disk.c (get_responce): new function that calls fgets and checks
	the return value for errors or end of input.
	(agree_no_warranty, understand_security, main): changed to call
	new get_response function instead of fgets.
	* remove_file.c (main): changed to check return value from fgets and
	exit if error or end of input is returned.
	* sync_archive.c (main): changed to check return value from fgets and
	exit if error or end of input is returned.

	* Makefile.in (OBJS): Added new dialog.o file.
	* objectify.h (nwos_ask_user): added external declaration for.
	* address.c (get_input): Moved to new dialog.c file and renamed to
	nwos_ask_user.
	(nwos_add_address): changed to call nwos_ask_user instead of get_input.
	* computer.c (get_input): moved to new dialog.c file and renamed to
	nwos_ask_user.
	(main): changed to call nwos_ask_user instead of get_input.
	* financial.c (get_input): moved to new dialog.c file and renamed to
	nwos_ask_user.
	(main): changed to call nwos_ask_user instead of get_input.
	* log_disc.c (get_input): Moved to new dialog.c file and renamed to
	nwos_ask_user.
	(main): changed to call nwos_ask_user instead of get_input.
	* objectify.c (nwos_ask_yes_or_no): moved to new dialog.c file.
	* person.c (get_input): Moved to new dialog.c file and renamed to
	nwos_ask_user.
	(nwos_add_person, nwos_find_person): changed to call nwos_ask_user
	instead of get_input.
	* phone.c (get_input): Moved to new dialog.c file and renamed to
	nwos_ask_user.
	(nwos_add_mobile_phone): changed to call nwos_ask_user instead of
	get_input.
	* us_state.c (get_input): Moved to new dialog.c file and renamed to
	nwos_ask_user.
	(nwos_add_city): changed to call nwos_ask_user instead of get_input.
	* dialog.c (nwos_ask_user): move get_input function from address.c,
	computer.c, financial.c, log_disc.c, person.c, phone.c, us_state.c, and
	renamed (it was duplicated in all of those files).
	(nwos_ask_yes_or_no): moved from objectify.c file.

	* list_discs.c (main): changed to print white space around warning
	messages if they are printed and print "warning" in upper case.

	* list_discs.c (main): Fix Bug #2455976 -If no disc copies exist,
	list_discs won't print list.  Changed so that if there are disc lists,
	but no disc copies it prints a warning message and continues instead of
	exiting.


2009-06-01  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* copy_0029_to_0030.c (main): change to call nwos_terminate_storage
	instead of nwos_terminate_disk_io.


2009-05-31  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (total_chunks, used_chunks, used_blocks): changed to 64
	bits instead of 32.

	* Makefile.in (PROGS): added copy_0029_to_0030 program.
	(copy_0029_to_0030): new target.
	* chunk_info.h (Chunk_Info_0029): added the old chunk info table
	structure from the alpha_29.10_branch.  Note: it first appeared in
	objectify_private.c Revision 1.55  2007/07/31 18:25:28.
	* copy_0029_to_0030.c: new program created from sync_archive.c that
	converts a version 0029 archive to a version 0030 archve as it is
	copying it.


2009-05-22  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* objectify.c (nwos_terminate_objectify): removed ifndef PUBLIC_MODE
	surrounding call to nwos_flush_dirty_ref_lists because they need to
	be flushed in public mode too.
	* reference_list.c (nwos_flush_dirty_ref_lists): moved endif before
	so that it gets compiled in public mode too.


2009-05-18  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* gen_id.c (log_estimate_results): changed so it is an empty function
	in public mode.
	(generate_new_completely_random_id, nwos_generate_new_private_id)
	(nwos_generate_new_completely_random_id, nwos_generate_new_1_in_N_id)
	(nwos_generate_new_closely_spaced_id): changed so none of these
	functions are compiled in public mode.
	* objectify.c (nwos_remove_object): changed so it is not compiled in
	public_mode.


2009-05-09  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* chunk_info.h (nwos_blocks_used_in_chunk, nwos_chunk_is_full): added
	external declarations for.
	* chunk_info.c (nwos_blocks_used_in_chunk): new function that returns
	the number of blocks used in chunk.
	(nwos_chunk_is_full): new function that returns true if the chunk is
	contains the maximum number of blocks.
	* bit_map.c (write_bit_map): changed to call new
	nwos_blocks_used_in_chunk function instead of accessing the chunk_info
	table directly.
	(read_bit_map_into_cache): changed to call new
	nwos_blocks_used_in_chunk function instead of accessing the chunk_info
	table directly.
	* gen_id.c (blocks_in_contiguous_chunks)
	(nwos_generate_new_closely_spaced_id): changed to call new
	nwos_blocks_used_in_chunk function instead of accessing the chunk_info
	table directly.
	(nwos_check_blocks_available, generate_new_completely_random_id)
	(nwos_generate_new_private_id): changed to call new nwos_chunk_is_full
	function instead of accessing the chunk_info table directly.

	* chunk_info.c: merged changes from the alpha_29_10_branch (added
	include of config.h to define WORDS_BIGENDIAN).
	(nwos_terminate_chunk_info): merged changes from the
	alpha_29_10_branch.
	* file.c (nwos_file_is_identical): merged changes from the
	alpha_29_10_branch.
	* import_file.c (main): added log message from alpha_29_10_branch, no
	changes were required for merge because the fixes were already in the
	main truck (see change on 2009-04-05).


2009-05-05  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	-- These changes were made on the CVS alpha_29_10_branch --

	* Version Alpha_29.10 release.

	* file.c (nwos_file_is_identical): fixed print statement when time
	doesn't match to always print six digits for the microseconds and cast
	the microseconds from the timeval structure to unsigned so gcc on Max
	OS X doesn't complain about the type.

	* import_file.c (main): added 'z' to two print statement format strings
	so compiler on Mac OS X doesn't complain about the type of the sizeof
	result.

	* chunk_info.c: Fix Bug #2786129 - builds incorrectly on a big endian
	machine.  Added include of config.h to define WORDS_BIG_ENDIAN.
	(nwos_terminate_chunk_info): changed to verify the used block counts in
	the chunk_info add up to the used block count in the header.


2009-04-21  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* types.h (nwos_8_uint8_to_uint64): new inline function to convert
	eight bytes to a uint64 with correct endianess.
	(nwos_2_uint8_to_uint16): changed casts from uint32 to uint16.
	(byteswap_uint64): new inline function to swap a uint64.
	* chunk_info.h (Chunk_Info): changed "ref" member from 32 bits to 64
	bits, "index" member from 16 bits to 32 bits, and eliminated
	"reserved" member.
	* check_block_maps (main): changed to read new 64 bit references, 32
	bit indexes, and MD5 digest from chunk_info table.
	* chunk_info.c (nwos_initialize_chunk_info): changed to byte swap
	references as 64 bits and indexes as 32 bits.  Fixed print statement
	format for long long unsigned.
	(nwos_terminate_chunk_info): changed to byte swap references as 64 bits
	and indexes as 32 bits.
	* compress_sparse.c (main): changed to byte swap references as 64 bits
	and indexes as 32 bits.
	* disk_usage.c (calculate_blocks_used): fixed print statement for 64
	bit chunk_info references.
	(main): changed to byte swap references as 64 bits and indexes as 32
	bits.
	* sync_archive.c (main): changed to byte swap references as 64 bits and
	indexes as 32 bits.


2009-04-19  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* bit_map.h (nwos_calculate_chunk_md5sum): added external declaration
	for.
	* bit_map.c (nwos_calculate_chunk_md5sum): new function to calculate
	the MD5 sum for nwos_terminate_chunk_info in case there were chunks
	where blocks were modified but the bit map was not changed.
	* chunk_info.c (nwos_terminate_chunk_info): replaced assert when chunk
	has been modified but MD5 checksum was not calculated, with a call to
	the new nwos_calculate_chunk_md5sum function.

	* chunk_info.h (nwos_clear_chunk_digest): added external declaration
	for.
	* chunk_info.c (nwos_terminate_chunk_info): added loop that checks to
	make sure all chunk_info MD5 checksums have been calculated (none are
	all zeros).  If it is all zeros cause an assert.
	(nwos_clear_chunk_digest): new function to clear the chunk_info MD5
	checksum to zeros to indicate that the chunk has been modified.
	* storage.c (nwos_write_block, nwos_erase_block): added a call to new
	nwos_clear_chunk_digest function when block has been modified.

	* bit_map.c (calculate_chunk_md5sum): new function created with code
	taken from write_bit_map and
	(write_bit_map): moved code that calculated the chunk MD5 sum into new
	calculate_chunk_md5sum function and changed to call it.
	(read_bit_map_into_cache): removed code that calculated the chunk MD5
	sum and changed to call new calculate_chunk_md5sum function.

	* gen_id.h (nwos_hash_uint32_ref, nwos_hash_ref)
	(nwos_ref_to_offset): moved external references to chunk_info.h file.
	* chunk_info.h (nwos_hash_uint32_ref, nwos_hash_ref)
	(nwos_ref_to_offset): moved external references from gen_id.h file.
	* gen_id.c (nwos_hash_uint32_ref, nwos_hash_ref)
	(nwos_ref_to_offset): moved to chunk_info.h file.
	* chunk_info.c (nwos_hash_uint32_ref, nwos_hash_ref)
	(nwos_ref_to_offset): moved from gen_id.h file.
	* objectify.c: added include of chunk_info.h file to define
	nwos_hash_ref.
	* reference_list.c: added include of chunk_info.h file to define
	nwos_hash_ref.

	* Makefile.in (libobjectify.a): removed .h files as dependencies
	because they don't do any good there (won't make it recompile the .c
	files) and it causes the .h files to be inserted into the library.


2009-04-14  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* expand_sparse.c (main): changed to call nwos_initialize_storage and
	nwos_terminate_storage instead of nwos_initialize_disk_io and
	nwos_terminate_disk_io.
	* sync_archive.c (main): changed to call nwos_initialize_storage and
	nwos_terminate_storage instead of nwos_initialize_disk_io and
	nwos_terminate_disk_io.


2009-04-13  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objects.c (nwos_write_object_to_disk): fixed to use root object
	reference to get root object class.

	* disk_io.c (nwos_disk_io_is_compressed_file): new function that
	returns true if the storage index is not null.
	(nwos_read_block_from_offset): changed to use new 
	nwos_disk_io_is_compressed_file	function instead of testing the storage
	index.
	* storage.h (nwos_storage_is_compressed_file): added external
	declaration for.
	* storage.c (nwos_initialize_storage): changed to use
	nwos_storage_is_public_only and nwos_storage_is_compressed_file
	functions to determine if chunk_info needs to be initialized, to be
	consistent with terminate function.
	(nwos_storage_is_compressed_file): new function that simply calls
	nwos_disk_io_is_compressed_file.
	(nwos_terminate_storage): put if statement around call to
	nwos_terminate_chunk_info so that it is only called if not public and
	not a compressed file.

	* objectify.c (nwos_update_file_001_object_to_current)
	(nwos_update_file_002_object_to_current): moved external declarations
	to objects.c file.
	* objects.c (nwos_update_file_001_object_to_current)
	(nwos_update_file_002_object_to_current): moved external declarations
	from objectify.c file.

	* chunk_info.c (nwos_terminate_chunk_info)
	(nwos_increment_chunk_info_block_used, nwos_uint32_ref_to_info_index)
	(nwos_decrement_chunk_info_block_used, nwos_chunk_index_to_info_index)
	(update_chunk_info_reverse_index, nwos_reset_chunk_info_blocks_used)
	(nwos_allocate_new_chunk): added assert to verify nwos_chunk_info is
	non-null.

	* disk_io.c (nwos_backup_is_enabled): moved to storage.c file.
	(nwos_initialize_disk_io): moved backup_dir variable to
	nwos_initialize_storage function.
	(nwos_disk_has_been_modified): new function that returns the value
	of the 'modified' variable.
	* storage.c: added includes of backup.h and user_config.h files.
	(nwos_initialize_storage): changed to use nwos_storage_is_read_write
	function instead of accessing 'read_only' variable that is in the
	disk_io.c file
	(nwos_backup_is_enabled): moved from disk_io.c file.
	(nwos_terminate_storage): changed to use nwos_disk_has_been_modified
	function instead of accessing 'modified' variable that is in the
	disk_io.c file.

	* types.h (Reference_Type): moved definition back to reference.h.
	* reference.h (Reference_Type): moved definition back from types.h.
	* disk_io.h (Archive_Type): added new enumeration.
	(nwos_read_block_from_offset, nwos_write_block_to_offset): changed
	Reference_Type parameter to new Archive_Type.
	* disk_io.c (nwos_read_block_from_offset)
	(nwos_write_block_to_offset): changed to use new Archive_Type instead
	of Reference_Type because disk_io shouldn't know about references.
	* bit_map.c (write_bit_map, read_bit_map_into_cache): changed to call
	nwos_read_block_from_offset_function with new Private_Archive value
	instead of Private_Reference.
	* storage.c (nwos_read_block): changed to call
	nwos_read_block_from_offset_function with new Private_Archive value
	instead of Private_Reference.
	(nwos_write_block, nwos_erase_block): changed to call
	nwos_write_block_to_offset_function with new Private_Archive value
	instead of Private_Reference.


2009-04-12  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (OBJS): added objects.o.
	* objectify.h (nwos_create_object): removed, it was an old function
	that no longer exists.
	(nwos_get_object_class, nwos_get_object_class_without_update)
	(nwos_fill_in_common_header, nwos_read_object_headers_from_disk)
	(nwos_read_object_from_disk, nwos_read_variable_sized_object_from_disk)
	(nwos_write_object_to_disk, nwos_write_public_object_to_disk)
	(nwos_overwrite_object_to_disk, nwos_remove_object): moved to objects.h
	file because the function definitions were moved to the objects.c file.
	* objects.h (nwos_get_object_class, nwos_fill_in_common_header)
	(nwos_read_object_headers_from_disk, nwos_read_object_from_disk)
	(nwos_read_variable_sized_object_from_disk, nwos_write_object_to_disk)
	(nwos_write_public_object_to_disk, nwos_overwrite_object_to_disk)
	(nwos_remove_object, nwos_get_object_class_without_update): moved from
	the objectify.h file because the functions were moved from the
	objectify.c file to the new objects.c file.
	* objectify.c (check_common_header, object_header_checksum_matches)
	(check_object_data, SIZE_EXTRA_BLOCK_DATA, Extra_Data_Block, 
	(nwos_read_object_from_disk, nwos_read_variable_sized_object_from_disk)
	(nwos_read_object_headers_from_disk, nwos_write_object_to_disk)
	(nwos_overwrite_object_to_disk, nwos_remove_object, 
	(nwos_write_public_object_to_disk, nwos_fill_in_common_header)
	(nwos_get_object_class, nwos_get_object_class_without_update): moved to
	the new objects.c file.
	* objects.c (check_common_header, object_header_checksum_matches)
	(check_object_data, SIZE_EXTRA_BLOCK_DATA, Extra_Data_Block, 
	(nwos_read_object_from_disk, nwos_read_variable_sized_object_from_disk)
	(nwos_read_object_headers_from_disk, nwos_write_object_to_disk)
	(nwos_overwrite_object_to_disk, nwos_remove_object, 
	(nwos_write_public_object_to_disk, nwos_fill_in_common_header)
	(nwos_get_object_class, nwos_get_object_class_without_update): moved
	from the objectify.c file.
	
	* Makefile.in (OBJS): added storage.o.
	(export_c_structs): added storage.c.
	(libobjectify.a): added all the new .h files.
	* chunk_info.h (nwos_initialize_chunk_info)
	(nwos_terminate_chunk_info): removed file descriptor parameter.
	* disk_io.h: changed include of reference.h to types.h because
	FILE_BLOCK_SIZE and Reference_Type declarations were moved to types.h.
	(FILE_BLOCK_SIZE):
	(nwos_disk_io_is_public_only, nwos_read_chunk_info)
	(nwos_write_chunk_info): added external declarations for new functions.
	(nwos_flush_disk_io): removed external declaration for.
	* gen_id.h (nwos_read_block, nwos_write_block, nwos_erase_block): moved
	to new storage.h file.
	* reference.h (Reference_Type): moved definition to types.h because
	disk_io uses it to determine where to read or write.
	* storage.h (nwos_initialize_storage, nwos_terminate_storage)
	(nwos_storage_is_public_only, nwos_storage_is_read_write)
	(nwos_flush_storage): added external declarations for.
	nwos_terminate_disk_io.
	(nwos_read_block, nwos_write_block, nwos_erase_block): moved from the
	gen_id.h file.
	* types.h (FILE_BLOCK_SIZE): moved from disk_io.h because is is used
	throughout the system.
	(Reference_Type): moved from reference.h because disk_io uses it to
	determine where to read and write.
	* bit_map.c: added include of assert.h file.
	* chunk_info.c (nwos_initialize_chunk_info): removed file descriptor
	parameter and changed to call new nwos_read_chunk_info function in
	disk_io.c file, instead of doing I/O directly.
	(nwos_terminate_chunk_info): removed file descriptor parameter and
	changed to call new nwos_write_chunk_info function in disk_io.c file,
	instead of doing I/O directly.
	* disk_io.c: removed includes of  backup.h, bit_map.h, and gen_id.h,
	no longer needed.
	(nwos_initialize_disk_io): moved code that initialized chunk_info,
	gen_id, and backup to new nwos_initialize_storage function.
	(nwos_terminate_disk_io): moved code that terminated chunk_info,
	bit_map, gen_id, and backup to new nwos_terminate_storage function.
	(nwos_flush_disk_io): moved to new storage.c file and renamed to
	nwos_flush_storage.
	(nwos_disk_io_is_public_only): new function that returns true if the
	private archve has not been opened.
	(nwos_read_chunk_info): new function that reads the chunk_info table
	from the disk.
	(nwos_write_chunk_info): new function that writes the chunk_info table
	back to the disk.
	* gen_id.c (nwos_read_block, nwos_write_block, nwos_erase_block): moved
	to new storage.c file.
	* security.c: changed include of gen_id.h file to new storage.h file
	which now contains the nwos_read_block and nwos_write_block functions.
	* storage.c (nwos_initialize_storage): new function created with code
	taken from nwos_initialize_disk_io.
	(nwos_terminate_storage): new function created with code taken from
	nwos_terminate_disk_io.
	(nwos_storage_is_public_only, nwos_storage_is_read_write): new
	functions that call the corresponding functions in disk_io.
	(nwos_flush_storage): moved from disk_io and renamed from
	nwos_flush_disk_io.
	(nwos_read_block, nwos_write_block, nwos_erase_block): moved from the
	gen_id.c file.


2009-04-11  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (nwos_read_block, nwos_write_block)
	(nwos_erase_block): moved external declarations to the gen_id.c file.
	(nwos_write_block_to_offset): added new external declaration for.
	(nwos_storage_index, nwos_storage_count): added temporary external
	declarations for so that gen_id.c can access them.
	* gen_id.h (nwos_read_block, nwos_write_block, nwos_erase_block): moved
	external declarations from the disk_io.h file.
	* disk_io.c (storage_index): removed static and renamed to
	nwos_storage_index so that gen_id.c could access it until the
	compressed index stuff can be eliminated.
	(storage_count): removed static and renamed to nwos_storage_count
	so that gen_id.c could access it until the compressed index stuff can
	be eliminated.
	(index_compressed_file): renamed storage_index to nwos_storage_index
	and storage_count to nwos_storage_count.
	(nwos_read_block, nwos_erase_block): moved to the gen_id.c file.
	(nwos_read_block_from_offset): added assert to check offset and removed
	return if offset is negative statement.
	(nwos_write_block): moved function to gen_id.c file except for code
	that did the seek and the write which was used to create the new
	nwos_write_block_to_offset function.
	(nwos_write_block_to_offset): new function created from code taken from
	the nwos_write_block function.
	* gen_id.c: added include of backup.h so nwos_write_block can call the
	write backup block.
	(nwos_read_block): moved from the disk_io.c file.
	(nwos_write_block, nwos_erase_block): moved from the disk_io.c file and
	modified to call the new nwos_write_block_to_offset function.
	* security.c: added include of gen_id.h which now has the external
	declarations for nwos_read_block and nwos_write_block functions.

	* chunk_info.h (BIT_MAP_BYTES, BIT_MAP_BLOCKS): changed to be derived
	from USABLE_BLOCKS_PER_CHUNK instead of separate value.

	* Makefile.in (OBJS): added reference.o file.
	(export_c_structs): added reference.c file.
	* disk_io.h (RESERVED_PUBLIC_BLOCKS, RESERVED_PRIVATE_BLOCKS)
	(RESERVED_TEMPORARY_BLOCKS, RESERVED_PRIVATE_CHUNKS)
	(MAXIMUM_PUBLIC_REFERENCE, MINIMUM_PRIVATE_REFERENCE)
	(MAXIMUM_PRIVATE_REFERENCE, MINIMUM_TEMPORARY_REFERENCE)
	(MAXIMUM_TEMPORARY_REFERENCE): moved to the reference.h file.
	(BIT_MAP_BLOCKS, BIT_MAP_BYTES, BLOCKS_IN_CHUNK, CHUNK_SIZE)
	(USABLE_BLOCKS_PER_CHUNK): moved to the chunk_info.h file.
	* chunk_info.h (BIT_MAP_BLOCKS, BIT_MAP_BYTES, BLOCKS_IN_CHUNK)
	(CHUNK_SIZE, USABLE_BLOCKS_PER_CHUNK): moved from the disk_io.h file.
	* reference.h (RESERVED_PUBLIC_BLOCKS, RESERVED_PRIVATE_BLOCKS)
	(RESERVED_TEMPORARY_BLOCKS, RESERVED_PRIVATE_CHUNKS)
	(MAXIMUM_PUBLIC_REFERENCE, MINIMUM_PRIVATE_REFERENCE)
	(MAXIMUM_PRIVATE_REFERENCE, MINIMUM_TEMPORARY_REFERENCE)
	(MAXIMUM_TEMPORARY_REFERENCE): moved from the disk_io.h file.
	* disk_io.c (nwos_is_public_reference, nwos_is_private_reference)
	(nwos_is_temporary_reference, nwos_reference_type): moved to the new
	reference.c file.
	* expand_sparse.c: added include for the chunk_info.h file.
	* gen_id.c (RESERVED_PRIVATE_CHUNKS): moved from the disk_io.h file.
	* prep_disk.c: added include for the chunk_info.h file.
	* reference.c (nwos_is_public_reference, nwos_is_private_reference)
	(nwos_is_temporary_reference, nwos_reference_type): moved from the
	disk_io.c file.

	* prep_disk.c (main): change so that total_chunks does not include the
	system chunk that stores the header and the chunk_info table.


2009-04-10  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (nwos_flush_disk_io): added external declaration for.
	* disk_io.c (nwos_flush_disk_io): new function that simply calls
	nwos_flush_bit_maps for now.
	* objectify.h (nwos_flush_to_disk): added external declaration for.
	* objectify.c (nwos_flush_to_disk): new function that flushes any dirty
	reference lists and then calls nwos_flush_disk_io to flush any caches.
	* import_file.c (process_file): changed to call new nwos_flush_to_disk
	function instead of nwos_flush_bit_maps so that dirty reference lists
	get flushed before calculating MD5 sums (which is done when flushing
	the bit maps.


2009-04-09  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* bit_map.c (write_bit_map, read_bit_map_into_cache): added
	nwos_block_offset_to_chunks to chunk_start_block and changed call
	to nwos_read_block_from_offset to private reference instead of public.
	
	* disk_usage.c (display_graph): changed chunk info "used" member to
	"flags_used" and added CHUNK_INFO_USED_MASK.
	(main): added total_private_chunks variable.
	* expand_sparse.c (main): changed to calculate the total private
	blocks from the nwos_total_private_chunks.
	* prep_disk.c (main): change to calculate total blocks from the
	total_chunks.
	* sync_archive.c (main): changed to read total_chunks from source disk
	header instead of total_blocks and changed name of chunk_info "used"
	member to "flags_used".


2009-04-08  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (nwos_read_block_from_offset): added external declaration
	for.
	* disk_io.c (nwos_terminate_disk_io): changed to write total_chunks
	back to header instead of total blocks.
	(nwos_read_block): split read block from disk out into new
	nwos_read_block_from_offset function and call it.
	(nwos_read_block_from_offset): new function created with code taken
	from nwos_read_block, that does the seek and read.
	* bit_map.c (write_bit_map, read_bit_map_into_cache): changed to call
	new nwos_read_block_from_offset function instead of reading the block
	directly.


2009-04-07  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* bit_map.c: merged in changes from disk_io.c file in CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-14 and
	2008-08-16.
	* chunk_info.h: merged in changes from objectify_private.h file in CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-12.
	* chunk_info.c: merged in changes from disk_io.c file in CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11,
	2008-08-13 and 2008-08-16.
	* disk_io.h: merged in changes from objectify_private.h file in CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-12.
	* disk_io.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-12.
	* gen_id.c: merged in changes from disk_io.c file in CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and
	2008-08-14.


2009-04-06  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* check_block_maps.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-15.
	* compress_sparse.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-15.
	* diff_compressed.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entry on 2008-08-15.
	* disk_usage.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-11 and 
	2008-08-15.
	* expand_sparse.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entry on 2008-08-15.
	* patch_compressed.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entry on 2008-08-16.
	* prep_disk.c: merged in changes from CVS
	branch_0030_new_chunk_info branch, see entries on 2008-08-12 and 
	2008-08-16.


2009-04-05  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* import_file.c (main): fixed two compiler warnings, on amd64 machine,
	in printf statements with size_t variable.


2009-04-04  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_29.9 release.

	* disk_io.c (nwos_terminate_disk_io): moved call to 
	nwos_terminate_chunk_info so that it is always called, even if the
	archive was not modified.

	* gen_id.c (find_starting_chunk_for_blocks): new function created with
	code taken from nwos_check_blocks_available.
	(nwos_check_blocks_available): took code that searched for a good chunk
	to start the ID generation and created find_starting_chunk_for_blocks
	function.  Added calls to it in other places to attempt to find a good
	chunk to start with in various situtations.


2009-04-03  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.c (blocks_in_contiguous_chunks): new function that adds up the
	number of available blocks in a set of contiguous chunks.
	(nwos_check_blocks_available): changed to search for chunks where the
	estimated blocks will fit before allocating chunks.  This way if the
	available blocks are too scattered we can allocate contiguous chunks.

	* disk_io.c (nwos_initialize_disk_io): added logging of public objects
	path and private objects path.
	* disk_usage.c (main): changed to print which archive is being accessed
	and when it was formatted.  Also increased the width of the block
	print fields from 9 digits to 10 digits.


2009-04-02  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.c (nwos_check_blocks_available): changed to always keep 1/2 of
	a chunk beyond what is required.


2009-04-01  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.c (nwos_check_blocks_available): moved code that finds first
	available reference from nwos_generate_new_private_id.
	(nwos_generate_new_private_id): moved code that found initial reference
	to nwos_check_blocks_available.  Added assert to verify last_ref is
	never void when entering.  Log bug if it ever has to start over in a
	different location (there weren't enough blocks available where the
	nwos_check_blocks_available started it.
	* objectify.c (nwos_create_root): added call to check_blocks_available
	so that last_ref will be set when generate_new_private_id is called.

	* gen_id.c (nwos_check_blocks_available): changed to only set
	block_estimate global variable if it is returning true, so it won't log
	results the next time if it fails.

	* gen_id.c (nwos_generate_new_private_id): deleted a couple of lines of
	unused code.


2009-03-30  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.c (generate_new_completely_random_id): wrapped with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable security level stuff for now.
	(nwos_generate_new_private_id): changed to allocate first empty block
	in the first chunk with available blocks and then each empty block from
	there.


2009-03-18  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* gen_id.h (nwos_set_security_level, restart_id_generation): wrapped
	with ifdef CHANGE_SECURITY_TO_DENSITY to disable security level stuff
	for now.
	* gen_id.c (security_level, chunk_density_target, chunk_skip_forward)
	(nwos_set_security_level, nwos_generate_new_completely_random_id)
	(nwos_generate_new_closely_spaced_id, nwos_generate_new_1_in_N_id)
	(nwos_set_allocation_parameters, nwos_restart_id_generation): wrapped
	with ifdef CHANGE_SECURITY_TO_DENSITY to disable security level stuff
	for now.
	(nwos_check_blocks_available): wrapped asserts and code that dealt with
	chunk_skip_forward with ifdef CHANGE_SECURITY_TO_DENSITY to disable it.
	Added else code that allocates a chunk following the last allocated
	chunk.
	(nwos_generate_new_private_id): new function created by copying the
	nwos_generate_new_1_in_N_id function and removing the random stuff.
	(nwos_generate_new_id): wrapped old code that generated a new private
	id based upon the security level stuff with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable it.  Now calls new 
	nwos_generate_new_private_id function to create the private id.
	* computer.c (main): wrapped call to nwos_set_security_level with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable it.
	* disc_list.c (main): wrapped call to nwos_set_security_level with
	ifdef CHANGE_SECURITY_TO_DENSITY to disable it.
	* import_file.c (security_options, NUM_OPTIONS): wrapped with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable security level stuff for now.
	(display_usage, main): wrapped variables and code related to security
	level stuff with ifdef CHANGE_SECURITY_TO_DENSITY to disable it.
	* log_disc.c (main): wrapped call to nwos_set_security_level with ifdef
	CHANGE_SECURITY_TO_DENSITY to disable it.
	* objectify.c (nwos_create_root): wrapped call to
	nwos_set_security_level with ifdef CHANGE_SECURITY_TO_DENSITY to
	disable it.
	* rename_file.c (main): wrapped call to nwos_set_security_level with
	ifdef CHANGE_SECURITY_TO_DENSITY to disable it.

	* gen_id.h (nwos_generate_new_completely_random_id)
	(nwos_generate_new_closely_spaced_id, nwos_generate_new_1_in_N_id)
	(nwos_set_allocation_parameters): removed external declarations for,
	now static in the gen_id.c file.
	* gen_id.c (nwos_set_allocation_parameters): moved earlier in file
	so it preceeds all of the calls to it and made static.
	(nwos_restart_id_generation): moved earlier in file so it preceeds all
	calls to it.
	(nwos_generate_new_completely_random_id, nwos_generate_new_1_in_N_id)
	(nwos_generate_new_closely_spaced_id): made static.


2009-03-16  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* export_file.c (main): fixed typo in print number of files exported
	print statement.


2009-03-14  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (Chunk_Info, nwos_chunk_info, nwos_initialize_chunk_info)
	(nwos_terminate_chunk_info, nwos_update_chunk_info_reverse_index)
	(nwos_chunk_index_to_info_index, nwos_increment_chunk_info_block_used)
	(nwos_decrement_chunk_info_block_used, nwos_uint32_ref_to_info_index)
	(nwos_reset_chunk_info_blocks_used): moved to new chunk_info.h file.
	(nwos_next_public_ref): moved to the gen_id.h file.
	(nwos_create_english_language, nwos_create_all_twelve_months)
	(nwos_create_all_area_codes, nwos_set_spelling_class_ref)
	(nwos_set_name_class_ref): removed, old functions that no longer exist.
	(nwos_create_root, nwos_create_public_acronym): moved to the
	objectify.h file.
	(nwos_flush_dirty_ref_lists): moved to the reference_list.h file.
	(nwos_initialize_backup, nwos_terminate_backup)
	(nwos_backup_write_block): moved to the new backup.h file.
	(nwos_update_file_001_object_to_current)
	(nwos_update_file_002_object_to_current): moved to the objecity.c file.
	* objectify.h (nwos_create_root, nwos_create_public_acronym): moved
	from the disk_io.h file.
	(nwos_create_reference_list, nwos_read_reference_list_from_disk)
	(nwos_remove_from_references, nwos_remove_from_reference_list)
	(nwos_add_to_references, nwos_add_to_reference_list): moved to the
	reference_list.h file.
	* backup.h (nwos_initialize_backup, nwos_terminate_backup)
	(nwos_backup_write_block): moved from the disk_io.h file.
	* chunk_info.h (nwos_initialize_chunk_info, nwos_terminate_chunk_info)
	(Chunk_Info, nwos_chunk_info, nwos_update_chunk_info_reverse_index)
	(nwos_chunk_index_to_info_index, nwos_increment_chunk_info_block_used)
	(nwos_decrement_chunk_info_block_used, nwos_uint32_ref_to_info_index)
	(nwos_reset_chunk_info_blocks_used): moved from the disk_io.h file.
	* gen_id.h (nwos_next_public_ref): moved from the disk_io.h file.
	* reference_list.h (nwos_flush_dirty_ref_lists): moved from the
	disk_io.h file.
	(nwos_create_reference_list, nwos_read_reference_list_from_disk)
	(nwos_remove_from_references, nwos_remove_from_reference_list)
	(nwos_add_to_references, nwos_add_to_reference_list): moved from
	objectify.h file.
	* backup.c: added include of the new backup.h file.
	* bit_map.c: added include of the new chunk_info.h file.
	* check_block_maps.c: added include of the new chunk_info.h file.
	* chunk_info.c: added include of the new chunk_info.h file.
	* compress_sparse.c: added include of the new chunk_info.h file.
	* disk_io.c: added includes for new backup.h and chunk_info.h files.
	(nwos_next_public_ref): moved to gen_id.c file.
	* disk_usage.c: added include of the new chunk_info.h file.
	* expand_sparse.c: added include of the new backup.h file.
	* gen_id.c: added include of the new chunk_info.h file.
	(nwos_next_public_ref): moved from disk_io.c file.
	* objectify.c (nwos_update_file_001_object_to_current)
	(nwos_update_file_002_object_to_current): external declarations
	moved from disk_io.h file.
	* prep_disk.c: added include of the objectify.h file.
	* sync_archive.c: added includes for the new backup.h and chunk_info.h
	files.

	* disk_io.h (IVEC_SIZE): moved to new security.h file.
	(NUM_STORED_SEQ): moved to security.c file.
	(MAX_ROOT_TRANSFORMATIONS): moved to objectify.c file.
	(void nwos_transform_root): removed, is now static in the objectify.c
	file which is the only place it is used.
	(nwos_random_sequence): removed, is now static in the security.c file
	which is the only place it is referenced.
	(nwos_next_sequence): removed, is now static in the security.c file
	which is the only place it is used.
	(nwos_read_object_from_disk_and_decrypt): moved to security.h file and
	renamed to nwos_read_block_from_disk_and_decrypt.
	(nwos_read_object_from_disk_and_old_decrypt): moved to security.h file
	and renamed to nwos_read_block_from_disk_and_old_decrypt.
	(nwos_write_object_to_disk_and_encrypt): moved to security.h file and
	and renamed to nwos_write_block_to_disk_and_encrypt.
	* objectify.h (nwos_get_key_from_password): moved to security.h file.
	* security.h (IVEC_SIZE): moved from disk_io.h.
	(nwos_read_block_from_disk_and_decrypt): moved from the disk_io.h file
	and renamed from nwos_read_object_from_disk_and_decrypt.
	(nwos_read_block_from_disk_and_old_decrypt): moved from the disk_io.h
	file and renamed from nwos_read_object_from_disk_and_old_decrypt.
	(nwos_write_block_to_disk_and_encrypt): moved from the disk_io.h file
	and renamed from nwos_write_object_to_disk_and_encrypt.
	(nwos_get_key_from_password): moved from objecify.h file.
	(nwos_setup_from_big_key): new declaration for function moved from
	objectify.c (which was previously static).
	* dump_obj.c: added include of security.h file.
	(main): renamed nwos_read_object_from_disk_and_decrypt to
	nwos_read_block_from_disk_and_decrypt,
	nwos_read_object_from_disk_and_old_decrypt to
	nwos_read_block_from_disk_and_old_decrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	* file.c: added include of security.h file.
	(read_file): changed nwos_write_object_to_disk_and_encrypt to
	nwos_write_block_to_disk_and_encrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	(nwos_restore_file, nwos_file_is_identical): renamed
	nwos_read_object_from_disk_and_decrypt to
	nwos_read_block_from_disk_and_decrypt,
	nwos_read_object_from_disk_and_old_decrypt to
	nwos_read_block_from_disk_and_old_decrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	* gen_id.c (randomxxx): moved from objectify.c file.
	* objectify.c: moved include of openssl/blowfish.h to security.c file.
	Added include of security.h file.
	(MAX_ROOT_TRANSFORMATIONS): moved from disk_io.h. file.
	(linear_after_first, serial_after_first, nwos_random_sequence)
	(blowfish_key, generate_sequence_table): moved to security.c file.
	(randomxxx): moved to gen_id.c file.
	(nwos_transform_root): made static.
	(setup_from_big_key): moved to security.c file and renamed to
	nwos_setup_from_big_key.
	(nwos_initialize_objectify, nwos_create_root): changed
	setup_from_big_key to nwos_setup_from_big_key.
	(nwos_read_object_from_disk_and_decrypt): moved to security.c file and
	renamed to nwos_read_block_from_disk_and_decrypt.
	(nwos_read_object_from_disk_and_old_decrypt): moved to security.c file
	and renamed to nwos_read_block_from_disk_and_old_decrypt.
	(nwos_read_object_from_disk, nwos_read_object_headers_from_disk)
	(nwos_read_variable_sized_object_from_disk)
	(nwos_get_object_class_without_update): renamed
	nwos_read_object_from_disk_and_decrypt to
	nwos_read_block_from_disk_and_decrypt,
	nwos_read_object_from_disk_and_old_decrypt to
	nwos_read_block_from_disk_and_old_decrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	(nwos_write_object_to_disk_and_encrypt): moved to security.c file and
	renamed to nwos_write_block_to_disk_and_encrypt.
	(nwos_write_object_to_disk, nwos_overwrite_object_to_disk): renamed
	nwos_write_object_to_disk_and_encrypt to
	nwos_write_block_to_disk_and_encrypt and changed from passing sequence
	table as parameter to just passing the sequence number.
	* reference_list.c: added include of security.h file.
	(write_reference_list, nwos_add_to_reference_list)
	(nwos_remove_from_reference_list): changed
	nwos_write_object_to_disk_and_encrypt to
	nwos_write_block_to_disk_and_encrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	(read_ref_list_into_cache): renamed
	nwos_read_object_from_disk_and_decrypt to
	nwos_read_block_from_disk_and_decrypt,
	nwos_read_object_from_disk_and_old_decrypt to
	nwos_read_block_from_disk_and_old_decrypt, and changed from passing
	sequence table as parameter to just passing the sequence number.
	* security.c: moved include of openssl/blowfish.h from objectify.c
	file.
	(linear_after_first, serial_after_first, nwos_random_sequence)
	(blowfish_key, generate_sequence_table): moved from objectify.c file.
	(nwos_setup_from_big_key): moved from objectify.c file and renamed from
	setup_from_big_key.
	(nwos_read_block_from_disk_and_decrypt): moved from objectify.c file
	and renamed from nwos_read_object_from_disk_and_decrypt and changed
	sequence table parameter from pointer to table to sequence number.
	(nwos_read_block_from_disk_and_old_decrypt): moved from objectify.c
	file and renamed from nwos_read_object_from_disk_and_old_decrypt and
	changed sequence table parameter from pointer to table to sequence
	number.
	(nwos_write_block_to_disk_and_encrypt): moved from objectify.c file and
	renamed from nwos_write_object_to_disk_and_encrypt and changed
	sequence table parameter from pointer to table to sequence number.

	* disk_io.c (nwos_read_block): added assert to verify the reference id
	of the block read matches the requested reference id.
	(nwos_erase_block): added asserts to verify the block was not already
	empty and that it is after it was erased.
	* objectify.h (nwos_object_exists): removed declaration for because
	function was deleted from objectify.c.
	* objectify.c (block_contains_object): removed, changed nwos_read_block
	function in disk_io.c to verify that the reference id of the block read
	matches the requested block so this function was no longer needed.
	(nwos_object_exists): removed, this function was a misnomer.  It just
	read the block and and verified the reference matched.  It was no
	longer needed, because reading the block is sufficient.
	(nwos_read_object_from_disk_and_old_decrypt)
	(nwos_read_object_from_disk_and_decrypt): removed assert that called
	block_contains object because now nwos_read_block verifies that.
	(nwos_overwrite_object_to_disk): changed to just call nwos_read_block
	instead of calling nwos_object_exists.  Added an assert to make sure
	the size of the object will fit in one file block.  (This function
	needs to be fixed to deal with objects that span multiple blocks.)
	(nwos_remove_object): deleted asserts that verified the block existed
	before and that it didn't exist after because now the nwos_erase_block
	function tests that.
	* recrypt.c (write_object_to_disk): changed to just call
	nwos_read_block instead of calling nwos_object_exists.
	* word.c (nwos_find_word, nwos_create_word): changed to read language
	object to verify it exists instead of calling nwos_object_exists.

	* disk_io.h (MAX_ROOT_TRANSFORMATIONS): moved to objectify.c, it is
	only used there.
	(nwos_transform_root): deleted, only used in objectify.c file.
	* objectify.c (MAX_ROOT_TRANSFORMATIONS): moved from disk_io.h file.
	(nwos_transform_root): made static.


2009-03-13  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (nwos_get_public_objects_path, nwos_get_log_file_path)
	(nwos_get_private_objects_path, nwos_get_backup_directory_path): moved
	to new user_config.h file.
	(nwos_initialize_gen_id, nwos_hash_uint32_ref, nwos_terminate_gen_id)
	(nwos_hash_ref, nwos_ref_to_offset, nwos_set_allocation_parameters)
	(nwos_generate_new_completely_random_id ,nwos_generate_new_public_id)
	(nwos_allocate_new_chunk, nwos_generate_new_closely_spaced_id)
	(nwos_generate_new_1_in_N_id): moved to gen_id.h file.
	* objectify.h (nwos_check_blocks_available): moved to gen_id.h file.
	* gen_id.h (nwos_check_blocks_available): moved from objectify.h file.
	(nwos_initialize_gen_id, nwos_hash_uint32_ref, nwos_terminate_gen_id)
	(nwos_hash_ref, nwos_ref_to_offset, nwos_set_allocation_parameters)
	(nwos_generate_new_completely_random_id ,nwos_generate_new_public_id)
	(nwos_allocate_new_chunk, nwos_generate_new_closely_spaced_id)
	(nwos_generate_new_1_in_N_id): moved from disk_io.h file.
	* user_config.h (nwos_get_public_objects_path, nwos_get_log_file_path)
	(nwos_get_private_objects_path, nwos_get_backup_directory_path): moved
	from disk_io.h file.
	* bit_map.c: added include of gen_id.h file
	* check_block_maps.c: added include of user_config.h file.
	* chunk_info.c: added include of gen_id.h file
	* compress_sparse.c: added include of user_config.h file.
	* disk_io.c: added includes for gen_id.h and user_config.h files.
	* disk_usage.c: added include of user_config.h file.
	* expand_sparse.c: added includes for gen_id.h and user_config.h files.
	* log.c: removed include of disk_io.h file and added include of
	user_config.h file.
	* prep_disk.c: added include of user_config.h file.
	* sync_archive.c: added includes for gen_id.h and user_config.h files.
	* user_config.c: removed include of disk_io.h file and added includes
	for assert.h and user_config.h files.

	* objectify.h (nwos_flush_bit_maps): moved to new bit_map.h file.
	* disk_io.h (nwos_set_bit_in_map, nwos_clear_bit_in_map)
	(nwos_test_bit_in_map, nwos_find_random_block_in_chunk)
	(nwos_find_low_density_in_chunk, nwos_find_next_empty_block)
	(nwos_terminate_bit_map, nwos_block_used): moved to new bit_map.h file.
	* bit_map.h (nwos_flush_bit_maps): moved from objectify.h file.
	(nwos_set_bit_in_map, nwos_clear_bit_in_map, nwos_test_bit_in_map)
	(nwos_block_used, nwos_find_random_block_in_chunk)
	(nwos_find_low_density_in_chunk, nwos_find_next_empty_block)
	(nwos_terminate_bit_map): moved from disk_io.h file.
	* bit_map.c: added include of bit_map.h file.
	* disc_list.c: added include of bit_map.h file.
	* disk_io.c: added include of bit_map.h file.
	* expand_sparse.c: added include of bit_map.h file.
	* gen_id.c: added include of bit_map.h file.
	* import_file.c: added include of bit_map.h file.
	* objectify.c: added includes for bit_map.h and objectify.h files.
	* reference_list.c: added include of bit_map.h file.
	* sync_archive.c: added include of bit_map.h file.


2009-03-12  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* add_password.c: added include of objectify.h to define
	nwos_create_root.
	* backup.c: added include of new log.h file.
	* check_block_maps.c: added include of config.h file.
	* chunk_info.c: added includes of log.h and mem_alloc.h files.
	* compress_sparse.c: added includes of config.h, log.h and mem_alloc.h
	files.
	* computer.c: added include of strlcxx.h file.
	* disc.c: added include of strlcxx.h file.
	* disk_io.c: added includes for config.h, log.h, mem_alloc.h and
	strlcxx.h files
	(nwos_erase_block): renamed nwos_remove_object function and changed to
	call test_bit_in_map and read_block instead of nwos_object_exists
	function.
	* disk_usage.c: added includes for config.h and progress_bar.h.
	* dump_obj.c: added include of objectify.h and added comment about
	needing disk_io.h for IVEC_SIZE.
	* expand_sparse.c: added includes for config.h, log.h, and
	progress_bar.h files.  Also changed to call nwos_terminate_disk_io
	instead of nwos_terminate_objectify (because it calls
	nwos_initialize_disk_io, not nwos_initialize_objectify).
	* file.c: added includes for objectify.h and strlcxx.h files.
	* gen_id.c: added includes for new gen_id.h and log.h files.
	* identify_disc.c: added include of strlcxx.h file.
	* log.c: removed include of objectify.h file and added includes for
	log.h and strlcxx.h files.
	* objectify.c: renamed old nwos_remove_object function that was in
	disk_io.c to nwos_erase_block and added nwos_remove_object function,
	that calls nwos_erase_block, to this file.
	* prep_disk.c: added includes for config.h and log.h files.
	* progress_bar.c: added include of progress_bar.h file.
	* security.c: removed include of objectify.h and added includes of
	strlcxx.h and types.h files.	
	* sync_archive.c: added includes for config.h, log.h, and
	progress_bar.h files.  Also changed to call nwos_terminate_disk_io
	instead of nwos_terminate_objectify (because it calls
	nwos_initialize_disk_io, not nwos_initialize_objectify).
	* user_config.c: removed include of objectify.h and added includes for
	config.h, disk_io.h, log.h, and strlcxx.h files.

	* disk_io.h: removed include of objectify.h and added includes of
	reference.h and timestamp.h.
	(MAGIC_NUMBER): moved from objectify.h.
	(MAX_REFS_IN_REF_LIST, MAX_REFS_IN_SIDECAR)
	(Ref_List_Extra_Block, Ref_List_First_Block)
	(nwos_create_reference_list_with_existing_id): moved to
	reference_list.c file.
	(nwos_erase_block): added external declaration for.
	* gen_id.h (Security_Level, nwos_restart_id_generation)
	(nwos_generate_new_id, nwos_generate_new_private_id)
	(nwos_set_security_level): moved from objectify.h file.
	* log.h (nwos_log, nwos_log_arguments, nwos_log_md5sum)
	(nwos_log_sha1sum, nwos_log_sha256sum, nwos_log_sha512sum): moved from
	objectify.h file.
	* objectify.h: added includes for gen_id.h, log.h, objects.h, 
	progress_bar.h, reference.h, and reference_list.h.
	(MAGIC_NUMBER): moved to disk_io.h.
	(Security_Level, nwos_restart_id_generation, nwos_generate_new_id)
	(nwos_generate_new_private_id, nwos_set_security_level): moved to
	gen_id.h file.
	(CommonHeader, ObjectHeader, EveryObject, ReferenceList)
	(IndexedReferenceList, C_struct_Class_Definition, C_struct_Spelling)
	(C_struct_Name, C_struct_Feature_Definition, C_struct_Root): moved to
	new objects.h file.
	(nwos_log, nwos_log_arguments, nwos_log_md5sum, nwos_log_sha1sum)
	(nwos_log_sha256sum, nwos_log_sha512sum): moved to new log.h file.
	(nwos_start_progress_bar, nwos_update_progress_bar)
	(nwos_erase_progress_bar, nwos_finish_progress_bar): moved to new
	progress_bar.h file.
	(is_void_reference, is_same_object, copy_reference, void_reference)
	(nwos_ref_to_word, nwos_word_to_ref, Reference_Type)
	(nwos_is_public_reference, nwos_is_private_reference)
	(nwos_is_temporary_reference, nwos_reference_type): moved to
	reference.h file.
	(nwos_reference_list_size, nwos_malloc_reference_list)
	(nwos_free_reference_list): moved to reference_list.h file.
	(strlcpy, strlcat): moved to new strlcxx.h file.
	(DEFAULT_FILE, AccessType, ObjRef, nwos_4_uint8_to_uint32)
	(nwos_2_uint8_to_uint16, nwos_uint32_to_4_uint8, MD5_DIGEST_SIZE)
	(SHA1_DIGEST_SIZE, SHA256_DIGEST_SIZE, SHA512_DIGEST_SIZE)
	(byteswap_uint16, byteswap_uint32): moved to types.h file.
	* objects.h (CommonHeader, ObjectHeader, EveryObject, ReferenceList)
	(IndexedReferenceList, C_struct_Class_Definition, C_struct_Spelling)
	(C_struct_Name, C_struct_Feature_Definition, C_struct_Root): moved from
	objectify.h file.
	* reference.h (is_void_reference, is_same_object, copy_reference)
	(void_reference, nwos_ref_to_word, nwos_word_to_ref, Reference_Type)
	(nwos_is_public_reference, nwos_is_private_reference)
	(nwos_is_temporary_reference, nwos_reference_type): moved from
	objectify.h file.
	* reference_list.h (nwos_reference_list_size, nwos_free_reference_list)
	(nwos_malloc_reference_list): moved from objectify.h file.
	* reference_list.c: added includes for log.h and reference_list.h
	files.
	(MAX_REFS_IN_REF_LIST, MAX_REFS_IN_SIDECAR)
	(Ref_List_Extra_Block, Ref_List_First_Block)
	(nwos_create_reference_list_with_existing_id): moved from disk_io.h
	file.
	* strlcxx.h (strlcpy, strlcat): moved from objectify.h file.
	* types.h (DEFAULT_FILE, AccessType, ObjRef, MD5_DIGEST_SIZE)
	(SHA1_DIGEST_SIZE, SHA256_DIGEST_SIZE, SHA512_DIGEST_SIZE)
	(byteswap_uint16, byteswap_uint32, nwos_4_uint8_to_uint32)
	(nwos_2_uint8_to_uint16, nwos_uint32_to_4_uint8): moved from
	objectify.h file.

	* Makefile.in (OBJS): changed strlcat.o and strlcpy.o to strlcxx.o.
	(export_c_structs): added mem_alloc.c and changed strlcat.o and
	strlcpy.o to strlcxx.o.
	(check_block_maps, compress_sparse, disk_usage): changed strlcat.o and
	strlcpy.o to strlcxx.o.
	* strlcpy.c: deleted.
	* strlcat.c: deleted.
	* strlcxx.c: merged from strlcat.c and strlcpy.c.
	

2009-03-11  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (OBJS): added mem_alloc.o.
	* objectify.h (nwos_malloc, nwos_realloc, nwos_free): moved to new
	mem_alloc.h file.
	* mem_alloc.h (nwos_malloc, nwos_realloc, nwos_free): moved from
	the objectify.h file.
	* objectify.c (nwos_malloc, nwos_realloc, nwos_free): moved to new
	mem_alloc.c file.
	* mem_alloc.c (nwos_malloc, nwos_realloc, nwos_free): moved from
	the objectify.c file.


2009-03-10  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* check_objects.c (check_spelling): changed FILE_BLOCK_SIZE to
	MAX_SPELLING_OBJ_SIZE.
	(check_name): changed FILE_BLOCK_SIZE to MAX_SPELLING_OBJ_SIZE and
	MAX_NAME_OBJ_SIZE.
	(check_file_path): changed FILE_BLOCK_SIZE to MAX_PATH_OBJ_SIZE.
	(check_class, main): changed FILE_BLOCK_SIZE to
	MAX_CLASS_DEFINITION_OBJ_SIZE.

	* disk_io.h (nwos_private_create_city, nwos_create_url)
	(nwos_create_public_manufacturer): moved to the objectify.h file.
	* objectify.h (MAX_SPELLING_OBJ_SIZE): moved from the spelling.c file,
	renamed from MAX_SPELLING_SIZE and changed from 36 characters max to
	100 characters max.
	(MAX_NAME_OBJ_SIZE): moved from the name.c file and renamed from
	MAX_NAME_SIZE.
	(MAX_ACCOUNT_NUMBER_SIZE): moved from the financial.c file and renamed
	from MAX_NUMBER_SIZE.
	(MAX_CHECKING_ID_SIZE): moved from the financial.c file and renamed
	from MAX_ID_SIZE.
	(MAX_ACCOUNT_NUMBER_OBJ_SIZE): moved from the financial.c file and
	renamed from MAX_ACCOUNT_NUMBER_SIZE.
	(MAX_CHECKING_OBJ_SIZE): moved from the financial.c and file renamed
	from MAX_CHECKING_SIZE.
	(MAX_CARDINAL_NUMBER_DIGITS): moved from the number.c file and renamed
	from MAX_DIGITS.
	(MAX_CARDINAL_NUMBER_OBJ_SIZE): moved from the number.c file and
	renamed from MAX_CARDINAL_NUMBER_SIZE.
	(MAX_URL_SIZE): moved from the url.c file and renamed MAX_URL_OBJ_SIZE.
	* financial.c (MAX_NUMBER_SIZE, MAX_ID_SIZE, MAX_ACCOUNT_NUMBER_SIZE)
	(MAX_CHECKING_SIZE): moved to the objectify.h file.
	(get_account_number_object_size, valid_number): renamed MAX_NUMBER_SIZE
	to MAX_ACCOUNT_NUMBER_SIZE.
	(get_checking_object_size): renamed MAX_ID_SIZE to
	MAX_CHECKING_ID_SIZE.
	(nwos_find_account_number, nwos_find_or_create_account_number)
	(nwos_account_number_to_string): renamed MAX_ACCOUNT_NUMBER_SIZE to
	MAX_ACCOUNT_NUMBER_OBJ_SIZE.
	(nwos_create_checking): renamed MAX_CHECKING_SIZE to
	MAX_CHECKING_OBJ_SIZE.
	(nwos_add_account): renamed MAX_ID_SIZE to MAX_CHECKING_ID_SIZE and
	MAX_NUMBER_SIZE to MAX_ACCOUNT_NUMBER_SIZE.
	(nwos_list_accounts): renamed MAX_ID_SIZE to MAX_CHECKING_ID_SIZE,
	MAX_NUMBER_SIZE to MAX_ACCOUNT_NUMBER_SIZE, and	MAX_CHECKING_SIZE to
	MAX_CHECKING_OBJ_SIZE.
	* name.c (MAX_NAME_SIZE, MAX_SPELLING_SIZE): moved to the objectify.h
	file.
	(MAX_NAME_OR_SPELLING_SIZE): renamed MAX_NAME_SIZE to MAX_NAME_OBJ_SIZE
	and MAX_SPELLING_SIZE to MAX_SPELLING_OBJ_SIZE.
	(nwos_find_public_name, nwos_find_private_name)
	(nwos_create_name): renamed MAX_NAME_SIZE to MAX_NAME_OBJ_SIZE.
	* number.c (MAX_DIGITS, MAX_CARDINAL_NUMBER_SIZE): moved to the
	objectify.h file.
	(get_cardinal_object_size, nwos_find_cardinal_number): renamed
	MAX_DIGITS to MAX_CARDINAL_NUMBER_DIGITS.
	(nwos_find_cardinal_number, nwos_cardinal_number_to_string): renamed
	MAX_CARDINAL_NUMBER_SIZE to MAX_CARDINAL_NUMBER_OBJ_SIZE.
	(nwos_create_cardinal_number): renamed MAX_CARDINAL_NUMBER_SIZE to
	MAX_CARDINAL_NUMBER_OBJ_SIZE and MAX_DIGITS to
	MAX_CARDINAL_NUMBER_DIGITS.
	* spelling.c (MAX_SPELLING_SIZE): moved to objectify.h file.
	(nwos_find_public_spelling, nwos_find_private_spelling)
	(nwos_create_public_spelling, nwos_create_private_spelling): renamed
	MAX_SPELLING_SIZE to MAX_SPELLING_OBJ_SIZE.
	* url.c (MAX_URL_SIZE): moved to the objectify.h file.
	(nwos_find_public_url, nwos_create_url, nwos_url_to_string): renamed
	MAX_URL_SIZE to MAX_URL_OBJ_SIZE.

	* remove_file.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* update_files_0028.c (main): changed kludge buffer size from
	FILE_BLOCK_SIZE to MAX_PATH_OBJ_SIZE.

	* class_definition.c (MAX_CLASS_DEFINITION_SIZE)
	(MAX_FEATURE_NAME_SIZE): moved to class_definition.h file.
	(feature_size, nwos_get_object_size)
	(nwos_clone_updated_class_definition,  nwos_clone_class_definition)
	(nwos_find_private_class_definition, nwos_find_public_class_definition)
	(nwos_read_class_definition): renamed MAX_CLASS_DEFINITION_SIZE to
	MAX_CLASS_DEFINITION_OBJ_SIZE.
	(nwos_find_public_feature_definition): renamed MAX_FEATURE_NAME_SIZE
	to MAX_CLASS_DEFINITION_OBJ_SIZE
	* objectify.h (MAX_CLASS_DEFINITION_OBJ_SIZE): moved from
	class_definition.c file and renamed from MAX_CLASS_DEFINITION_SIZE.
	(MAX_FEATURE_NAME_OBJ_SIZE): moved from class_defintion.c file and
	renamed from MAX_FEATURE_NAME_SIZE.
	* export_c_structs.c (class_to_type, output_class, main): changed
	kludge buffer size from FILE_BLOCK_SIZE to
	MAX_CLASS_DEFINITION_OBJ_SIZE.


2009-03-09  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objectify.h (FILE_BLOCK_SIZE): moved to disk_io.h file.
	(MAX_OBJECT_BLOCKS, MAX_OBJECT_SIZE): removed no longer used.
	(MAX_PATH_OBJ_SIZE): new constant that defines the maximum size of an
	File Path object based upon the maximum number of characters allowed
	in a path (currently set to 4096).
	* disk_io.h (FILE_BLOCK_SIZE): moved from objectify.h file.
	* acronym.c (nwos_acronym_to_string): changed size of kludge buffer to
	sizeof spelling object plus 8 (are there acronyms longer than 8
	chars?).
	* check_files.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* class_definition.c (MAX_CLASS_DEFINITION_SIZE): new constant that
	defines the maximum size of a Class Definition object based upon the
	maximum number of features that a class can have (100 for now).
	(MAX_FEATURE_NAME_SIZE): new constant that defines the maximum size of
	a feature name object based upon the maximum number of words that can
	be in a feature name (24 for now).
	(feature_size, nwos_get_object_size)
	(nwos_clone_updated_class_definition,  nwos_clone_class_definition)
	(nwos_find_private_class_definition, nwos_find_public_class_definition)
	(nwos_read_class_definition): changed kludge buffer size from
	FILE_BLOCK_SIZE to MAX_CLASS_DEFINITION_SIZE.
	(nwos_find_public_feature_definition): changed kludge buffer size from
	FILE_BLOCK_SIZE to MAX_FEATURE_NAME_SIZE.
	* disc_list.c (check_for_previous_version_and_link): changed kludge
	buffer size from FILE_BLOCK_SIZE to MAX_PATH_OBJ_SIZE.
	* export_file.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* file.c (find_file_path, nwos_number_of_files_for_path)
	(nwos_create_file_path, nwos_file_path_to_string)
	(nwos_file_path_to_path_and_file_association): changed kludge buffer
	size from FILE_BLOCK_SIZE to MAX_PATH_OBJ_SIZE.
	* financial.c (MAX_ACCOUNT_NUMBER_SIZE): new constant that defines the
	maximum size of an Account Number object based upon the maximum number
	of digits in an account number.
	(MAX_CHECKING_SIZE): new constant that defines the maximum size of a
	Checking object based upon the maximum number of characters in a
	checking account id.
	(nwos_find_account_number, nwos_find_or_create_account_number)
	(nwos_account_number_to_string): changed kludge buffer size from
	FILE_BLOCK_SIZE to MAX_ACCOUNT_NUMBER_SIZE.
	(nwos_create_checking, nwos_list_accounts): changed kludge buffer size
	from FILE_BLOCK_SIZE to MAX_CHECKING_SIZE.
	* list_discs.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* list_files.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* name.c (MAX_NAME_SIZE): new constant that defines the maximum size of
	a Name object based upon the maximum number of spellings in a name.
	(MAX_SPELLING_SIZE): new constant that defines the maximum size of a
	Spelling object based upon the maximum number of characters in a
	spelling.
	(MAX_NAME_OR_SPELLING_SIZE): new constant that defines the size of a
	buffer that is large enough to hold either a Name object or a spelling
	object.
	(nwos_find_public_name, nwos_find_private_name)
	(nwos_create_name): changed kludge buffer size from FILE_BLOCK_SIZE to
	MAX_NAME_SIZE.
	(nwos_name_to_string): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_NAME_OR_SPELLING_SIZE.
	* number.c (MAX_CARDINAL_NUMBER_SIZE): new constant that defines the
	maximum size of a Cardinal Number object based upon the maximum number
	of digits in a number.
	(nwos_find_cardinal_number, nwos_create_cardinal_number)
	(nwos_cardinal_number_to_string): changed kludge buffer size from
	FILE_BLOCK_SIZE to MAX_CARDINAL_NUMBER_SIZE.
	* rename_file.c (main): changed kludge buffer size from FILE_BLOCK_SIZE
	to MAX_PATH_OBJ_SIZE.
	* spelling.c (MAX_SPELLING_SIZE): new constant that defines the maximum
	size of a Spelling object based upon the maximum number of characters
	in a word.
	(nwos_find_public_spelling, nwos_find_private_spelling)
	(nwos_create_public_spelling, nwos_create_private_spelling): changed
	kludge buffer size from FILE_BLOCK_SIZE to MAX_SPELLING_SIZE.
	* url.c (MAX_URL_SIZE): new constant that defines the maximum size of a
	Uniform Resource Locator object based upon the maximum number of
	characters in a URL.
	(nwos_find_public_url, nwos_create_url, nwos_url_to_string): changed
	kludge buffer size from FILE_BLOCK_SIZE to MAX_URL_SIZE.


2009-03-08  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.h (nwos_initialize_gen_id, nwos_terminate_gen_id): added
	external declarations for.
	* disk_io.c (block_estimate, last_used_blocks, last_ref)
	(chunk_density_target, chunk_skip_forward, log_estimate_results)
	(initialize_random_number_generator, generate_new_completely_random_id)
	(nwos_generate_new_completely_random_id, nwos_restart_id_generation)
	(nwos_set_allocation_parameters, nwos_check_blocks_available)
	(nwos_generate_new_closely_spaced_id, nwos_generate_new_1_in_N_id)
	(nwos_generate_new_public_id): moved to gen_id.c file.
	* gen_id.c (block_estimate, last_used_blocks, last_ref, )
	(chunk_density_target, chunk_skip_forward, log_estimate_results)
	(nwos_generate_new_public_id, generate_new_completely_random_id)
	(nwos_generate_new_completely_random_id, nwos_restart_id_generation)
	(nwos_generate_new_closely_spaced_id, nwos_generate_new_1_in_N_id)
	(nwos_set_allocation_parameters, nwos_check_blocks_available): moved
	from disk_io.c file.
	(nwos_initialize_gen_id): moved from disk_io.c file and renamed from
	initialize_random_number_generator.
	(nwos_terminate_gen_id): new function that calls log_estimate_results.
	* disk_io.c (nwos_initialize_disk_io): moved #endif after all of the
	code to open and read the private archive so that it isn't compiled in
	public mode.
	(nwos_terminate_disk_io): added #ifndef PUBLIC_MODE around call to
	nwos_terminate_bit_map so that it isn't compiled in public mode.
	(nwos_read_block): added conditional code so that if it is not a public
	reference in PUBLIC_MODE it asserts.
	(nwos_remove_object): surrounded with #ifndef PUBLIC_MODE so that it is
	not compiled in public mode.
	* objectify.c (nwos_terminate_objectify): put #ifndef PUBLIC_MODE
	around call to nwos_flush_dirty_ref_lists so it won't be compiled in
	public mode.
	(object_header_checksum_matches, check_object_data): removed #ifndef
	PUBLIC_MODE surrounding these so they are compiled in public mode.
	(nwos_read_variable_sized_object_from_disk)
	(nwos_read_object_from_disk): added conditional code for public mode so
	if the checksum doesn't match it just returns false and doesn't attempt
	to use the old encryption.
	(nwos_get_object_class_without_update)
	(nwos_read_object_headers_from_disk): added condition code for public
	mode so if the checksum doesn't match it prints an error message and
	exits.
	* reference_list.c (nwos_remove_from_reference_list)
	(nwos_remove_from_references): surrounded with #ifndef PUBLIC_MODE so
	it won't be compiled in public mode.

	* Makefile.in (OBJS): added strlcat.o and strlcpy.o.
	(export_c_structs): added strlcat.c and strlcpy.c.
	(check_block_maps, compress_sparse, disk_usage): added strlcat.o and
	strlcpy.o.
	* log.c (strlcat): moved to new strlcat.c file.
	(strlcpy): moved to new strlcpy.c file.
	* strlcat.c (strlcat): moved from log.c file.
	* strlcpy.c (strlcpy): moved from log.c file.


2009-03-07  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objectify_private.h: renamed to disk_io.h.
	* Makefile.in (add_password): added dependency on disk_io.h.
	(check_block_maps): changed objectify_private.h dependency to
	disk_io.h.
	(check_files): changed objectify_private.h dependency to disk_io.h.
	(check_objects): changed objectify_private.h dependency to disk_io.h.
	(combine_backup_files): changed objectify_private.h dependency to
	disk_io.h.
	(compress_sparse): changed objectify_private.h dependency to disk_io.h.
	(diff_compressed): changed objectify_private.h dependency to disk_io.h.
	(disk_usage): changed objectify_private.h dependency to disk_io.h.
	(dump_obj): added dependency on disk_io.h.
	(expand_sparse): changed objectify_private.h dependency to disk_io.h.
	(patch_compressed): changed objectify_private.h dependency to
	disk_io.h.
	(prep_disk): added dependency on disk_io.h.
	(sync_archive): changed objectify_private.h dependency to disk_io.h.
	(update_files_0028): added dependency on disk_io.h.
	* disk_io.h (nwos_private_class_definition_class_ref)
	(nwos_public_class_definition_class_ref, nwos_reference_list_class_ref)
	(nwos_create_class_definition, nwos_clone_class_definition)
	(NUM_FILE_CLASS_DEFINITIONS, nwos_get_file_001_reference)
	(nwos_get_file_002_reference, nwos_get_file_class_reference): moved to
	new class_definition.h file.
	(nwos_malloc, nwos_realloc, nwos_free, nwos_fill_in_common_header)
	(nwos_object_exists, nwos_write_object_to_disk)
	(nwos_write_public_object_to_disk, nwos_overwrite_object_to_disk)
	(nwos_remove_object): moved to objectify.h file.	
	* objectify.h (nwos_malloc, nwos_realloc, nwos_free)
	(nwos_object_exists, nwos_fill_in_common_header, nwos_remove_object)
	(nwos_write_object_to_disk, nwos_write_public_object_to_disk)
	(nwos_overwrite_object_to_disk): moved from disk_io.h file.
	* acronym.c: removed include of objectify_private.h file.
	* add_password.c: changed #include objectify_private.h to disk_io.h.
	* address.c: removed include of objectify_private.h file.
	* backup.c: changed #include objectify_private.h to disk_io.h.
	* bit_map.c: changed #include objectify_private.h to disk_io.h.
	* check_block_maps.c: changed #include objectify_private.h to
	disk_io.h.
	* check_files.c: changed #include objectify_private.h to objectify.h
	and added #include class_definition.h.
	* check_objects.c: removed include of objectify_private.h file and
	changed include of objectify.h to class_definition.h.
	* chunk_info.c: changed #include objectify_private.h to disk_io.h.
	* class_definition.c: removed #include objectify_private.h and
	changed include objectify.h to class_definition.h.
	(nwos_public_class_definition_class_ref, nwos_reference_list_class_ref)
	(nwos_private_class_definition_class_ref): moved from objectify.c file.
	(nwos_clone_updated_class_definition)
	(nwos_clone_class_definition): changed call to
	nwos_generate_new_completely_random_id to nwos_generate_new_id.
	(get_file_references): changed to call new nwos_is_ready function
	instead reading nwos_ready flag directly.
	(nwos_get_file_class_reference): changed to call nwos_is_writable
	function instead of calling nwos_disk_io_is_read_write.
	* combine_backup_files.c: changed #include objectify_private.h to
	disk_io.h.
	* compress_sparse.c: changed #include objectify_private.h to disk_io.h.
	* computer.c: removed include of objectify_private.h file.
	* date.c: removed include of objectify_private.h file.
	(nwos_find_or_create_private_year, nwos_find_or_create_private_month)
	(nwos_find_or_create_private_month_and_day): changed call to
	nwos_generate_new_completely_random_id to nwos_generate_new_id.
	* device.c: changed #include objectify_private.h to objectify.h.
	* diff_compressed.c: changed #include objectify_private.h to disk_io.h.
	* diff_sparse.c: changed #include objectify_private.h to disk_io.h.
	* disc.c: changed #include objectify_private.h to objectify.h.
	* disc_list.c: changed #include objectify_private.h to objectify.h.
	* disk_io.c (version_string): new variable to store the version string.
	(nwos_archive_version): new function to return the current archive
	version string (specifically for reading from compressed archives).
	(nwos_backup_is_enabled): new function that returns true if backup
	files (.dif) are enabled.
	(nwos_initialize_disk_io): added code to copy version string from
	header to version_string variable.
	* disk_usage.c: changed #include objectify_private.h to disk_io.h.
	* dump_obj.c: changed #include objectify_private.h to disk_io.h.
	* expand_sparse.c: changed #include objectify_private.h to disk_io.h.
	* export_c_structs.c: changed #include objectify_private.h to
	class_definition.h.
	* file.c: changed #include objectify_private.h to disk_io.h.
	* financial.c: changed #include objectify_private.h to objectify.h.
	(nwos_find_or_create_private_credit_union): changed call to
	nwos_generate_new_completely_random_id to nwos_generate_new_id.
	* gen_id.c: changed #include objectify_private.h to disk_io.h.
	* language.c: removed include of objectify_private.h file.
	* list_files.c: changed #include objectify_private.h to objectify.h.
	(main): changed test to verify that public files were found to assert
	because the public objects have had files in them for over a year now
	and so it should never fail if we have the current public objects.
	This way we don't have to include disk_io.h.  Also changed to call new
	nwos_archive_version function instead of accessing the header directly.
	* log.c: changed #include objectify_private.h to disk_io.h.
	* name.c: removed include of objectify_private.h file.
	* number.c: changed #include objectify_private.h to objectify.h.
	* objectify.c: changed #include objectify_private.h to disk_io.h and
	added include of class_definition.h.
	(nwos_public_class_definition_class_ref, nwos_reference_list_class_ref)
	(nwos_private_class_definition_class_ref): moved to class_definition.c
	file.
	(nwos_is_ready): new function that returns the nwos_ready flag.
	(nwos_is_writable): new function that returns true if disk_io is open
	writable.
	* patch_compressed.c: changed #include objectify_private.h to
	disk_io.h.
	* person.c: removed include of objectify_private.h file.
	(nwos_find_or_create_private_gender): changed call to
	nwos_generate_new_completely_random_id to nwos_generate_new_id.
	* phone.c: removed include of objectify_private.h file.
	* prep_disk.c: changed #include objectify_private.h to disk_io.h.
	* recrypt.c: removed include of objectify_private.h file.
	* reference_list.c: changed #include objectify_private.h to disk_io.h
	and added #include class_definition.c.
	* remove_file.c: changed #include objectify_private.h to objectify.h.
	(main): changed to call new nwos_backup_is_enabled function instead of
	getting checking if there is a backup path.
	* rename_file.c: changed #include objectify_private.h to objectify.h.
	* security.c: removed include of objectify_private.h file.
	* spelling.c: removed include of objectify_private.h file.
	* sync_archive.c: changed #include objectify_private.h to disk_io.h.
	* update_files_0028.c: changed #include objectify_private.h to
	disk_io.h.
	* url.c: changed #include objectify_private.h to objectify.h.
	* us_state.c: removed include of objectify_private.h file.
	* word.c: removed include of objectify_private.h file.


2009-03-06  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* bit_map.c (nwos_find_next_empty_block): fixed assert bugs, simplified
	loop (eliminated look ahead stuff), and added skipped count to increase
	odds if blocks were skipped.


2009-03-05  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (OBJS): added bit_map.o.
	(export_c_structs): added bit_map.c.
	* objectify_private (nwos_find_random_block_in_chunk)
	(nwos_find_low_density_in_chunk, nwos_write_bit_map, nwos_read_bit_map)
	(nwos_terminate_bit_map, nwos_find_next_empty_block): added external
	declarations for.
	* disk_io.c (BIT_MAP_CACHE_SIZE, Bit_Map_Cache_Entry, bit_map_cache)
	(bit_map_tick, bits_in_byte, write_bit_map, read_bit_map_into_cache)
	(find_bit_map_in_cache, nwos_set_bit_in_map, nwos_clear_bit_in_map)
	(nwos_test_bit_in_map, nwos_flush_bit_maps, nwos_block_used): moved to
	new bit_map.c file.
	(nwos_terminate_disk_io): moved code that went through the bit map
	cache and wrote the dirty blocks to disk to new nwos_terminate_bit_map
	function in the bit_map.c file and call it from here.
	(nwos_write_bit_map): new function created from code taken from the old
	write_bit_map function that writes a bit map to disk.
	(nwos_read_bit_map): new function created from code taken from the old
	read_bit_map_into_cache function that reads a bit map from disk.
	(generate_new_completely_random_id): moved code that looped through the
	chunks to new nwos_find_random_block_in_chunk function in bit_map.c
	file and called it instead.  Renamed 'chunk' local variable to
	'info_index'.
	(nwos_generate_new_closely_spaced_id): moved code that looped through
	a chunk from the end and found where the low density stopped to the new
	nwos_find_low_density_in_chunk function in the bit_map.c file and
	changed to call it.  Moved code that searched for the next empty block
	from the current block to new nwos_find_next_empty_block function in
	the bit_map.c file and called it instead.
	(nwos_generate_new_1_in_N_id): changed to call nwos_test_bit_in_map
	instead of having inline code to do it here.
	* bit_map.c (BIT_MAP_CACHE_SIZE, Bit_Map_Cache_Entry, bit_map_cache)
	(bit_map_tick, bits_in_byte, write_bit_map, read_bit_map_into_cache)
	(find_bit_map_in_cache, nwos_set_bit_in_map, nwos_clear_bit_in_map)
	(nwos_test_bit_in_map, nwos_flush_bit_maps, nwos_block_used): moved
	from disk_io.c file.
	(write_bit_map): moved from the disk_io.c file.  Moved the code that
	writes the bit map to disk to the new nwos_write_bit_map function in
	disk_io.c and called it instead.
	(read_bit_map_into_cache): moved from the disk_io.c file.  Moved code
	that read the bit map from disk to the new nwos_read_bit_map function
	in disk_io.c and called it instead.
	(nwos_find_random_block_in_chunk): new function created with code taken
	from the generate_new_completely_random_id function in the disk_io.c
	file.
	(nwos_find_low_density_in_chunk): new function created with code taken
	from the nwos_generate_new_closely_spaced_id function in the disk_io.c
	file.
	(nwos_find_next_empty_block): new function created with code taken from
	the nwos_generate_new_closely_spaced_id function in the disk_io.c file.
	(nwos_terminate_bit_map): new function created with code taken from the
	nwos_terminate_disk_io function in the disk_io.c file.
	

2009-03-04  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objectify_private (nwos_block_offset_to_chunks, nwos_ref_to_offset):
	added external declarations for.
	* disk_io.c (nwos_hash_uint32_ref, nwos_hash_ref, ref_to_offset): moved
	to the gen_id.c file.
	(nwos_write_block, nwos_remove_object): changed ref_to_offset to
	nwos_ref_to_offset.
	* gen_id.c (nwos_hash_uint32_ref, nwos_hash_ref): moved from the
	disk_io.c file.
	(nwos_ref_to_offset): moved from the disk_io.c file and added _nwos
	prefix.

	* objectify_private (nwos_uint32_ref_to_info_index): added external
	declaration for.
	(nwos_hash_uint32_ref): changed uint32_ref_to_info_index to
	nwos_uint32_ref_to_info_index.
	* disk_io.c (uint32_ref_to_info_index): moved to chunk_info.c.
	* chunk_info.c (nwos_uint32_ref_to_info_index): moved from disk_io.c
	and added nwos_ prefix.

	* Makefile.in (export_c_structs): added chunk_info.c and gen_id.c to
	gcc command.


2009-03-02  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* prep_disk.c (write_chunks): deleted no longer used.
	(main): instead of calling the old write_chunks function changed to
	just write the one chunk the same as the chunk with the header.

	* disk_io.c (nwos_write_empty_chunk): added asserts to make sure it is
	expanding if the archive is in a regular file and NOT past the end of
	the archive if a block device.  Also moved the code to increment the
	total chunks and blocks here, instead of in the caller.
	(nwos_check_blocks_available): moved the code to increment the
	total chunks and blocks to nwos_write_empty_chunk, so every caller
	doesn't have to.
	* chunk_info.c (nwos_allocate_new_chunk): changed so that
	nwos_write_empty_chunk is only called for block devices, it was
	redundant to call it for archives in regular files because it was
	already called by nwos_check_blocks_available to expand the file.
	* expand_sparse.c (main): removed code that incremented the total
	chunks and blocks because now nwos_write_empty_chunk does that.

	* objectify_private.h (nwos_archive_is_block_device)
	(nwos_archive_is_file): added external declarations for.
	* disk_io.c (archive_is_block_device): renamed to
	nwos_archive_is_block_device.
	(archive_is_file): renamed to nwos_archive_is_file.
	(nwos_terminate_disk_io): changed archive_is_file to
	nwos_archive_is_file.
	(nwos_check_blocks_available): changed archive_is_block_device to
	nwos_archive_is_block_device.
	* expand_sparse.c (main): changed so that it only tests for enough
	space on block devices and if stored in a file it expands the file to
	make enough space.


2009-03-01  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.c (nwos_check_blocks_available): replaced inline code that
	expanded a file archive by appending a chunk on the end, with a call to
	nwos_write_empty_chunk.


2009-02-28  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (OBJS): added chunk_info.o.
	* objectify_private.h (nwos_chunk_info): added external declaration for
	because the 'chunk_info' variable was moved from disk_io.c to the new
	chunk_info.c file.
	(nwos_write_empty_chunk): added external declaration for new function
	in disk_io.c that is called from the new chunk_info.c file.
	(nwos_initialize_chunk_info, nwos_update_chunk_info_reverse_index)
	(nwos_terminate_chunk_info, nwos_increment_chunk_info_block_used)
	(nwos_chunk_index_to_info_index, nwos_decrement_chunk_info_block_used)
	(nwos_reset_chunk_info_blocks_used): added external declarations for
	functions moved from disk_io.c to new chunk_info.c file.
	* disk_io.c (chunk_info, chunk_info_reverse_index, chunk_info_modified)
	(chunk_used_index, update_chunk_info_reverse_index): moved to new
	chunk_info.c file.
	(nwos_initialize_disk_io): moved variables and code that dealt with
	chunk_info table to new function (nwos_initialize_chunk_info) in new
	chunk_info.c file.
	(nwos_terminate_disk_io): moved variables and code that dealt with
	chunk_info table to new function (nwos_terminate_chunk_info) in new
	chunk_info.c file.
	(nwos_allocate_new_chunk): moved function to new chunk_info.c file.
	(nwos_write_empty_chunk): new function created from code that
	initialized a chunk taken from the nwos_allocate_new_chunk function
	that was moved to the new chunk_info.c file.
	(uint32_ref_to_info_index, nwos_hash_uint32_ref): changed chunk_info to
	nwos_chunk_info.
	(chunk_index_to_info_index): moved function to new chunk_info.c file.
	(write_bit_map): changed chunk_info to nwos_chunk_info and 
	chunk_index_to_info_index to nwos_chunk_index_to_info_index.  Also took
	code that printed a warning about used block count being wrong and then
	updated it, to a new function (nwos_reset_chunk_info_blocks_used) in
	the new chunk_info.c file.
	(read_bit_map_into_cache): changed chunk_info to nwos_chunk_info and 
	chunk_index_to_info_index to nwos_chunk_index_to_info_index.  Also took
	code that printed a warning about used block count being wrong and then
	updated it, to a new function 'nwos_reset_chunk_info_blocks_used' in
	the new chunk_info.c file.
	(nwos_set_bit_in_map): changed chunk_info to nwos_chunk_info and 
	chunk_index_to_info_index to nwos_chunk_index_to_info_index.  Also took
	code that incremented the chunk_info used block count to a new function
	'nwos_increment_chunk_info_block_used' in the new chunk_info.c file.
	(nwos_clear_bit_in_map): changed chunk_info to nwos_chunk_info and 
	chunk_index_to_info_index to nwos_chunk_index_to_info_index.  Also took
	code that incremented the chunk_info used block count to a new function
	'nwos_decrement_chunk_info_block_used' in the new chunk_info.c file.
	(generate_new_completely_random_id, find_first_low_density_in_chunk)
	(find_starting_chunk, nwos_generate_new_closely_spaced_id)
	(nwos_generate_new_1_in_N_id): changed chunk_info to nwos_chunk_info.
	(nwos_check_blocks_available): added an assert to verify that
	nwos_total_private_chunks and nwos_total_private_blocks are in sync.
	Added code to update the nwos_total_private_blocks when the number of
	chunks is increased.  Changed chunk_info to nwos_chunk_info.
	* chunk_info.c (nwos_chunk_info): moved chunk_info from disk_io.c file
	and renamed to nwos_chunk_info.
	(chunk_info_reverse_index, chunk_used_index)
	(chunk_info_modified): moved from the disk_io.c file.
	(update_chunk_info_reverse_index): moved from the disk_io.c file and
	changed chunk_info to nwos_chunk_info.
	(nwos_initialize_chunk_info): created from code taken from the
	nwos_initialize_disk_io function.  Changed chunk_info to
	nwos_chunk_info.
	(nwos_terminate_chunk_info): created from code taken from the
	nwos_terminate_disk_io function.  Changed chunk_info to
	nwos_chunk_info and added calls to free the memory used by
	nwos_chunk_info, chunk_info_reverse_index, and chunk_used_index.
	(nwos_increment_chunk_info_block_used): new function created from code
	taken from the nwos_set_bit_in_map function in the disk_io.c file.
	(nwos_decrement_chunk_info_block_used): new function created from code
	taken from the nwos_clear_bit_in_map function in the disk_io.c file.
	(nwos_reset_chunk_info_blocks_used): new function created from code
	taken from the write_bit_map and read_bit_map_into_cache functions in
	the disk_io.c file.
	(nwos_chunk_index_to_info_index): moved from the disk_io.c file and
	renamed from chunk_index_to_info_index.
	(nwos_allocate_new_chunk): moved from the disk_io.c file and changed
	chunk_info to nwos_chunk_info.

	* objectify_private.h (nwos_realloc): added external declaration for.
	* objectify.c (nwos_realloc): added new function to reallocate memory
	to change it's size.


2009-02-27  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.c (bool archive_is_block_device): new function that returns
	true if the archive is a block device such as /dev/sda1.
	(archive_is_file): new function that returns true if the archive is a
	normal file (not a block device).
	(nwos_check_blocks_available): changed to expand archive if it is a
	file, not a block device.
	* prep_disc (print_usage): remove specify_private_size parameter, no
	longer needed.
	(convert_size): deleted function, no longer needed.
	(main): Feature Request: #1873009 - changed argument handling to
	eliminate the 'size' parameter.  Changed to just create two chunks,
	one system chunk and one private chunk, when the archive is a file.


2009-02-25  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* disk_io.c (chunk_skip_backward): deleted, wasn't used anywhere.
	(nwos_set_allocation_parameters): removed skip_backward parameter,
	which was not used anywhere.
	(nwos_check_blocks_available): deleted assert that tested the
	chunk_skip_backward variable, which otherwise wasn't used.
	* objectify_private.h (nwos_set_allocation_parameters): removed
	skip_backward parameter, which was not used anywhere.
	* gen_id.c (nwos_set_security_level): deleted skip_backward parameter
	from calls to nwos_set_allocation_parameters because it wasn't used.

	* disk_io.c (generate_new_completely_random_id): deleted the UBPC
	define which was not used anywhere.


2009-02-23  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (OBJS): added gen_id.o.
	* objectify.c (security_level, SECURITY_VERY_LOW_N, SECURITY_LOW_N)
	(SECURITY_MEDIUM_N, SECURITY_HIGH_N, nwos_set_security_level)
	(nwos_generate_new_id): moved to new gen_id.c file.
	* gen_id.c (security_level, SECURITY_VERY_LOW_N, SECURITY_LOW_N)
	(SECURITY_MEDIUM_N, SECURITY_HIGH_N, nwos_set_security_level)
	(nwos_generate_new_id): new file created with constants, variables and
	functions taked from objectify.c.


2009-02-16  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* objectify.c (setup_from_big_key): wrapped entire function with
	#ifndef PUBLIC_MODE so it isn't compiled for public mode programs.
	(nwos_initialize_objectify): moved root_object_ref variable outside of
	#ifdef PUBLIC_MODE because it is used in both public mode and
	non-public modes.


2009-02-01  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Version Alpha_29.8 release.

	* file.c (nwos_restore_file): Fix Bug #2427286 - Checksum error in file
	block.  If there was only one file block and it used the old encryption
	it was calculating the crc32 on the entire block (including the random
	data) instead of just the actual file data.  Changed call to calculate
	crc32 only on the actual file data.

	* file.c (dump_file_block_error): new function to dump information when
	a file block did not decrypt correctly (crc32 error).
	(nwos_restore_file): changed to call new dump_file_block_error function
	when the crc32 checksum doesn't match.  In the case of the first block
	dump the block from both the old and new encryption.


2009-01-31  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* check_files.c (main): added test to verify file object class matches
	the class definition reference list it is in.

	* check_files.c (main): change to check old (001 and 002) file class
	definitions.
	* objectify_private.h (NUM_FILE_CLASS_DEFINITIONS): added define.

	* objectify.c (get_file_references, get_file_001_reference)
	(get_file_002_reference, get_file_class_reference): moved to
	class_definition.c file.
	(nwos_read_object_from_disk): added nwos_ prefix to
	get_file_001_reference and get_file_002_reference calls.
	(nwos_get_object_class):  added nwos_ prefix to get_file_001_reference,
	get_file_002_reference calls and get_file_class_reference.
	* class_definition.c (get_file_references) moved from objectify.c file.
	(nwos_get_file_001_reference, nwos_get_file_002_reference)
	(nwos_get_file_class_reference): moved from class_definition.c file and
	added nwos_ prefix.
	* objectify_private.h (nwos_ready, nwos_get_file_001_reference)
	(nwos_get_file_002_reference, nwos_get_file_class_reference): added
	external declarations for.

	* file.c (nwos_get_disc_list_object_size, nwos_find_disc_list)
	(nwos_read_files_disc_list, nwos_find_matching_disc_list)
	(nwos_create_disc_list, nwos_find_disc_copy, nwos_create_disc_copy)
	(nwos_find_storage_location, nwos_create_storage_location): moved to
	new disc.c file.
	* disc.c (nwos_get_disc_list_object_size, nwos_find_disc_list)
	(nwos_read_files_disc_list, nwos_find_matching_disc_list)
	(nwos_create_disc_list, nwos_find_disc_copy, nwos_create_disc_copy)
	(nwos_find_storage_location, nwos_create_storage_location): moved from
	file.c file.
	* Makefile.in (OBJS): added disc.o.


2009-01-26  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* file.c (nwos_restore_file): changed to allow 'name' parameter to be
	null and still read and verify checksums of file, but not write it to a
	file.
	* export_file.c (main): removed boolean 'result' variable and added
	new 'num_failures' to count the number of files that failed, report
	them at the end, use them for the exit code.
	* check_files.c (main): changed to print file number and added call to
	nwos_restore_file (with a null for the file path) to read and verify
	the file.


2009-01-25  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (PROGS): added check_files.
	(check_files): new target.
	* check_files.c: new program through each file and verify it's data.
	Initial version only prints information, doesn't test file yet.
	* list_files.c: changed to use 'PATH_MAX' define to allocate buffer for
	file path instead of 256.


2009-01-24  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* reference_list.c (verify_last_block_pointer): new static function to
	verify that the calculated data for the last_block pointer is correct.
	Only used when VERIFY_LAST_BLOCK_POINTER is defined, which should only
	be defined for testing.
	(nwos_add_to_reference_list): Fix Bug #2392531 - removed loop that
	previously searched list for the last block and instead use last_block
	pointer in cache.
	(nwos_remove_from_reference_list): added test to verify that last_block
	pointer is correct after reference has been removed from a list.


2009-01-22  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* reference_list.c (Block_Cache): added last_block member to point to
	the last block of a reference list (if more than one block).
	(read_ref_list_into_cache): set new last_block member of cache to null
	if only one block in reference list or to last block if more than one.
	(write_reference_list): added asserts to verify that last_block pointer
	is null if there is only one block and non-null if more than one.  Also
	set the last_block to null when finished writing.
	(nwos_create_reference_list_with_existing_id): set last_block to null.
	(nwos_add_to_reference_list): added asserts to verify last_block is
	correct on entry and update it as necessary.
	(nwos_remove_from_reference_list): added asserts to verify last_block
	is correct on entry and update it as necessary.


2009-01-20 - End of an error! :)  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* INSTALL: updated some statments about the file manipulation programs
	that were incorrect because they way they work has changed since they
	were originally written (and I overlooked fixing them).

	* Makefile.in (PROGS): moved update_files_0028 and remove_file programs
	to new INACTIVE_PROGS.
	(INACTIVE_PROGS): new definition for programs that don't normally need
	to be used.
	(clean): added INACTIVE_PROGS so they are cleaned up too.

	* remove_file.c (main): changed text of warning message and added test
	to see if backup (.dif) files are enabled.  If they are print a message
	about how to disable them and terminate program. (Any .dif file created
	by remove_file will be erroneous because at this time .dif files cannot
	delete blocks, they can only add or change blocks.)
	

2009-01-15  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* progress_bar.c (nwos_update_progress_bar): changed assert so that it
	will allow progress_bar_percent to already be at 102 (it is displaying
	100% already).  Also added test to verify percent passed in is less
	than or equal to 1.0f.


2009-01-02  J. Scott Edwards  <j.scott.edwards.nwos@gmail.com>

	* Makefile.in (PROGS): added new sync_archive program
	* user_config.c (nwos_set_private_objects_path): added a call to
	nwos_get_private_objects_path to make sure the environment variables
	and configuration file is already read before we set the new private
	objects path.  If we didn't do that it would write over the string we
	set here.
	* sync_archive.c (print_usage): changed to have both a source and
	destination argument.
	(main): changed so that it takes both a source and destination archive
	argument instead of using the default archive as the source.


