Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
ASCII.c
Abstract:
This module contains code for Remote Admin Protocol use.
Author:
David Treadwell (davidtr) 07-Jan-1991
Environment:
Portable to any flat, 32-bit environment. (Uses Win32 typedefs.)
Revision History:
27-Feb-1991 JohnRo Converted from Xs routines to Rap routines. 14-Apr-1991 JohnRo Reduce recompiles. 17-Apr-1991 JohnRo Make it clear that "input" pointer is updated. 19-Aug-1991 JohnRo Improve UNICODE handling. Reduce recompiles. 07-Sep-1991 JohnRo Use DESC_DIGIT_TO_NUM(). Made changes suggested by PC-LINT.
--*/
// These must be included first:
#include <windef.h> // IN, LPDWORD, NULL, OPTIONAL, DWORD, etc.
#include <lmcons.h> // NET_API_STATUS
// These may be included in any order:
#include <rap.h> // My prototype, LPDESC, DESC_CHAR_IS_DIGIT().
DWORD RapAsciiToDecimal ( IN OUT LPDESC *Number )
/*++
Routine Description:
This routine converts an ASCII string to decimal and updates the input pointer to point the last character of the number. The string is parm of a descriptor.
Arguments:
Number - points to a LPDESC pointing to a number in ASCII format. The pointer is updated to point to the next location after the number.
Return Value:
The decimal value of the string.
--*/
{ LPDESC s; DWORD actualNumber = 0;
//
// Walk through the number, multiplying the current value by ten to
// update place, and adding the next digit.
//
for ( s = *Number; DESC_CHAR_IS_DIGIT( *s ); s++ ) {
actualNumber = actualNumber * 10 + DESC_DIGIT_TO_NUM( *s );
}
//
// Set up the output pointer to point to the character after the last
// digit of the number.
//
*Number = s;
return actualNumber;
} // RapAsciiToDecimal
|