
Alpha_05  2006-01-04

12345678901234567890123456789012345678901234567890123456789012345678901234567890

Makefile:

  Removed the create_person and create_phone apps, and created a new app called
  "computer" that is the human interface.


address.c:

  Added the "Direction" class.  Not used yet.


big_bang.c:

  Moved the "create_class_definition" routine out of "big_bang.c" and into a 
  new file "class_definitions.c".  And moved the calls to create various 
  classes such as the person, date, phone, us state, and word classes into 
  those respective files.

  Added code to check for existing objects that are the old version (0004)
  from Alpha_04 and offer to upgrade them to the new version (0005).
  NOTE: it only changes those objects that need to be changed, all other
  objects are left at version 0004.


computer.c:

  New app created out of create_person.c, create_phone.c and find_phone.c 
  apps.


create_person.c, create_phone.c, find_phone.c:

  These apps were all replaced by the "computer" app.


date.c: 

  Removed the count from the month object because it was always two anyway and 
  served no real purpose.

  Added year, month, and date to string functions.

  Added upgrade routine to upgrade 0004 objects to 0005 objects.


name.c: 

  Fixed two bugs in the finding of names.  The first was it set current_top 
  outside of the compare lists loop, so it didn't get reset back to zero when 
  we started over on list [0].  The second was that when it recomputed the 
  num_spellings after compare lists it indexed the reference list with the 
  "word" index instead of [0] which it was computing.

  Fixed bug in matching name object number of words.  It was not correctly
  comparing the number of words, so it would match one with the wrong number
  of words.  For example when searching for "Los Angeles" it would match up
  with "East Los Angeles".

  Changed to allow abbreviations (such as St. for Saint) in names.

  Added debugging printf statements and added asserts.

  Fixed bug where it would try to verify an object against the input 
  parameter when it didn't find an object.

  Added code to make first letter of each word upper case, because now all
  spellings are stored in lower case.


objectify.c:

  Added "is compatible version" routine to determine if a particular version
  of an object is still compatible with the current version.

  Added "is quit command" and "ask yes or no" routines.

  Fixed "ask yes or no" routine so that it works correctly.


objectify.h:

  Removed count from month object.  Since it was always 2, why have it?

  Added external declarations for various routines.

  Added GENDER and US CITY classes.  Added gender variable to person class.

  Changed find_word declaration so that the thing parameter is now a thing
  class parameter.

  Added RESIDENCE, HOUSE, DIRECTION, US ADDRESS, ZIP CODE, STREET NUMBER,
  and STREET classes, which are not used yet in this version. 


person.c:

  Created from create_person.c.


phone.c:

  Moved class creation of phone related classes here from big_bang.c.

  Added phone number creation stuff in part taken from "create_phone.c",
  which has been removed.

  Tweaked the printing of blank lines to make it look better.

  Added "parse phone number" and "parse phone number wo area code" routines
  to deal with phone numbers.

  Reworked the section that deals with problems with phone numbers.

  Added "find phone for person" routine, that finds the phone number for
  a particular person.


spelling.c:

  Changed so that characters are always stored as lower case.

  Added routine to upgrade Alpha_04 objects (0004) to Alpha_05 (0005)
  objects (which consists of changing all the characters to lower case.


us_state.c:

  Moved class creation out of "big_bang.c" and into a new routine here.

  Moved remaining state information (capital city and slogan) from states.txt
  file and into state_info structure.

  Added creation of the US City class.  Added "find state by name", "create
  us city", "add city", and "list cities in state" routines.

  Added routine to add a bunch of additional major cities (only Arkansas,
  Arizona, Alabama, Alaska, California, and a few onther misc. cities are 
  entered in this version).

  Added upgrade routine to upgrade state objects from 0004 to 0005 (which
  meant adding a capital city to each one).  Also called the routine to
  add the addtional cities.


word.c:

  Moved word related class creations out of "big bang" and into a new
  routine here.

  Changed find_word to look for a thing with a certain class instead of a
  certain thing.  I.E. to look for a "month" instead of "January".


