- if (*p == ':')
- {
- for (beg = ++p; *p && *p != '/' && *p != '=' && *p != '+'; p++);
- if (beg < p)
- cmd->body.otf.script = msymbol__with_len (beg, p - beg);
- }
- else if (*p == '/')
- {
- for (beg = ++p; *p && *p != '=' && *p != '+'; p++);
- if (beg < p)
- cmd->body.otf.langsys = msymbol__with_len (beg, p - beg);
- }
- else if (*p == '=')
- {
- for (beg = ++p; *p && *p != '+'; p++);
- if (beg < p)
- cmd->body.otf.gsub_features = msymbol__with_len (beg, p - beg);
- else
- cmd->body.otf.gsub_features = Mnil;
- }
- else if (*p == '+')
- {
- for (beg = ++p; *p && *p != '+'; p++);
- if (beg < p)
- cmd->body.otf.gpos_features = msymbol__with_len (beg, p - beg);
- else
- cmd->body.otf.gpos_features = Mnil;
- }
- else
- p++;
+ /* This is old format of "otf:...". Change it to ":otf=...". */
+ char *str = alloca (MSYMBOL_NAMELEN (sym) + 2);
+
+ sprintf (str, ":otf=");
+ strcat (str, name + 4);
+ sym = msymbol (str);