diff options
author | Patrik Nyblom <[email protected]> | 2013-07-15 11:08:18 +0200 |
---|---|---|
committer | Patrik Nyblom <[email protected]> | 2013-07-19 18:06:02 +0200 |
commit | d0898734b7ae62572579a0ecd0b03ab451b233bb (patch) | |
tree | 48fd4a2aef87accf9d3c12d3a0c2c411f7f8f150 /erts/emulator/pcre/pcre_ord2utf8.c | |
parent | 712f2cad96a941d68a2f9ad092badd5bc60e8cdd (diff) | |
download | otp-d0898734b7ae62572579a0ecd0b03ab451b233bb.tar.gz otp-d0898734b7ae62572579a0ecd0b03ab451b233bb.tar.bz2 otp-d0898734b7ae62572579a0ecd0b03ab451b233bb.zip |
Update to PCRE 8.33, w/o the erts_ prefix added
Diffstat (limited to 'erts/emulator/pcre/pcre_ord2utf8.c')
-rw-r--r-- | erts/emulator/pcre/pcre_ord2utf8.c | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/erts/emulator/pcre/pcre_ord2utf8.c b/erts/emulator/pcre/pcre_ord2utf8.c index dd9c934e20..a134fca635 100644 --- a/erts/emulator/pcre/pcre_ord2utf8.c +++ b/erts/emulator/pcre/pcre_ord2utf8.c @@ -6,7 +6,7 @@ and semantics are as close as possible to those of the Perl 5 language. Written by Philip Hazel - Copyright (c) 1997-2008 University of Cambridge + Copyright (c) 1997-2012 University of Cambridge ----------------------------------------------------------------------------- Redistribution and use in source and binary forms, with or without @@ -47,41 +47,50 @@ character value into a UTF8 string. */ #include "config.h" #endif -#include "pcre_internal.h" +#define COMPILE_PCRE8 +#include "pcre_internal.h" /************************************************* * Convert character value to UTF-8 * *************************************************/ -/* This function takes an integer value in the range 0 - 0x7fffffff -and encodes it as a UTF-8 character in 0 to 6 bytes. +/* This function takes an integer value in the range 0 - 0x10ffff +and encodes it as a UTF-8 character in 1 to 4 pcre_uchars. Arguments: cvalue the character value - buffer pointer to buffer for result - at least 6 bytes long + buffer pointer to buffer for result - at least 6 pcre_uchars long Returns: number of characters placed in the buffer */ +unsigned int -_erts_pcre_ord2utf8(int cvalue, uschar *buffer) +PRIV(ord2utf)(pcre_uint32 cvalue, pcre_uchar *buffer) { -#ifdef SUPPORT_UTF8 +#ifdef SUPPORT_UTF + register int i, j; -for (i = 0; i < _erts_pcre_utf8_table1_size; i++) - if (cvalue <= _erts_pcre_utf8_table1[i]) break; + +for (i = 0; i < PRIV(utf8_table1_size); i++) + if ((int)cvalue <= PRIV(utf8_table1)[i]) break; buffer += i; for (j = i; j > 0; j--) { *buffer-- = 0x80 | (cvalue & 0x3f); cvalue >>= 6; } -*buffer = _erts_pcre_utf8_table2[i] | cvalue; +*buffer = PRIV(utf8_table2)[i] | cvalue; return i + 1; + #else -return 0; /* Keep compiler happy; this function won't ever be */ -#endif /* called when SUPPORT_UTF8 is not defined. */ + +(void)(cvalue); /* Keep compiler happy; this function won't ever be */ +(void)(buffer); /* called when SUPPORT_UTF is not defined. */ +return 0; + +#endif } /* End of pcre_ord2utf8.c */ |