void to_upper (char -w dest[], int max_length, char src[])
{
  void join_to_dest (pchar symbol, int length)
  {
    set (&dest[index_{O(n1)}], max_length, symbol); index_{O(n1)} += length;
  }

  int index_{O(n1)} = 0;

  chars_in (src, (pchar symbol) {
                                  if (length == 1, { length = _ (symbol) })
                                  {
                                    chr_code = symbol[0]; 

                                    if ('a' < chr_code < 'z')
                                    {
                                      char dest_symbol[] = "*";

                                      dest_symbol[0] = chr_code - 32;

                                      join_to_dest (dest_symbol, length);
                                    }
                                    else
                                    {
                                      join_to_dest (symbol, length);
                                    }
                                  }
                                  else
                                  {
                                    join_to_dest (symbol, length);
                                  }
                                });
}
