2002-12-02  Love  <lha@stacken.kth.se>

	* Pulled over from current (up to tag current-2002-12-02)

2002-10-25  Alexander Bostrom  <abo@e.kth.se>

	* themis.c:
	Get rid of error message "Cannot X/N a file in nonexistent dir":

	(getfsnode): Initialize node type to TYPE_NONE instead of 0.
	(process): Call getfsnode() for all ancestors of the new node.
	Allow N and X node whose parents do not have a specified type.
	(tree_iter): Allow specifying a function to call when leaving
	a subtree.
	(package_print): Ignore nodes of type TYPE_NONE.
	(update): Call create_path() on nodes of type TYPE_N if the
	file exists.
	(readfile): Call cleandir last, when leaving a subtree.

2002-10-20  Love  <lha@stacken.kth.se>

	* themis.c: make readlink take size(buf) - 1 make readlink_rel
	DTRT so we don't need to care use strcspn after fgets
	
2002-10-15  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (removenode_func): don't pass struct treenode to
	removefile, it should be a struct stat

2002-09-08  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.h: Include sys/mkdev.h if it exists

2002-07-22  Love  <lha@stacken.kth.se>

	* themis.c (change_flags): New function, try to remove flags from
	file Use lchflags if there is one. Otherwise if there if chflags,
	check if there is a symlink before using chflags on it. If there
	isn't any chflags at all, just be a not function.
	(*): use change_flags

2002-07-20  Love  <lha@stacken.kth.se>

	* unthemis.c: add --prefix, prefix for all destinations
	* unthemis.c: add --no-topdir, add srcdir for files
	
2002-07-18  Love  <lha@stacken.kth.se>

	* unthemis.c: unthemis, finds the disorder so we can keep it

	* themis.c: clean up code, replace assert with err, remove unused
	stuff add support for TYPE_B and TYPE_C
	
	* *.[ch]: break out stuff that is shared
	
2002-07-11  Love  <lha@stacken.kth.se>

	* themis.c (rename_rel): if we failed to rename the file to the
	new name, unlink the old file (that is mv foo.new foo || rm
	foo.new)

	* Makefile.in: THEMIS_.* += dir.[co]

	* themis.c: if there is a chflags function change flags when
	needed (unlink/rename)
	unified readdir stuff
	
	* dir.c: directory iteration function
	
2002-07-02  Alexander Bostrom  <abo@e.kth.se>

	* themis.c (create_path): Fixed typo in field name.

2002-05-10  Love  <lha@stacken.kth.se>

	* themis.c (srcreaddir): if directory is un-opendir()able,
	complain and continue
	
	example: T /usr ${system}, with ${system}/foo (D) is unreadable

2002-05-07  Love  <lha@stacken.kth.se>

	* themis.1: document that --macosx excludes ._* files
	
2002-04-30  Love  <lha@stacken.kth.se>

	* themis.1: manpage
	
	* Makefile.in: themis don't depend on roken if there isn't any
	roken to depend on

2002-02-20  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c (removedir) we shouldn't rewind dir if we are in
	no-update-mode
	* themis.c: implemented --would-reboot
	(samelink) print reason for update if link differs

2002-02-18  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Implement (M)odify directive

2002-02-14  Mattias Amnefelt  <mattiasa@e.kth.se>

	* Made --no-update work

2002-02-12  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c: added typecasts to get rid of warnings
	(readfile): check if we could open outfile for writing

2002-02-11  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c: update(): break if default type (just so picky
	compilers won't complain)

2002-02-11  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (update): call setogm with NULL when overwriting file

2001-12-06  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (removefile): hopefully more correct directory
	traversal

2001-12-04  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (copy_metadata): do not copy metadata if no metadata
	src

	* themis.c (update): don't use statinfo for D nodes when old file
	was not a directory

	* themis.c (update): don't use statinfo for D nodes when file
	doesn't exist

2001-11-13  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (setogm): Always set owner, group, mode when stat info
	is missing

2001-10-10  Alexander Bostrom  <abo@e.kth.se>

	* themis.c (process): 
	Let it be an error to X /some/path/some-file if /some/path doesn't
	exist, instead of bugging out with cryptic message later on.

2001-09-19  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: isblank doesn't exist on solaris, use isspace

2001-09-18  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c (traverse) test if stat returned ok

2001-08-30  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c: change exitcode when updating file with Q

2001-08-26  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Added Mac OS X type/creator/flags setting for
	directories. Still problems left.

2001-08-23  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* macosx.c (macosx_put_resource): Don't overwrite length
	* macosx.c (set_finder_info): Rename to
	macosx_put_metadata_syscall and restructure
	* macosx.c (macosx_get_metadata_file): Handle error from
	* macosx.c open_rsrc_file correctly
	* macosx.c (macosx_get_resource): Follow pointer
	* macosx.c (copyfile_macosx): Fix resource handling
	* themis.c (samefile): check macosx specific things
	* themis.c (copyfile): copy macosx things to .new file
	* macosx.c: Restructure
	* macosx.h: Added macosx_get_metadata

2001-08-19  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* macosx.c: Added copy_resource
	* Makefile.in: Added macosx.c
	* themis.c: Added Mac OS X support
	* themis.h: Added
	* macosx.[ch]: Mac OS X ._ file support

2001-08-17  Alexander Bostrom  <abo@e.kth.se>

	* themis.c (update): assert() that links have FLAG_ABS.
	* themis.c (traverse): Properly reset linkdata in reused fsnodes.
	* themis.c (package_print): assert() that links have FLAG_ABS.
	* themis.c (package_print): Print owner, group and mode on
	                            directories, files and symlinks.

2001-08-16  Alexander Bostrom  <abo@e.kth.se>

	* themis.c: Rename 'packageout' option to 'out'.
	* themis.c (traverse): Properly propagate FLAG_CLEAN to subdirs.
	* themis.c (traverse): Properly propagate FLAG_REBOOT, FLAG_NOOVERWRITE
	                       and FLAG_RENAMEOLD to files and symlinks.
	* themis.c (needs_quotes): added
	* themis.c (package_print): Handle all cases correctly.
	                            Quote some strings.

2001-08-16  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Added --progress flag.
	* themis.c: Added --root option.

2001-08-15  Alexander Bostrom  <abo@e.kth.se>

	* themis.c: Update, cleandir and package_print in one pass.
	* themis.c: Get linkdata higher prio than src in fsnodes.

2001-08-15  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Partly print reason for replacing file. Implement the
	no-overwrite flag.

2001-07-23  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Move source-relative path resolving to
	absolute_srcpath
	* themis.c (parseflags): Handle X flag and print lineno

2001-08-07  Alexander Bostrom  <abo@e.kth.se>

	* themis.c (package_print): Write to the correct file.

2001-07-22  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (gettreenode): return NULL at relative paths
	* themis.c (getfsnode): pass NULL pointer upwards
	* themis.c (getsrcnode): pass NULL pointer upwards
	* themis.c (process): Take lineno argument. Print error message on
	NULL node.
	* themis.c (readfile): pass lineno to process

	* themis.c: Remove MAXNAMELEN
	* themis.c (tokenize): cast argument to isspace
	* themis.c (setogm): cast printf arguments

2001-07-18  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (copyfile_real): Handle zero byte files and munmap.
	* themis.c: Added --no-check-owner flag
	* themis.c (samefile): Compare the right values

2001-07-17  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c (cleandir): Handle failing opendir
	* themis.c: Implemented removefile, copyfile_real, copyfile,
	createlink and makedir.
	* themis.c: Added lookup_nocreate.
	* themis.c: (update): Added support for type X
	* themis.c: Added cleandir.
	* themis.c: Added getarg
	* themis.c (exclude_check): Don't send FNM_PERIOD to fnmatch()
	* themis.c: Added support for "exclude" statement
	* themis.c (traverse): Do fsclearogm
	* themis.c: Added linkdata field to fsnode.
	* themis.c (fssetgroup): Added special case for "wheel"
	* themis.c (process): Handle TYPE_L separately
	* themis.c (update): Rewrite

2001-07-17  Alexander Bostrom  <abo@e.kth.se>

	* themis.c (package_print): remove stupid assert().
	* themis.c: Added typeflags2string().
	* themis.c (lookup): Also check end of node name.
	* themis.c (traverse): Set FLAG_ABS of new children.
	* themis.c (process): Set FLAG_ABS of files.
	* themis.c (packager_print): Better typeflag handling.

2001-07-16  Magnus Ahltorp  <ahltorp@nada.kth.se>

	* themis.c: Moved create_path, traverse, expandtraversal and
	expandtraversalpath.

	* themis.c: Warn and handle failed stats

	* themis.c: (expandtraversal): return if no fs node
	(update): Handle directories. Added makedir and getstatinfo

	* themis.c: Always use TYPE_D as type in fsnode instead of TYPE_T
	Added modevalidp to fsnode Added fsclearogm

2001-07-16  Alexander Bostrom  <abo@e.kth.se>

	* themis.c: Added RCSID.
	* themis.c: Reverted expandtraversal() to not walk the path
	  to root.
	* themis.c: Added expandtraversalpath().
	* themis.c: Added create_path().
	* themis.c: Call expandtraversalpath() and create_path() in
	  process().
	* themis.c: Call expandtraversal() in package_print() and
	  pretty_print().
	* themis.c: Don't use update(), not needed.

2001-07-15  Mattias Amnefelt  <mattiasa@e.kth.se>

	* themis.c: changed parsing of owner, group, mode info
	(traverse): added IS_LNK()
	* themis.c (expandtraversal): expand traversals of all parents,
	  beginning with the root
	  themis.c (process): call expandtraversal
	* themis.c: moved traversal expansion into function
	* themis.c: first version of a package_print

2001-07-15  Alexander Bostrom  <abo@e.kth.se>

	* appl/themis/themis.c: 
	Added incomplete traverse source tree function.
	getfsnode and getsrcnode now takes only a treenode as argument.
	fssettypeflags added.
	Added function to read a directory and expand the source tree.
	Added next pointer in struct traversal.

2001-07-14  Love  <lha@stacken.kth.se>

	* appl/themis/themis.c (readfile): tell what file we couldn't open
	kill -Wall warnings, create a usage() function, use
	set_progname/get_progname
