SWIchar.h
上传用户:xqtpzdz
上传日期:2022-05-21
资源大小:1764k
文件大小:3k
源码类别:

xml/soap/webservice

开发平台:

Visual C++

  1. /****************License************************************************
  2.  * Vocalocity OpenVXI
  3.  * Copyright (C) 2004-2005 by Vocalocity, Inc. All Rights Reserved.
  4.  * This program is free software; you can redistribute it and/or
  5.  * modify it under the terms of the GNU General Public License
  6.  * as published by the Free Software Foundation; either version 2
  7.  * of the License, or (at your option) any later version.
  8.  *  
  9.  * This program is distributed in the hope that it will be useful,
  10.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  12.  * GNU General Public License for more details.
  13.  *
  14.  * You should have received a copy of the GNU General Public License
  15.  * along with this program; if not, write to the Free Software
  16.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  17.  * Vocalocity, the Vocalocity logo, and VocalOS are trademarks or 
  18.  * registered trademarks of Vocalocity, Inc. 
  19.  * OpenVXI is a trademark of Scansoft, Inc. and used under license 
  20.  * by Vocalocity.
  21.  ***********************************************************************/
  22. #ifndef _SWICHAR_H_
  23. #define _SWICHAR_H_
  24. #ifdef __cplusplus
  25. #include <cwchar>
  26. #else
  27. #include <wchar.h>
  28. #endif
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32. /**
  33.  * defgroup Character Character and String utilities
  34.  */
  35. /*@{*/
  36. typedef enum {
  37.   SWIchar_CONVERSION_LOSS = -6,  /**< the conversion resulted in character loss             */
  38.   SWIchar_BUFFER_OVERFLOW = -5,  /**< the buffer is too small                               */
  39.   SWIchar_OUT_OF_MEMORY = -4,    /**< malloc returns null                                   */
  40.   SWIchar_INVALID_INPUT = -3,    /**< null, empty string, unicode when should be ascii only */
  41.   SWIchar_FAIL = -2,             /**< unable to convert                                     */
  42.   SWIchar_ERROR = -1,            /**< general error                                         */
  43.   SWIchar_SUCCESS = 0            /**< success                                               */
  44. } SWIcharResult;
  45. /// Tests whether a character is a whitespace character.
  46. #define SWIchar_isspace(x) ((x) == ' ' || (x) == 't' || (x) == 'n' || 
  47.                         (x) == 'r' || (x) == '13' || (x) == '14')
  48. /// Tests whether a wide character is a whitespace character.
  49. #define SWIchar_iswspace(x) ((x) == L' ' || (x) == L't' || (x) == L'n' || 
  50.                         (x) == L'r' || (x) == L'13' || (x) == L'14')
  51. /// Tests whether a character is a digit.
  52. #define SWIchar_isdigit(x) ((x) >= '0' && (x) <= '9')
  53. /// Tests whether a wide character is a digit.
  54. #define SWIchar_iswdigit(x) ((x) >= L'0' && (x) <= L'9')
  55. /// Tests whether a character is alphanumeric.
  56. #define SWIchar_isalpha(x) (((x) >= 'a' && (x) <= 'z') || 
  57.     ((x) >= 'A' && (x) <= 'Z'))
  58. /// Tests whether a wide character is alphanumeric.
  59. #define SWIchar_iswalpha(x) (((x) >= L'a' && (x) <= L'z') || 
  60.     ((x) >= L'A' && (x) <= L'Z'))
  61. #define SWIchar_MAXSTRLEN    64
  62. const wchar_t *SWIcharReturnCodeToWcs(SWIcharResult rc);
  63. /*@}*/
  64. #ifdef __cplusplus
  65. }
  66. #endif
  67. #endif