2362N/A * Copyright (c) 2001, 2003, Oracle and/or its affiliates. All rights reserved. 0N/A * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 0N/A * This code is free software; you can redistribute it and/or modify it 0N/A * under the terms of the GNU General Public License version 2 only, as 2362N/A * published by the Free Software Foundation. Oracle designates this 0N/A * particular file as subject to the "Classpath" exception as provided 2362N/A * by Oracle in the LICENSE file that accompanied this code. 0N/A * This code is distributed in the hope that it will be useful, but WITHOUT 0N/A * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 0N/A * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 0N/A * version 2 for more details (a copy is included in the LICENSE file that 0N/A * accompanied this code). 0N/A * You should have received a copy of the GNU General Public License version 0N/A * 2 along with this work; if not, write to the Free Software Foundation, 0N/A * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 2362N/A * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 2362N/A * or visit www.oracle.com if you need additional information or have any 0N/A // converts all but unpaired surrogates 0N/A // and illegal chars, U+FFFE & U+FFFF 0N/A if ((c >=
0xd800 && c <=
0xdfff) || (c >=
0xfffe))
0N/A * Character conversion 0N/A // This is legal UTF16 sequence, so shunt in the high 0N/A // surrogate for conversion by convert() loop. 0N/A // This is illegal UTF16 sequence. 0N/A // Is this the last character of the input? 0N/A // Is there a low surrogate following? 0N/A // We have a malformed surrogate pair 0N/A // Is this an unaccompanied low surrogate? 0N/A // Not part of a surrogate 0N/A else {
// Four Byte encoding 0N/A // Return number of bytes written to the output buffer. 0N/A * returns the maximum number of bytes needed to convert a char 0N/A * Return the character set ID