# HG changeset patch # User Jaroslav Hajek # Date 1213997924 -7200 # Node ID f97dc6cba12f9bc6f530ea401ea118e0415f85e7 # Parent fbf0cafeb0aef93e6a93f44eda561db20f379a93 avoid using gensub in genprops.awk diff --git a/src/ChangeLog b/src/ChangeLog --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-06-20 Jaroslav Hajek + + * genprops.awk (emit_source): Avoid gensub to ensure compatibility. + (BEGIN): dtto + 2008-06-17 John W. Eaton * toplev.h, toplev.cc (class octave_call_stack): diff --git a/src/genprops.awk b/src/genprops.awk --- a/src/genprops.awk +++ b/src/genprops.awk @@ -465,9 +465,16 @@ { dval = defval[i]; if (type[i] == "radio_property" || type[i] == "color_property") - dval = gensub (/^.*\{(.*)\}.*$/, "\"\\1\"", "g", dval); - if (! dval) - dval = "octave_value ()"; + { + k = index (dval, "{"); + dval = substr (dval, k+1); + l = index (dval, "}"); + if (k > 0 && l > 0) + dval = "\"" + substr (dval, 1, l-1) + "\""; + else + dval = "octave_value ()"; + } + printf (" m[\"%s\"] = %s%s;\n", name[i], dval, (type[i] == "handle_property" ? ".as_octave_value ()" : "")) >> filename; } @@ -490,7 +497,11 @@ /BEGIN_PROPERTIES\(.*\)/ { gather = 1; idx = 0; - class_name = gensub (/^.*BEGIN_PROPERTIES\((.*)\)/, "\\1", "g"); + str = $0; + k = index (str, "BEGIN_PROPERTIES("); + str = substr (str, k + 17); + l = index (str, ")"); + class_name = substr (str, 1, l-1); next; }