XTC is a UNIX-based clone of the popular XTree Gold file manager for DOS. It is
currently in development and contains only file and directory manipulation
features. Eventually, many if not all of the features of the original will be
included, including:

File viewer

Text editor

Hex editor

Archive manipulation

Command-line window

On-line help

The latest version of of XTC is version 0.1.9. This is a development
version and is incomplete but functional. Check out the
}README and }ChangeLog for details.

13 April 1999

10 April 1999

I have switched to >majordomo for the mailing list. You can subscribe to it by sending a message to majordomo@area51.org.au with the command "subscribe xtc-devel" in the message body.

6 April 1999

Version 0.1.2 has been released.

31 March 1999

Version 0.1.1 has been released.

Development

Mailing list

There once has been an "XTC development mailing list", regrettably
it's gone in the meantime. It has been alive for about four months between
April and August 1999. However, you can review all the postings right here in
the }XTC development mailing list archive.

Misc. development info

]C. R. Bryan III is working on a
}specification file which describes the operation of XTree Gold. This will help in making sure that the program works and feels just like the original.

Version 1.3a:
* fixed stack underrun in mergesort
* fixed buffer overflow in view
* use automake
* support large file sizes
* license is now BSD
Version 1.2:
* Use --prefix parameter for install directory
* Don't install default config file
Version 1.1:
* Compiles on solaris
Version 1.0 - Release
Version 0.0.3y:
* Fixed bug when doing a blank pipe in the middle of a file
* Fixed bug when using goto command on an empty directory
* Added pipe lines for pod and mpeg/avi files
* Added new file display mode, made it the default
* Frees memory when exiting edit mode
Version 0.0.3x:
* Added hex editor
* Extended regex and ignore case in view search
* Now compiles on FreeBSD (but segfaults)
* Fixed error in help file
* View now handles more diverse bold and underscore forms
* pen now does a iew if there is no external found for that file
* No longer crashes when shrinking window with cursor near bottom
* Improved the way the debug file works
* Files disappear now when renamed to something that doesn't match filespec
* xecute command replaces %c,%t,%s with current, tagged, and shown files
Version 0.0.3w:
* Now defines S_ISVTX if not already defined (helps compile on some systems)
* Fixed warnings where gcc thought some variables would be undefined
* Displays version and date of compilation on banner of config screen
* Fixed bug where tree would look weird when grafting a dir to another depth
* Fixed bug where bytes shown counter was not updated when file sizes changed
* Fixed bug where the tree would sometimes look weird after renaming the
dir on the top of the screen
* Shows "Permission Denied" error when you try to do forbidden ops
Version 0.0.3v:
* Should work on DEC Alpha now
Version 0.0.3u:
* Made (r)estore command work on externals in config mode, also fixed minor
config mode errors
* Made my own cheap snprintf function for systems that lack it
* Disabled regex searching on systems without POSIX regex (will make it
portable to other regex in the future)
* Added "" field if there are no externals in config editor
Version 0.0.3t:
* Improved config mode scrolling, added pgup/pgdn/end keys
* Added ability to edit/add externals in config editor
* Added extended help for command line options
* Fixed bug where entering help mode after a search has been done would crash
* Added invert filespec command
Version 0.0.3s:
* Added regex search to view mode
* Made readln prevlist not contain duplicate entries (if you type something
the same as a previous entry it deletes the old one and puts it at the
bottom of the list)
Version 0.0.3r:
* Added version number to config file
* Filename completion now works on user/group names, and previous readln
entries for misc types
* Up and down arrows now show previous entries in readln
* Fixed several bugs relating to scrolling in view
Version 0.0.3q:
* Added default pipe commands to externals option
* Made it so that if an error occurs in a tag operation the user has to
press a key to continue (instead of the error message just immediately
disappearing once the next file is processed). Also, print the total
number of errors at the end.
* Made chdir command go to closest possible match if dir doesn't exist
* Made goto command not try to go to closest possible match if the list
is not alphasorted (and made it search the right direction if it is
reverse alphasorted)
* Fixed bug where currentnode would be out of sync if a dir other than the
current got logged or restated
* Changed exit() to _exit() in fork()ed functions
* Fixed bug where keyboard input was messed up when you run an external
program more than once (programs would say "stdin: Resource unavailable")
* Fixed bug in data_squishfullname that segfaulted if there were too many ".."
* Fixed bug in mount/umount that relogged the wrong dir
* Added support for multiple pipes
Version 0.0.3p:
* Made externals use filespecs rather than extensions
* Added abort key for comm_runcommand
* Made lxt get rid of child processes correctly in view pipe mode
* Fixed bug that made help mode crash
* Fixed bug where lxt would hang if an external wanted keyboard input (input
in now piped from /dev/null)
* Filename completion now supports filelist type
* Used outofmem command instead of crapout when malloc fails
Version 0.0.3o:
* Made open command run programs in the right directory
* Added pipe mode in viewer
* Added support for bold and underline in viewer
* Added prompt before overwrite in archive command
* Show device type instead of size for block and char special files
Version 0.0.3n:
* Filename completion when tab pressed in readln_read
* Made use of followlinks/followlinkdirs for the statfs and getmntent calls
in the gui_drawstatus function
* Made 'goto dir' command print an error if dir doesn't exist
* Fixed bug where lxt would allow renaming a file to an existing name
* Made statfs look at parent dir of files in gui_drawstatus
* Fixed bug where you could press tab and rename the root directory
* Changed prompt message for grep, made it abort before the prompt if there
are no tagged files
* Made functions use 'const' types
* Cleaned up makefile a bit
Version 0.0.3m:
* Fixed bug where mtab was used instead of fstab in the mount function
* Fixed bug in sort by date (was using ctime instead of mtime)
* Hopefully made getmntent and statvfs functions work under Solaris
* Make use of f_frsize from statvfs if it is available
* Fixed bugs relating to long pathnames
* Fixed bug in updating followlinkdirs from config editor that would leave
the cursor bar on nothing sometimes
Version 0.0.3l:
* Fixed config mode for small screen sizes
* Fixed bug where messages wouldn't display on bottom if something was
already there
* Fixed bug where entering an empty line for a path in readln would often
be interpreted as entering the current directory
* Made defaultreadln support work
* Fixed statlog wrt followlinkdirs updates in config editor
* Made default stropts be in free()able memory
* Fixed some patiencewheel nonsense
* Added savetree and restore option to restore after crash
Version 0.0.3k:
* Completed configuration editor
Version 0.0.3j:
* Started configuration editor
* Added enumeration type for readconfig
* Fixed not-null-terminated errors after strncpy calls
* Fixed off by one errors on PATH_MAX
* Made own scandir and alphasort for systems without these functions
* Added mount/unmount function
Version 0.0.3i:
* Added filespec support
* Changed tag by extension to tag by filespec
* Added three column file mode
* Added symlink function
Version 0.0.3h:
* Added Ctrl-g command to grep all tagged files
* Made a ghetto-rigged vprintf clone for systems that don't have
this function
* Fixed bug where making new dirs while in file mode would crash
* Added Ctrl-a command to chmod all tagged files
* Added Ctrl-o command to chown/chgrp all tagged files
* Added Meta-F to change list format
* Changed st_ctime to st_mtime for dates of files (to make output agree
with ls)
* Made readln handle special chars
Version 0.0.3g:
* Added default externals in readconfig.c
* Started to use autoconf for greater portability
* Crtl-V key in readln to quote next char
Vesrion 0.0.3f:
* Seperated Changes file by minor version letter
* Made readln hide unprintable chars (eventually make it really handle them)
* Added check for no defined command for edit and archive
* Improved error reporting in readconfig.c
* Added \: escape sequence to allow colons in options
* Added meta-o key to open and prompt for keystroke before returning
* Expanded sys-config.h, adding option to disable filesystem stats
Vesrion 0.0.3e:
* Added window resize function for X, doesn't work perfectly yet
* Added -v option to display version and quit
* Added -d option to display config info and quit
* Fixed bug where too long of an option is read as two lines in config file
* Improved handling of filenames that are long or have special chars
* Added invert tag all key
* Changed keys for sortcriteria and showall, added showall in branch
Vesrion 0.0.3d:
* Fixed "Press enter to continue" prompt in comm_runcommand
* Added stropts in readconfig.c to make string options easy
* Added configurable command lines for archive command
Vesrion 0.0.3c:
* Added home/end keys for readln
* Added tag/untag by extension
Vesrion 0.0.3b:
* Added comm_checksame function to compare paths using realpath
Vesrion 0.0.3a:
* Added comm_parsepath function to deal with paths that start with ~
* Made function to do %-sign expansion in configurable command lines
* Fixed bug where new nodes were sometimes not properly initialized
* Old bugs fixed
* New bugs added
Version 0.0.2 (5363 lines):
* Made fancy comm_runcommand function
* Cleaned up and fixed data_chopnode
* Added goto key for file mode
* Made data_clear free memory when nodes are unlogged
* Fixed slowness/memory leak in data_logbranch
* Sped up end button in tree mode
* Sped up toplist function
* Made restatnode update sort when necessary
* Added Meta-D debug key
* Added option to preserve tag status across move
* Fixed bug with renaming dirs
* Fixed bug that made files not show up when moved to root dir
* Added prompt before overwrite in copy/move
* Added autorestat feature
* Added mildbeep function, improved error reporting
* Improved treelines method to eliminate maxdepth limitation
* Improved crapout function
* Added archive command
* Added delete branch command
* Added move branch command
* Added execute command
* Added tag command for directories
* Added horizontal scroll in tree mode
* Fixed bug involving restating links to dirs
* Made ^G abort logging
* Added files/bytes shown display for dir mode
* Removed some duplicate screen redraws
* Made view display the weird chars, and also not display ^M in text mode
* Added log branch function
* Fixed bugs that made screen mess up with new ncurses
* Added goto key for tree mode
* Added animated logging
* Made findfree function much faster
* Make stuff show up on black and white displays
* Added relog key
* Added file stats on upper right screen
* Added scroll feature in help mode
* Added left/right keys in tree mode
* Added sort criteria
* Rewrote code to allow showall/branch/tagged modes
* Added tagged file commands
* Disabled 'nolag' option
* Displays dir name on bottom of screen in tree mode
* Displays version on top of screen in help mode
* Fixed bug that messed things up when the file on the top of the screen
was deleted
* Fixed bug where you couldn't scroll up to the first file in file mode
* Fixed bug that showed up in filenames that contain a percent sign
* Added move function
* Added "no files" message for dirs with no files
* Misc other features
* Old bugs fixed
* New bugs added
Version 0.0.1 (3024 lines):
Original.

Utree is a screen oriented filesystem utility for navigation thru fileystems
and doing some default and user defined commands on directories and files.

For usage and documentation see the |manual pages utree and utree.prlist.

For copyright notice, warranty and distribution conditions see }COPYRIGHT.

Utree is first implemented and tested on a PCS CADMUS 9230 (Motorola MC68010)
running MUNIX V.2/07 (System V.2) and then ported to, compiled and tested on
some others machines running UNIX System V.3, BSD4.2 and BSD4.3 or look alikes.
The release utree 3.03-um is developed on a MIPS RC3230 running RISC/os 4.51.

Last updated 09-07-08
---
XTree and XTreeGold are registered trademarks of Symantec Inc.
Windows and Windows95 are registered trademarks of Microsoft Corporation.
Other brands and products are trademarks of their respective holders.