v13i049: Screen-oriented rolodex program, Part01/04

Rich Salz rsalz at bbn.com
Thu Feb 18 13:44:22 AEST 1988


Submitted-by: Dave Ihnat <ihnp4!homebru!ignatz>
Posting-number: Volume 13, Issue 49
Archive-name: rolodex/part01

[  I repacked things.  --r$ ]

This is a much-hacked version of the rolodex program posted to the net
some time ago.  Steve Steiner and I have cleaned up a lot of glitches,
ported and verified it on a *lot* of new environments, added the
pretty-print option, etc.  Although there are a number of things I'd like
to still clean up--especially the memory manager!--I'm done with it for
the forseeable future, and so is Steve, so it's probably proper to post it
at this time.  Many thanks to the original author...

	Dave Ihnat     -     Steve Steiner
	Analysts International Corporation
	ihnp4!homebru!ignatz ihnp4!aicchi!steiner

#! /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 <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 1 (of 4)."
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f './Makefile.bsd' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./Makefile.bsd'\"
else
echo shar: Extracting \"'./Makefile.bsd'\" \(1524 characters\)
sed "s/^X//" >'./Makefile.bsd' <<'END_OF_FILE'
X# Makefile for rolo - UNIX version BSD 4.2
X# Configure for your type of terminal capability database.  
X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
X#  if you don't have either, leave them both blank (only "clear_screen" is used)
XTERMSTUFF= -DTERMCAP
XLIBS= -lcurses -ltermcap
X#
XCC = cc
XRLIB    = /usr/local/lib/rolo
XROLOLIB = \"$(RLIB)\"
XTOOLDIR = ./toolsdir
XCFLAGS = -DBSD -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O -s
X#CFLAGS = -DBSD -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -g
X#DBGFLAG = -g
XDBGFLAG = 
XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
X	rlist.c rolo.c search.c update.c
XOBJECTS = clear.o io.o menuaux.o operatns.o options.o \
X	rlist.o rolo.o search.o update.o
XTOOLOBJ = $(TOOLDIR)/mem.o $(TOOLDIR)/args.o $(TOOLDIR)/ctools.o \
X	$(TOOLDIR)/menu.o
X
XBIN = /usr/local/bin
XMANDIR = /usr/man/lman/man1
XPROG = rolo
XMAN = rolo.1
X
Xrolo: $(OBJECTS)
X	cd $(TOOLDIR) ; make ; cd .. 
X	$(CC) -o rolo $(DBGFLAG) $(CFLAGS) $(OBJECTS) $(TOOLOBJ) $(LIBS)
X
Xinstall:	$(PROG) $(MAN)
X	install -s -o bin -g bin -m 111 $(PROG) $(BIN)
X	install -c -o bin -g bin -m 444 $(MAN) $(MANDIR)
X
X	- mkdir $(RLIB)
X	chown bin $(RLIB)
X	chgrp bin $(RLIB)
X	cp helplib/*.* $(RLIB)
X	chown bin $(RLIB)/*.*
X	chgrp bin $(RLIB)/*.*
X	chmod 444 $(RLIB)/*.*
X
Xclean:
X	rm -f $(OBJECTS) rolo *~ foo $(TOOLDIR)/*.o
X
Xshar:
X	cshar README rolo.1 Makefile helplib > roloshar1
X	cshar *.[ch] > roloshar2
X	cshar toolsdir > roloshar3
END_OF_FILE
if test 1524 -ne `wc -c <'./Makefile.bsd'`; then
    echo shar: \"'./Makefile.bsd'\" unpacked with wrong size!
fi
# end of './Makefile.bsd'
fi
if test -f './Makefile.msc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./Makefile.msc'\"
else
echo shar: Extracting \"'./Makefile.msc'\" \(1939 characters\)
sed "s/^X//" >'./Makefile.msc' <<'END_OF_FILE'
X# Makefile for Rolodex - PC/MS-DOS version (Microsoft C)
X#
X# :ts=8
X# :bk=0
X# :ma=1
X#
X
X# Configure for your type of terminal capability database.  
XTERMSTUFF=
X#
XCC = msc
XLIBDIR= d:
XROLOLIB = "rololib"
XTOOLDIR = toolsdir
X#OPTDBG = /Zi
XOPTDBG = /Os
XCFLAGS = /DMSC /DMSDOS /DROLOLIB=$(ROLOLIB) $(TERMSTUFF) /I$(TOOLDIR) $(OPTDBG)
XLDFLAGS =  /CODEVIEW
X
XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
X	rlist.c rolo.c search.c update.c
X
XOBJECTS = clear.obj io.obj menuaux.obj operatns.obj options.obj \
X	rlist.obj rolo.obj search.obj update.obj
X
XTOOLLIB = $(TOOLDIR)/tools
X
X.c.obj:
X	$(CC) $(CFLAGS) $*.c;
X
Xclear.obj:	clear.c
X
Xio.obj:		io.c $(TOOLDIR)\ctools.h rolofilz.h datadef.h
X
Xmenuaux.obj:	menuaux.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h rolofilz.h rolodefs.h datadef.h
X
Xoperatns.obj:	operatns.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
X
Xoptions.obj:	options.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
X
Xrlist.obj:	rlist.c datadef.h
X
Xrolo.obj:	rolo.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h
X
Xsearch.obj:	search.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
X
Xupdate.obj:	update.c $(TOOLDIR)\ctools.h $(TOOLDIR)\args.h $(TOOLDIR)\menu.h $(TOOLDIR)\mem.h rolofilz.h rolodefs.h datadef.h choices.h
X
X#
X# Please note that the 'link' line is very Microsoft-C dependent.  Modify as
X# needed for your linker.  For Microsoft-C, you must make a file
X# named 'respfile', consisting of the object filenames for
X# $(OBJECTS) and $(TOOLOBJ), with
X# the subordinate directory 'toolsdir' as part of the name.
X#
Xrolo: $(OBJECTS) respfile
X	cd $(TOOLDIR)
X	del tools.lib
X	make makefile.msc
X	cd ..
X	link $(LDFLAGS) @respfile,rolo.exe,,$(TOOLDIR)\tools;
END_OF_FILE
if test 1939 -ne `wc -c <'./Makefile.msc'`; then
    echo shar: \"'./Makefile.msc'\" unpacked with wrong size!
fi
# end of './Makefile.msc'
fi
if test -f './Makefile.tc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./Makefile.tc'\"
else
echo shar: Extracting \"'./Makefile.tc'\" \(1347 characters\)
sed "s/^X//" >'./Makefile.tc' <<'END_OF_FILE'
X# Makefile for Rolodex - PC/MS-DOS version (Turbo-C)
X
X# Configure for your type of terminal capability database.  
X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
X#  if you dont have either, leave them both blank (only "clear_screen" is used)
X#TERMSTUFF= -DTERMCAP
XTERMSTUFF=
X#LIBS= -lcurses -ltermcap
X#
XCC = tcc
XMODEL= s
XLIBDIR= d:
XROLOLIB = "rololib"
XTOOLDIR = toolsdir
XCFLAGS = -DMSDOS -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O
XDBGFLAG = 
X
XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
X	rlist.c rolo.c search.c update.c
X
XOBJECTS = clear.obj io.obj menuaux.obj operatns.obj options.obj \
X	rlist.obj rolo.obj search.obj update.obj
X
XTOOLOBJ = $(TOOLDIR)/mem.obj $(TOOLDIR)/args.obj $(TOOLDIR)/ctools.obj \
X	$(TOOLDIR)/menu.obj
X
X.c.obj:
X	$(CC) $(CFLAGS) -c $<
X
X#
X# Please note that the 'tlink' line is very Turbo-C dependent.  Modify as
X# needed for your linker.  For Turbo-C, you must make a file named 'respfile',
X# consisting of the object filenames for $(OBJECTS) and $(TOOLOBJ), with
X# the subordinate directory 'toolsdir' as part of the name.
X#
Xrolo: $(OBJECTS) respfile
X	cd $(TOOLDIR)
X	make -fmakefile.dos tools
X	cd ..
X	tlink /c /x $(LIBDIR)c0$(MODEL) @respfile,rolo.exe,,$(LIBDIR)emu $(LIBDIR)math$(MODEL) $(LIBDIR)C$(MODEL)
END_OF_FILE
if test 1347 -ne `wc -c <'./Makefile.tc'`; then
    echo shar: \"'./Makefile.tc'\" unpacked with wrong size!
fi
# end of './Makefile.tc'
fi
if test -f './Makefile.unx' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./Makefile.unx'\"
else
echo shar: Extracting \"'./Makefile.unx'\" \(1606 characters\)
sed "s/^X//" >'./Makefile.unx' <<'END_OF_FILE'
X# Makefile for rolo - UNIX generic version
X
X# Configure for your type of terminal capability database.  
X#  if you have termcap,  set TERMSTUFF= -DTERMCAP,  and LIBS= -ltermcap
X#  if you have terminfo, set TERMSTUFF= -DTERMINFO, and LIBS= -lterminfo
X#  if you don't have either, leave them both blank (only "clear_screen" is used)
XTERMSTUFF= -DTERMINFO
XLIBS= -lcurses
X#
XCC = cc
XRLIB    = /usr/local/lib/rolo
XROLOLIB = \"$(RLIB)\"
XTOOLDIR = ./toolsdir
XCFLAGS = -DUNIX -DROLOLIB=$(ROLOLIB) $(TERMSTUFF) -I$(TOOLDIR) -O -s
XDBGFLAG =
XSOURCES = clear.c io.c menuaux.c operatns.c options.c \
X	rlist.c rolo.c search.c update.c
XOBJECTS = clear.o io.o menuaux.o operatns.o options.o \
X	rlist.o rolo.o search.o update.o
XTOOLOBJ = $(TOOLDIR)/mem.o $(TOOLDIR)/args.o $(TOOLDIR)/ctools.o \
X	$(TOOLDIR)/menu.o
X
XBIN = /usr/local/bin
XMS = 1
XMAN = /usr/man/local/man$(MS)
X
Xrolo: $(OBJECTS)
X	cd $(TOOLDIR) ; make tools ; cd ..
X	$(CC) -o rolo $(DBGFLAG) $(CFLAGS) $(OBJECTS) $(TOOLOBJ) $(LIBS)
Xinstall: rolo
X	rm -f $(BIN)/rolo
X	mv rolo $(BIN)/rolo
X	chown bin $(BIN)/rolo
X	chgrp bin $(BIN)/rolo
X	chmod 111 $(BIN)/rolo
X
X	- mkdir $(RLIB)
X	- rm -f $(RLIB)/*.*
X	chown bin $(RLIB)
X	chgrp bin $(RLIB)
X	chmod 775 $(RLIB)
X
X	cp helplib/*.* $(RLIB)
X	chown bin $(RLIB)/*.*
X	chgrp bin $(RLIB)/*.*
X	chmod 444 $(RLIB)/*.*
X
Xman: 
X	rm -f $(MAN)/rolo.1
X	cp rolo.1 $(MAN)/rolo.$(MS)
X	chown bin $(MAN)/rolo.$(MS)
X	chgrp bin $(MAN)/rolo.$(MS)
X	chmod 444 $(MAN)/rolo.$(MS)
X	man rolo
X
Xclean:
X	rm -f $(OBJECTS) rolo *~ foo $(TOOLDIR)/*.o
X
Xshar:
X	cshar README rolo.1 Makefile helplib > roloshar1
X	cshar *.[ch] > roloshar2
X	cshar toolsdir > roloshar3
END_OF_FILE
if test 1606 -ne `wc -c <'./Makefile.unx'`; then
    echo shar: \"'./Makefile.unx'\" unpacked with wrong size!
fi
# end of './Makefile.unx'
fi
if test -f './Part01' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./Part01'\"
else
echo shar: Extracting \"'./Part01'\" \(0 characters\)
sed "s/^X//" >'./Part01' <<'END_OF_FILE'
END_OF_FILE
if test 0 -ne `wc -c <'./Part01'`; then
    echo shar: \"'./Part01'\" unpacked with wrong size!
fi
# end of './Part01'
fi
if test -f './README.Z' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./README.Z'\"
else
echo shar: Extracting \"'./README.Z'\" \(0 characters\)
sed "s/^X//" >'./README.Z' <<'END_OF_FILE'
END_OF_FILE
if test 0 -ne `wc -c <'./README.Z'`; then
    echo shar: \"'./README.Z'\" unpacked with wrong size!
fi
# end of './README.Z'
fi
if test -f './choices.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./choices.h'\"
else
echo shar: Extracting \"'./choices.h'\" \(703 characters\)
sed "s/^X//" >'./choices.h' <<'END_OF_FILE'
X/* choices.h */
Xtypedef enum { P_CONTINUE, P_NEXT_PERSON, P_ABORT, P_HELP } P_Choices;
X
Xtypedef enum { 
X        
X        M_SEARCH_BY_OTHER, AM_SEARCH_BY_NAME, M_PRINT_TO_LASER_PRINTER,
X        M_HELP, M_EXIT, M_PERUSE, M_SAVE, M_ADD
X
X      } Main_Choices;
X
Xtypedef enum { 
X
X        A_ABORT_ADD, A_BACKUP, A_FILL_IN_REST,
X        AA_ABORT_ROLO, A_HELP, A_NO_DATA
X
X      } Add_Choices;
X
Xtypedef enum { 
X        
X        E_ABORT, E_UPDATE, E_DELETE, E_CONTINUE, E_PREV, E_HELP, E_SCAN
X        
X      } E_Choices;
X
Xtypedef enum { U_ABORT, U_HELP, U_END_UPDATE } U_Choices;
X
Xtypedef enum { S_ABORT, S_HELP, S_SCAN_ONE_BY_ONE } S_Choices;
X
Xtypedef enum { O_ABORT, O_HELP, O_BACKUP, O_DONE_OTHERS } O_Choices;
END_OF_FILE
if test 703 -ne `wc -c <'./choices.h'`; then
    echo shar: \"'./choices.h'\" unpacked with wrong size!
fi
# end of './choices.h'
fi
if test -f './clear.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./clear.c'\"
else
echo shar: Extracting \"'./clear.c'\" \(1884 characters\)
sed "s/^X//" >'./clear.c' <<'END_OF_FILE'
X/* clear.c */
X#include <stdio.h>
X#ifdef TERMINFO
X#include <term.h>
X#endif
X#undef putchar
X
Xint putchar();
X
X#ifdef TERMCAP
Xstatic int ok_to_clear;
X#endif
X
X#ifdef TERMINFO
Xstatic int ok_to_clear;
X#endif
X
X#ifdef TERMCAP
Xstatic char clear_screen[128] = 0;
Xstatic int lines;
X#endif
X
X#ifdef MSDOS
X/*
X * IF we assume the standard ANSI terminal driver, we can't go TOO far wrong...
X * but allow a bailout.  Making this assumption, we realize that it's a
X * VT-100 sequence, so for this one file...
X */
X#ifndef GENERIC_SCR
X#define VMS
X#endif
X#endif
X
X#ifdef VMS
X/*
X * VMS is so heavily targeted to VT-100 screens that we can assume...
X */
Xstatic char vt100_clear[128] = { '\033','[','H','\033','[','2','J','\0' };
X#endif
X
X
X#ifdef GENERIC_SCR
X/* This is pretty generic... */
X#define CLR_LINES	30
X#endif
X
Xclearinit ()
X{
X#ifdef TERMINFO
X  int i;        
X  char *getenv();
X  char *name = "TERM";
X/* setupterm(getenv(name),1,&i); *//* As of at least SVID Issue 2, Vol. 2 */
X  i = setterm(getenv(name));
X  ok_to_clear = (i == 1) ? 1 : 0;
X  if (i != 1) {
X     fprintf(stderr,"Warning: Terminal type unknown\n");
X  }
X  return (i == 1) ? 0 : -1;
X#endif
X#ifdef TERMCAP
X  char tc[1024];
X  char *ptr = clear_screen;
X  char *getenv();
X  char *name = "TERM";
X  
X  if (tgetent(tc, getenv(name)) < 1) {
X    ok_to_clear = 0;
X    return;
X  }
X  tgetstr("cl", &ptr);
X  lines = tgetnum("li");
X  ok_to_clear = (clear_screen[0] != 0 && lines > 0);
X
X#endif
X}        
X        
Xclear_the_screen ()
X{
X#ifdef TERMINFO
X  if (!ok_to_clear) return;        
X  tputs(clear_screen,lines,putchar);
X  fflush(stdout);
X#endif
X#ifdef TERMCAP
X  if (!ok_to_clear) return;
X  tputs(clear_screen,lines,putchar);
X  fflush(stdout);
X#endif
X
X#ifdef VMS
X  fputs(vt100_clear,stdout);
X  fflush(stdout);
X#endif
X#ifdef GENERIC_SCR
X  {
X	register int index;
X
X	for(index = 0;index < CLR_LINES ;index++)
X		putchar('\n');
X  }
X  fflush(stdout);
X#endif
X}
END_OF_FILE
if test 1884 -ne `wc -c <'./clear.c'`; then
    echo shar: \"'./clear.c'\" unpacked with wrong size!
fi
# end of './clear.c'
fi
if test ! -d './helplib' ; then
    echo shar: Creating directory \"'./helplib'\"
    mkdir './helplib'
fi
if test -f './helplib/addhelp.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/addhelp.hlp'\"
else
echo shar: Extracting \"'./helplib/addhelp.hlp'\" \(1408 characters\)
sed "s/^X//" >'./helplib/addhelp.hlp' <<'END_OF_FILE'
XYou are adding a new entry to your rolodex database.  If you want to
Xget back to the main menu type the character '\' followed by RETURN.
X
XEach entry is composed of 7 fixed items, which are Name, Work Phone,
XHome Phone, Company, Work Address, Home Address, and Remarks.  You are
Xbeing prompted to give a value to each item, one after the other.  Simply
Xtype in some characters and end with a RETURN.  If you realize you've made
Xa mistake after hitting RETURN, type '^' RETURN, which will prompt you
Xagain for the item you just entered.  If you have no information for a 
Xparticular item, simply type RETURN and you will be prompted for the next
Xitem.   Finally, the program will prompt you with 'Other fields? '.   At
Xthis point type 'no' RETURN unless you know what you are doing (see below).
X
X     (Advanced feature) If you have entered all the information about a person
Xyou have, and the program is still prompting you for fields, type '!' RETURN
Xand it will assume that all the remaining fields are to be left empty.
X     (Advanced feature) You can add items in addition to those listed above.
XTo do so answer 'yes' to the 'Other fields? ' prompt and then ask for help.
X     (Advanced feature) The character ';' is used as a line separator.  If
Xyou typed in '245 First St.,; Cambridge, MA 02139', when this information was
Xdisplayed the street address and city/state would print out on different lines.
END_OF_FILE
if test 1408 -ne `wc -c <'./helplib/addhelp.hlp'`; then
    echo shar: \"'./helplib/addhelp.hlp'\" unpacked with wrong size!
fi
# end of './helplib/addhelp.hlp'
fi
if test -f './helplib/addinfo.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/addinfo.hlp'\"
else
echo shar: Extracting \"'./helplib/addinfo.hlp'\" \(67 characters\)
sed "s/^X//" >'./helplib/addinfo.hlp' <<'END_OF_FILE'
XAdd a rolodex entry:  (? for help, ^ to back up, \ to abort add)
X
X
END_OF_FILE
if test 67 -ne `wc -c <'./helplib/addinfo.hlp'`; then
    echo shar: \"'./helplib/addinfo.hlp'\" unpacked with wrong size!
fi
# end of './helplib/addinfo.hlp'
fi
if test -f './helplib/confirm.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/confirm.hlp'\"
else
echo shar: Extracting \"'./helplib/confirm.hlp'\" \(98 characters\)
sed "s/^X//" >'./helplib/confirm.hlp' <<'END_OF_FILE'
XYou are being asked to confirm your decision.  Enter either a 'y' to continue,
Xor a 'n' to abort.
END_OF_FILE
if test 98 -ne `wc -c <'./helplib/confirm.hlp'`; then
    echo shar: \"'./helplib/confirm.hlp'\" unpacked with wrong size!
fi
# end of './helplib/confirm.hlp'
fi
if test -f './helplib/entrymnu.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/entrymnu.hlp'\"
else
echo shar: Extracting \"'./helplib/entrymnu.hlp'\" \(223 characters\)
sed "s/^X//" >'./helplib/entrymnu.hlp' <<'END_OF_FILE'
X
X   RETURN  : continue the scan.             %   : scan rolodex from this point.
X   +       : update or add to the entry.    <   : display previous entry.
X   -       : delete the entire entry.       \   : abort the scan.
X
X
END_OF_FILE
if test 223 -ne `wc -c <'./helplib/entrymnu.hlp'`; then
    echo shar: \"'./helplib/entrymnu.hlp'\" unpacked with wrong size!
fi
# end of './helplib/entrymnu.hlp'
fi
if test -f './helplib/escan.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/escan.hlp'\"
else
echo shar: Extracting \"'./helplib/escan.hlp'\" \(847 characters\)
sed "s/^X//" >'./helplib/escan.hlp' <<'END_OF_FILE'
XThe rolodex program is displaying each entry in your rolodex database
X(the entries are ordered alphabetically) one by one.  After an entry
Xhas been displayed, you have the option to
X
X  -- have the next entry displayed (type RETURN)
X  -- have the previous entry displayed by (type '<' RETURN)
X  -- delete the entry from your rolodex (type '-' RETURN)
X  -- change the information contained in this entry (type '+' RETURN)
X  -- abort this sequential display mode and go back to the main menu 
X     (type '\' RETURN)
X
XIf you elect to delete the entry, the message 'Entry deleted' will be
Xdisplayed briefly, and then the next entry will be displayed.
X
XIf you elect to update the entry, after you have completed the update
Xoperation the message 'Displaying next entry in scan list' will be
Xdisplayed briefly, and then the next entry will be displayed.
X
END_OF_FILE
if test 847 -ne `wc -c <'./helplib/escan.hlp'`; then
    echo shar: \"'./helplib/escan.hlp'\" unpacked with wrong size!
fi
# end of './helplib/escan.hlp'
fi
if test -f './helplib/esearch.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/esearch.hlp'\"
else
echo shar: Extracting \"'./helplib/esearch.hlp'\" \(1072 characters\)
sed "s/^X//" >'./helplib/esearch.hlp' <<'END_OF_FILE'
XThe rolodex program is displaying each entry that matches the search string
Xyou provided, one by one.  After an entry has been displayed, you have
Xthe option to
X
X  -- have the next entry displayed (type RETURN)
X  -- have the previous entry displayed by (type '<' RETURN)
X  -- delete the entry from your rolodex (type '-' RETURN)
X  -- change the information contained in this entry (type '+' RETURN)
X  -- abort this sequential display mode and go back to the main menu 
X     (type '\' RETURN)
X
X     If you elect to delete the entry, the message 'Entry deleted' will
Xbe displayed briefly, and then the next entry will be displayed.
X     If you elect to update the entry, after you have completed the
Xupdate operation the message 'Displaying next entry in scan list' will
Xbe displayed briefly, and then the next entry will be displayed.
X     If only one entry matched your search string, or the entry being
Xdisplayed is the last entry which matches, if you try to continue the
Xprogram will inform you that there are no more matching entries and
Xreturn you to the main menu.
X
END_OF_FILE
if test 1072 -ne `wc -c <'./helplib/esearch.hlp'`; then
    echo shar: \"'./helplib/esearch.hlp'\" unpacked with wrong size!
fi
# end of './helplib/esearch.hlp'
fi
if test -f './helplib/fldsrch.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/fldsrch.hlp'\"
else
echo shar: Extracting \"'./helplib/fldsrch.hlp'\" \(1035 characters\)
sed "s/^X//" >'./helplib/fldsrch.hlp' <<'END_OF_FILE'
XYou have asked to search the rolodex database by some other item than name.
XFor instance, if you wanted to find people who worked in Cambridge, you could
Xselect the 'Work Address' item and use as a search string 'Cambridge'.  If
Xthis is not what you want to do type '\' RETURN to get back to the main menu.
X
XTo select an item to search by, type the number of the item.  It will
Xthen prompt you for a search string.  Type in what you want to search
Xfor followed by RETURN.  The program will then show you the entries that
Xit has found that match your search criteria.
X
X(Advanced feature) You can search by items which you have defined, as well as
Xthe standard items.  The last choice is not a standard item but an option to
Xallow you to type in the name of your own user-defined item name.  For
Xinstance, if your rolodex database contained 'Net Address' items, you could
Xsearch for Net Addresses containing 'ihnp4' by selecting the last choice
Xand typing in 'Net Address' RETURN, followed by 'ihnp4' RETURN at the
Xappropriate prompts.
X
END_OF_FILE
if test 1035 -ne `wc -c <'./helplib/fldsrch.hlp'`; then
    echo shar: \"'./helplib/fldsrch.hlp'\" unpacked with wrong size!
fi
# end of './helplib/fldsrch.hlp'
fi
if test -f './helplib/lockinfo.dos' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/lockinfo.dos'\"
else
echo shar: Extracting \"'./helplib/lockinfo.dos'\" \(583 characters\)
sed "s/^X//" >'./helplib/lockinfo.dos' <<'END_OF_FILE'
XYour rolodex is already in use!
X
XEither someone else on a networked DOS system is using and possibly modifying
Xyour rolodex, or else you forgot to properly exit a previous use of your
Xrolodex, or possibly the system crashed while you were using your rolodex the
Xlast time.
X
XYou can check on the lock file by typing:
X
XDIR <d:>\ROLODATA.LCK  (Where <d:> is your current disk drive, i.e., A:)
X
XIf you're on a networked system, and this file is present and you're not
Xrunning rolodex, find out who may be running it.  Otherwise, you can clean up
Xby simply typing:
X
XDEL <d:>\ROLODATA.LCK
END_OF_FILE
if test 583 -ne `wc -c <'./helplib/lockinfo.dos'`; then
    echo shar: \"'./helplib/lockinfo.dos'\" unpacked with wrong size!
fi
# end of './helplib/lockinfo.dos'
fi
if test -f './helplib/lockinfo.unx' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/lockinfo.unx'\"
else
echo shar: Extracting \"'./helplib/lockinfo.unx'\" \(735 characters\)
sed "s/^X//" >'./helplib/lockinfo.unx' <<'END_OF_FILE'
XYour rolodex is already in use!
X
XEither someone else is using and possibly modifying your rolodex, or else
Xyou forgot to exit a previous use of your rolodex, or possibly the system
Xcrashed while you were using your rolodex the last time.
X
XYou can find out who is using your rolodex by typing
X
Xls -l ~/.rolodexdata.lock
X
XThe third column of the output will be a user's name.  If the name is
Xnot yours, then you should find out what that person is doing with your
Xrolodex and ask him/her to let you know when they are finished.
X
XIf the name is your own, then it is probably safe to remove the lock file.
X(It is possible that someone else is logged in as you, however...)
XType
X
Xrm ~/.rolodexdata.lock
X
Xand then you can use your rolodex.
X
END_OF_FILE
if test 735 -ne `wc -c <'./helplib/lockinfo.unx'`; then
    echo shar: \"'./helplib/lockinfo.unx'\" unpacked with wrong size!
fi
# end of './helplib/lockinfo.unx'
fi
if test -f './helplib/lockinfo.vms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/lockinfo.vms'\"
else
echo shar: Extracting \"'./helplib/lockinfo.vms'\" \(811 characters\)
sed "s/^X//" >'./helplib/lockinfo.vms' <<'END_OF_FILE'
XYour rolodex is already in use!
X
XEither someone else is using and possibly modifying your rolodex, or else
Xyou forgot to exit a previous use of your rolodex, or possibly the system
Xcrashed while you were using your rolodex the last time.
X
XYou can find out who is using your rolodex by typing
X
XDIR/OWN SYS$LOGIN:ROLODEXDATA.LOCK
X
XThe last item on the line will be [GROUP,OWNER], where OWNER is the login
Xof the person owning the lock file.  If the login is not yours, then you
Xshould find out what that person is doing with your rolodex and ask
Xhim/her to let you know when they are finished.
X
XIf the name is your own, then it is probably safe to remove the lock file.
X(It is possible that someone else is logged in as you, however...)
XType
X
XDEL SYS$LOGIN:ROLODEXDATA.LOCK;*
X
Xand then you can use your rolodex.
X
END_OF_FILE
if test 811 -ne `wc -c <'./helplib/lockinfo.vms'`; then
    echo shar: \"'./helplib/lockinfo.vms'\" unpacked with wrong size!
fi
# end of './helplib/lockinfo.vms'
fi
if test -f './helplib/mainmenu.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/mainmenu.hlp'\"
else
echo shar: Extracting \"'./helplib/mainmenu.hlp'\" \(396 characters\)
sed "s/^X//" >'./helplib/mainmenu.hlp' <<'END_OF_FILE'
X        TOP LEVEL MENU
X
X  +  :  add a new entry
X  %  :  scan the rolodex entry by entry
X  $  :  search by some item other than 'Name'
X  *  :  save any changes made so far
X  !  :  pretty print the rolodex database to a disk file
X  \  :  exit (any changes you've made will be saved)
X
XTo search for an entry by name, just type in the name.
XTo update or delete an entry, first find it by searching.
X
END_OF_FILE
if test 396 -ne `wc -c <'./helplib/mainmenu.hlp'`; then
    echo shar: \"'./helplib/mainmenu.hlp'\" unpacked with wrong size!
fi
# end of './helplib/mainmenu.hlp'
fi
if test -f './helplib/mnymtch.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/mnymtch.hlp'\"
else
echo shar: Extracting \"'./helplib/mnymtch.hlp'\" \(370 characters\)
sed "s/^X//" >'./helplib/mnymtch.hlp' <<'END_OF_FILE'
XRolodex found too many field entries matching your search string to display
Xeach record on the screen and allow you to select each one by number.  Instead,
Xyou may view the entire list, one-by-one, by entering 'v' at the prompt;
Xor, you may abort this search by entering '\', and request another search
Xusing a more unique search string to reduce the number of matches.
END_OF_FILE
if test 370 -ne `wc -c <'./helplib/mnymtch.hlp'`; then
    echo shar: \"'./helplib/mnymtch.hlp'\" unpacked with wrong size!
fi
# end of './helplib/mnymtch.hlp'
fi
if test -f './helplib/moption.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/moption.hlp'\"
else
echo shar: Extracting \"'./helplib/moption.hlp'\" \(1391 characters\)
sed "s/^X//" >'./helplib/moption.hlp' <<'END_OF_FILE'
X     This is the TMC Rolodex, an online way to store and retrieve information
Xabout people you know, and other important pieces of data.
X     Data is stored in units called entries..  There will generally be an entry
Xfor each person in your rolodex.  Inside entries are items.  Items store such
Xthings as a person's name, his phone number(s), and address(es).  You can
Xchange items or add new ones.  You can create or delete entire entries also.
X     At any time you can type the character '\' followed by RETURN to abort
Xwhat you are currently doing.  Most of the time '?' or 'help' followed by
XRETURN will get you more information on what you are expected to type in next.
X     If for some reason you wish to terminate the rolodex program without
Xsaving any changes you have made, hold down the CTRL key and type 'c'.
X
X     When you are searching for information, typing in any part of the
Xinformation that uniquely identifies it is good enough.  For instance, if you
Xwere looking for John Finklesnort, typing 'John' is probably not a good idea
Xbecause you probably have a few names that contain 'John', but typing 'Finkle'
Xor 'snort' will probably uniquely identify the entry you want.  The search
Xprogram is completely case-insensitive.
X     The rolodex search is completely case-insensitive (e.g., searching for
X'Finkle' is the same as searching for 'finkle' is the same as 'fInKLe').
X
END_OF_FILE
if test 1391 -ne `wc -c <'./helplib/moption.hlp'`; then
    echo shar: \"'./helplib/moption.hlp'\" unpacked with wrong size!
fi
# end of './helplib/moption.hlp'
fi
if test -f './helplib/moptions.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/moptions.hlp'\"
else
echo shar: Extracting \"'./helplib/moptions.hlp'\" \(748 characters\)
sed "s/^X//" >'./helplib/moptions.hlp' <<'END_OF_FILE'
XThis is the TMC Rolodex, an online way to store and retrieve information
Xabout people you know, and other important pieces of data.
X
XAt any time you can type the character '\' followed by RETURN to abort
Xwhat you are currently doing.  Most of the time '?' or 'help' followed by
XRETURN will get you more information on what you are expected to type in
Xnext.
X
XAt the Top Level Menu, which you are currently at, you can type the following:
X
X'+'     to begin entering information about a new person.
X'%'     to begin scanning your rolodex, entry by entry.
X'!'     to print out your rolodex in a nice format.
X'*'     to save any changes you have made to your rolodex.
X'\'     to exit the rolodex program.
X
XIf you wish to find an already existing entry
X
END_OF_FILE
if test 748 -ne `wc -c <'./helplib/moptions.hlp'`; then
    echo shar: \"'./helplib/moptions.hlp'\" unpacked with wrong size!
fi
# end of './helplib/moptions.hlp'
fi
if test -f './helplib/moreflds.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/moreflds.hlp'\"
else
echo shar: Extracting \"'./helplib/moreflds.hlp'\" \(423 characters\)
sed "s/^X//" >'./helplib/moreflds.hlp' <<'END_OF_FILE'
XAll basic fields for the new entry have either been entered or skipped at
Xthis point.  You may either save the entry now, or you may create your own
Xcustom fields, consisting of user-defined field names and contents.  These
Xfields can be selected later by name for content searches in the same way
Xas the basic fields.
X
XTo create user fields, answer 'y' to the prompt.
XTo terminate the entry now, answer 'n' to the prompt.
END_OF_FILE
if test 423 -ne `wc -c <'./helplib/moreflds.hlp'`; then
    echo shar: \"'./helplib/moreflds.hlp'\" unpacked with wrong size!
fi
# end of './helplib/moreflds.hlp'
fi
if test -f './helplib/newadd.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/newadd.hlp'\"
else
echo shar: Extracting \"'./helplib/newadd.hlp'\" \(195 characters\)
sed "s/^X//" >'./helplib/newadd.hlp' <<'END_OF_FILE'
XAt this point, you have the choice of adding the newly-created entry to
Xthe Rolodex database, or aborting this action.  If you abort, all information
Xentered for the new entry will be discarded.
END_OF_FILE
if test 195 -ne `wc -c <'./helplib/newadd.hlp'`; then
    echo shar: \"'./helplib/newadd.hlp'\" unpacked with wrong size!
fi
# end of './helplib/newadd.hlp'
fi
if test -f './helplib/otherfmt.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/otherfmt.hlp'\"
else
echo shar: Extracting \"'./helplib/otherfmt.hlp'\" \(770 characters\)
sed "s/^X//" >'./helplib/otherfmt.hlp' <<'END_OF_FILE'
XIn addition to the fixed fields in a Rolodex entry, you may add an arbitrary
Xnumber of fields for which you choose the field name and meaning.  The way
Xyou define these fields is slightly different than for the fixed fields,
Xsince you must provide not only the field contents but also the name of
Xthe field; this is done by typing the name, followed by a colon (:), and
Xthen the contents of the field as for the basic items.  Note that you may
Xelect only to create the field with no contents, by typing the name and
Xa colon.  To terminate creation of new fields, simply type a return with
Xno field name or delimiter.
X
XAt the "<name>: data" prompt, you may also enter the following responses:
X
X	\:	Abort
X	?:	This help menu
X	^:	Delete the last user-defined field entered
X
END_OF_FILE
if test 770 -ne `wc -c <'./helplib/otherfmt.hlp'`; then
    echo shar: \"'./helplib/otherfmt.hlp'\" unpacked with wrong size!
fi
# end of './helplib/otherfmt.hlp'
fi
if test -f './helplib/pkentry.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/pkentry.hlp'\"
else
echo shar: Extracting \"'./helplib/pkentry.hlp'\" \(399 characters\)
sed "s/^X//" >'./helplib/pkentry.hlp' <<'END_OF_FILE'
XAfter requesting a field search, you have been presented with a menu of
Xmatching entries.  You may enter the following responses:
X
XCarriage return :       Scan the entries, one by one, in the order given.
X
XEntry number    :       Each entry is numbered; examine the entry for which
X                        you've entered the corresponding number.
X
X\               :       Return to the main menu.
X
X
END_OF_FILE
if test 399 -ne `wc -c <'./helplib/pkentry.hlp'`; then
    echo shar: \"'./helplib/pkentry.hlp'\" unpacked with wrong size!
fi
# end of './helplib/pkentry.hlp'
fi
if test -f './helplib/pkntmenu.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/pkntmenu.hlp'\"
else
echo shar: Extracting \"'./helplib/pkntmenu.hlp'\" \(131 characters\)
sed "s/^X//" >'./helplib/pkntmenu.hlp' <<'END_OF_FILE'
XType number of the entry you wish to view,
Xor type RETURN to view each entry one by one,
Xor type '\' to go back to the main menu.
X
END_OF_FILE
if test 131 -ne `wc -c <'./helplib/pkntmenu.hlp'`; then
    echo shar: \"'./helplib/pkntmenu.hlp'\" unpacked with wrong size!
fi
# end of './helplib/pkntmenu.hlp'
fi
if test -f './helplib/poptions.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/poptions.hlp'\"
else
echo shar: Extracting \"'./helplib/poptions.hlp'\" \(649 characters\)
sed "s/^X//" >'./helplib/poptions.hlp' <<'END_OF_FILE'
XAt this point you can type the following:
X
Xthe RETURN key.
Xthe 'n' key followed by RETURN.
Xthe '\' (backslash) key followed by RETURN.
X
XIf you used the rolodex program by typing something like 'rolo john'
Xthen typing RETURN will find for you the next person in your rolodex
Xwho has the letters 'john' as part of their name.
X
XIf you used the rolodex program by typing something like 'rolo john mary'
Xthen typing 'n' after the program had displayed one of the people whose
Xname contained 'john' would stop the program from looking for any more
X'john's and start looking for 'mary'.
X
XIf you just wish to exit the program type the backslash character.
X
END_OF_FILE
if test 649 -ne `wc -c <'./helplib/poptions.hlp'`; then
    echo shar: \"'./helplib/poptions.hlp'\" unpacked with wrong size!
fi
# end of './helplib/poptions.hlp'
fi
if test -f './helplib/poptmenu.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/poptmenu.hlp'\"
else
echo shar: Extracting \"'./helplib/poptmenu.hlp'\" \(151 characters\)
sed "s/^X//" >'./helplib/poptmenu.hlp' <<'END_OF_FILE'
XOPTIONS:
X   RETURN  -- continue looking for same name.
X   'n'     -- look for the next name you asked about.
X   '\'     -- abort the rolodex program.
X
END_OF_FILE
if test 151 -ne `wc -c <'./helplib/poptmenu.hlp'`; then
    echo shar: \"'./helplib/poptmenu.hlp'\" unpacked with wrong size!
fi
# end of './helplib/poptmenu.hlp'
fi
if test -f './helplib/srchstr.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/srchstr.hlp'\"
else
echo shar: Extracting \"'./helplib/srchstr.hlp'\" \(242 characters\)
sed "s/^X//" >'./helplib/srchstr.hlp' <<'END_OF_FILE'
XYou are being asked to enter a character string to be used for a field content
Xsearch.  This string may either be the entire value to be found, or any
Xsubstring; it is case-insensitive.  Please note the you do NOT have wildcard
Xcapabilities.
END_OF_FILE
if test 242 -ne `wc -c <'./helplib/srchstr.hlp'`; then
    echo shar: \"'./helplib/srchstr.hlp'\" unpacked with wrong size!
fi
# end of './helplib/srchstr.hlp'
fi
if test -f './helplib/update.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/update.hlp'\"
else
echo shar: Extracting \"'./helplib/update.hlp'\" \(1254 characters\)
sed "s/^X//" >'./helplib/update.hlp' <<'END_OF_FILE'
XYou have asked to change some information contained in the entry that was
Xbeing displayed before you typed '+'.  If this is not what you want type '\'
XRETURN to get back to the main menu.
X
XCurrently, the program is displaying the name of each item in the entry and
Xits contents (some items may have no contents).  Each item is numbered.
XSimply type the number of the item whose contents you wish to change.  The
Xprogram will then display the old contents of the item and ask you to type in
Xsome text which will become the new contents.  Once you have done this for
Xeach item you wish to change, type RETURN when it again asks for you an item
Xnumber.  It will then print out the revised entry one more time, and ask you
Xto confirm all your changes.  You can abort all your changes for this entry at
Xany time by typing '\' RETURN.
X
XYou can also add new items to this entry.  The last numbered choice is not an
Xitem name but an option to allow you to do this.  Type this number (now 8) and
Xyou will be prompted for the name and contents of a new field.  For instance
Xyou might want to add an item called 'Net Address' with a value 'cca!alex'.
XWhen prompted you would type 'Net Address: cca!alex' RETURN.  You stop adding
Xnew items by typing just a RETURN.
X
END_OF_FILE
if test 1254 -ne `wc -c <'./helplib/update.hlp'`; then
    echo shar: \"'./helplib/update.hlp'\" unpacked with wrong size!
fi
# end of './helplib/update.hlp'
fi
if test -f './helplib/updatmnu.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/updatmnu.hlp'\"
else
echo shar: Extracting \"'./helplib/updatmnu.hlp'\" \(126 characters\)
sed "s/^X//" >'./helplib/updatmnu.hlp' <<'END_OF_FILE'
XType number of the item you wish to change,
Xor type RETURN to finalize your changes,
Xor type '\' to cancel all your changes.
X
END_OF_FILE
if test 126 -ne `wc -c <'./helplib/updatmnu.hlp'`; then
    echo shar: \"'./helplib/updatmnu.hlp'\" unpacked with wrong size!
fi
# end of './helplib/updatmnu.hlp'
fi
if test -f './helplib/usrfld.hlp' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./helplib/usrfld.hlp'\"
else
echo shar: Extracting \"'./helplib/usrfld.hlp'\" \(644 characters\)
sed "s/^X//" >'./helplib/usrfld.hlp' <<'END_OF_FILE'
XYou may enter the name of any user-defined field to use as the search target
Xfield; you will then be asked for a search string in the field.  While the
Xfield name entered must match exactly the user-defined field name in spelling
Xand length, it is case-insensitive; thus, field name 'Site' will be matched
Xif you ask for 'SITE','site', or 'SiTe'.
X
XThere is no way, within the rolodex program, of determining the existence
Xof a particular user field name; it is therefore the user's responsibility
Xto remember what names have been used.  (Examining the rolodex database,
Xor printing it out, will, however, allow examination of all user fields.)
END_OF_FILE
if test 644 -ne `wc -c <'./helplib/usrfld.hlp'`; then
    echo shar: \"'./helplib/usrfld.hlp'\" unpacked with wrong size!
fi
# end of './helplib/usrfld.hlp'
fi
if test -f './makefile.vms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./makefile.vms'\"
else
echo shar: Extracting \"'./makefile.vms'\" \(970 characters\)
sed "s/^X//" >'./makefile.vms' <<'END_OF_FILE'
X# Makefile for rolo - VAX/VMS Specific version
X
X#TERMSTUFF= /DEFINE=(TERMCAP)
XTERMSTUFF=
X#
X
XTOOLDIR = gal_usrdisk:[ignatz.src.rolo.toolsdir]
X
X#CDBGFLAG = /DEBUG/NOOPT
XCDBFLAG =
X
X#LDBGFLAG = /DEBUG
XLDBGFLAG  =
X
XCFLAGS = $(TERMSTUFF) $(CDBGFLAG)
XLDFLAGS= $(LDBGFLAG)
X                    
XSOURCES = clear.c,io.c,menuaux.c,operatns.c,options.c, -
X	rlist.c,rolo.c,search.c,update.c
X
XOBJECTS = clear.obj,io.obj,menuaux.obj,operatns.obj,options.obj, -
X	rlist.obj,rolo.obj,search.obj,update.obj
X
XTOOLOBJ = $(TOOLDIR)mem.obj,$(TOOLDIR)args.obj,$(TOOLDIR)ctools.obj, -
X	$(TOOLDIR)menu.obj
X
XBIN = $gal_usrdisk:[ignatz.bin]
X
XLIBS = lib:libutils/lib
X
Xrolo : setup,$(OBJECTS)
X	set default $(TOOLDIR)
X	mms tools/descrip=makefile.vms
X	set default [-]
X	link /exec=rolo.exe $(LDFLAGS) $(OBJECTS),$(TOOLOBJ),$(LIBS)
X
Xsetup :
X	cinclude local $(TOOLDIR)
X	clib curses
X
Xinstall : rolo
X	del $(BIN)rolo.exe;*
X	rename rolo.exe $(BIN)rolo.exe
X
Xclean :
X	del $(OBJECTS),rolo.exe,foo,$(TOOLDIR)*.obj
END_OF_FILE
if test 970 -ne `wc -c <'./makefile.vms'`; then
    echo shar: \"'./makefile.vms'\" unpacked with wrong size!
fi
# end of './makefile.vms'
fi
if test -f './menuaux.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./menuaux.c'\"
else
echo shar: Extracting \"'./menuaux.c'\" \(1450 characters\)
sed "s/^X//" >'./menuaux.c' <<'END_OF_FILE'
X/* menuaux.c */
X#include <stdio.h>
X#include <ctype.h>
X
X#ifdef TMC
X#include <ctools.h>
X#else
X#include "ctools.h"
X#endif
X#include "args.h"
X#include "menu.h"
X
X#include "rolofilz.h"
X#include "rolodefs.h"
X#include "datadef.h"
X
X
Xrolo_menu_yes_no (prompt,rtn_default,help_allowed,helpidx,subject)
X
X  char *prompt;
X  int rtn_default;
X  int help_allowed;
X  int helpidx;
X  char *subject;
X  
X{
X  int rval;
X  reask :
X  rval = menu_yes_no_abort_or_help (
X              prompt,ABORTSTRING,help_allowed,rtn_default
X           );
X  switch (rval) {
X    case MENU_EOF :
X      user_eof();
X      break;
X    case MENU_HELP : 
X      cathelpfile(helpidx,subject,1);
X      goto reask;
X      /* break; */
X    default :
X      return(rval);
X      /* break; */
X  }
X
X  return(0);
X}
X  
X
Xrolo_menu_data_help_or_abort (prompt,helpidx,subject,ptr_response)
X
X  char *prompt;
X  int helpidx;
X  char *subject;
X  char **ptr_response;
X  
X{ 
X  int rval;
X  reask :
X  rval = menu_data_help_or_abort(prompt,ABORTSTRING,ptr_response);
X  if (rval == MENU_EOF) user_eof();
X  if (rval == MENU_HELP) {
X     cathelpfile(helpidx,subject,1);
X     goto reask;
X  }     
X  return(rval);
X}
X     
X
Xrolo_menu_number_help_or_abort (prompt,low,high,ptr_ival)
X
X  char *prompt;
X  int low,high,*ptr_ival;
X  
X{  
X  int rval;
X  if (MENU_EOF == (rval = menu_number_help_or_abort (
X                               prompt,ABORTSTRING,low,high,ptr_ival
X                           )))
X     user_eof();
X  return(rval);
X}
END_OF_FILE
if test 1450 -ne `wc -c <'./menuaux.c'`; then
    echo shar: \"'./menuaux.c'\" unpacked with wrong size!
fi
# end of './menuaux.c'
fi
if test -f './respfile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./respfile'\"
else
echo shar: Extracting \"'./respfile'\" \(1326 characters\)
sed "s/^X//" >'./respfile' <<'END_OF_FILE'
XFrom steiner%bvaxb.decnet at bvaxa Mon Nov 16 10:19:09 1987
XReturn-Path: <steiner%bvaxb.decnet at bvaxa>
XReceived: from bvaxa by risuna.com (3.2/SMI-3.2)
X	id AA09220; Mon, 16 Nov 87 10:19:06 CST
XMessage-Id: <8711161619.AA09220 at risuna.com>
XDate: 16 Nov 87 10:11:00 CDT
XFrom: "BVAXB::STEINER" <steiner%bvaxb.decnet at bvaxa>
XSubject: respfile
XTo: "steiner" <steiner at risuna.com>
XReply-To: "BVAXB::STEINER" <steiner%bvaxb.decnet at bvaxa>
XStatus: R
X
X
XCLEAR.OBJ+
XIO.OBJ+
XMENUAUX.OBJ+
XOPERATNS.OBJ+
XOPTIONS.OBJ+
XRLIST.OBJ+
XROLO.OBJ+
XSEARCH.OBJ+
XUPDATE.OBJ+
XTOOLSDIR\ARGS.OBJ+
XTOOLSDIR\CTOOLS.OBJ+
XTOOLSDIR\CTOOLS.OBJ+
XTOOLSDIR\MEM.OBJ+
XTOOLSDIR\MENU.OBJ+
XTOOLSDIR\MENU.OBJ
X------
X
XFrom steiner%bvaxb.decnet at bvaxa Mon Nov 16 10:19:09 1987
XReturn-Path: <steiner%bvaxb.decnet at bvaxa>
XReceived: from bvaxa by risuna.com (3.2/SMI-3.2)
X	id AA09220; Mon, 16 Nov 87 10:19:06 CST
XMessage-Id: <8711161619.AA09220 at risuna.com>
XDate: 16 Nov 87 10:11:00 CDT
XFrom: "BVAXB::STEINER" <steiner%bvaxb.decnet at bvaxa>
XSubject: respfile
XTo: "steiner" <steiner at risuna.com>
XReply-To: "BVAXB::STEINER" <steiner%bvaxb.decnet at bvaxa>
XStatus: R
X
X
XCLEAR.OBJ+
XIO.OBJ+
XMENUAUX.OBJ+
XOPERATNS.OBJ+
XOPTIONS.OBJ+
XRLIST.OBJ+
XROLO.OBJ+
XSEARCH.OBJ+
XUPDATE.OBJ+
XTOOLSDIR\ARGS.OBJ+
XTOOLSDIR\CTOOLS.OBJ+
XTOOLSDIR\CTOOLS.OBJ+
XTOOLSDIR\MEM.OBJ+
XTOOLSDIR\MENU.OBJ+
XTOOLSDIR\MENU.OBJ
X------
X
END_OF_FILE
if test 1326 -ne `wc -c <'./respfile'`; then
    echo shar: \"'./respfile'\" unpacked with wrong size!
fi
# end of './respfile'
fi
if test -f './rolodefs.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./rolodefs.h'\"
else
echo shar: Extracting \"'./rolodefs.h'\" \(722 characters\)
sed "s/^X//" >'./rolodefs.h' <<'END_OF_FILE'
X/* rolodefs.h */
X#define VERSION "2.0.2"
X
X#ifdef VMS
X#define CHUNKSIZE 100000        /* storage size for holding data file */
X#endif
X
X#ifdef UNIX
X#define CHUNKSIZE ((unsigned)100000) /* storage size for holding data file */
X#endif
X
X#ifdef MSDOS
X#define CHUNKSIZE ((unsigned)50000)  /* storage size for holding data file */
X#endif
X
X#define NOLOCKFLAG 'l'
X#define SUMMARYFLAG 's'
X#define OTHERUSERFLAG 'u'
X#define READONLYFLAG 'r'
X
X#define LEGAL_OPTIONS "lsru"
X#ifdef VMS
X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u use_dir ] "
X#endif
X
X#ifdef UNIX
X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u user ] "
X#endif
X
X#ifdef MSDOS
X#define USAGE "rolo [ person1 person2 ...] [ -l -s -r -u use_dir ] "
X#endif
END_OF_FILE
if test 722 -ne `wc -c <'./rolodefs.h'`; then
    echo shar: \"'./rolodefs.h'\" unpacked with wrong size!
fi
# end of './rolodefs.h'
fi
if test -f './rolofilz.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./rolofilz.h'\"
else
echo shar: Extracting \"'./rolofilz.h'\" \(2280 characters\)
sed "s/^X//" >'./rolofilz.h' <<'END_OF_FILE'
X/* rolofilz.h */
X#ifdef UNIX
X#define ROLOBAK ".rolodex~"
X#define ROLODATA ".rolodex.dat"
X#define ROLOPRINT "roloprint.text"
X#define ROLOLOCK ".rolodexdata.lock"
X#define ROLOTEMP ".rolotemp"
X#define ROLOCOPY ".rolocopy"
X#endif
X
X#ifdef VMS
X#define ROLOBAK "rolodex.bak"
X#define ROLODATA "rolodex.data"
X#define ROLOPRINT "roloprint.text"
X#define ROLOLOCK "rolodexdata.lock"
X#define ROLOTEMP "rolotemp.data"
X#define ROLOCOPY "rolocopy.data"
X#endif
X
X#ifdef MSDOS
X#define ROLOBAK "rolodex.bak"
X#define ROLODATA "rolodex.dat"
X#define ROLOPRINT "roloprnt.txt"
X#define ROLOLOCK "rolodata.lck"
X#define ROLOTEMP "rolotemp.dat"
X#define ROLOCOPY "rolocopy.dat"
X#endif
X
X/* This is now defined in the Makefile (except for VMS) */
X
X/*  #define ROLOLIB "/usr/local/lib/rolo"  */
X#ifdef VMS
X#define	ROLOLIB "gal_usrdisk:[ignatz.lib.rololib]"
X#endif
X
X/*
X * These definitions go with the hlpfiles[] array in IO.C; do *not* change
X * the value any of these definitions, or funny things will happen to your
X * help definitions!  These values are actually array index values to that
X * array, and as such, modification will cause the help routine to point
X * the wrong file...
X *
X * Adding help files consists of both defining the offset here, and entering
X * the filename in hlpfiles[] in IO.C.
X */
X#define	ADDHELP			0
X#define ADDINFO 		(ADDHELP + 1)
X#define	CONFIRMHELP		(ADDINFO + 1)
X#define ENTRYMENU		(CONFIRMHELP + 1)
X#define	ESCANHELP		(ENTRYMENU + 1)
X#define	ESEARCHHELP		(ESCANHELP + 1)
X#define	FIELDSEARCHHELP		(ESEARCHHELP + 1)
X#define	LOCKINFO		(FIELDSEARCHHELP + 1)
X#define	MAINMENU    		(LOCKINFO + 1)
X#define	MANYMATCHHELP		(MAINMENU + 1)
X#define	MOPTIONHELP		(MANYMATCHHELP + 1)
X#define	MOPTIONSHELP		(MOPTIONHELP + 1)
X#define	MOREFIELDSHELP		(MOPTIONSHELP + 1)
X#define	NEWADDHELP		(MOREFIELDSHELP + 1)
X#define	OTHERFORMATHELP		(NEWADDHELP + 1)
X#define	PICKENTRYHELP  		(OTHERFORMATHELP + 1)
X#define	PICKENTRYMENU		(PICKENTRYHELP + 1)
X#define	POPTIONMENU		(PICKENTRYMENU + 1)
X#define	POPTIONSHELP		(POPTIONMENU + 1)
X#define	SEARCHSTRINGHELP	(POPTIONSHELP + 1)
X#define	UPDATEHELP		(SEARCHSTRINGHELP + 1)
X#define	UPDATEMENU		(UPDATEHELP + 1)
X#define	USERFIELDHELP		(UPDATEMENU + 1)
X
X/* Use this to validate given index values */
X#define LAST_HELP ((sizeof(hlpfiles) / sizeof(char *)) - 1)
END_OF_FILE
if test 2280 -ne `wc -c <'./rolofilz.h'`; then
    echo shar: \"'./rolofilz.h'\" unpacked with wrong size!
fi
# end of './rolofilz.h'
fi
if test ! -d './toolsdir' ; then
    echo shar: Creating directory \"'./toolsdir'\"
    mkdir './toolsdir'
fi
if test -f './toolsdir/Makefile' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/Makefile'\"
else
echo shar: Extracting \"'./toolsdir/Makefile'\" \(191 characters\)
sed "s/^X//" >'./toolsdir/Makefile' <<'END_OF_FILE'
X# Rolodex Tools makefile - Generic UNIX
XCC = ccsh
XCFLAGS  = -DSYS5 -DUNIX -O
XDBGFLAG =
XSOURCES = mem.c ctools.c args.c menu.c
XOBJECTS = mem.o ctools.o args.o menu.o
XLIBS =
X
Xtools: $(OBJECTS)
END_OF_FILE
if test 191 -ne `wc -c <'./toolsdir/Makefile'`; then
    echo shar: \"'./toolsdir/Makefile'\" unpacked with wrong size!
fi
# end of './toolsdir/Makefile'
fi
if test -f './toolsdir/Makefile.msc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/Makefile.msc'\"
else
echo shar: Extracting \"'./toolsdir/Makefile.msc'\" \(553 characters\)
sed "s/^X//" >'./toolsdir/Makefile.msc' <<'END_OF_FILE'
X# Rolodex Tools makefile - PC/MS-DOS Version (Microsoft C)
X#
X# :ts=8
X# :bk=0
X# :ma=1
X#
XCC = msc
X#OPTDBG = /Zi
XOPTDBG = /Os
XCFLAGS  = /DMSDOS /DSYS5 $(OPTDBG)
XDBGFLAG = 
XSOURCES = ctools.c menu.c args.c mem.c
XOBJECTS = ctools.obj menu.obj args.obj mem.obj
XLIBOBJECTS = ctools.obj+menu.obj+args.obj+mem.obj
XLIBS =
X
X.c.obj:
X	$(CC) $(CFLAGS) $*.c;
X
Xmem.obj:		mem.c sys5.h
X
Xctools.obj:	ctools.c sys5.h ctools.h basics.h
X
Xargs.obj:		args.c basics.h args.h sys5.h
X
Xmenu.obj:		menu.c basics.h ctools.h menu.h sys5.h
X
Xtools:	$(OBJECTS)
X	lib tools $(LIBOBJECTS);
END_OF_FILE
if test 553 -ne `wc -c <'./toolsdir/Makefile.msc'`; then
    echo shar: \"'./toolsdir/Makefile.msc'\" unpacked with wrong size!
fi
# end of './toolsdir/Makefile.msc'
fi
if test -f './toolsdir/Makefile.tc' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/Makefile.tc'\"
else
echo shar: Extracting \"'./toolsdir/Makefile.tc'\" \(247 characters\)
sed "s/^X//" >'./toolsdir/Makefile.tc' <<'END_OF_FILE'
X# Rolodex Tools makefile - PC/MS-DOS Version (Turbo-C)
XCC = tcc
XCFLAGS  = -O -DMSDOS -DSYS5
XDBGFLAG = 
XSOURCES = mem.c ctools.c args.c menu.c
XOBJECTS = mem.obj ctools.obj args.obj menu.obj
XLIBS =
X
X.c.obj:
X	$(CC) $(CFLAGS) -c $<
X
Xtools: $(OBJECTS)
END_OF_FILE
if test 247 -ne `wc -c <'./toolsdir/Makefile.tc'`; then
    echo shar: \"'./toolsdir/Makefile.tc'\" unpacked with wrong size!
fi
# end of './toolsdir/Makefile.tc'
fi
if test -f './toolsdir/Makefile.unx' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/Makefile.unx'\"
else
echo shar: Extracting \"'./toolsdir/Makefile.unx'\" \(189 characters\)
sed "s/^X//" >'./toolsdir/Makefile.unx' <<'END_OF_FILE'
X# Rolodex Tools makefile - Generic UNIX
XCC = cc
XCFLAGS  = -DSYS5 -DUNIX -O
XDBGFLAG =
XSOURCES = mem.c ctools.c args.c menu.c
XOBJECTS = mem.o ctools.o args.o menu.o
XLIBS =
X
Xtools: $(OBJECTS)
END_OF_FILE
if test 189 -ne `wc -c <'./toolsdir/Makefile.unx'`; then
    echo shar: \"'./toolsdir/Makefile.unx'\" unpacked with wrong size!
fi
# end of './toolsdir/Makefile.unx'
fi
if test -f './toolsdir/Makefile.vms' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/Makefile.vms'\"
else
echo shar: Extracting \"'./toolsdir/Makefile.vms'\" \(228 characters\)
sed "s/^X//" >'./toolsdir/Makefile.vms' <<'END_OF_FILE'
X# Makefile - rolo tools (VAX/VMS Version)
XCFLAGS  = /DEFINE=(SYS5)
XDBGFLAG = 
XSOURCES = mem.c,ctools.c,args.c,menu.c
XOBJECTS = mem.obj,ctools.obj,args.obj,menu.obj
XLIBS =
X
Xtools : $(OBJECTS)
X	@ write sys$output "Tools updated."
END_OF_FILE
if test 228 -ne `wc -c <'./toolsdir/Makefile.vms'`; then
    echo shar: \"'./toolsdir/Makefile.vms'\" unpacked with wrong size!
fi
# end of './toolsdir/Makefile.vms'
fi
if test -f './toolsdir/args.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/args.h'\"
else
echo shar: Extracting \"'./toolsdir/args.h'\" \(2401 characters\)
sed "s/^X//" >'./toolsdir/args.h' <<'END_OF_FILE'
X/* You must include "basics.h" to use this */
X
X/* To use this package, first call get_args, then call the various other */
X/* routines to see which options were given, etc. */
X
X#define NIL 0                          /* null pointer  */
X
X#define ARG_ERROR -1
X#define NO_ARGS 0
X#define ARGS_PRESENT 1
X
X#define MAX_OPTIONS 52                 /* a-z A-Z */
X#define NO_OPTION -1
X
X/* an argument and the option it is associated with */
X
Xtypedef struct argument {
X        char *option;
X        int option_index;
X        struct argument *next;
X} Cmd_Arg, *Ptr_Cmd_Arg;
X
X/* all the arguments (in a list) and a toggle for every possible option */
X
Xtypedef struct {
X        Ptr_Cmd_Arg non_dash_arg_list; 
X        int dash_options[MAX_OPTIONS];
X} Cmd_Line, *Ptr_Cmd_Line;
X
X/*--------------------------------------------------------------------------*/
X        
Xextern char *malloc();
X
Xextern int get_args();
X
X        /* int argc; char **argv; Bool dup_error; Bool print_msg; */
X        /* returns one of ARG_ERROR, NO_ARGS, or ARGS_PRESENT */
X        /* if dup_error, then having two identical options on the command */
X        /* line will cause an error.  If print_msg, then  any error that */
X        /* is noticed is printed out to stderr.  If !dup_error then */
X        /* 'foo -a 3 4 -b -a 5' is equivalent to 'foo -a 3 4 5 -b' */
X        
X        
Xextern Bool any_option_present();
X
X        /* no arguments */
X
Xextern Bool option_present();
X
X        /* char achar; */
X
Xextern char * option_arg();
X
X        /* char achar; int n; */
X
Xextern char * non_option_arg();
X
X        /* int n; */
X
Xextern int n_option_args();
X
X        /* char achar; */
X
Xextern int n_non_option_args();
X
X        /* no arguments */
X
Xextern int n_non_dash_args();
X
X        /* no arguments */
X
Xextern Bool check_option_args();        
X
X        /* char achar; int min; int max; */
X
X#define ALL_LEGAL 0
X
Xextern char legal_options();
X
X        /* char *legaloptions; */
X        /* legaloptions should be a string of characters all in the range */
X        /* a-zA-Z.   Returns ALL_LEGAL if every option parsed in included */
X        /* in the legaloptions string, otherwise returns the first option */
X        /* character not in the string. */
X
Xextern set_option();
X
X        /* char achar */
X
Xextern error_message();
X
X        /* char *progname; char **argv; int index; char *usage; */
X
Xextern print_args();
X
X        /* debugging routine */
END_OF_FILE
if test 2401 -ne `wc -c <'./toolsdir/args.h'`; then
    echo shar: \"'./toolsdir/args.h'\" unpacked with wrong size!
fi
# end of './toolsdir/args.h'
fi
if test -f './toolsdir/basics.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/basics.h'\"
else
echo shar: Extracting \"'./toolsdir/basics.h'\" \(596 characters\)
sed "s/^X//" >'./toolsdir/basics.h' <<'END_OF_FILE'
X#define T 1
X#define F 0
X
X#define True 1
X#define False 0
X
X#define SUCCESS 1
X#define FAILURE 0
X#define ERROR -1
X
X#define Bool int
X
X#ifdef VMS
X#ifndef MAXINT
X#define MAXINT 2147483647
X#endif
X
X#ifndef MAXINTSTR
X#define MAXINTSTR "2147483647"
X#endif
X#endif
X
X
X#ifdef UNIX
X#ifndef MAXINT
X#define MAXINT 2147483647
X#endif
X
X#ifndef MAXINTSTR
X#define MAXINTSTR "2147483647"
X#endif
X#endif
X
X#ifdef  MSDOS
X#ifndef MAXINTSTR
Xextern char *itoa();
Xextern char maxintstr[];
X
X#define MAXINT (~(1 << ((sizeof(int) * 8 - 1))))
X#define MAXINTSTR ((*maxintstr=='\0')?itoa(MAXINT,maxintstr,10):maxintstr)
X#endif
X#endif
END_OF_FILE
if test 596 -ne `wc -c <'./toolsdir/basics.h'`; then
    echo shar: \"'./toolsdir/basics.h'\" unpacked with wrong size!
fi
# end of './toolsdir/basics.h'
fi
if test -f './toolsdir/mem.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/mem.c'\"
else
echo shar: Extracting \"'./toolsdir/mem.c'\" \(2261 characters\)
sed "s/^X//" >'./toolsdir/mem.c' <<'END_OF_FILE'
X/**************************************************************************/
X/**************************************************************************/
X
X
X                  /***** Block Memory Allocator *****/
X
X
X/**************************************************************************/
X/**************************************************************************/
X
X/* Author: JP Massar */
X
X#include <stdio.h>
X
X#include "sys5.h"
X
X#ifdef BSD42
X#include <strings.h>
X#endif
X
X#define NO_MORE_MEMORY -1
X
Xstatic int bytes_left;                  /* space left in current block */
Xstatic char *ptr_next_byte;             /* next free byte */
Xstatic char *ptr_space;                 /* current block */
Xstatic unsigned chunk_size;                  /* size of block last allocated */
X
Xextern char *malloc();
X
X
Xunsigned allocate_memory_chunk(space) 
Xunsigned space;
X
X/* malloc up a new block of memory.  Set our static variables */
X/* returns NO_MORE_MEMORY if can't allocate block. */
X
X{ 
X#ifdef MSDOS
X  if ((char *)NULL == (ptr_space = malloc(space))) {
X#else
X  if (0 == (ptr_space = malloc(space))) {
X#endif
X        fprintf(stderr,"fatal error, no more memory\n");
X        return(NO_MORE_MEMORY);
X  }
X  ptr_next_byte = ptr_space;
X  bytes_left = space;
X  chunk_size = space;
X  return(0);
X}
X
X
Xchar * get_memory_chunk (size) unsigned size;
X
X/* allocate a small segment out of our large block of memory.  If we */
X/* run out allocate another block.  Adjust our static variables. */
X/* returns 0 if no more memory. */
X
X{ char *rval;
X        
X  if (size > chunk_size) {
X        fprintf(stderr,"attempt to allocate too large a chunk\n");
X        return(0);
X  }
X        
X  if (size > bytes_left) {
X        if (NO_MORE_MEMORY == allocate_memory_chunk(chunk_size)) {
X                return(0);
X        }
X        return(get_memory_chunk(size));
X  }
X
X  rval = ptr_next_byte;
X  ptr_next_byte += size;
X  bytes_left -= size;
X  return(rval);
X  
X}
X
X
Xchar * store_string (str,len) char *str; unsigned len;
X
X/* put copy of a string into storage in a memory block.  Return a pointer to */
X/* the copied string.  Returns 0 if out of memory. */
X
X{ char *ptr_space;
X
X  if (0 == (ptr_space = get_memory_chunk(len+1))) {
X        return(0);
X  }
X  strcpy(ptr_space,str);
X  return(ptr_space);
X}
END_OF_FILE
if test 2261 -ne `wc -c <'./toolsdir/mem.c'`; then
    echo shar: \"'./toolsdir/mem.c'\" unpacked with wrong size!
fi
# end of './toolsdir/mem.c'
fi
if test -f './toolsdir/mem.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/mem.h'\"
else
echo shar: Extracting \"'./toolsdir/mem.h'\" \(209 characters\)
sed "s/^X//" >'./toolsdir/mem.h' <<'END_OF_FILE'
Xextern int allocate_memory_chunk();     /* arg1: int space */
X       
Xextern char * get_memory_chunk();       /* arg1: int size */
X
Xextern char * store_string();           /* arg1: char *str, arg2: int len */
END_OF_FILE
if test 209 -ne `wc -c <'./toolsdir/mem.h'`; then
    echo shar: \"'./toolsdir/mem.h'\" unpacked with wrong size!
fi
# end of './toolsdir/mem.h'
fi
if test -f './toolsdir/sys5.h' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'./toolsdir/sys5.h'\"
else
echo shar: Extracting \"'./toolsdir/sys5.h'\" \(102 characters\)
sed "s/^X//" >'./toolsdir/sys5.h' <<'END_OF_FILE'
X#ifdef SYS5
X#define rindex strrchr
X#define index strchr
X#ifndef VMS
X#include <string.h>
X#endif
X#endif
END_OF_FILE
if test 102 -ne `wc -c <'./toolsdir/sys5.h'`; then
    echo shar: \"'./toolsdir/sys5.h'\" unpacked with wrong size!
fi
# end of './toolsdir/sys5.h'
fi
if test -f 'MANIFEST' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MANIFEST'\"
else
echo shar: Extracting \"'MANIFEST'\" \(2094 characters\)
sed "s/^X//" >'MANIFEST' <<'END_OF_FILE'
X   File Name		Archive #	Description
X-----------------------------------------------------------
X .                         1	
X ./Makefile.bsd            1	
X ./Makefile.msc            1	
X ./Makefile.tc             1	
X ./Makefile.unx            1	
X ./Part01                  1	
X ./README.Z                1	
X ./choices.h               1	
X ./clear.c                 1	
X ./datadef.h               2	
X ./helplib                 1	
X ./helplib/addhelp.hlp     1	
X ./helplib/addinfo.hlp     1	
X ./helplib/confirm.hlp     1	
X ./helplib/entrymnu.hlp    1	
X ./helplib/escan.hlp       1	
X ./helplib/esearch.hlp     1	
X ./helplib/fldsrch.hlp     1	
X ./helplib/lockinfo.dos    1	
X ./helplib/lockinfo.unx    1	
X ./helplib/lockinfo.vms    1	
X ./helplib/mainmenu.hlp    1	
X ./helplib/mnymtch.hlp     1	
X ./helplib/moption.hlp     1	
X ./helplib/moptions.hlp    1	
X ./helplib/moreflds.hlp    1	
X ./helplib/newadd.hlp      1	
X ./helplib/otherfmt.hlp    1	
X ./helplib/pkentry.hlp     1	
X ./helplib/pkntmenu.hlp    1	
X ./helplib/poptions.hlp    1	
X ./helplib/poptmenu.hlp    1	
X ./helplib/srchstr.hlp     1	
X ./helplib/update.hlp      1	
X ./helplib/updatmnu.hlp    1	
X ./helplib/usrfld.hlp      1	
X ./io.c                    3	
X ./makefile.vms            1	
X ./menuaux.c               1	
X ./operatns.c              3	
X ./options.c               2	
X ./respfile                1	
X ./rlist.c                 2	
X ./rolo.1                  2	
X ./rolo.c                  3	
X ./rolodefs.h              1	
X ./rolofilz.h              1	
X ./search.c                2	
X ./toolsdir                1	
X ./toolsdir/Makefile       1	
X ./toolsdir/Makefile.msc   1	
X ./toolsdir/Makefile.tc    1	
X ./toolsdir/Makefile.unx   1	
X ./toolsdir/Makefile.vms   1	
X ./toolsdir/args.c         2	
X ./toolsdir/args.h         1	
X ./toolsdir/basics.h       1	
X ./toolsdir/ctools.c       4	
X ./toolsdir/ctools.h       3	
X ./toolsdir/mem.c          1	
X ./toolsdir/mem.h          1	
X ./toolsdir/menu.c         2	
X ./toolsdir/menu.h         2	
X ./toolsdir/sys5.h         1	
X ./update.c                2	
X MANIFEST                  1	This shipping list
END_OF_FILE
if test 2094 -ne `wc -c <'MANIFEST'`; then
    echo shar: \"'MANIFEST'\" unpacked with wrong size!
fi
# end of 'MANIFEST'
fi
echo shar: End of archive 1 \(of 4\).
cp /dev/null ark1isdone
MISSING=""
for I in 1 2 3 4 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked all 4 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
-- 
For comp.sources.unix stuff, mail to sources at uunet.uu.net.



More information about the Comp.sources.unix mailing list