/* $Copyright:	$
 * Copyright (c) 1984, 1985, 1986, 1987, 1988, 1989, 1990 
 * Sequent Computer Systems, Inc.   All rights reserved.
 *  
 * This software is furnished under a license and may be used
 * only in accordance with the terms of that license and with the
 * inclusion of the above copyright notice.   This software may not
 * be provided or otherwise made available to, or used by, any
 * other person.  No title to or ownership of the software is
 * hereby transferred.

/*	Copyright (c) 1988 AT&T	*/
/*	  All Rights Reserved  	*/

/*	THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T	*/
/*	The copyright notice above does not evidence any   	*/
/*	actual or intended publication of such source code.	*/

#ident	"$Header: mbdisplen.c 1.2 89/11/30 $@(#)curses:screen/mbdisplen.c 1.0 AT&T-UP"

#include	"curses_inc.h"



/*
**	Get the display length of a string.
*/
mbdisplen(sp)
char	*sp;
	{
	reg int		n, m, k, ty;
	reg chtype	c;

	n = 0;
	for(; *sp != '\0'; ++sp)
		{
		if(!ISMBIT(*sp))
			++n;
		else	{
			c = RBYTE(*sp);
			ty = TYPE(c & 0377);
			m  = cswidth[ty] - (ty == 0 ? 1 : 0);
			for(sp += 1, k = 1; *sp != '\0' && k <= m; ++k, ++sp)
				{
				c = RBYTE(*sp);
				if(TYPE(c) != 0)
					break;
				}
			if(k <= m)
				break;
			n += _scrwidth[ty];
			}
		}
	return n;
	}
