reactos/base/system/diskpart/misc.c

81 lines
1.5 KiB
C
Raw Normal View History

/*
* PROJECT: ReactOS DiskPart
* LICENSE: GPL - See COPYING in the top level directory
* FILE: base/system/diskpart/misc.c
* PURPOSE: Manages all the partitions of the OS in an interactive way.
* PROGRAMMERS: Eric Kohl
*/
#include "diskpart.h"
/* FUNCTIONS ******************************************************************/
BOOL
IsDecString(
_In_ PWSTR pszDecString)
{
PWSTR ptr;
if ((pszDecString == NULL) || (*pszDecString == UNICODE_NULL))
return FALSE;
ptr = pszDecString;
while (*ptr != UNICODE_NULL)
{
if (!iswdigit(*ptr))
return FALSE;
ptr++;
}
return TRUE;
}
BOOL
IsHexString(
_In_ PWSTR pszHexString)
{
PWSTR ptr;
if ((pszHexString == NULL) || (*pszHexString == UNICODE_NULL))
return FALSE;
ptr = pszHexString;
while (*ptr != UNICODE_NULL)
{
if (!iswxdigit(*ptr))
return FALSE;
ptr++;
}
return TRUE;
}
BOOL
HasPrefix(
_In_ PWSTR pszString,
_In_ PWSTR pszPrefix,
_Out_opt_ PWSTR *ppszSuffix)
{
INT nPrefixLength, ret;
nPrefixLength = wcslen(pszPrefix);
ret = _wcsnicmp(pszString, pszPrefix, nPrefixLength);
if ((ret == 0) && (ppszSuffix != NULL))
*ppszSuffix = &pszString[nPrefixLength];
return (ret == 0);
}
ULONGLONG
RoundingDivide(
_In_ ULONGLONG Dividend,
_In_ ULONGLONG Divisor)
{
return (Dividend + Divisor / 2) / Divisor;
}