Good day!

Let's look at grub_cmdline_get() func code:

/* normal/cmdline.c  - line 300 */
plen = grub_utf8_strlen (prompt);
  lpos = llen = 0;
  buf[0] = '\0';

  if ((grub_getxy () >> 8) != 0)
    grub_putchar ('\n');

  grub_printf (prompt);

  xpos = plen;

Idea is very simple - we move cursor `plen` times.
All is OK when `promt` contains only ASCII symblos. If we use UTF8 strings -
we get incorrect cursor moving (grub_strlen returns incorrect length due to
UTF-8 symbol floating byte size).
There are two ways:
* encode smth like grub_utf8_strlen ()
* modify grub_strlen () func and add this feature

I do my best to solve this problem, but what way do you recommend?

Thanks
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to