Ejemplo n.º 1
0
HklString* hkl_string_new_from_stream(FILE* stream)
{
  // initialize an 8 character input buffer
  HklString* string = hkl_string_new_from_utf8("       ");
  size_t input = 0;
  int c;

  while (true)
  {
    c = fgetc(stdin);

    if (c == EOF || c == '\n')
      break;

    // if we are about to overflow
    if (input == string->size)
    {
      // double the buffer
      string->size *= 2;
      string->utf8_data = realloc(string->utf8_data, string->size);
    }

    string->utf8_data[input] = c;
    input++;
  }

  // write a null character
  string->utf8_data[input] = '\0';

  string->length = utf8_length(string->utf8_data);

  return string;
}
Ejemplo n.º 2
0
HklString* hkl_string_new_from_real(double real)
{
  HklString* string = hkl_string_new_from_utf8("               ");
  sprintf(string->utf8_data, "%lg", real);
  string->length = utf8_length(string->utf8_data);
  return string;
}
Ejemplo n.º 3
0
HklString* hkl_string_new_from_integer(int integer)
{
  // create a buffer to store the integer
  HklString* string = hkl_string_new_from_utf8("               ");
  sprintf(string->utf8_data,"%d", integer);
  string->length = utf8_length(string->utf8_data);
  return string;
}
Ejemplo n.º 4
0
HklPair* hkl_pair_new_from_utf8(const char* key, void* value)
{
  assert(key != NULL);

  HklPair* pair = hkl_alloc_object(HklPair);

  pair->key = hkl_string_new_from_utf8(key);
  pair->value = value;

  return pair;
}