//
// (c) J. Dean Brock, 1999, 2002
//

#include <iostream>
#include <strstream>
#include <cstdlib>
#include <cstring>
using namespace std ;

#include "btree.hxx"

#define FILENAME "home0X.bt"

char *Usage = "Usage: binsert key value btfile" ;

int main(int argc, char *argv[])
{
  char *key ;
  char *filename ;
  int  value ;
  bTree B; 

  if (argc != 4) {
    cerr << Usage << endl ;
    exit(1) ;
  }

  key = argv[1] ;
  if (strlen(key) > 12)
    key[12] = '\0' ;

  istrstream inbuff(argv[2]) ;
  if (! (inbuff >> value && inbuff.eof())) {
    cerr << "Bad value: " << argv[2] << endl ;
    cerr << Usage << endl ;
    exit(1) ;
  }

  filename = argv[3] ;

  cout << "Inserting key " << key << " with value " << value 
       << " into file " << filename << endl ;

  B.open(filename) ;
  if (! B.io_ok()) {
    cout << "Unable to open " << filename << endl ;
    exit(1) ;
  }
  B.update(key, value) ;
  if (B.io_ok())
    cout << "Update succeeded" << endl ;
  else 
    cout << "Update failed" << endl ;
  return 0 ;
}
