--- /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"