
#ifdef TPLTER

GetWord = {

    SHORT = {{ get one in a list of words }};

    DESCRIPTION = {{
	get a number and a couple of strings and
	find the n-th string starting with 1.

	Negative numbers cause counting with the
	last word.

	The resulting string is sent to STDOUT.

	Numbers, that exceed the number of words,
	result in a returncode "10" (so does number=0)

     RESULT
	word [number-1]
    }};

    BUGS = {{
	there are problems, if GetWord is invoked with
	wrong word number in Scripts: for unknown reason
	the secondary result is cleared early.
	(see .KnownBugs)

	The documentation wrongly stated a returncode 9
	on wrong numbers.
    }};


    EXAMPLES = {{
	>GetWord  1 ali baba
	"ali"

	>GetWord -1 ali baba
	"baba"

	>GetWord 3 ali baba
	"GetWord: bad number"
    }};

    HISTORY = {{
	01-08-93 b_noll created
	23-08-93 b_noll completed
	11-02-95 b_noll slight changes
	20-02-95 b_noll restructured source
	21-02-95 b_noll added version/format-prefix/offset
	20-03-95 b_noll added args diagnostics
	19-08-95 b_noll created .data file
    }};


    Template = "NUMBER/N/A,WORDS/M";
    Arguments = {{
	LONG  * num;
	STRPTR* words;
    }};

    version = "1.3";
    body = {{
	    long num, cnt;

	    for (cnt = 0; argv->words[cnt]; ++cnt);

	    num  = *(argv->num);
	    if (num < 0) num += cnt+1;

	    //retval = RETURN_WARN; /* if no error is wanted ... */

	    if (num == 0 || num > cnt) {
		SetIoErr (ERROR_BAD_NUMBER);
	    } else {
		retval = RETURN_WARN;
		if (PutStr (argv->words[num-1]) == 0) retval = RETURN_OK;
		PutStr("\n");
	    } /* if */


    }};

};

#endif

