зеркало из https://github.com/mozilla/pjs.git
119 строки
3.1 KiB
Java
119 строки
3.1 KiB
Java
/*
|
|
* The contents of this file are subject to the Netscape Public
|
|
* License Version 1.1 (the "License"); you may not use this file
|
|
* except in compliance with the License. You may obtain a copy of
|
|
* the License at http://www.mozilla.org/NPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS
|
|
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
|
|
* implied. See the License for the specific language governing
|
|
* rights and limitations under the License.
|
|
*
|
|
* The Original Code is the Netscape Messaging Access SDK Version 3.5 code,
|
|
* released on or about June 15, 1998. *
|
|
* The Initial Developer of the Original Code is Netscape Communications
|
|
* Corporation. Portions created by Netscape are
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All
|
|
* Rights Reserved.
|
|
*
|
|
* Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 1997 and 1998 Netscape Communications Corporation
|
|
* (http://home.netscape.com/misc/trademarks.html)
|
|
*/
|
|
|
|
package netscape.messaging;
|
|
|
|
/**
|
|
*Helper class for doing C-runtime equivalent operations.
|
|
*@author derekt@netscape.com
|
|
*@version 1.0
|
|
*/
|
|
|
|
public class Common
|
|
{
|
|
/**
|
|
*Converts a byte array of specified length into an int.
|
|
*/
|
|
public final int atoi( byte[] in_string )
|
|
{
|
|
int i;
|
|
int n;
|
|
int sign;
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// Move past any leading spaces.
|
|
///////////////////////////////////////////////////////////////////////
|
|
|
|
for ( i = 0; Character.isSpaceChar((char)in_string[i]) &&
|
|
i < in_string.length; i++ )
|
|
{
|
|
}
|
|
|
|
sign = (in_string[i] == '-') ? -1 : 1;
|
|
|
|
///////////////////////////////////////////////////////////////////////
|
|
// Store the sign of the number.
|
|
///////////////////////////////////////////////////////////////////////
|
|
|
|
if ( in_string[i] == '+' || in_string[i] == '-' )
|
|
{
|
|
i++;
|
|
}
|
|
|
|
for ( n = 0; Character.isDigit((char)in_string[i]) &&
|
|
i < in_string.length; i++ )
|
|
{
|
|
n = 10 * n + ( in_string[i] - '0');
|
|
}
|
|
|
|
return sign * n;
|
|
}
|
|
|
|
/**
|
|
*Converts an integer into its ASCII representation.
|
|
*/
|
|
public final int itoa( int in_number, byte[] io_string )
|
|
{
|
|
int i;
|
|
int sign;
|
|
|
|
if ((sign = in_number) < 0)
|
|
{
|
|
in_number = -in_number;
|
|
}
|
|
|
|
i = 0;
|
|
|
|
do
|
|
{
|
|
io_string[i++] = (byte)(in_number % 10 + '0');
|
|
}
|
|
while ((in_number /= 10) > 0);
|
|
|
|
if ( sign < 0 )
|
|
{
|
|
io_string[i++] = '-';
|
|
}
|
|
reverse(io_string, i );
|
|
return i;
|
|
}
|
|
|
|
/**
|
|
*Helper used by itoa.
|
|
*/
|
|
protected final void reverse( byte[] io_string, int in_length )
|
|
{
|
|
int c, i, j;
|
|
|
|
for ( i = 0, j = in_length - 1; i < j; i++, j-- )
|
|
{
|
|
c = io_string[i];
|
|
io_string[i] = io_string[j];
|
|
io_string[j] = (byte)c;
|
|
}
|
|
}
|
|
}
|