192 lines
2.8 KiB
C
192 lines
2.8 KiB
C
#include <voxula/internals/utility/text.h>
|
|
|
|
bool vx_is_ascii_sign(char character)
|
|
{
|
|
if( vx_is_ascii_sign_of_block_1(character)
|
|
|| vx_is_ascii_sign_of_block_2(character)
|
|
|| vx_is_ascii_sign_of_block_3(character)
|
|
|| vx_is_ascii_sign_of_block_4(character)
|
|
) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool vx_is_ascii_sign_of_block_1(char character)
|
|
{
|
|
if(character < 0x21)
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 0x2f)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_sign_of_block_2(char character)
|
|
{
|
|
if(character < 0x3a)
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 0x40)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_sign_of_block_3(char character)
|
|
{
|
|
if(character < 0x5b)
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 0x60)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_sign_of_block_4(char character)
|
|
{
|
|
if(character < 0x7b)
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 0x7e)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_letter(char character)
|
|
{
|
|
if( vx_is_ascii_lower(character)
|
|
|| vx_is_ascii_upper(character)
|
|
) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool vx_is_ascii_lower(char character)
|
|
{
|
|
if(character < 'a')
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 'z')
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_upper(char character)
|
|
{
|
|
if(character < 'A')
|
|
{
|
|
return false;
|
|
}
|
|
if(character > 'Z')
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_digit(char character)
|
|
{
|
|
if(character < '0')
|
|
{
|
|
return false;
|
|
}
|
|
if(character > '9')
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
bool vx_is_ascii_blank(char character)
|
|
{
|
|
if(character == ' ')
|
|
{
|
|
return true;
|
|
}
|
|
if(character == '\t')
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool vx_is_ascii_control(char character)
|
|
{
|
|
if(character < 32)
|
|
{
|
|
return true;
|
|
}
|
|
if(character == 127)
|
|
{
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
void vx_write_spaces(FILE *output, uint32_t count)
|
|
{
|
|
uint32_t space_index = 0;
|
|
while(space_index < count)
|
|
{
|
|
fputc(' ', output);
|
|
++space_index;
|
|
}
|
|
}
|
|
|
|
uint8_t vx_digits_for_decimal(uint32_t decimal)
|
|
{
|
|
if(decimal < 10)
|
|
{
|
|
return 1;
|
|
}
|
|
if(decimal < 100)
|
|
{
|
|
return 2;
|
|
}
|
|
if(decimal < 1000)
|
|
{
|
|
return 3;
|
|
}
|
|
if(decimal < 10000)
|
|
{
|
|
return 4;
|
|
}
|
|
if(decimal < 100000)
|
|
{
|
|
return 5;
|
|
}
|
|
if(decimal < 1000000)
|
|
{
|
|
return 6;
|
|
}
|
|
if(decimal < 10000000)
|
|
{
|
|
return 7;
|
|
}
|
|
if(decimal < 100000000)
|
|
{
|
|
return 8;
|
|
}
|
|
if(decimal < 1000000000)
|
|
{
|
|
return 9;
|
|
}
|
|
return 10;
|
|
}
|