| /* Copyright (C) 2004 Free Software Foundation |
| |
| This file is part of libgcj. |
| |
| This software is copyrighted work licensed under the terms of the |
| Libgcj License. Please consult the file "LIBGCJ_LICENSE" for |
| details. */ |
| |
| package gnu.gcj.convert; |
| |
| /** |
| * Convert to Unicode Little Endian, no marker |
| */ |
| public class Output_UnicodeLittleUnmarked extends UnicodeToBytes |
| { |
| public String getName() { return "UnicodeLittleUnmarked"; } |
| |
| /** Convert chars to bytes. |
| * Converted bytes are written to buf, starting at count. |
| * @param inbuffer source of characters to convert |
| * @param inpos index of initial character in inbuffer to convert |
| * @param inlength number of characters to convert |
| * @return number of chars converted |
| * Also, this.count is increment by the number of bytes converted. |
| */ |
| public int write (char[] inbuffer, int inpos, int inlength) |
| { |
| int avail = buf.length - count; |
| if (inlength * 2 > avail) |
| inlength = avail / 2; |
| for (int i = inlength; i > 0; i--) |
| { |
| char c = inbuffer[inpos++]; |
| buf[count] = (byte)c; |
| buf[count+1] = (byte)(c >> 8); |
| count += 2; |
| } |
| return inlength; |
| } |
| } |
| |