0,0 → 1,97 |
/* Copyright (c) 2002 Red Hat Incorporated. |
All rights reserved. |
|
Redistribution and use in source and binary forms, with or without |
modification, are permitted provided that the following conditions are met: |
|
Redistributions of source code must retain the above copyright |
notice, this list of conditions and the following disclaimer. |
|
Redistributions in binary form must reproduce the above copyright |
notice, this list of conditions and the following disclaimer in the |
documentation and/or other materials provided with the distribution. |
|
The name of Red Hat Incorporated may not be used to endorse |
or promote products derived from this software without specific |
prior written permission. |
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
ARE DISCLAIMED. IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY |
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
|
/* |
FUNCTION |
<<towctrans>>---extensible wide-character translation |
|
INDEX |
towctrans |
|
ANSI_SYNOPSIS |
#include <wctype.h> |
wint_t towctrans(wint_t <[c]>, wctrans_t <[w]>); |
|
TRAD_SYNOPSIS |
#include <wctype.h> |
wint_t towctrans(<[c]>, <[w]>) |
wint_t <[c]>; |
wctrans_t <[w]>; |
|
|
DESCRIPTION |
<<towctrans>> is a function which converts wide characters based on |
a specified translation type <[w]>. If the translation type is |
invalid or cannot be applied to the current character, no change |
to the character is made. |
|
RETURNS |
<<towctrans>> returns the translated equivalent of <[c]> when it is a |
valid for the given translation, otherwise, it returns the input character. |
When the translation type is invalid, <<errno>> is set <<EINVAL>>. |
|
PORTABILITY |
<<towctrans>> is C99. |
|
No supporting OS subroutines are required. |
*/ |
|
#include <_ansi.h> |
#include <string.h> |
#include <reent.h> |
#include <wctype.h> |
#include <errno.h> |
#include "local.h" |
|
wint_t |
_DEFUN (_towctrans_r, (r, c, w), |
struct _reent *r _AND |
wint_t c _AND |
wctrans_t w) |
{ |
if (w == WCT_TOLOWER) |
return towlower (c); |
else if (w == WCT_TOUPPER) |
return towupper (c); |
else |
{ |
r->_errno = EINVAL; |
return c; |
} |
} |
|
#ifndef _REENT_ONLY |
wint_t |
_DEFUN (towctrans, (c, w), |
wint_t c _AND |
wctrans_t w) |
{ |
return _towctrans_r (_REENT, c, w); |
} |
#endif /* !_REENT_ONLY */ |