#if [ $LOGNAME. != new. ]
#then
#  echo
#  echo "This function is intended for new users only."
#  exit 1
#fi
echo "This function creates a new account, with full access to all system"
echo "features, including international UseNet conferences, world wide"
echo "E-mail, editors and programming languages, and much more.  Creation of"
echo "your account is immediate, but continued access may depend on subsequent"
echo "verification of the information."
echo
echo "This system is dedicated to free information, and there are no fees, but"
echo "full and complete information is required to register.  If there is any"
echo "reason you cannot provide verifiable identification for system records,"
echo "answer 'n' to the following question."
echo
echo "create a new account [yn] ? \c"
read response
if [ $response. != y. ]
then
  exit
fi
since=/usr/local/lib/since
regis=/usr/local/lib/regis
file=/usr/local/lib/.regis.log

response=n
while [ $response. != y. ] 
do
  echo
  echo "Enter your desired login name.  This should be a unique"
  echo "alphanumeric-only word of 8 chars or less in length."
  echo "This may be your first name, a nickname or handle, or"
  echo "any other word you would like to be identified by."
  login=""
  while [ -z "$login" ]
  do
    echo
    echo "   login: \c"
    read login
    login=`echo $login | tr "[A-Z]" "[a-z]" \
	   | tr -cd "\012[0-9][a-z]" | cut -c1-8`
    if grep "^$login:" /etc/passwd >/dev/null
    then
      echo
      echo "That login is already in use.  Please choose another."
      login=""
    elif echo "$login" | fgrep -f /usr/local/lib/.dirt >/dev/null
    then
      echo
      echo "That login is unavailable.  Please choose another."
      login=""
    elif fgrep -x "$login" /usr/local/lib/.banned >/dev/null
    then
      echo
      echo "That login is unavailable.  Please choose another."
      login=""
    fi
    case $login in
      [0-9]*) echo
        echo "Please choose a login that begins with a letter."
        login="";;
    esac
  done

  echo
  echo "Enter your displayable full name, as will be shown on user lists."
  echo "This may not be a handle, but it is permitted for this name to be an"
  echo "abbreviation or a nickname, if that is what you are really known by."
  echo "Enter it using proper capitalization, just as you wish it shown."
  full=""
  while [ -z "$full" ]
  do
    echo
    echo "Please enter your displayable full name: \c"
    read full
#   full=`echo $full | tr "[A-Z]" "[a-z]" | ucword`
    full=`echo $full | ucword`
  done
  if echo "$full" | grep -i blut >/dev/null
  then
    echo "\nThat turkey \"$login\" again, name \"$full\"." >>$file
    cat /usr/local/lib/.joker
    stty hupcl
    kill -9 0
    exit
  fi
  echo
  echo "NOTE: All following information is for system records, and will NOT"
  echo "be available to other users.  However, your continued access depends"
  echo "on all this information being complete, accurate, and verifiable."
  echo
  echo "Please enter your full name.  This entry may NOT be a handle, but"
  echo "it must be your complete REAL name.  If this should be determined"
  echo "to be erroneous at some future date, your account will be cancelled."
  echo "Enter it using proper capitalization, just as if you were signing"
  echo "a letter.  NOTE: this name is NOT the one available to the public"
  echo "in the system users list."
  name=""
  while [ -z "$name" ]
  do
    echo
    echo "full name: \c"
    read name
    if echo "$name" | grep " " >/dev/null
    then :
    else
      echo
      echo "That was supposed to be your full name!"
      echo "Do you wish to cancel this procedure now? \c"
      read ans
      case $ans in
	y*|Y*) exit;;
      esac
      echo "Well, then, try it again..."
      name=""
    fi
  done
  if echo "$name" | grep -i "simon.*templ.r" >/dev/null
  then
    echo "\nThat turkey \"$login\" again, name \"$full\"/\"$name\"." >>$file
    cat /usr/local/lib/.joker
    stty hupcl
    kill -9 0
    exit
  fi
  echo
  echo "Your \"street address\" in the next question is considered to be"
  echo "the address at which your home phone is located.  This of course"
  echo "could NOT be a P. O. box."
  addr=""
  while [ -z "$addr" ]
  do
    echo
    echo "Please enter your street address: \c"
    read addr
  done
  city=""
  while [ -z "$city" ]
  do
    echo
    echo "Please enter your city, state, and zip code: \c"
    read city
  done
  echo
  echo "Your home phone number is required for verification, whether or not"
  echo "it is unlisted.  You can be assured it will not be made public under"
  echo "any circumstances."
  phone=""
  while [ -z "$phone" ]
  do
    echo
    echo "Please enter your home VOICE phone number, with area code: \c"
    read phone
  done
  echo "Is this a METRO number [yn] ? \c"
  read met
  case $met in
    y*|Y*) phone="$phone METRO";;
  esac
  echo
  echo "(optional) Please enter your work phone number, if any: \c"
  read work
  if [ ! -z "$work" ]
  then
    echo "Is this a METRO number [yn] ? \c"
    read met
    case $met in
      y*|Y*) work="$work METRO";;
    esac
  fi
  bday=""
  while [ -z "$bday" ]
  do
    echo
    echo "Please enter your date of birth: \c"
    read bday
  done
  echo
  echo "The next few questions are optional, but may assist us to provide"
  echo "better service to you and other users."
  echo
  echo "(optional) Please enter type of PC you are using: \c"
  read equip
  echo
  echo "(optional) Please enter type and speed of modem: \c"
  read modem
  echo
  echo "(optional) Are you a sysop of a BBS system [yn] ? \c"
  read sys
  case "$sys" in
  y*|Y*) 
    sysnm=""
    while [ -z "$sysnm" ]
    do
      echo
      echo "Please enter the Name of your Board: \c"
      read sysnm
    done
    sysno=""
    while [ -z "$sysno" ]
    do
      echo
      echo "Please enter the (data) telephone number, with area code: \c"
      read sysno
    done
    echo "Is this a METRO number [yn] ? \c"
    read met
    case $met in
      y*|Y*) sysno="$sysno METRO";;
    esac ;;
  esac
  echo
  echo "Enter desired terminal emulation.  The most common choices are"
  echo "vt100, ansi, and vt52.  If you have it, vt100 is reccomended."
  echo "many other terms are supported.  If you're not sure what your"
  echo "exact termcap entry is, you may leave this blank for now."
  echo
  echo "     term: \c"
  read term
  if [ -z "$term" ]
  then
    term=vt100
    echo
    echo "By default your TERM is vt100.  It can be changed at any time"
    echo "by editing your .profile for a different setting."
  fi
  shell=""
  while [ -z "$shell" ]
  do
    echo
    echo "Enter desired shell.  The shells that are currently available"
    echo "are:" `cat /etc/shells`
    echo
    echo "Type just a return to get the standard Bourne shell.  If you're"
    echo "not yet familiar with any unix shell, you can type 'm' to use"
    echo "the menu system instead."
    echo
    echo "     shell: \c"
    read shell
    bbs=n
    if [ -z "$shell" ]
    then
      shell=STANDARD
    elif [ $shell = m ]
    then
      shell=STANDARD
      bbs=y
    fi
    if [ $shell. != STANDARD. ]
    then
      shell=`fgrep -x "$shell" /etc/shells`
    fi
  done
  sentry=""
  while [ -z "$sentry" ]
  do
    echo
    echo "The system normally will give you notices when another user logs"
    echo "in or out.  You may elect not to see these if you prefer."
    echo
    echo "Would you like these reports [yn] ? \c"
    read sentry
    case $sentry in
      y*|Y*)	sedstr="";;
      n*|N*)	sedstr="s/sn -u/# &/";;
      *)	sentry="";;
    esac
  done
  dir=/u/$login
  gid=1
# uid=`cut -d: -f3 /etc/passwd | sort -n | tail -1`
# uid=`expr $uid + 1`
  uid=`tail -1 /etc/passwd | cut -d: -f3`
  uid=`/usr/local/lib/pbbs/nextid $uid`
  echo
  echo "     login:" $login
  echo "      name:" $full
  echo " FULL name:" $name
  echo "   address:" $addr
  echo " city, etc:" $city
  echo "     phone:" $phone
  if [ ! -z "$work" ]
  then
    echo "work phone:" $work
  fi
  echo " birthdate:" $bday
  if [ ! -z "$equip" ]
  then
    echo " equipment:" $equip
  fi
  if [ ! -z "$modem" ]
  then
    echo "     modem:" $modem
  fi
  case "$sys" in
  y*|Y*)
    echo "  BBS name:" $sysnm
    echo " BBS phone:" $sysno ;;
  esac
  echo "      term:" $term
  if [ $bbs = y ]
  then
    echo "     shell: PinkBBS"
  else
    echo "     shell:" $shell
  fi
  echo "  home dir:" $dir "(assigned by system)"
  echo "       uid:" $uid "(assigned by system)"
  echo "       gid:" $gid "(assigned by system)"
  echo
  echo "Check this info carefully one more time to be sure that it"
  echo "is all complete and correct."
  echo
  echo "is all the info ok [yn] ? \c"
  read response
done
if [ $shell. = STANDARD. ]
then
  shell=""
fi
echo
trap "" 1 2 3 15
echo "installing account ... \c"
mail register <<RegiS
Subject: New user: $login

     login: $login
       uid: $uid
       gid: $gid
 full name: $full
  home dir: $dir
     shell: $shell
   PinkBBS? $bbs
      term: $term
      name: $name
   address: $addr
 city, etc: $city
     phone: $phone
work phone: $work
 birthdate: $bday
 equipment: $equip
     modem: $modem
     sysop? $sys
  BBS name: $sysnm
 BBS phone: $sysno
RegiS
/usr/local/lib/pbbs/stacct $login "$full" $uid $gid $dir $shell || exit 1
mkdir $dir
if echo "$shell" | grep csh >/dev/null
then
  sed -e "$sedstr" -e "/term=.*/s//term=$term/" /etc/stdlogin >$dir/.login
  chgrp $gid $dir $dir/.login
  chown $login $dir $dir/.login
else
  sed -e "$sedstr" -e "/TERM=.*/s//TERM=$term/" /etc/stdprofile >$dir/.profile
  if [ $bbs. = y. ]
  then
    echo "\n# use menu system\nexec pbbs" >> $dir/.profile
  fi
  chgrp $gid $dir $dir/.profile
  chown $login $dir $dir/.profile
fi
#mailx -s "Welcome to SDF" $login < /usr/pub/sdf.welcome
mail $login < /usr/pub/sdf.welcome
echo "\nNew user \"$login\" created, name \"$full\"/\"$name\"." >>$file
echo "$login" >>$regis
echo "`date +%y-%m-%d`  $login" >>$since
echo "done"
echo
echo "When you log in, you will select a password.  Remember, for it to"
echo "be valid it must be at least 6 characters, and have at least one"
echo "non-alphabetic character in it."
echo
echo "Logging out ... log back in under your new account now."
stty -hupcl
kill -9 0