Kaltenberg/modules/utility/src-c/text.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;
}