../3rdparty/pcre/pcre16_ord2utf16.c

Source codeSwitch to Preprocessed file
LineSource CodeCoverage
1/************************************************* -
2* Perl-Compatible Regular Expressions * -
3*************************************************/ -
4 -
5/* PCRE is a library of functions to support regular expressions whose syntax -
6and semantics are as close as possible to those of the Perl 5 language. -
7 -
8 Written by Philip Hazel -
9 Copyright (c) 1997-2012 University of Cambridge -
10 -
11----------------------------------------------------------------------------- -
12Redistribution and use in source and binary forms, with or without -
13modification, are permitted provided that the following conditions are met: -
14 -
15 * Redistributions of source code must retain the above copyright notice, -
16 this list of conditions and the following disclaimer. -
17 -
18 * Redistributions in binary form must reproduce the above copyright -
19 notice, this list of conditions and the following disclaimer in the -
20 documentation and/or other materials provided with the distribution. -
21 -
22 * Neither the name of the University of Cambridge nor the names of its -
23 contributors may be used to endorse or promote products derived from -
24 this software without specific prior written permission. -
25 -
26THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -
27AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -
28IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -
29ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -
30LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -
31CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -
32SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -
33INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -
34CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -
35ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -
36POSSIBILITY OF SUCH DAMAGE. -
37----------------------------------------------------------------------------- -
38*/ -
39 -
40 -
41/* This file contains a private PCRE function that converts an ordinal -
42character value into a UTF16 string. */ -
43 -
44#ifdef PCRE_HAVE_CONFIG_H -
45#include "config.h" -
46#endif -
47 -
48/* Generate code with 16 bit character support. */ -
49#define COMPILE_PCRE16 -
50 -
51#include "pcre_internal.h" -
52 -
53/************************************************* -
54* Convert character value to UTF-16 * -
55*************************************************/ -
56 -
57/* This function takes an integer value in the range 0 - 0x10ffff -
58and encodes it as a UTF-16 character in 1 to 2 pcre_uchars. -
59 -
60Arguments: -
61 cvalue the character value -
62 buffer pointer to buffer for result - at least 2 pcre_uchars long -
63 -
64Returns: number of characters placed in the buffer -
65*/ -
66 -
67int -
68PRIV(ord2utf)(pcre_uint32 cvalue, pcre_uchar *buffer) -
69{ -
70#ifdef SUPPORT_UTF -
71 -
72/* Checking invalid cvalue character, encoded as invalid UTF-16 character. -
73Should never happen in practice. */ -
74if ((cvalue & 0xf800) == 0xd800 || cvalue >= 0x110000)
partially evaluated: (cvalue & 0xf800) == 0xd800
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
partially evaluated: cvalue >= 0x110000
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:14
0-14
75 cvalue = 0xfffe;
never executed: cvalue = 0xfffe;
0
76 -
77if (cvalue <= 0xffff)
evaluated: cvalue <= 0xffff
TRUEFALSE
yes
Evaluation Count:8
yes
Evaluation Count:6
6-8
78 { -
79 *buffer = (pcre_uchar)cvalue;
executed (the execution status of this line is deduced): *buffer = (pcre_uchar)cvalue;
-
80 return 1;
executed: return 1;
Execution Count:8
8
81 } -
82 -
83cvalue -= 0x10000;
executed (the execution status of this line is deduced): cvalue -= 0x10000;
-
84*buffer++ = 0xd800 | (cvalue >> 10);
executed (the execution status of this line is deduced): *buffer++ = 0xd800 | (cvalue >> 10);
-
85*buffer = 0xdc00 | (cvalue & 0x3ff);
executed (the execution status of this line is deduced): *buffer = 0xdc00 | (cvalue & 0x3ff);
-
86return 2;
executed: return 2;
Execution Count:6
6
87 -
88#else /* SUPPORT_UTF */ -
89(void)(cvalue); /* Keep compiler happy; this function won't ever be */ -
90(void)(buffer); /* called when SUPPORT_UTF is not defined. */ -
91return 0; -
92#endif /* SUPPORT_UTF */ -
93} -
94 -
95/* End of pcre16_ord2utf16.c */ -
96 -
Source codeSwitch to Preprocessed file

Generated by Squish Coco Non-Commercial