Newsgroups: comp.sources.unix From: klin@iat.uni-paderborn.de (Peter Klingebiel) Subject: v26i065: utree - screen oriented filesystem utility (V3.03b-um), Part02/08 Sender: unix-sources-moderator@pa.dec.com Approved: vixie@pa.dec.com Submitted-By: klin@iat.uni-paderborn.de (Peter Klingebiel) Posting-Number: Volume 26, Issue 65 Archive-Name: utree/part02 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh 'CHANGES' <<'END_OF_FILE' X X UTREE - screen oriented filesystem utility X CHANGES, klin, Fri Mar 6 07:26:25 1992 X X------------------------------------------------------------------------------ X utree 3.00-um X - Apr 20 1991, klin X Initial version 3.00-um for distribution X - May 5 1991, klin X Minor bug fixes and extensions X utree 3.01-um X - Jun 4 1991, klin X Z-command for zooming filelist/files in/out added X - Oct 7 1991, klin X File size patterns =!<> added, time patterns changed to from <> to () X Bug in putchar() deleted X Minor changes in screen handling X - Oct 15 1991, klin X Handling of symbolic links changed X Option -L for following symbolic links added X Option -f lst for building the tree from list file lst added X - Oct 26 1991, klin X Marking directories changed X Sorting/zooming filelists on tree screen changed X Copying and moving files changed (select directory) X Select directory added X Some more minor changes in functions X Print formatted tree list added X Filter utree.prlist for printing formatted tree list files created X utree 3.02-um X - Nov 1 1991, klin X Screen layout changed X Goto parent directory on tree screen (<-command) added X Option -u changed to -n (no scan tree) X Option -u added (update file lists in tree) X Stuff for APOLLO node names added X Bug in calling editor in empty directory deleted X Other minor changes X - Nov 10 1991, klin X Functions key handling changed (typedef kchar and ksymbol) X Reading list files changed for handling relative given pathnames X Postscript driver for utree.prlist X Utree.backup.sh and utree.mklist.sh extended X - Nov 24 1991, klin X Some error fixes and extensions for XENIX reported and done by X Rolf Gebhardt (Nov 22 1991) X Change to current directory list for some commands on tree screen X Video attributes changed X utree 3.03-um X - Feb 11 1992, klin X Shell screen put into own module hist.[ch] and command history added X Status screen put into own module stat.c X Generic list type glist for using from within line editor added X Most list types changed for using of the generic list type glist X Lineeditor extended for using of generic lists X Handling of variables and filetype command changed X - Feb 15 1992, klin X Video handling and meaning of option -v changed X Display attributes and user customizable video mode flag added X Partinioning of directory and file window on tree screen changed X Option -p for tree screen partitioning added X Variables VIDEOMODE and FILELINES added X - Feb 22 1992, klin X Some commands on tree changed to work on current directory or subtree X or tagged files dependent on command letter entered in lowercase or X uppercase letter. The commands working on current directory/subtree X are: f/F=find, g/G=grep, n/N=sort, t/T=tag, u/U=untag, z/Z=zoom. X The commands working on current directory/tagged files are: X b/B=backup, c/C=change/copy, l,L=list, m/M=mkdir/move, r/R=remove. X Formatcharacters %H and %R for home and root directory added X - Feb 22 1992, klin X Many commands on tree changed to handle current directory or subtree X (find, grep, sort, tag, untag, zoom) or tagged files in subtree X (backup, copy, list, move, remove) dependent if command letter is X entered in upper or lower case (like commands on file screen) X - Feb 23 1992, klin X Key handling changed. Bindings screen and user customizable and X definable key bindings added. Key bindings from statically defined X bindings to default bindings changed which are bound at startup. X User defined key bindings can be done at startup in terminal X dependent binding files or at run time on the bindings screen. X Variable HISTSIZE (settable at startup only) added. X Save variables, commands, history and key bindings if there were X any changes and if the new variable AUTOSAVE is set to ON. X Command line option -o for omitting saving changes added X - Mar 6 1992, klin X Some minor changes before distribution X END_OF_FILE if test 4308 -ne `wc -c <'CHANGES'`; then echo shar: \"'CHANGES'\" unpacked with wrong size! fi # end of 'CHANGES' fi if test -f 'COPYRIGHT' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'COPYRIGHT'\" else echo shar: Extracting \"'COPYRIGHT'\" \(5309 characters\) sed "s/^X//" >'COPYRIGHT' <<'END_OF_FILE' X X UTREE - screen oriented filesystem utility X COPYRIGHT and distribution notice, klin, Sun Feb 16 16:28:43 1992 X X------------------------------------------------------------------------------ X X UTREE version 3.03-um X Copyright (c) 1991/92 Peter Klingebiel & UNIX Magazin X All rights reserved. X X------------------------------------------------------------------------------ X Remember, you get what you pay for. The author and UNIX Magazin are not liable for any bugs or consequential damages arising from the use of this software. However, they may fix bugs if they are asked nicely. X X------------------------------------------------------------------------------ X X *** NO WARRANTY *** X BECAUSE THIS PROGRAM IS LICENSED FREE OF CHARGE, THE AUTHOR AND UNIX MAGAZIN PROVIDE ABSOLUTELY NO WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING, THE AUTHORS AND/OR OTHER PARTIES PROVIDE THIS PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER XEXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. X IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL THE AUTHORS AND/OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THIS PROGRAM BE LIABLE TO YOU XFOR DAMAGES, INCLUDING ANY LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE X(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS) THIS PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY. X X------------------------------------------------------------------------------ X X *** GENERAL PUBLIC LICENSE TO COPY *** X X1. You may copy and distribute verbatim copies of this program as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy a valid copyright notice, X X "Copyright (c) 1991 Peter Klingebiel & UNIX Magazin" X and include following the copyright notice a verbatim copy of the above disclaimer of warranty and of this License. You may charge a distribution fee for the physical act of transferring a copy. X X2. You may modify your copy or copies of this source file or any portion of it, and copy and distribute such modifications under the terms of Paragraph 1 above, provided that you also do the following: X X a) cause the modified files to carry prominent notices stating that you X changed the files and the date of any change, and X X b) cause the whole of any work that you distribute or publish, that in X whole or in part contains or is a derivative of this program or any part X thereof, to be licensed at no charge to all third parties on terms X identical to those contained in this License Agreement (except that you X may choose to grant more extensive warranty protection to third parties, X at your option). X X c) You may charge a distribution fee for the physical act of transferring X a copy, and you may at your option offer warranty protection in X exchange for a fee. X X3. You may copy and distribute this program or any portion of it in compiled, executable or object code form under the terms of Paragraphs 1 and 2 above provided that you do the following: X X a) cause each such copy to be accompanied by the corresponding X machine-readable source code, which must be distributed under the terms X of Paragraphs 1 and 2 above, or X X b) cause each such copy to be accompanied by a written offer, with no time X limit, to give any third party free (except possibly for a nominal X shipping charge) a machine readable copy of the corresponding source X code, to be distributed under the terms of Paragraphs 1 and 2 above, or X X c) in the case of a recipient of this program in compiled, executable or X object code form (without the corresponding source code), you shall X cause copies you distribute to be accompanied by a copy of the written X offer of source code which you received along with the copy you received. X X4. You may not copy, sublicense, distribute or transfer this program except as expressly provided under this License Agreement. Any attempt otherwise to copy, sublicense, distribute or transfer this program is void and your rights to use the program under this License Agreement shall be automatically terminated. However, parties who have received computer software programs from you with this License Agreement will not have their licenses terminated so long as such parties remain in full compliance. X X------------------------------------------------------------------------------ X In other words, you are welcome to use, share and improve this program. You are forbidden to forbid anyone else to use, share and improve what you give them. Help stamp out software-hoarding! X X------------------------------------------------------------------------------ X END_OF_FILE if test 5309 -ne `wc -c <'COPYRIGHT'`; then echo shar: \"'COPYRIGHT'\" unpacked with wrong size! fi # end of 'COPYRIGHT' fi if test -f 'MANIFEST' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'MANIFEST'\" else echo shar: Extracting \"'MANIFEST'\" \(5433 characters\) sed "s/^X//" >'MANIFEST' <<'END_OF_FILE' X X UTREE 3.03-um - screen oriented filesystem utility X MANIFEST, klin, Sun Feb 23 23:55:21 1992 X X------------------------------------------------------------------------------ X X bin - Utree executable directory X doc - Utree manual pages X lib - Utree library files X src - Utree source directory X sup - Additional support routines from PD X sys - Some system dependent make and conf files X tst - Some simple test programs for configuration X X README - Readme first X MANIFEST - This file X COPYRIGHT - Copyright and distribution notice X CHANGES - Changes since utree version 3.00-um X TODO - Ideas for further extensions X Makefile - Makefile for exes, manual and installation X X src/Makefile - Makefile for utree executable X src/cmds.h - Command definitions X src/conf.h - System dependent definitions X src/defs.h - General definitions X src/help.h - Help page definitions X src/hist.h - Shell execution and history definitions X src/keys.h - Keyboard and key definitions X src/list.h - Tree and file list definitions X src/term.h - Terminal and screen definitions X src/vars.h - Variable definitions X src/bind.c - Key binding routines X src/comm.c - Common commands for tree and file screen X src/echo.c - Utree input and output routines X src/edit.c - Line editor X src/file.c - File screen menu and functions X src/help.c - Help page menu and functions X src/hist.c - Shell execution and command history X src/list.c - Directory and file list handling X src/main.c - Main routine X src/stat.c - File status functions X src/term.c - Tty and screen handling X src/tree.c - Directory tree screen menu and functions X src/util.c - Utility routines X src/vars.c - Utree variable routines X src/vers.c - Utree version and history X src/utree.prlist.c - Filter for formatted tree list files X X bin/utree.backup - Example backup shell script (SYSV) X bin/utree.mklist - Example create tree list shell script X bin/utree.mklist2 - Alternate utree.mklist from R. Gebhardt X bin/qtree - Shell script for quick startup X bin/xtree - Shell script for running utree in xterm X X lib/utree.help - Utree help pages X lib/utree.binding - Example keybinding file ($HOME/.utree-term) X lib/utree.startup - Example startup file ($HOME/.utree) X X doc/utree.1 - Manual page for utree X doc/utree.prlist.1 - Manual page for utree.prlist X X sup/README - Readme for varargs v[fs]printf X sup/getopt.c - PD command line option parser getopt(3) X sup/vsprintf.c - PD varargs sprintf(3) X sup/vfprintf.c - PD varargs fprintf(3) (not used by utree) X X sys/Makefile.286 - UNIX V/286 compatible (MSC on SCO UNIX/386) X sys/conf.h.286 X sys/Makefile.AIX - AIX 3.1 (IBM RS/6000) X sys/conf.h.AIX X sys/Makefile.APP - DomainIX 9.5 (BSD4.2 and SystemV) X sys/conf.h.APP Siemens WS30/360, Apollo Domain DN4500 X sys/Makefile.BSD - BSD 4.2/4.3 (Generic) X sys/conf.h.BSD X sys/Makefile.CON - ConvexOS 8.1 (Convex C120) X sys/conf.h.CON X sys/Makefile.M16 - MUNIX V2/07 (PCS Cadmus 9230, MC68010) X sys/conf.h.M16 X sys/Makefile.M32 - MUNIX V3M3.2 (PCS Cadmus 9600, MC68020) X sys/conf.h.M32 X sys/Makefile.MIPS - RISC/os 4.51 (MIPS RC3230, R3000) X sys/conf.h.MIPS X sys/Makefile.RCU - MUNIX V3R3.2 (PCS Cadmus 9900, MIPS R[23]000) X sys/conf.h.RCU derived from MIPS RISC/os 4.00 X sys/Makefile.SCO - SCO UNIX System V/386 3.2 X sys/conf.h.SCO X sys/Makefile.SEQ - Dynix i386 (Sequent Symmetrie) X sys/conf.h.SEQ X sys/Makefile.SGI - IRIX V.3.2 (Silicon Graphics) X sys/conf.h.SGI X sys/Makefile.SUN - SunOS 4.1.x (SUN4, SPARC) X sys/conf.h.SUN X sys/Makefile.ULT - Ultrix-32 3.1 (DECstation, VAXstation) X sys/conf.h.ULT X sys/Makefile.V.2 - System V.2 (Generic) X sys/conf.h.V.2 X sys/Makefile.V.3 - System V.3 (Generic) X sys/conf.h.V.3 X sys/Makefile.VAX - 4.3 BSD UNIX (DEC VAX/750) X sys/conf.h.VAX X sys/Makefile.X23 - SCO XENIX SysV 2.3.2 386GT X sys/conf.h.X23 X X tst/fionread.c - Test ioctl(FIONREAD) X tst/sigwinch.c - Test signal SIGWINCH and ioctl(TIOCGWINSZ) X after resizing a terminal window under X. X X------------------------------------------------------------------------------ X END_OF_FILE if test 5433 -ne `wc -c <'MANIFEST'`; then echo shar: \"'MANIFEST'\" unpacked with wrong size! fi # end of 'MANIFEST' fi if test -f 'Makefile' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'Makefile'\" else echo shar: Extracting \"'Makefile'\" \(5083 characters\) sed "s/^X//" >'Makefile' <<'END_OF_FILE' X# X# Makefile for UTREE 3.03-um X# klin, Sun Feb 16 16:35:52 1992 X# X# Steps to create an utree executable: X# - First check src/Makefile if all definitions are correct for X# your system. There are some Makefiles for SYSV.2, SYSV.3 and X# BSD. Check and change the correct Makefile for your system and X# copy it to Makefile. X# - Then check src/conf.h if all definitions are correct for X# your system. There are some conf.h for SYSV.2, SYSV.3 and X# BSD. Check and change the correct conf.h for your system and X# copy it to conf.h. X# - Call make or make utree to create utree. The executable X# is written into the bin directory. Test utree. X# X# Steps to create utree man page: X# - Check all manual definitions in this Makefile and change them if X# needed. X# - Call make man to create the utree manual page if your X# systems needs formatted and/or packed manual pages. X# X# Steps to install utree: X# - Check all install definitions in this Makefile and change them if X# needed. X# - Call make install to install utree executables and manual X# page (you must be super user to do this). X# X X# --------------------------------------------------------------------- # X X# Utree executables X# The utree utility UTREE=utree X# The tree list formatter UTPRL=utree.prlist X X# Utree support shell scripts UHELP= utree.help # Utree help pages UBACK= utree.backup # Utree backup shell script ULIST= utree.mklist # Create directory lists for quicker startup X UTMAN= utree.1 # Utree man page UPMAN= utree.prlist.1 # Utree.prlist man page X X# --------------------------------------------------------------------- # X X# Create utree executable X all: $(UTREE) $(UTPRL) X clean: clean.real X ( cd src; make -f ../Makefile clean.real ) X ( cd bin; make -f ../Makefile clean.real ) X clean.real: X -rm -f *.o *.BAK *.CKP *~ X -rm -f core $(UTREE) $(UTPRL) X X# Compile and link utree executables X$(UTREE): X @echo "Make $(UTREE)" X cd src; make $@ X X$(UTPRL): X @echo "Make $(UTPRL)" X cd src; make $@ X X# Strip off symbols strip: X @echo "Make stripped $(UTREE)" X cd src; make $@ X X# --------------------------------------------------------------------- # X X# Utree manual pages. Edit and change the following lines if needed! X X# Commands needed for utree manual page TBL= tbl NROFF= nroff CP= cp RM= rm PACK= pack COMP= compress X man: X# Unformatted manual pages X $(CP) doc/utree.m doc/$(UTMAN).1 X $(CP) doc/utree.prlist.m doc/$(UPMAN).1 X# Formatted manual pages X# $(TBL) doc/utree.m | $(NROFF) -man > doc/$(UTMAN) X# $(TBL) doc/utree.prlist.m | $(NROFF) -man > doc/$(UPMAN) X# Packed formatted manual pages X# $(RM) -f doc/$(UTMAN).z doc/$(UPMAN).z X# $(PACK) doc/$(UTMAN) doc/$(UPMAN) X# Compressed formatted manual pages X# $(RM) -f doc/$(UTMAN).Z doc/$(UPMAN).Z X# $(COMP) doc/$(UTMAN) doc/$(UPMAN) X X# --------------------------------------------------------------------- # X X# Install utree. Change the following lines if needed! X# WARNING: You must be super user to do this! X X# Bin, lib and man directories for utree files BINDIR= /usr/local/bin LIBDIR= /usr/local/lib MANDIR= /usr/local/man/man1 X#MANDIR= /usr/local/man/cat1 X X# Commands needed for installation of utree files CHMOD= chmod CHOWN= chown CHGRP= chgrp MKDIR= mkdir -p X X# Access modes and owner/group of utree binaries, help and man pages XXMODE= 0755 RMODE= 0644 OWNER= bin GROUP= bin X X# Sorry, not all UNIXes have the (BSD) install utility! install: X @echo "Install $(UTREE)" X -test -d $(BINDIR) || $(MKDIR) $(BINDIR) X -test -d $(LIBDIR) || $(MKDIR) $(LIBDIR) X -test -d $(MANDIR) || $(MKDIR) $(MANDIR) X $(CP) bin/$(UTREE) $(BINDIR) X $(CHMOD) $(XMODE) $(BINDIR)/$(UTREE) X $(CHOWN) $(OWNER) $(BINDIR)/$(UTREE) X $(CHGRP) $(GROUP) $(BINDIR)/$(UTREE) X @echo "Install $(UTPRL)" X $(CP) bin/$(UTPRL) $(BINDIR) X $(CHMOD) $(XMODE) $(BINDIR)/$(UTPRL) X $(CHOWN) $(OWNER) $(BINDIR)/$(UTPRL) X $(CHGRP) $(GROUP) $(BINDIR)/$(UTPRL) X @echo "Install $(UHELP) in $(LIBDIR)" X $(CP) lib/$(UHELP) $(LIBDIR) X $(CHMOD) $(RMODE) $(LIBDIR)/$(UHELP) X $(CHOWN) $(OWNER) $(LIBDIR)/$(UHELP) X $(CHGRP) $(GROUP) $(LIBDIR)/$(UHELP) X @echo "Install $(UBACK) in $(BINDIR)" X $(CP) bin/$(UBACK) $(BINDIR) X $(CHMOD) $(XMODE) $(BINDIR)/$(UBACK) X $(CHOWN) $(OWNER) $(BINDIR)/$(UBACK) X $(CHGRP) $(GROUP) $(BINDIR)/$(UBACK) X @echo "Install $(ULIST) in $(BINDIR)" X $(CP) bin/$(ULIST) $(BINDIR) X $(CHMOD) $(XMODE) $(BINDIR)/$(ULIST) X $(CHOWN) $(OWNER) $(BINDIR)/$(ULIST) X $(CHGRP) $(GROUP) $(BINDIR)/$(ULIST) X @echo "Install $(UTMAN) $(UPMAN) in $(MANDIR)" X $(CP) doc/$(UTMAN) doc/$(UPMAN) $(MANDIR) X $(CHMOD) $(RMODE) $(MANDIR)/$(UTMAN) $(MANDIR)/$(UPMAN) X $(CHOWN) $(OWNER) $(MANDIR)/$(UTMAN) $(MANDIR)/$(UPMAN) X $(CHGRP) $(GROUP) $(MANDIR)/$(UTMAN) $(MANDIR)/$(UPMAN) X X# --------------------------------------------------------------------- # X END_OF_FILE if test 5083 -ne `wc -c <'Makefile'`; then echo shar: \"'Makefile'\" unpacked with wrong size! fi # end of 'Makefile' fi if test -f 'bin/utree.mklist2' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'bin/utree.mklist2'\" else echo shar: Extracting \"'bin/utree.mklist2'\" \(2580 characters\) sed "s/^X//" >'bin/utree.mklist2' <<'END_OF_FILE' X: X# UTREE.MKLIST.SH X# UTREE create tree directory list for quicker startup X# 3.00-um klin, Sat Apr 20 11:27:17 1991 X# Usage: utree.mklist [-a] X# Options: -a Read in all (including hidden) directories X# Directory: /usr/local/bin X# X# Copyright (c) 1991 by Peter Klingebiel & UNIX Magazin Muenchen. X# For copying and distribution information see the file COPYRIGHT. X# X# SCCSID=@(#) utree.mklist.sh (utree 3.00-um) Apr 20 1991 X# X# X# Introduction of sort fields by Rolf Gebhardt X# X# avoids funny sort orders, e.g. X# X# /u/user/utree/utree.um X# /u/user/utree/utree.um.1 X# /u/user/utree/utree.um.1/bin X# /u/user/utree/utree.um.1/doc X# /u/user/utree/utree.um/bin X# /u/user/utree/utree.um/doc X# X# the right sort order, which represents the directory-tree, is X# X# /u/user/utree/utree.um X# /u/user/utree/utree.um/bin X# /u/user/utree/utree.um/doc X# /u/user/utree/utree.um.1 X# /u/user/utree/utree.um.1/bin X# /u/user/utree/utree.um.1/doc X# X# X# LIST=$HOME/.utreelist # List file XFIELDS="" # Sort Field List generated below X # dependent on number of directory levels X if test $# -eq 0 # Check option then X AFLAG= elif test $# -eq 1 -a "$1" = "-a" then X AFLAG=-a else X echo "Usage: utree.mklist [-a]" X exit 1 fi X X # count the number of directory levels X # (to do it with 'awk' would be more elegant, but the method X # used here is faster than 'awk') X # X # e.g. for '/u/user/wrk/bin/xxx' we get 5 slashes plus one \n, X # so 'wc' returns 6 X # the number of fields to sort is 5 X # sort field 0 is always empty X nofields=`find $HOME -type d -print | tr -cd "\012/" |\ X sort -r | head -1 | wc -c | tr -d "\040\011"` nofields=`expr $nofields - 1` X X # (debug statement) X # echo "nofields = $nofields" X # X # generate the sort-fields parameter for 'sort' X # X while [ $nofields -gt 1 ] do X FIELDS="-$nofields +$nofields $FIELDS" X nofields=`expr $nofields - 1` done X XFIELDS="+1 $FIELDS" X X # (debug statements) X # echo "fields: $FIELDS" X # exit X echo "# utree tree list created at `date`" >$LIST if test "$AFLAG" = "-a" then X find $HOME -type d -print | sort -t/ $FIELDS >>$LIST else X find $HOME -type d -print | grep -v "/\." | sort -t/ $FIELDS >>$LIST fi exit 0 X END_OF_FILE if test 2580 -ne `wc -c <'bin/utree.mklist2'`; then echo shar: \"'bin/utree.mklist2'\" unpacked with wrong size! fi chmod +x 'bin/utree.mklist2' # end of 'bin/utree.mklist2' fi if test -f 'src/cmds.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/cmds.h'\" else echo shar: Extracting \"'src/cmds.h'\" \(2610 characters\) sed "s/^X//" >'src/cmds.h' <<'END_OF_FILE' X/* X * CMDS.H X * UTREE system command and filename definitions. X * 3.03-um klin, Tue Feb 11 19:23:58 1992, Splitted from conf.h X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_cmds[] = "@(#) utree 3.03-um (klin) Feb 11 1992 cmds.h"; X#endif /* _MAIN_ && !lint */ X X/* X * SOME DEFAULT SYSTEM COMMANDS. X */ X X/* May be overriden by environment or utree variables. */ X#ifdef BSD X# define SHELL "csh" /* Default shell. See csh(1) */ X# define EDITPRG "vi" /* Default editor. See vi(1) */ X# define PAGEPRG "more" /* Default pager. See more(1) */ X# define DUMPPRG "od" /* Default dumper. See od(1) */ X# define PRINTPRG "lpr" /* Default printer. See lpr(1) */ X#else /* SYSV */ X# define SHELL "sh" /* Default shell. See sh(1) */ X# define EDITPRG "ed" /* Default editor. See ed(1) */ X# define PAGEPRG "pg" /* Default pager. See pg(1) */ X# define DUMPPRG "od" /* Default dumper. See od(1) */ X# define PRINTPRG "lp" /* Default printer. See lp(1) */ X#endif /* BSD */ X X#define CPFILE "cp" /* Copy files. See cp(1) */ X#define MVFILE "mv" /* Move files. See mv(1) */ X#define LSFILE "ls" /* List files. See ls(1) */ X#define RMFILE "rm" /* Remove files. See rm(1) */ X#define RMOPTS "-rf" /* Remove all option */ X#define MKDIR "mkdir" /* Create directory. See mkdir(1) */ X#define RMDIR "rmdir" /* Remove directory. See rmdir(1) */ X#define DUDIR "du -s" /* Directory disk usage. See du(1) */ X#define GRFILE "grep" /* Search in files. See grep(1) */ X#define GROPTS "-c" /* Print count only option */ X X/* X * FILENAMES USED BY UTREE. X */ X X#define UTBCKUP "utree.backup" /* Utree backup shell script */ X#define UTBACK "utree.bak" /* Utree backup file list */ X#define UTHELP "utree.help" /* Utree help pages */ X#define UTSTART "utree" /* Utree startup file in home or libdir */ X#define UTLIST ".utreelist" /* Utree tree list file in $HOME */ X#define UTHIST ".utreehist" /* Utree command history file in $HOME */ X END_OF_FILE if test 2610 -ne `wc -c <'src/cmds.h'`; then echo shar: \"'src/cmds.h'\" unpacked with wrong size! fi # end of 'src/cmds.h' fi if test -f 'src/help.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/help.c'\" else echo shar: Extracting \"'src/help.c'\" \(5676 characters\) sed "s/^X//" >'src/help.c' <<'END_OF_FILE' X/* X * HELP.C X * UTREE help routines. X * 3.01-um klin, Sat Apr 20 11:02:33 1991 X * 3.03-um klin, Sat Feb 15 18:34:27 1992, Minor changes X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X */ X#ifndef lint static char sccsid[] = "@(#) utree 3.03-um (klin) Feb 15 1992 help.c"; X#endif /* !lint */ X X#include "defs.h" X X/* ---- Local variables and definitions ------------------------------- */ X LOCAL hlist *hroot = HNULL; /* Root of help pages */ LOCAL char *helpmenu = NULL; /* Help menuline */ LOCAL char helpfile[NAMELEN]; /* Help file name */ X X#define LINELEN 128 /* Max line length for help pages */ X X/* ---- External variables and functions ------------------------------ */ X XEXTRN long ftell(); X X/* ---- Functions and procedures -------------------------------------- */ X X/* X * INTERNAL USED ROUTINES X */ X X/* Insert a help page for topic s into help page list for file fp */ LOCAL VOID inserthelp(s, fp) X register char *s; X register FILE *fp; X{ X char buf[LINELEN]; X register hlist *hp, *np; X register char *i, k; X register long p; X register int n; X X p = ftell(fp); /* Get position of topic in help file */ X i = s; /* and menu line item */ X while(*s && !(*s == ' ' || *s == '\t' || *s == '\n')) X ++s; X *s = '\0'; X /* Count number of lines for this help page */ X for(n = 0; fgets(buf, sizeof(buf), fp); n++) X if(buf[0] == '#' && buf[1] == '@') X break; X if(*i && p > 0 && n > 0) { /* Get the hotkey for help menu topic */ X s = i; X k = *i; X while(*s) { X if(*s >= 'A' && *s <= 'Z') { X k = *s; X break; X } X ++s; X } X /* Get space for help page, fill up data and insert into list */ X hp = (hlist *) ualloc(1, sizeof(hlist)); X (void) strncpy(HITEM(hp), i, ITEMLEN-1); X HHKEY(hp) = isupper(k) ? tolower(k) : k; X HSPOS(hp) = p; X HNLIN(hp) = n; X HNEXT(hp) = HNULL; X if(hroot == HNULL) X hroot = hp; X else { X for(np = hroot; HNEXT(np); np = HNEXT(np)) X ; X HNEXT(np) = hp; X } X } X X} /* inserthelp() */ X X/* Show help page hp from help file fp */ LOCAL int showhelppage(hp, fp) X register hlist *hp; X register FILE *fp; X{ X char buf[LINELEN]; X register int n, l, c; X X puthelp("%s: About %s (Q:quit ELSE:helpmenu)", who, HITEM(hp)); X clearwindow(firstline, lastline); X flushout(); X c = RV_OK; X for(n = 0, l = firstline; n < HNLIN(hp); ) { X if(fgets(buf, sizeof(buf), fp)) X (void) putsxy(0, l, buf); X else X break; X ++n; X ++l; X if(l > lastfline && n < HNLIN(hp)) { X puthelp("%s: About %s (CR:continue Q:quit ELSE:helpmenu)", who, HITEM(hp)); X c = hitakey("Help:", echoline, DA_NONE); X puthelp("%s: About %s (Q:quit ELSE:help)", who, HITEM(hp)); X if( !(c == ' ' || c == '\n')) X break; X l = firstline; X clearwindow(firstline, lastline); X flushout(); X } X } X if(c == 'q' || c < RV_NUL) X return(c); X puthelp("%s: About %s %s", who, HITEM(hp), hitkey); X (void) putecho("Help about %s done", HITEM(hp)); X return(hitakey(NULL)); X X} /* showhelppage() */ X X/* Utree help pages are contained in a help file. Each help page is */ X/* enclosed in a pair of lines '#@item' and '#@' which signal start and */ X/* end of the help page to topic 'item'. This item is also copied into */ X/* the help menuline and the first character or the first upper case */ X/* character from item if found is used as hot key for selecting the */ X/* help page to this topic. The initialization routine scans the help */ X/* file and builds up a list of available help pages from this file. */ GLOBL VOID inithelp() X{ X char buf[NAMELEN]; X register FILE *fp; X register hlist *hp; X register int l, i; X X#ifdef UTHELP X if(startup(buf, UTHELP) && (fp = fopen(buf, "r"))) { X (void) strcpy(helpfile, buf); X /* First read help file and insert help pages into list */ X while(fgets(buf, sizeof(buf), fp)) X if(buf[0] == '#' && buf[1] == '@' && buf[2]) X inserthelp(&buf[2], fp); X /* Second build from help items the help menu line */ X l = columns - 4; X helpmenu = ualloc((unsigned) l, sizeof(char)); X for(hp = hroot, i = 0; hp; hp = HNEXT(hp)) { X i += strlen(HITEM(hp)) + 1; X if(i >= l) X break; X (void) strcat(helpmenu, " "); X (void) strcat(helpmenu, HITEM(hp)); X } X (void) fclose(fp); X if((i + 5) < l) X (void) strcat(helpmenu, " Quit"); X } X#endif X X} /* inithelp() */ X X/* Display help menu and help pages */ GLOBL int showhelp(k) X register int k; X{ X register FILE *fp; X register hlist *hp; X register int c; X X who = "HELP"; X if(hroot == HNULL || !(fp = fopen(helpfile, "r"))) { X puthelp("%s %s", who, hitkey); X return(errequest("Help", "Not available")); X } X X /* Help menu loop */ X do { X if(k) { X c = k; X k = 0; X } X else { X if( !keypressed()) { X putmenu("HELP:", helpmenu); X (void) putecho("Help about which topic:"); X } X if((c = hitakey(NULL)) == 'q' || c < RV_NUL) X break; X else if(isupper(c)) X c = tolower(c); X } X for(hp = hroot; hp && HHKEY(hp) != c; hp = HNEXT(hp)) X ; X if(hp == HNULL || fseek(fp, HSPOS(hp), 0)) X break; X c = showhelppage(hp, fp); X treeflag = fileflag = SF_FULL; X } while(c != 'q' && c > RV_NUL); X X /* Close help file and return */ X (void) fclose(fp); X if(c == 'q' || c < RV_NUL) X return(c); X return(putversion(echoline, "HELP: Done")); X X} /* showhelp() */ X END_OF_FILE if test 5676 -ne `wc -c <'src/help.c'`; then echo shar: \"'src/help.c'\" unpacked with wrong size! fi # end of 'src/help.c' fi if test -f 'src/term.h' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/term.h'\" else echo shar: Extracting \"'src/term.h'\" \(4300 characters\) sed "s/^X//" >'src/term.h' <<'END_OF_FILE' X/* X * TERM.H X * UTREE terminal and screen definitions. X * 3.01-um klin, Wed May 1 14:34:34 1991 X * klin, Sat Oct 26 15:27:00 1991, Some additions X * 3.02-um klin, Fri Nov 1 10:44:45 1991, Screen layout changed X * klin, Sun Nov 24 15:12:48 1991, Video attributes changed X * 3.03-um klin, Tue Feb 11 19:39:09 1992, Video attributes changed X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_term[] = "@(#) utree 3.03-um (klin) Feb 11 1992 term.h"; X#endif /* _MAIN_ && !lint */ X X#define MINCOLS 80 /* Min number of screen columns needed */ X#define MINLINS 24 /* Min number of screen lines needed */ X X/* Return values from getline() */ X#define EMPTY 0 /* Input is empty */ X#define DONE 1 /* Input not empty and ok */ X X/* Video attribute flags */ X#define VA_NORMAL 0x00 /* Reset all video attributes */ X#define VA_REVERSE 0x01 /* Video reverse attribute */ X#define VA_BLINK 0x02 /* Video blink attribute */ X#define VA_HALF 0x04 /* Half bright attribute */ X#define VA_BOLD 0x08 /* Video bold attribute */ X#define VA_UNDERLINE 0x10 /* Video underline attribute */ X X/* Cursor functions */ X#define CF_VISIBLE 0x01 /* Cursor visible */ X#define CF_INVISIBLE 0x02 /* Cursor invisible */ X#define CF_SAVE 0x04 /* Save cursor position */ X#define CF_RESTORE 0x08 /* Restore cursor position */ X X/* Keypad functions */ X#define KP_NORMAL 0x00 /* Switch keypad to normal mode */ X#define KP_XMIT 0x01 /* Switch keypad to transmit mode */ X X/* Graphical charset functions */ X#define GC_OFF 0x00 /* Turn off graph charset */ X#define GC_ON 0x01 /* Turn on graph charset */ X X/* The graph charset is accessed and hidden by the following macros */ X#define GC_HB _graphset[0] /* Horizontal bar */ X#define GC_VB _graphset[1] /* Vertical bar */ X#define GC_LT _graphset[2] /* Left tee */ X#define GC_RT _graphset[3] /* Right tree */ X#define GC_TT _graphset[4] /* Top tee */ X#define GC_BT _graphset[5] /* Bottom tee */ X#define GC_UL _graphset[6] /* Upper left corner */ X#define GC_LL _graphset[7] /* Lower left corner */ X#define GC_UR _graphset[8] /* Upper right corner */ X#define GC_LR _graphset[9] /* Lower right corner */ X#define GC_TG _graphset[10] /* Tag sign (diamond or plus) */ X X#define NGRAPH 11 /* Max number of graphic characters */ X X#ifdef _MAIN_ int columns, lines; /* Number of screen columns and lines */ int glitchcap; /* Standout mode/underline glitch flag */ int scrollcap; /* Window/scrolling capabilities flag */ int cursorcap; /* Cursor capabilities */ int videocap; /* Video capabilities flag */ int graphcap; /* Graphic character set flag */ char _graphset[NGRAPH]; /* Graphic character set */ X#else /* !_MAIN_ */ extern int columns, lines; extern int glitchcap, scrollcap, cursorcap, videocap, graphcap; extern char _graphset[]; X#endif /* _MAIN_ */ X X#ifdef putchar /* Don't use stdio.h's putchar macro */ X# undef putchar X#endif X#ifdef getchar /* Don't use stdio.h's getchar macro */ X# undef getchar X#endif X X END_OF_FILE if test 4300 -ne `wc -c <'src/term.h'`; then echo shar: \"'src/term.h'\" unpacked with wrong size! fi # end of 'src/term.h' fi if test -f 'src/vers.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'src/vers.c'\" else echo shar: Extracting \"'src/vers.c'\" \(4935 characters\) sed "s/^X//" >'src/vers.c' <<'END_OF_FILE' X/* X * VERS.C X * UTREE version and history. X * 1.00 klin, Jul 12 1988 -- Initial version X * 1.01 klin, Jul 17 1988 -- Remove filesystems completely X * 1.02 klin, Feb 5 1990 -- Ported to BSD X * Filesystem independent directory handling X * Screen handling extracted from screen lib X * 2.00 klin, Nov 10 1990 -- Changes and extensions X * 2.01 klin, Jan 26 1991 -- Some bug fixes X * 2.02 klin, Mar 23 1991 -- User defined commands X * File type commands X * Some minor changes and bug fixes X * Apr 7 1991 -- File pattern extended X * 3.00-um klin, Apr 20 1991 -- Bug fixes X * May 5 1991 -- Some more extensions X * 3.01-um klin, Jun 4 1991 -- File zooming added X * Oct 7 1991 -- File size patterns added X * Bug in putchar() deleted X * Oct 15 1991 -- Handling of symlinks changed X * Option -L added X * Oct 26 1991 -- Marking directories changed X * Sorting and zooming filelists changed X * Print tree list added X * writedlist() changed X * Copying and moving files changed X * Select directory added X * 3.02-um klin, Nov 1 1991 -- Screen layout changed X * Goto parent directory added X * Marking files changed X * Option -u changed to -n X * Option -u (update tree) added X * klin, Nov 10 1991 -- buildlist() changed X * Function key handling changed X * klin, Nov 24 1991 -- Some error fixes and extensions for XENIX X * reported and done by Rolf Gebhardt (Nov 22 1991) X * Video attributes changed X * Cd to current directory before executing X * some commands X * 3.03-um klin, Feb 11 1992 -- Shell screen put into module hist.[ch] X * Shell command history added X * Status screen put into module stat.c X * Generic list type glist added X * Line editor extended, getline() and X * editline() changed X * Handling of variables and filetype X * commands changed X * Minor changes in screen layout X * klin, Feb 15 1992 -- Video handling changed, display attributes X * and video mode flag added X * Partitioning of directory and file window on X * tree screen changed and option -p added X * klin, Feb 22 1992 -- Many commands on tree screen changed X * klin, Feb 23 1992 -- Key handling and key bindings changed X * User customizable key bindings added X * Variables added X * klin, Mar 6 1992 -- Minor changes before distribution X * a klin, Mar 15 1992 -- Bug fixes and minor changes X * b klin, Mar 19 1992 -- Bug fixes in setvariable() and editline() X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X */ X#ifndef lint static char sccsid[] = "@(#) utree 3.03-um (klin) Feb 15 1992 vers.c"; X#endif /* !lint */ static char version[] = "@(#) UTREE 3.03b-um"; static char copyright[] = "@(#) (C) 1991/92 P. Klingebiel & UNIX Magazin"; static char release[] = "@(#) Release: Mar 19 1992"; X X#define VERS &version[5] X#define COPY ©right[5] X#define DATE &release[5] X X#include "defs.h" X X/* ---- Functions and procedures -------------------------------------- */ X X/* Write version string to echoline or helpline */ GLOBL int putversion(l, s) X register int l; X register char *s; X{ X if(l == helpline) { X puthelp(" %s %s (%s)", VERS, COPY, DATE); X return(RV_OK); X } X else if(s) { X puthelp("%s %s", s, hitkey); X (void) putecho("%s %s (%s)", VERS, COPY, DATE); X return(hitakey(NULL)); X } X X} /* putversion() */ X X/* Print version string */ GLOBL VOID utreeversion() X{ X (void) fprintf(stdout, "%s %s (%s)\n", VERS, COPY, DATE); X X} /* utreeversion() */ X X/* Return utree version */ GLOBL char *getversion() X{ X return(VERS); X X} /* getversion() */ X END_OF_FILE if test 4935 -ne `wc -c <'src/vers.c'`; then echo shar: \"'src/vers.c'\" unpacked with wrong size! fi # end of 'src/vers.c' fi if test -f 'sup/vfprintf.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sup/vfprintf.c'\" else echo shar: Extracting \"'sup/vfprintf.c'\" \(5468 characters\) sed "s/^X//" >'sup/vfprintf.c' <<'END_OF_FILE' X/* Portable vfprintf and vprintf by Robert A. Larson */ X X/* Copyright 1989 Robert A. Larson. X * Distribution in any form is allowed as long as the author X * retains credit, changes are noted by their author and the X * copyright message remains intact. This program comes as-is X * with no warentee of fitness for any purpouse. X * X * Thanks to Doug Gwen, Chris Torek, and others who helped clarify X * the ansi printf specs. X * X * Please send any bug fixes and improvments to blarson@skat.usc.edu . X * The use of goto is NOT a bug. X */ X X/* Feb 9, 1989 blarson First usenet release */ X X/* This code implements the vfprintf function, without relying on X * the existance of _doprint or other system specific code. X * X * Define NOVOID if void * is not a supported type. X * X * Two compile options are available for efficency: X * INTSPRINTF should be defined if sprintf is int and returns X * the number of chacters formated. X * LONGINT should be defined if sizeof(long) == sizeof(int) X * X * They only make the code smaller and faster, they need not be X * defined. X * X * UNSIGNEDSPECIAL should be defined if unsigned is treated differently X * than int in argument passing. If this is definded, and LONGINT is not, X * the compiler must support the type unsingned long. X * X * Most quirks and bugs of the available fprintf fuction are duplicated, X * however * in the width and precision fields will work correctly X * even if fprintf does not support this. The %n format and the return X * count will only work if fprintf returns the number of characters X * formatted. X * X * Bad format strings, or those with very long width and precision X * fields (including expanded * fields) will cause undesired results. X */ X X#ifdef OSK /* os9/68k can take advantage of both */ X#define INTSPRINTF X#define LONGINT X#endif X X/* This must be a typedef not a #define! */ X#ifdef NOVOID typedef char *pointer; X#else typedef void *pointer; X#endif X X#include X X#ifdef INTSPRINTF X#define Sprintf(string,format,arg) (sprintf((string),(format),(arg))) X#else X#define Sprintf(string,format,arg) (\ X sprintf((string),(format),(arg)),\ X strlen(string)\ X) X#endif X X#ifdef __STDC__ X#include X#else X#include X#endif X typedef int *intp; X int vfprintf(dest, format, args) XFILE *dest; register char *format; va_list args; X{ X register char c; X register char *tp; X register int count = 0; X char tempfmt[64]; X#ifndef LONGINT X int longflag; X#endif X X tempfmt[0] = '%'; X while(c = *format++) { X if(c=='%') { X tp = &tempfmt[1]; X#ifndef LONGINT X longflag = 0; X#endif continue_format: X switch(c = *format++) { X case 's': X *tp++ = c; X *tp = '\0'; X count += fprintf(dest, tempfmt, va_arg(args, char *)); X break; X case 'u': X case 'x': X case 'o': X case 'X': X#ifdef UNSIGNEDSPECIAL X *tp++ = c; X *tp = '\0'; X#ifndef LONGINT X if(longflag) X count += fprintf(dest, tempfmt, va_arg(args, unsigned long)); X else X#endif X count += fprintf(dest, tempfmt, va_arg(args, unsigned)); X break; X#endif X case 'd': X case 'c': X case 'i': X *tp++ = c; X *tp = '\0'; X#ifndef LONGINT X if(longflag) X count += fprintf(dest, tempfmt, va_arg(args, long)); X else X#endif X count += fprintf(dest, tempfmt, va_arg(args, int)); X break; X case 'f': X case 'e': X case 'E': X case 'g': X case 'G': X *tp++ = c; X *tp = '\0'; X count += fprintf(dest, tempfmt, va_arg(args, double)); X break; X case 'p': X *tp++ = c; X *tp = '\0'; X count += fprintf(dest, tempfmt, va_arg(args, pointer)); X break; X case '-': X case '+': X case '0': X case '1': X case '2': X case '3': X case '4': X case '5': X case '6': X case '7': X case '8': X case '9': X case '.': X case ' ': X case '#': X case 'h': X *tp++ = c; X goto continue_format; X case 'l': X#ifndef LONGINT X longflag = 1; X *tp++ = c; X#endif X goto continue_format; X case '*': X tp += Sprintf(tp, "%d", va_arg(args, int)); X goto continue_format; X case 'n': X *va_arg(args, intp) = count; X break; X case '%': X default: X putc(c, dest); X count++; X break; X } X } else { X putc(c, dest); X count++; X } X } X return count; X} X vprintf(format, args) char *format; va_list args; X{ X return vfprintf(stdout, format, args); X} X END_OF_FILE if test 5468 -ne `wc -c <'sup/vfprintf.c'`; then echo shar: \"'sup/vfprintf.c'\" unpacked with wrong size! fi # end of 'sup/vfprintf.c' fi if test -f 'sup/vsprintf.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sup/vsprintf.c'\" else echo shar: Extracting \"'sup/vsprintf.c'\" \(5162 characters\) sed "s/^X//" >'sup/vsprintf.c' <<'END_OF_FILE' X/* Portable vsprintf by Robert A. Larson */ X X/* Copyright 1989 Robert A. Larson. X * Distribution in any form is allowed as long as the author X * retains credit, changes are noted by their author and the X * copyright message remains intact. This program comes as-is X * with no warentee of fitness for any purpouse. X * X * Thanks to Doug Gwen, Chris Torek, and others who helped clarify X * the ansi printf specs. X * X * Please send any bug fixes and improvments to blarson@skat.usc.edu . X * The use of goto is NOT a bug. X */ X X/* Feb 7, 1989 blarson First usenet release */ X X/* This code implements the vsprintf function, without relying on X * the existance of _doprint or other system specific code. X * X * Define NOVOID if void * is not a supported type. X * X * Two compile options are available for efficency: X * INTSPRINTF should be defined if sprintf is int and returns X * the number of chacters formated. X * LONGINT should be defined if sizeof(long) == sizeof(int) X * X * They only make the code smaller and faster, they need not be X * defined. X * X * UNSIGNEDSPECIAL should be defined if unsigned is treated differently X * than int in argument passing. If this is definded, and LONGINT is not, X * the compiler must support the type unsingned long. X * X * Most quirks and bugs of the available sprintf fuction are duplicated, X * however * in the width and precision fields will work correctly X * even if sprintf does not support this, as will the n format. X * X * Bad format strings, or those with very long width and precision X * fields (including expanded * fields) will cause undesired results. X */ X X#ifdef OSK /* os9/68k can take advantage of both */ X#define LONGINT X#define INTSPRINTF X#endif X X/* This must be a typedef not a #define! */ X#ifdef NOVOID typedef char *pointer; X#else typedef void *pointer; X#endif X X#ifdef INTSPRINTF X#define Sprintf(string,format,arg) (sprintf((string),(format),(arg))) X#else X#define Sprintf(string,format,arg) (\ X sprintf((string),(format),(arg)),\ X strlen(string)\ X) X#endif X X#ifdef __STDC__ X#include X#else X#include X#endif X typedef int *intp; X int vsprintf(dest, format, args) char *dest; register char *format; va_list args; X{ X register char *dp = dest; X register char c; X register char *tp; X char tempfmt[64]; X#ifndef LONGINT X int longflag; X#endif X X tempfmt[0] = '%'; X while(c = *format++) { X if(c=='%') { X tp = &tempfmt[1]; X#ifndef LONGINT X longflag = 0; X#endif continue_format: X switch(c = *format++) { X case 's': X *tp++ = c; X *tp = '\0'; X dp += Sprintf(dp, tempfmt, va_arg(args, char *)); X break; X case 'u': X case 'x': X case 'o': X case 'X': X#ifdef UNSIGNEDSPECIAL X *tp++ = c; X *tp = '\0'; X#ifndef LONGINT X if(longflag) X dp += Sprintf(dp, tempfmt, va_arg(args, unsigned long)); X else X#endif X dp += Sprintf(dp, tempfmt, va_arg(args, unsigned)); X break; X#endif X case 'd': X case 'c': X case 'i': X *tp++ = c; X *tp = '\0'; X#ifndef LONGINT X if(longflag) X dp += Sprintf(dp, tempfmt, va_arg(args, long)); X else X#endif X dp += Sprintf(dp, tempfmt, va_arg(args, int)); X break; X case 'f': X case 'e': X case 'E': X case 'g': X case 'G': X *tp++ = c; X *tp = '\0'; X dp += Sprintf(dp, tempfmt, va_arg(args, double)); X break; X case 'p': X *tp++ = c; X *tp = '\0'; X dp += Sprintf(dp, tempfmt, va_arg(args, pointer)); X break; X case '-': X case '+': X case '0': X case '1': X case '2': X case '3': X case '4': X case '5': X case '6': X case '7': X case '8': X case '9': X case '.': X case ' ': X case '#': X case 'h': X *tp++ = c; X goto continue_format; X case 'l': X#ifndef LONGINT X longflag = 1; X *tp++ = c; X#endif X goto continue_format; X case '*': X tp += Sprintf(tp, "%d", va_arg(args, int)); X goto continue_format; X case 'n': X *va_arg(args, intp) = dp - dest; X break; X case '%': X default: X *dp++ = c; X break; X } X } else *dp++ = c; X } X *dp = '\0'; X return dp - dest; X} X END_OF_FILE if test 5162 -ne `wc -c <'sup/vsprintf.c'`; then echo shar: \"'sup/vsprintf.c'\" unpacked with wrong size! fi # end of 'sup/vsprintf.c' fi if test -f 'sys/conf.h.286' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.286'\" else echo shar: Extracting \"'sys/conf.h.286'\" \(2364 characters\) sed "s/^X//" >'sys/conf.h.286' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: UNIX V/286 compatible (for MSC on SCO UNIX/386) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2364 -ne `wc -c <'sys/conf.h.286'`; then echo shar: \"'sys/conf.h.286'\" unpacked with wrong size! fi # end of 'sys/conf.h.286' fi if test -f 'sys/conf.h.AIX' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.AIX'\" else echo shar: Extracting \"'sys/conf.h.AIX'\" \(2346 characters\) sed "s/^X//" >'sys/conf.h.AIX' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: IBM 520 (RS/6000), AIX 3.1 X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2346 -ne `wc -c <'sys/conf.h.AIX'`; then echo shar: \"'sys/conf.h.AIX'\" unpacked with wrong size! fi # end of 'sys/conf.h.AIX' fi if test -f 'sys/conf.h.APP' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.APP'\" else echo shar: Extracting \"'sys/conf.h.APP'\" \(2367 characters\) sed "s/^X//" >'sys/conf.h.APP' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: Apollo Domain DN4500, DomainIX 9.5 (BSD4.2 + SYSV) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2367 -ne `wc -c <'sys/conf.h.APP'`; then echo shar: \"'sys/conf.h.APP'\" unpacked with wrong size! fi # end of 'sys/conf.h.APP' fi if test -f 'sys/conf.h.M16' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.M16'\" else echo shar: Extracting \"'sys/conf.h.M16'\" \(2355 characters\) sed "s/^X//" >'sys/conf.h.M16' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: PCS Cadmus 9230, MUNIX V.2/07 (SYSV 2) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2355 -ne `wc -c <'sys/conf.h.M16'`; then echo shar: \"'sys/conf.h.M16'\" unpacked with wrong size! fi # end of 'sys/conf.h.M16' fi if test -f 'sys/conf.h.M32' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.M32'\" else echo shar: Extracting \"'sys/conf.h.M32'\" \(2367 characters\) sed "s/^X//" >'sys/conf.h.M32' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: PCS Cadmus 9600 (MC68020), MUNIX V3M3.2 (SYSV.3) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2367 -ne `wc -c <'sys/conf.h.M32'`; then echo shar: \"'sys/conf.h.M32'\" unpacked with wrong size! fi # end of 'sys/conf.h.M32' fi if test -f 'sys/conf.h.MIPS' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.MIPS'\" else echo shar: Extracting \"'sys/conf.h.MIPS'\" \(2351 characters\) sed "s/^X//" >'sys/conf.h.MIPS' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: MIPS RC3230 (R3000) RISC/os 4.51 X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2351 -ne `wc -c <'sys/conf.h.MIPS'`; then echo shar: \"'sys/conf.h.MIPS'\" unpacked with wrong size! fi # end of 'sys/conf.h.MIPS' fi if test -f 'sys/conf.h.RCU' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.RCU'\" else echo shar: Extracting \"'sys/conf.h.RCU'\" \(2376 characters\) sed "s/^X//" >'sys/conf.h.RCU' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: PCS Cadmus 9900 (MIPS R2000/3000), MUNIX V3R3.2A (SYSV.3) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2376 -ne `wc -c <'sys/conf.h.RCU'`; then echo shar: \"'sys/conf.h.RCU'\" unpacked with wrong size! fi # end of 'sys/conf.h.RCU' fi if test -f 'sys/conf.h.SCO' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.SCO'\" else echo shar: Extracting \"'sys/conf.h.SCO'\" \(2459 characters\) sed "s/^X//" >'sys/conf.h.SCO' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: HP Vectra (i486), SCO UNIX System V/386 3.2 X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X#include X#include /* For defining FIONREAD ! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2459 -ne `wc -c <'sys/conf.h.SCO'`; then echo shar: \"'sys/conf.h.SCO'\" unpacked with wrong size! fi # end of 'sys/conf.h.SCO' fi if test -f 'sys/conf.h.SEQ' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.SEQ'\" else echo shar: Extracting \"'sys/conf.h.SEQ'\" \(2358 characters\) sed "s/^X//" >'sys/conf.h.SEQ' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: Sequent Symmetrie, DYNIX i386 (BSD 4.2) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2358 -ne `wc -c <'sys/conf.h.SEQ'`; then echo shar: \"'sys/conf.h.SEQ'\" unpacked with wrong size! fi # end of 'sys/conf.h.SEQ' fi if test -f 'sys/conf.h.SGI' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.SGI'\" else echo shar: Extracting \"'sys/conf.h.SGI'\" \(2361 characters\) sed "s/^X//" >'sys/conf.h.SGI' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: Silicon Graphics 4D, IRIX V.3.3.2 (SYSV 3) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2361 -ne `wc -c <'sys/conf.h.SGI'`; then echo shar: \"'sys/conf.h.SGI'\" unpacked with wrong size! fi # end of 'sys/conf.h.SGI' fi if test -f 'sys/conf.h.ULT' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.ULT'\" else echo shar: Extracting \"'sys/conf.h.ULT'\" \(2365 characters\) sed "s/^X//" >'sys/conf.h.ULT' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: DECstation/VAXstation, ULTRIX-32 3.1 (BSD 4.3) X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X/*#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2365 -ne `wc -c <'sys/conf.h.ULT'`; then echo shar: \"'sys/conf.h.ULT'\" unpacked with wrong size! fi # end of 'sys/conf.h.ULT' fi if test -f 'sys/conf.h.X23' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'sys/conf.h.X23'\" else echo shar: Extracting \"'sys/conf.h.X23'\" \(2345 characters\) sed "s/^X//" >'sys/conf.h.X23' <<'END_OF_FILE' X/* X * CONF.H X * UTREE system dependent configurable definitions. X * 3.03-um klin, Sat Feb 15 19:23:58 1992 X * X * Copyright (c) 1991/92 by Peter Klingebiel & UNIX Magazin Muenchen. X * For copying and distribution information see the file COPYRIGHT. X * X * Version: SCO XENIX SysV 2.3.2 386GT X */ X#if defined(_MAIN_) && !defined(lint) static char sccsid_conf[] = "@(#) utree 3.03-um (klin) Feb 15 1992 conf.h"; X#endif /* _MAIN_ && !lint */ X X/* X * This file contains definitions you can change for your needs. X */ X X/* X * SOME UTREE DEPENDENT DEFINITIONS. X */ X X/* BSD: define HASVSPRINTF if your system supports vsprintf(3) */ X/*#define HASVSPRINTF /* Not needed for SYSV! */ X X/* SYSV: define HASFIONREAD if your system supports the FIONREAD */ X/* ioctl(2) system call to check how many chars are typed ahead */ X/*#define HASFIONREAD /* Not needed for BSD! */ X X/* SYSV: define HASVFORK if your system supports vfork(2) */ X/*#define HASVFORK /* Not needed for BSD! */ X X/* SYSV: define NODIRENT if your system not supports the directory type */ X/* struct dirent with opendir(3), closedir(3) and readdir(3) */ X/*#define NODIRENT /* Needed only for older SYSVs */ X X/* ALL: define NOWINCHG to ignore sreen resizing on window systems. The */ X/* handling of screen resizing is intended as a little bit support */ X/* for window systems like X, but it may not run on your system. */ X/* ATTENTION: Resizing may be confusing for utree anyway! */ X#define NOWINCHG /* No screen resizing allowed */ X X/* ALL: define STRUCTCOPY if your compiler doesn't support assignment */ X/* of struct variables, i.e. t[o] = f[rom]. */ X/*#define STRUCTCOPY(f, t) memcpy(t, f, sizeof(f)) /* For SYSV */ X/*#define STRUCTCOPY(f, t) bcopy(f, t, sizeof(f)) /* For BSD */ X X/* ALL: define UTCLOCK for a clock updated in echo line every second */ X#define UTCLOCK /* Show/update clock */ X X/* ALL: directory for utree startup file and help pages */ X#ifndef UTLIB X# define UTLIB "/usr/local/lib" X#endif /* !UTLIB */ X END_OF_FILE if test 2345 -ne `wc -c <'sys/conf.h.X23'`; then echo shar: \"'sys/conf.h.X23'\" unpacked with wrong size! fi # end of 'sys/conf.h.X23' fi echo shar: End of archive 2 \(of 8\). cp /dev/null ark2isdone MISSING="" for I in 1 2 3 4 5 6 7 8 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 8 archives. rm -f ark[1-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0