+char *
+strdup_and_add_accel (char *name)
+{
+ int i;
+ int found_accel = 0;
+
+ for (i=0; name[i]; ++i)
+ if (name[i] == '%' && name[i+1] == '_')
+ {
+ found_accel = 1;
+ break;
+ }
+
+ if (found_accel)
+ return xstrdup (name);
+ else
+ {
+ char *chars = (char *) alloca (strlen (name) + 3);
+ chars[0] = '%';
+ chars[1] = '_';
+ memcpy (chars+2, name, strlen (name) + 1);
+ return xstrdup (chars);
+ }
+}