]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StdLib/Include/wctype.h
StdLib: Remove EfiSocketLib and Ip4Config Protocol dependency.
[mirror_edk2.git] / StdLib / Include / wctype.h
index 9aa89ef541ba501e55f5d2b08d7e18b29b57e258..eac084cbc3ce09df0483043f19587aa0bc5d6ad2 100644 (file)
@@ -1,6 +1,56 @@
-/*  $NetBSD: wctype.h,v 1.6 2005/02/03 04:39:32 perry Exp $ */\r
+/** @file\r
+    Wide character classification and mapping utilities.\r
+\r
+    The following macros are defined in this file:<BR>\r
+@verbatim\r
+      WEOF        Wide char version of end-of-file.\r
+@endverbatim\r
+\r
+    The following types are defined in this file:<BR>\r
+@verbatim\r
+      wint_t      Type capable of holding all wchar_t values and WEOF.\r
+      wctrans_t   A type for holding locale-specific character mappings.\r
+      wctype_t    Type for holding locale-specific character classifications.\r
+@endverbatim\r
+\r
+    The following functions are declared in this file:<BR>\r
+@verbatim\r
+      ###############  Wide Character Classification Functions\r
+      int           iswalnum  (wint_t);\r
+      int           iswalpha  (wint_t);\r
+      int           iswcntrl  (wint_t);\r
+      int           iswdigit  (wint_t);\r
+      int           iswgraph  (wint_t);\r
+      int           iswlower  (wint_t);\r
+      int           iswprint  (wint_t);\r
+      int           iswpunct  (wint_t);\r
+      int           iswblank  (wint_t);\r
+      int           iswspace  (wint_t);\r
+      int           iswupper  (wint_t);\r
+      int           iswxdigit (wint_t);\r
+\r
+      ###############  Extensible Wide Character Classification Functions\r
+      wctype_t      wctype    (const char *);\r
+      int           iswctype  (wint_t, wctype_t);\r
+\r
+      ###############  Wide Character Case Mapping Utilities\r
+      wint_t        towlower  (wint_t);\r
+      wint_t        towupper  (wint_t);\r
+\r
+      ###############  Extensible Wide Character Case Mapping Utilities\r
+      wctrans_t     wctrans   (const char *);\r
+      wint_t        towctrans (wint_t, wctrans_t);\r
+@endverbatim\r
+\r
+    Copyright (c) 2010 - 2011, Intel Corporation. All rights reserved.<BR>\r
+    This program and the accompanying materials are licensed and made available under\r
+    the terms and conditions of the BSD License that accompanies this distribution.\r
+    The full text of the license may be found at\r
+    http://opensource.org/licenses/bsd-license.\r
+\r
+    THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+    WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-/*-\r
  * Copyright (c)1999 Citrus Project,\r
  * All rights reserved.\r
  *\r
  * SUCH DAMAGE.\r
  *\r
  *  citrus Id: wctype.h,v 1.4 2000/12/21 01:50:21 itojun Exp\r
- */\r
 \r
+    NetBSD: wctype.h,v 1.6 2005/02/03 04:39:32 perry Exp\r
+**/\r
 #ifndef _WCTYPE_H_\r
 #define _WCTYPE_H_\r
 \r
 #include  <sys/EfiCdefs.h>\r
 #include  <machine/ansi.h>\r
 \r
-#ifdef  _BSD_WINT_T_\r
-typedef _BSD_WINT_T_    wint_t;\r
-#undef  _BSD_WINT_T_\r
+#ifdef _EFI_WINT_T\r
+  /** wint_t is an integer type unchanged by default argument promotions that can\r
+      hold any value corresponding to members of the extended character set, as\r
+      well as at least one value that does not correspond to any member of the\r
+      extended character set: WEOF.\r
+  */\r
+  typedef _EFI_WINT_T  wint_t;\r
+  #undef _BSD_WINT_T_\r
+  #undef _EFI_WINT_T\r
 #endif\r
 \r
 #ifdef  _BSD_WCTRANS_T_\r
-typedef wint_t (*wctrans_t)(wint_t);\r
-#undef  _BSD_WCTRANS_T_\r
+  /** A scalar type for holding locale-specific character mappings. */\r
+  typedef wint_t (*wctrans_t)(wint_t);\r
+  #undef  _BSD_WCTRANS_T_\r
 #endif\r
 \r
 #ifdef  _BSD_WCTYPE_T_\r
-typedef _BSD_WCTYPE_T_  wctype_t;\r
-#undef  _BSD_WCTYPE_T_\r
+  /** A scalar type capable of holding values representing locale-specific\r
+      character classifications. */\r
+  typedef _BSD_WCTYPE_T_  wctype_t;\r
+  #undef  _BSD_WCTYPE_T_\r
 #endif\r
 \r
 #ifndef WEOF\r
-#define WEOF  ((wint_t)-1)\r
+  /** WEOF expands to a constant expression of type wint_t whose value does not\r
+      correspond to any member of the extended character set. It is accepted\r
+      (and returned) by several functions, declared in this file, to indicate\r
+      end-of-file, that is, no more input from a stream. It is also used as a\r
+      wide character value that does not correspond to any member of the\r
+      extended character set.\r
+  */\r
+  #define WEOF  ((wint_t)-1)\r
 #endif\r
 \r
 __BEGIN_DECLS\r
-int       /*EFIAPI*/ iswalnum(wint_t);\r
-int       /*EFIAPI*/ iswalpha(wint_t);\r
-int       /*EFIAPI*/ iswcntrl(wint_t);\r
-int       /*EFIAPI*/ iswctype(wint_t, wctype_t);\r
-int       /*EFIAPI*/ iswdigit(wint_t);\r
-int       /*EFIAPI*/ iswgraph(wint_t);\r
-int       /*EFIAPI*/ iswlower(wint_t);\r
-int       /*EFIAPI*/ iswprint(wint_t);\r
-int       /*EFIAPI*/ iswpunct(wint_t);\r
-int       /*EFIAPI*/ iswblank(wint_t);\r
-int       /*EFIAPI*/ iswspace(wint_t);\r
-int       /*EFIAPI*/ iswupper(wint_t);\r
-int       /*EFIAPI*/ iswxdigit(wint_t);\r
-wint_t    /*EFIAPI*/ towctrans(wint_t, wctrans_t);\r
-wint_t    /*EFIAPI*/ towlower(wint_t);\r
-wint_t    /*EFIAPI*/ towupper(wint_t);\r
-wctrans_t /*EFIAPI*/ wctrans(const char *);\r
-wctype_t  /*EFIAPI*/ wctype(const char *);\r
+  /** Test for any wide character for which iswalpha or iswdigit is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswalnum  (wint_t WC);\r
+\r
+  /** Test for any wide character for which iswupper or iswlower is TRUE,\r
+      OR, a locale-specific character where none of iswcntrl, iswdigit,\r
+      iswpunct, or iswspace is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswalpha  (wint_t WC);\r
+\r
+  /** Test for any wide control character.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswcntrl  (wint_t WC);\r
+\r
+  /** Test if the value of WC is a wide character that corresponds to a decimal digit.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswdigit  (wint_t WC);\r
+\r
+  /** Test for wide characters for which iswprint is TRUE and iswspace is FALSE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswgraph  (wint_t WC);\r
+\r
+  /** The iswlower function tests for any wide character that corresponds to a\r
+      lowercase letter or is one of a locale-specific set of wide characters\r
+      for which none of iswcntrl, iswdigit, iswpunct, or iswspace is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswlower  (wint_t WC);\r
+\r
+  /** Test for any printing wide character.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswprint  (wint_t WC);\r
+\r
+  /** The iswpunct function tests for any printing wide character that is one\r
+      of a locale-specific set of punctuation wide characters for which\r
+      neither iswspace nor iswalnum is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswpunct  (wint_t WC);\r
+\r
+  /** Test for standard blank characters or locale-specific characters\r
+      for which iswspace is TRUE and are used to separate words within a line\r
+      of text.  In the "C" locale, iswblank only returns TRUE for the standard\r
+      blank characters space (L' ') and horizontal tab (L'\t').\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswblank  (wint_t WC);\r
+\r
+  /** The iswspace function tests for any wide character that corresponds to a\r
+      locale-specific set of white-space wide characters for which none of\r
+      iswalnum, iswgraph, or iswpunct is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswspace  (wint_t WC);\r
+\r
+  /** Tests for any wide character that corresponds to an uppercase letter or\r
+      is one of a locale-specific set of wide characters for which none of\r
+      iswcntrl, iswdigit, iswpunct, or iswspace is TRUE.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswupper  (wint_t WC);\r
+\r
+  /** The iswxdigit function tests for any wide character that corresponds to a\r
+      hexadecimal-digit character.\r
+\r
+    @param[in]  WC    The wide character to be classified.\r
+\r
+    @return   Returns non-zero (TRUE) if and only if the value of WC conforms\r
+              to the classification described for this function.\r
+  */\r
+  int           iswxdigit (wint_t WC);\r
+\r
+  /** Construct a value that describes a class of wide characters, identified\r
+      by the string pointed to by Desc.  The constructed value is suitable for\r
+      use as the second argument to the iswctype function.\r
+\r
+      The following strings name classes of wide characters that the iswctype\r
+      function is able to test against.  These strings are valid in all locales\r
+      as Desc arguments to wctype().\r
+        - "alnum"\r
+        - "alpha"\r
+        - "blank"\r
+        - "cntrl"\r
+        - "digit"\r
+        - "graph"\r
+        - "lower"\r
+        - "print"\r
+        - "punct"\r
+        - "space"\r
+        - "upper"\r
+        - "xdigit\r
+\r
+    @param[in]  Desc    A pointer to a multibyte character string naming a\r
+                        class of wide characters.\r
+\r
+    @return   If Desc identifies a valid class of wide characters in the\r
+              current locale, the wctype function returns a nonzero value that\r
+              is valid as the second argument to the iswctype function;\r
+              otherwise, it returns zero.\r
+  */\r
+  wctype_t      wctype    (const char *Desc);\r
+\r
+  /** Determine whether the wide character WC has the property described by Wct.\r
+\r
+    @param[in]  WC      The wide character to be classified.\r
+    @param[in]  Wct     A value describing a class of wide characters.\r
+\r
+    @return   The iswctype function returns nonzero (TRUE) if and only if the\r
+              value of the wide character WC has the property described by Wct.\r
+  */\r
+  int           iswctype  (wint_t WC, wctype_t Wct);\r
+\r
+  /** Convert an uppercase letter to a corresponding lowercase letter.\r
+\r
+    @param[in]  WC    The wide character to be converted.\r
+\r
+    @return   If the argument is a wide character for which iswupper is TRUE\r
+              and there are one or more corresponding wide characters, as\r
+              specified by the current locale, for which iswlower is TRUE, the\r
+              towlower function returns one of the corresponding wide\r
+              characters (always the same one for any given locale); otherwise,\r
+              the argument is returned unchanged.\r
+  */\r
+  wint_t        towlower  (wint_t WC);\r
+\r
+  /** Convert a lowercase letter to a corresponding uppercase letter.\r
+\r
+    @param[in]  WC    The wide character to be converted.\r
+\r
+    @return   If the argument is a wide character for which iswlower is TRUE\r
+              and there are one or more corresponding wide characters, as\r
+              specified by the current locale, for which iswupper is TRUE, the\r
+              towupper function returns one of the corresponding wide\r
+              characters (always the same one for any given locale); otherwise,\r
+              the argument is returned unchanged.\r
+  */\r
+  wint_t        towupper  (wint_t WC);\r
+\r
+  /** Construct a value that describes a mapping between wide characters\r
+      identified by the string argument, S.\r
+\r
+      The strings listed below are valid in all locales as the S argument to\r
+      the wctrans function.\r
+        - "tolower"\r
+        - "toupper"\r
+\r
+    @param[in]  S   A pointer to a multibyte character string naming a\r
+                    mapping between wide characters.\r
+\r
+    @return   If S identifies a valid mapping of wide characters in the current\r
+              locale, the wctrans function returns a nonzero value that is\r
+              valid as the second argument to the towctrans function;\r
+              otherwise, it returns zero.\r
+  */\r
+  wctrans_t     wctrans   (const char *S);\r
+\r
+  /** Map the wide character WC using the mapping described by WTr. The current\r
+      locale will be the same as during the call to wctrans that returned\r
+      the value WTr.\r
+\r
+    @param[in]  WC    The wide character to be converted.\r
+    @param[in]  WTr   A value describing a mapping of wide characters in the\r
+                      current locale.\r
+\r
+    @return   Returns the mapped value of WC using the mapping selected by WTr.\r
+  */\r
+  wint_t        towctrans (wint_t WC, wctrans_t WTr);\r
 __END_DECLS\r
 \r
 #endif    /* _WCTYPE_H_ */\r