status.i4.v = window_button_create_c(window_id.i2.v, row.i4.v,
					     left_column.i4.v, text.i1a.r,
					     num_chars.i4.v, color.i4.v,
					     end_character.i1.v, end_color.i4.v,
					     callback_data.g.v, help_info.s.r,
					     options.u4.v, handle.i1a.r,

	This routine will draw a text button on a window.

	window_id	window ID
	row		button row
			(WMNGR_CENTER -> center the button top to bottom
					 in the window,
			 otherwise -> button row)
	left_column	starting window column of the button
			(WMNGR_CENTER -> center the button left to right
					 in the window,
			 otherwise -> leftmost window column of button)
	text		ASCII button label
	num_chars	number of ASCII characters in the button label
			(If "num_chars" = 0, the length of the string pointed
			 to by "text" is determined and used.)
	color		button label color  (If a background color other than
			black is desired, a compound color value can be
			constructed using tv_colors or TV_COLORS_WBLINK.)
			(constants are in 'cnsparam')
	end_character	special character to place before and after button text
			(a value of 0 which would indicate no end characters)
			(constants are in 'extchrset')
	end_color	color of end characters (standard is YELLOW)
			(constants are in 'cnsparam')
	callback_func	address of function to be called as follows:
			callback(window_id.i2.v, callback_data.g.v,
			("interrupt_data" is a structure of type
	callback_data	pointer to user-supplied data to be passed to
			callback function
	help_info	context sensitive help callback information
			(structure of type HELP_CALLBACK_DATA)
			(A value of NULL can be passed for this argument
			 if no help is to be provided.)
	options		create options (reserved for future use)
			(WINDOW_BUTTON_OPT_NONE -> no options selected)
	handle		null terminated ASCII handle to be used as an
			alternate means of identifying this button
			(A value of NULL can be passed for this argument
			 if no handle is desired.)
	button_id	returned button ID
			(A value of NULL can be passed for this argument
			 if the button ID is not needed.)

	This function returns ACNET status values as follows:

	OK			success
	CBS_INVARG		invalid window ID passed or invalid row or
	CBS_NO_WINDOW		requested window does not exist
	CBS_INVSIZ		button field extends beyond the end of the
	CBS_MEMFAIL		dynamic memory allocation failure

	This function requires the following include files:

	cnsparam_h, cbslib_h, acnet_errors_h, extchrset_h

	Related functions:

	window_button_delete_c, window_button_enable_c, window_button_disable_c,
	window_button_set_id_type_c, window_button_text_to_id_c,
	window_button_highlight_c, window_button_unhighlight_c,
	window_tvm(_c), window_field_create_c, window_border_button_c,
	switch_create_c, tv_colors, TV_COLORS_WBLINK, intro_tv_windows

	C/C++ usage:

	static const char	text[] = "Label";
	static const char	handle[] = "my_button";
	char	end_character = SYMBOL_DIAMOND;
	short	window_id = WMNGR_BACKGROUND;
	int	status;
	int	row = 1;
	int	column = 1;
	int	num_chars = 0;
	int	color = CYAN;
	int	end_color = YELLOW;
	int	button_id;
	unsigned int	options = WINDOW_BUTTON_OPT_NONE;
	void	callback_func(short window_id, void *callback_data,
			      WINDOW_FIELD_INTERRUPT_DATA *interrupt_data);
	void	*callback_data = (void *) NULL;

	status = window_button_create_c(window_id,row,left_column,text,