

Old method,  2 levels   user called different routines
for different levels.  Now there is one interface for both.

Old method, level I, user opened file *, then called dig_init
maybe a dig_read_head_binary, 
then read lines, called dig_fini, and closed file
New method  user calls  Vect_open_old, Vect_read_next_line, and
Vect_close.

Old method, level I write,  same as above, but write.
New method  user calls Vect_open_new,  Vect_write_line  etc
maybe Vect_copy_head,  then Vect_close.

Old method, level II,  User called dig_P_init, then 
dig_P_read_next_line, then  dig_P_fini.
New method very similar: call  Vect_open_old, Vect_read_next_line,
Vect_close.  Notice procedures are the same for level I and level II.

Some level II programs will require more capabilities.  We still have
to hash out what they need and how to supply it.

Old read/write routines, some would take  Xarr,Yarr,n_points.  Now
all take just a struct line_pnts.   There are 2 new routines to 
support this.  Unlike the Map_info structure, which the user can
just define one and pass it in to open, the line_pnts structure needs
to be initialized before use.  Therefore, it is required that the
user call  Vect_new_line_struct () which will create and initialize
the structure for them.  There is also a Vect_destroy_line_struct()
which will free up the memory of an old one.


Vect_open_new (Map, name)
Vect_open_old (Map, name, mapset)  /*returns level that it was able to open at*/
Vect_rewind (Map);
Vect_close (Map);

Vect_constraint_region (Map, N, S, E, W);
Vect_constraint_type (Map, type);
Vect_remove_constraints (Map);
Vect_read_next_line (Map, line_p);  /* affected by type, and region constr */
Vect_read_next_poly (Map, line_p);  /* not affected by constraints */
    /* reads will return attribute if open in level II */
    /*  or 0 if level I    and -1/-2 on error/eof      */

Vect_copy_head_data (from_head, to_head);

Vect_write_line (Map, type, line_p);

struct line_pnts *
Vect_new_line_struct ()
Vect_destroy_line_struct (line_p)

/*  These have not been worked out yet */
Vect_get_head (name, mapset, head);
Vect_put_head (name, head);
Vect_init_head (head);

Vect_open_update (Map, name)
