english
version "1.0"
identify "xyz"

#: Copyright (c) 1998-2005 by Wayne C. Gramlich.
#, All rights reserved.

#: This module provides a fixed size array of strings contruct.  It meant
#, to be used by a few of the procedures in the {unix_system} module.

module string_array

define string_array		#: Null terminated list of strings
    external


#: {string_array} procedures:

procedure create@string_array
    takes
	initial_value string
	size unsigned
    returns string_array
    external string_array__create

    #: This procedure will create and return a new {string_array} object
    #, with {size} slots initialized to contain {initial_value}.



procedure fetch1@string_array
    takes
	string_array string_array
	index unsigned
    returns string
    external string_array__fetch1

    #: This procedure will return the {index}'th string from {string_array}.



procedure print@string_array
    takes
	string_array string_array
	out_stream out_stream
    returns_nothing

    #: This procedure will print {string_array} to {out_stream}.


procedure store1@string_array
    takes
	string_array string_array
	index unsigned
	value string
    returns_nothing
    external string_array__store1

    #: This procedure will store {value} into the {index}'th slot of
    #, {string_array}.



procedure size_get@string_array
    takes
	string_array string_array
    returns unsigned
    external string_array__size_get

    #: This procedure will return the size of {string_array}.