.sp
version: [$Id: source.txt,v 5.47 1994/10/05 00:58:36 hitman Exp $]
.sp
[1]19-08-93: Got a main menu working.
.sp
[2]19-08-93: Does everything I need it to.  All I have to do is build menus
and run it from there.
.sp
[3]20-08-93: Need to work on a specific search of the choice character for the menu
part of the program.
.sp
[4]23-08-93: Added variable defining directories for menus, screens, and help.  These
make navigation easier.
.sp
[5]15-10-93: The display menu function works pretty good.  Things are about ready to go.  Now need to work on the quick menu functions.
.sp
[6]31-10-93: Very important reminder remember that if your awk'd information is
to be specific grep out the line you wish to use this will prevent any extra info
in your display.
.sp
[7]31-10-93: Successfully allows only one running of the bbs.script program and
instructs the user how to enter the shell again.  This is good to prevent users
looping themselves into limbo.
.sp
[8]2-11-93:  Added a system dependent opening to allow systems to use or have 
some flexibility on its opening.  Plus it covers variables that are read only
in some environments.
.sp
[9]4-11-93:  Added the groff displayer for those important formatted text files.
This will make things pretty for the users.  The groff pipes to a more so the
text can be browned.
.sp
[10]6-11-93:  Added color to the menus thru manual ANSI characters.  This should
be portable, if only used in the menu headers and screen files.
.sp
[11]6-11-93:  Added the GNU licensing agreement.  All code is covered under this
so that no one can steal it and claim power over it.  I hope this makes others 
just add to it and make it better.  After all why write software for a profit 
when others will just steal it.
.sp
[12]6-11-93:  Altered the display menu function to allow the display of files
anywhere with a direct path name.  This should be handy.  I do need to go
back and edit the other menus to be the same.
.sp
[13]6-11-93: Need to organize the options from the command line.  The help
screen shows up to many times.  Things in the source need to get organized.
This will have to be done before the next release.
.sp
[14]6-11-93: Fixed bug with the help file.  I need to watch wild cards in 
any part of the program.  Characters like $, ?, * are special.
.sp
[15]9-11-93: Added a pause at the end of the help menu so that users can read
it.  This is for clarity.
.sp
[16]13-11-93: Added a 'mkfilelist' program that compiles a list of all the
bbs related files.  This is done ussally by just me the programmer but if
anyone adds to this program they can do the same too.  Most information is hard
coded into the mkfilelist program, but it is easy to maintain this way.
.sp
[17]13-11-93: Fixed a bug in the download application script.  And refined
the upload application script.
.sp
[18]14-11-93: Since I cannot get one number generated from the seconds in a day
there will be 60 random welcoming screens.  This will be taken from the number 
of seconds in a minute.  I guess with sixty screens the users should never see
the same one twice.  I will set up a program to generate these welcomes, and
goodbyes.  They will serve two in the same purposes.
.sp
[19]14-11-93: The first use of functions in my program will be for the multiple
calls to the displayscreen.  This just figures out a time and displays the 
screen for that time.
.sp
[20]14-11-93: I remove the 60 random welcoming screen and replaced it with 10.
I figured out how to grab one digit with a printf statement.  And I just solved
my bug listed in document.txt.  The file to be cat'd contains a backspace charcter.
.sp
[21]15-11-93: Made the username search more specific.  This will take out some of
the garble in the username if the SysAdmin uses passwd -S user.
.sp
[22]26-11-93: Made the menu listings more specific.  This will allow the
current directory to move around to other places.  This is helpful for downloads
and uploads.
.sp
[23]27-11-93: Added a jump shell that shells to specific directorys.  This
is good for looking at the file area for dropping users in work directorys.
.sp
[24]28-11-93: Fixed up the little random program to get a random number for 
random header displays.  This will make things always different and new.
Changing this in bbs.script program to incorporat.
.sp
[25]30-11-93: Changing the help file from normal text to troffed formated
text.  I need to make it look more like a manual page, I need it easier
to understand for the average user.
.sp
[26]30-11-93: Adding error checking on the go statement.  This is needed
because users can go to mystery menus and be lost in space.  Adding a 
list command for listing out available menus.
.sp
[27]30-11-93: The new commands are working out great on the development end.
Updating the users end to see what we can get.  Still need to clean up menus.
.sp
[28]30-11-93: Error in the list files need to make it more specific.  Fixed it
by a few more awks.  This bbs is going to be a CPU hog.  I may need to look
into a few optimizers.
.sp
[29]4-12-93: Added two more commands, users, shell.  The command users
lists out all the users for this system.  Shell does just what
it says and shells to the system.
.sp
[30]4-12-93: Fixed a menu problem in the main menu.  Seem like something 
screwy, I hope it is fixed.  This was one of those bugs I caught.  Someone 
that is trying to call hasn't been able to get a login prompt, they haven't
made any errors or anything.
.sp
[31]12-1-94: Adding more help when it comes to sending main messages to the
system administrator.  This will help those odd users that can't follow
simple directions.  My mother and little brothers sit down and use my
system with no problem.  My mom hates computers, she does fine.
.sp
[32]19-1-94: Added a few more instructional things within the code.  Also I
put pauses after a few commands that scroll by really fast.
.sp
[33]19-1-94: Added the who command, so users can see who is online.
.sp
[34]29-1-94: For the conversion of unix script to C I think I will just add
a system command befor everything, then from there slowly convert each
section into code.  All communication can be done by shell variables.
.sp
[35]29-1-94: Added a lockout for those slower modems.  This allows me to
add more graphics and have less worry about things hanging up for the users
that can't wait.
.sp
[36]6-2-94: Added the visual editor as the alternate editor off of the mail
command.  This will allow users to have an editor for the feed backs etc.
.sp
[37]6-2-94: Added the system variable LOGNAME as part of the prompt instead
of haveing the program figure that out.  This makes things runn a little
faster.
.sp
[38]6-2-94: Changed the opening and closing screens to be as fast as the
menu headers.  I am now using the random program that is used with the
headers.  This way I can have about 10 random openings and closings.
.sp
[39]6-2-94: Removed the NUM varaiable and replaced it with an inline use of
the command random and this seems to work a little faster.
.sp
[40]6-2-94: Made reference to menu numbers searched more specificly.  I
added the ":$CHOICE:" and the colons make sure that the text is where it
should be.  This may have fixed the help problem that would cause options
to be selected for the user.
.sp
[41]6-2-94: Added the ability to comment out menu options with a "#" at the
beginning of a line of text.  This function should work in theory but I
haven't had the need to try it.
.sp
[42]8-2-94: The speed lockout was hanging up on users.  I will have to fix
this up.  Poor people are taking it personal.
.sp
[43]8-2-94: Making the program shell after a user has been locked out has
not been easy.  I think this will work by setting a variable that will be
interpreted by the login script.  This will set the lowest shell to exit
the system when done.
.sp
[44]8-2-94: Fixed the lockout problem.  Now I am just working on cleaning
it up so it looks nice.
.sp
[45]20-02-94: BBS launch program now jumps to BBS code directory to run
programs this cuts down on the symbolic links all over the hard disk.
.sp
[46]20-02-94: The lockout is working fine, some users don't like it but
O'well if they don't hang up on the computer there wouldn't be that
problem.
.sp
[46]02-03-94: Added a new function for running programs that take forever and
you would rather get the results by mail.
.sp
[47]02-03-94: This program runs on SunOS 4.1.3, under the Bourne shell.  I
have cleaned up some of the code to be plain Bourne.  This helps out with
the comparability.
.sp
[48]02-03-94: Added a tab before the command in the menus.  This makes
things easier to read.  I like it.  It works.
.sp
[49]05-03-94: Fixed the users shell finally.  When the user shells they get
put in there home directory.
.sp
[50]05-03-94: The tab in the menus cleans things up and make the menus look
better.  Added a few more comments in my code.  I have also started on the
C version of this program.
.sp
[51]06-03-94: The conversion of C has started.  I need to remove most of the
environment variable things, and build a few unix commands as functions.  So
far so good.
.sp
[52]06-03-94: I have the basic parts of the program in action, things don't
run very well but it compiles without any errors, that is good.
.sp
[53]07-03-94: The use of environment variables will not work.  I need to
move things around as regular variables.  I also need a cat function to
print out files, and a function to search for the random files needed.
.sp
[54]08-03-94: I upgraded my GNU compiler from v2.4.5 to v2.5.8.  I hope it
makes smaller executables and has a little better debugging.  It so far
seems the same as the old one.  I also upgraded to make v3.70.
.sp
[55]08-03-94: I set up the random header parts.  I did this with a nasty
switch statement, but it works.  I will fix it later to be cleaner.
.sp
[56]09-03-94: So far the program compiles with no errors, or warnings.
Lets try to keep it that way.  I want to stay strictly ANSI C.
.sp
[57]09-03-94: Well I tightened up the ANSI C belt and found a few warnings.
 I need to clean them out of the program.
.sp
[58]13-03-94: I started and have been working on a program for compiling
the text menus into binary menus for the bbs to read.  This way the bbs
will have to do less work to get the menus on the screen.  A menu compiler
will be used to make this work possible.
.sp
[59] 20-05-94: The function random conflicts with a function random used in 
the header stdlib.h.  I am changing the name the
this function to remove the conflict.
.sp
[60] 20-05-94: I added a few lines here and there to
the welcome screens.  I also must remember to pipe the debug code out the
another console otherwise the screen gets trashed.
.sp
[61]20-05-94: Setup reading of the menu files, input and output is setup to
be done according to the filename given on the command line.
.sp
[62]20-05-94: I changed other code to reflect the changes made to the
bbs_directory header.  I am also adding similar version information to all
programs that are a part of this one.
.sp
[63]20-05-94: Moved the function display_bbs_version out to a separate file
so it can be included in other programs like the menu editor.  This way I
can tell what program the tool is produced for.
.sp
[64]20-05-94: In the code I need to think about creating the complete
directory in the code according to the specifications given on compile.
This way the tools can be used from anywhere.
.sp
[65]20-05-94: I have many unused variables taking up space in this
program, I still need to use them or comment them out until I need them.
.sp
[66]21-05-94: Local declarations of external functions used should save
some memory by allotting space only when needed.  This is different than the
conventional declaration in the beginning of the programs text, I think this
will be a little more effiecent.
.sp
[67]21-05-94: Make sure all code has the proper header file so I can keep
track of the version information.
.sp
[68]21-05-94: menu_edit: This program isn't really and editor, it seems to
be more of a compiler.  I will model it after the cc compiler.  I have
added a few error messages to help the users out when compiling the menus.
.sp
[69]21-05-94: menu_edit: I need to check for the text menu before I even
bother to think about the binary menu.  Right now I end up with a null file
every time I run this program.
.sp
[70]21-05-94: menu_edit: The code seems very cluttered, I can't tell why or
where it is exiting when done with the file checks.  I will have to break
the code up first.  This would be a good time to add in some finite state
programming.  I really think that I am hooked on this method, it allows me
to move my code around.
.sp
[71]21-05-94: menu_edit: I changed a variable index from an char to an
integer so I can define it easier in the main program.
.sp
[72]21-05-94: menu_edit: Always get all the debugging code in and out of the
way before working on the rest of the program.  This will help when
figuring out what is going on.
.sp
[73]21-05-94: menu_edit: Need to make sure that variables don't jump over
there limits.  This is done by a precompiler definition of the length of a
variable column.
.sp
[74]21-05-94: menu_edit: I have the line number changed after a \n but it
seems that there may be other characters after that.  Maybe I need to find
the end of line file wise first.  I am not real sure.
.sp
[75]21-05-94: menu_edit: The program now correctly reads in a menu file.
This works out pretty good, but still needs to write the file to disk when
it is done.
.sp
[76]21-05-94: menu_edit: Haveing a little trouble reading out the binary
file to input or output.  I am changing the method to write it per line, so
it can be read back better.
.sp
[77]22-05-94: I need to get the read and write functions for the binary
files into small functions to be linked into each program.  This way they
stay pretty standard.  The binary read/write has been pretty good so far.
.sp
[78]22-05-94: bbs_script: I broke up this program to make the parts more
accessable for the other programs.  Now I have to do the same for the
other programs, so I can use there parts to get the reads and writes
correctly.
.sp
[79]22-05-94: menu_edit: Having trouble makeing the filepaths with external
function.  They external function doesn't seem to be working out.
.sp
[80]22-05-94: menu_edit, read_menu: I got the filename reading down, now
all variables need to be packed with nulls before used so they will not put
static in the file.  This is simple by addeding the null to the plus one
item.
.sp
[81]22-05-94: menu_edit, read_menu: I made read_menu a function so it can
go and get them menu file according to what it has been told to do.  The
program read_menu_main, has all the information needed to read and view
menu binary files.
.sp
[82]23-05-94: read_menu.c: I keep getting a segmentation fault at the end
of this function.  I need to get the pointer to return properly, without
all the trouble it is currently giving me.
.sp
[83]23-05-94: I ran all the code throught "indent" to clean it up and
organize the lines.  I used the default options to keep it within gnu, in
case I ever send off this project.  I want to stay within standards.
.sp
[84]23-05-94: read_menu.c, r1.19.1.4.1; read_menu_main.c, r1.7.1: Current
branches and still working on the reading of the data.  These two code
segments do a pretty good job, but the data doesn't pass correctly.
.sp
[85]24-05-94: read_menu_main.c, r1.7.1.4.1.2; WORKS: fixed the bugs listed
eariler.  I just need some fine tunning.
.sp
[86]24-05-94: I think I have a baseline to start working on getting the
menus and all incorporated into one program.  I have go rid of a few bugs
and everything seems to compile pretty clean.  I will check everything in
as version with -r2 to set the next branch for all code at 2.
.sp
[87]24-05-94: Well things are moving right along.  All code will be parsed
and organized with the command "indent -gnu *.c" so it will pass the gnu
code standards.  If I keep my code clean and segmented to small sections
this looks really clear, else it looks like trash.  Owell, let the program
clean the code up and I don't have to worry about anything but programming.
.sp
[88]25-05-94: I am removing some of the basic functions in the bbs program
to get a basic bbs shell up and running.  These will be evaluated and added
later.
.sp
[89]25-05-94: bbs_script.c, v2.17.1.3: working on getting all the input to
work correctly on the program side, I can find and match options and that
is good, but I can't do a "X" to exit.
.sp
[90]25-05-94: I think the code is about ready for testing.  I am going to
cut out a section of code to be the next baseline.  I am going to test this
code and then fix up the results.  Lets see how this works out.
.sp
[91]28-05-94: The jump command causes trouble, because when you jump to a
directory you can no longer get the information from the BBS menu files.
This will be corrected by including the current working directory in the
path of the menu file.
.sp
[92]29-05-94: I removed the jump command in the menus, so people will have
to include a script or something to jump down to a directory.  It just
doesn't work quite right the way I need it to.  But a script will be fine.
.sp
[93]02-06-94: Baseline 3.5: After a few bug fixes I cut a new baseline, as
sort of a minor release.  I am pretty new with this rcs stuff, so I need to
trim back the branches every so often with a baseline.
.sp
[94]09-06-94: Fixed a minor bug with reading the menu files, the menu files
will be set up with the mode 555, this prevents there change during the
running of the BBS program.
.sp
[95]11-06-94: Built and install program and this program installs according
to the current baseline.  This way I can simply test everything before I
send it out on internet.  This is great.
.sp
[96]11-06-94: Added a little better error output.  The output is listed
like the following:
.br
program_name: __FILE__ (__LINE__): variable_in_question: Message
.sp
[97]11-06-94: The code looks pretty good, nice and clean.  I need to
recompile the next version without the debuging.  This way I can test out a
real version.
.sp
[98]11-06-94: Baseline 4.0: Things are really looking good.  Now I need to
work on getting a developers type package so I can keep coding.
.sp
[99]11-06-94: The last baseline was is being ported to a DEC 4000/710, running OSF1
and is really nice.  More information later.
.sp
[100]23-06-94: The port to the DEC 4000/710 was great, it fixed some
warnings in both platform compiles.  I now want to get out a public release
so someone else can test, suggest, and comment on my program.  I feel that
I will not have to many bug reports, just mostly suggestion.  I have lists
of new things I can put into this program but they will wait till updates.
.sp
[101]24-06-94: BASELINE 5.0: Almost ready for release, final testing in the
final compile mode.
.sp
[102]02-07-94: BASELINE 5.6: cut a baseline with the HP changes, I need to
clean up the code and add more initializations.
.sp
[103]04-07-94: Working on initilizing all variables (int) to zero, all
scrings to a array of zeros, and all pointer to NULL.  These should help 
out with tracking problems.  Plus it is a good practice.
.sp
[104]23-07-94: BASELINE 5.12: Many additions and cleanups.  This program
currently runs on the following machines: Linux, OSF1, HP_UX, SunOS.  I
only have these available for testing so I will have to hope they cover the
rest.
.sp
[105]23-07-94: Keep to the ANSI standards for C.  This will save you lots and 
lots of time.  ANSI C is the best.
.sp
[106]24-07-94: I really need to make sure I have the right headers in each
file, I get some implicited declarations, and some functions don't act how
I want them to when I don't get the right header up.  I need to investigate
the use of my personal headers, do I want them global or local.  I will
have to look into this.
.sp
[107]28-07-94: New format for the version:  baseline then regular, I usally
release under the baseline so this will help users a little more.
.sp
[108]29-07-94: Added a function to allow menus in the headers of the menu,
this way you can do some fancy graphics or use those menu headers from
other systems, plus hide options.
.sp
[109]19-08-94: I would like to move this project to the finite state table,
I feel things would run much faster.  First I need to make each function
run one task only and make the program level around two.
.sp
[110]19-08-94: I had to expand a few of my code shortcuts for the Ultrix
compiler, it seems to be a little archaic...
.sp
[111]22-08-94: Changed a few scanf's to gets's to allow a return to be
considered input, instead of just jumping to the next line.
I do lose my ability to accept multiple arguments, but that wasn't always
used.
.sp
[112]03-09-94: My harddisk is acting weird so I am archiving off a system
at this current point, it is called v5.28.1.  I have included a few changes
and additions from my Ultrix port.
.sp
[113]06-09-94: Version 5.28.1 is an unoffical baseline, no line in the
sand, Just some code sent out for testing.  I may have an X version real
soon.  I have done a little work with Builder Xcessory and things are
looking pretty good.  The first X version will be very basic, but will
really fun to work on.
.sp
[114]14-09-94: I need to work this program into a finite state program to
give it a little more speed and flexiblity.  After this version I will work
on that.
.sp
