genericopenlibs/openenvcore/libc/src/iswctype.cpp
changeset 0 e4d67989cc36
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/genericopenlibs/openenvcore/libc/src/iswctype.cpp	Tue Feb 02 02:01:42 2010 +0200
@@ -0,0 +1,379 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// Name        : iswctype.cpp
+// Part of     : LIBC
+// Contains the source for fchdir
+// Version     : 1.0
+//
+
+
+ 
+#include <e32std.h>
+#include <wctype.h>
+
+extern "C" {
+//-----------------------------------------------------------------------------
+//Function Name : int iswalpha(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "alpha".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "alpha". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswalpha(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ELuCategory))  || 
+	 	(uInfo.iCategory == (TChar::ELlCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELtCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELoCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswalnum(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "alnum".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "alnum". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswalnum(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ENdCategory)) || 
+		(uInfo.iCategory == (TChar::ELlCategory)) || 
+		(uInfo.iCategory == (TChar::ELuCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELtCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELoCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswblank(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "blank".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "blank". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswblank(wint_t i)
+{
+	const TUint KHorizontalTab = 0x09;
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::EZsCategory)) || 
+		((uInfo.iCategory == (TChar::EControlGroup)) &&
+		(uInfo.iBdCategory == (TChar::ESegmentSeparator)) &&
+		(uInfo.iLowerCase == KHorizontalTab )))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswcntrl(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "cntrl".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "cntrl". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswcntrl(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::EZlCategory))  ||
+		(uInfo.iCategory == (TChar::EZpCategory)) ||
+		(uInfo.iCategory == (TChar::ECcCategory)) ||
+		(uInfo.iCategory == (TChar::ECfCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswdigit(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "digit".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "digit". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswdigit(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+		
+	TChar((TUint)i).GetInfo(uInfo);
+	if(uInfo.iCategory == (TChar::ENdCategory))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswprint(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "print".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "print". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswprint(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ELuCategory))  || 
+	 	(uInfo.iCategory == (TChar::ELlCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELtCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELoCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELmCategory)) || 
+	 	(uInfo.iCategory == (TChar::EMnCategory)) ||
+	 	(uInfo.iCategory == (TChar::EMcCategory)) ||
+	 	(uInfo.iCategory == (TChar::EMeCategory)) ||
+	 	(uInfo.iCategory == (TChar::ENdCategory)) || 
+	 	(uInfo.iCategory == (TChar::ENoCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPcCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPdCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPsCategory)) || 
+	 	(uInfo.iCategory == (TChar::EPeCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPiCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPfCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPoCategory)) || 
+	 	(uInfo.iCategory == (TChar::ESmCategory)) ||
+	 	(uInfo.iCategory == (TChar::EScCategory)) ||
+	 	(uInfo.iCategory == (TChar::ESkCategory)) ||
+	 	(uInfo.iCategory == (TChar::ESoCategory)) ||
+	 	(uInfo.iCategory == (TChar::EZsCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+	
+//-----------------------------------------------------------------------------
+//Function Name : int iswlower(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "lower".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "lower". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswlower(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ELlCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswgraph(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "graph".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "graph". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswgraph(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ELuCategory))  || 
+	 	(uInfo.iCategory == (TChar::ELlCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELtCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELoCategory)) ||
+	 	(uInfo.iCategory == (TChar::ELmCategory)) || 
+	 	(uInfo.iCategory == (TChar::EMnCategory)) ||
+	 	(uInfo.iCategory == (TChar::EMcCategory)) ||
+	 	(uInfo.iCategory == (TChar::EMeCategory)) ||
+	 	(uInfo.iCategory == (TChar::ENdCategory)) || 
+	 	(uInfo.iCategory == (TChar::ENoCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPcCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPdCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPsCategory)) || 
+	 	(uInfo.iCategory == (TChar::EPeCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPiCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPfCategory)) ||
+	 	(uInfo.iCategory == (TChar::EPoCategory)) || 
+	 	(uInfo.iCategory == (TChar::ESmCategory)) ||
+	 	(uInfo.iCategory == (TChar::EScCategory)) ||
+	 	(uInfo.iCategory == (TChar::ESkCategory)) ||
+	 	(uInfo.iCategory == (TChar::ESoCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswpunct(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "punct".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "punct". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswpunct(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::EPcCategory))  ||
+		(uInfo.iCategory == (TChar::EPdCategory)) ||
+		(uInfo.iCategory == (TChar::EPsCategory)) ||
+		(uInfo.iCategory == (TChar::EPeCategory)) ||
+		(uInfo.iCategory == (TChar::EPiCategory)) ||
+		(uInfo.iCategory == (TChar::EPfCategory)) ||
+		(uInfo.iCategory == (TChar::EPoCategory)) ||
+		((uInfo.iCategory == (TChar::EScCategory)  &&
+	     (uInfo.iBdCategory ==((TChar::EEuropeanNumberTerminator))))) ||
+	    ((uInfo.iCategory == (TChar::ESymbolGroup) &&
+	     (uInfo.iBdCategory ==((TChar::EEuropeanNumberTerminator))))) ||
+	    ((uInfo.iCategory == (TChar::ESymbolGroup) &&
+	     (uInfo.iBdCategory ==((TChar::EOtherNeutral))))) ||
+	     ((uInfo.iCategory == (TChar::ESkCategory) &&
+	     (uInfo.iBdCategory ==((TChar::EOtherNeutral))))))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswspace(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "space".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "space". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswspace(wint_t i)
+{
+	return (TChar((TUint)i).IsSpace());
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswupper(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "upper".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "upper". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswupper(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((uInfo.iCategory == (TChar::ELuCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : int iswxdigit(wint_t i)
+//Description   : tests whether wc is a wide character belonging to the wide
+//character class "xdigit".
+//Return Value  : returns  non-zero  if  i is  a  wide  character belonging to
+//the  wide  character class "xdigit". Otherwise it returns zero.
+//-----------------------------------------------------------------------------
+EXPORT_C int iswxdigit(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	if((((uInfo.iCategory == (TChar::ELlCategory)) || (uInfo.iCategory == (TChar::ELuCategory))) && 
+			((i >= L'a' && i <= L'f') || (i >= L'A' && i <= L'F'))) ||
+			(uInfo.iCategory == (TChar::ENdCategory)))
+	{
+		return (1);
+	}
+	else
+	{
+		return (0);
+	}
+} //end of function
+    
+//-----------------------------------------------------------------------------
+//Function Name : wint_t towlower(wint_t i)
+//Description   :If i is a wide character,  it  is  converted  to  lowercase.
+//Characters  which  do  not  have case are returned unchanged.
+//Return Value  :returns the lowercase equivalent of i, or  WEOF if i is WEOF
+//-----------------------------------------------------------------------------
+EXPORT_C wint_t towlower(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+
+	TChar((TUint)i).GetInfo(uInfo);
+	return (uInfo.iLowerCase);
+} //end of function
+
+//-----------------------------------------------------------------------------
+//Function Name : wint_t towupper(wint_t i)
+//Description   :If i is a wide character,  it  is  converted  to  uppercase.
+//Characters  which  do  not  have case are returned unchanged.
+//Return Value  :returns the uppercase equivalent of i, or  WEOF if i is WEOF
+//-----------------------------------------------------------------------------
+EXPORT_C wint_t towupper(wint_t i)
+{
+	TChar::TCharInfo uInfo;
+	
+	TChar((TUint)i).GetInfo(uInfo);
+	return (uInfo.iUpperCase);
+} //end of function
+
+} // extern "C"