Like that? :)
use
start_angle = "XXX degree"
or start_angle = "XXX degrees"
for setting angle in degrees
use
start_angle = "XXX rad"
or start_angle = "XXX rads"
for setting angle int rads
or use
start_angle = XXX
for setting angle in "parrots", like it was before
--
With best regards,
_______________________________
Vladimir Testov, ROSA Laboratory.
www.rosalab.ru
diff -Naur grub-2.00/grub-core/gfxmenu/gui_circular_progress.c grub-new/grub-core/gfxmenu/gui_circular_progress.c
--- grub-2.00/grub-core/gfxmenu/gui_circular_progress.c 2010-12-01 17:45:43.000000000 +0300
+++ grub-new/grub-core/gfxmenu/gui_circular_progress.c 2013-04-11 17:51:33.242196806 +0400
@@ -223,6 +223,32 @@
self->end = end;
}
+static int
+parse_angle (const char *value)
+{
+ int pos = 0;
+ int len = grub_strlen (value);
+ int angle = grub_strtol (value, 0, 10);
+ /* Find space symbol */
+ while (pos < len && value[pos] != ' ')
+ pos++;
+ /* Skip spaces */
+ while (pos < len && value[pos] == ' ')
+ pos++;
+ if (pos < len)
+ {
+ char *unit = grub_new_substring (value, pos, len);
+ if ((grub_strcmp (unit, "degree") == 0)
+ || (grub_strcmp (unit, "degrees") == 0))
+ angle = angle * 64 / 90;
+ else if ((grub_strcmp (unit, "rad") == 0)
+ || grub_strcmp (unit, "rads") == 0)
+ angle = angle * 64 / 100;
+ grub_free (unit);
+ }
+ return angle;
+}
+
static grub_err_t
circprog_set_property (void *vself, const char *name, const char *value)
{
@@ -233,7 +259,7 @@
}
else if (grub_strcmp (name, "start_angle") == 0)
{
- self->start_angle = grub_strtol (value, 0, 10);
+ self->start_angle = parse_angle(value);
}
else if (grub_strcmp (name, "ticks_disappear") == 0)
{
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel