Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2002-09-21 00:13:11 +0400
committerJeff Johnston <jjohnstn@redhat.com>2002-09-21 00:13:11 +0400
commit1525d127da1d0f5eb197805e6c8e0c27eda9d520 (patch)
treebc47b5ede8ddcfc65d84aa39bfdc5b5f3dd43c89 /newlib/libc/ctype/towctrans.c
parentda25e61f5998b4ec3e72486cdcd84f6220253ac8 (diff)
2002-09-20 Jeff Johnston <jjohnstn@redhat.com>
* libc/ctype/Makefile.am: Add new files. * libc/ctype/Makefile.in: Regenerated. * libc/ctype/ctype.tex: Add new iswxxxx, towxxxx, wctype, and wctrans functions to documentation index. * libc/ctype/iswalnum.c: New file. * libc/ctype/iswalpha.c: Ditto. * libc/ctype/iswblank.c: Ditto. * libc/ctype/iswcntrl.c: Ditto. * libc/ctype/iswctype.c: Ditto. * libc/ctype/iswdigit.c: Ditto. * libc/ctype/iswgraph.c: Ditto. * libc/ctype/iswlower.c: Ditto. * libc/ctype/iswprint.c: Ditto. * libc/ctype/iswpunct.c: Ditto. * libc/ctype/iswspace.c: Ditto. * libc/ctype/iswupper.c: Ditto. * libc/ctype/iswxdigit.c: Ditto. * libc/ctype/jp2uc.c: Ditto. * libc/ctype/jp2uc.h: Ditto. * libc/ctype/local.h: Ditto. * libc/ctype/towctrans.c: Ditto. * libc/ctype/towlower.c: Ditto. * libc/ctype/towupper.c: Ditto. * libc/ctype/utf8alpha.h: Ditto. * libc/ctype/utf8print.h: Ditto. * libc/ctype/utf8punct.h: Ditto. * libc/ctype/wctrans.c: Ditto. * libc/ctype/wctype.c: Ditto. * libc/locale/locale.c (__lc_ctype): New external array to replace static lc_ctype array. * libc/stdlib/mbtowc_r.c: Use __lc_ctype to check current lc_ctype rather than reentrancy structure's _current_locale field. * libc/stdlib/wctomb_r.c: Ditto.
Diffstat (limited to 'newlib/libc/ctype/towctrans.c')
-rw-r--r--newlib/libc/ctype/towctrans.c97
1 files changed, 97 insertions, 0 deletions
diff --git a/newlib/libc/ctype/towctrans.c b/newlib/libc/ctype/towctrans.c
new file mode 100644
index 000000000..cf2162670
--- /dev/null
+++ b/newlib/libc/ctype/towctrans.c
@@ -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 case mapping
+
+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 */