prasad%netscape.com 876243b61b adding new sources
git-svn-id: svn://10.0.0.236/trunk@8400 18797224-902f-48f8-a5cc-f745e15eee43
1998-08-24 22:22:59 +00:00

118 lines
3.1 KiB
Java

/*
* The contents of this file are subject to the Netscape Public License
* Version 1.0 (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;
}
}
}