# HG changeset patch # User Jaroslav Hajek # Date 1213997924 -7200 # Node ID f1a1f6dd7fac4a6d98932571657d19bbd7b3dc0a # Parent 72c332d2db3c31950571999179026003bf16bc6e avoid using gensub in genprops.awk diff -r 72c332d2db3c -r f1a1f6dd7fac src/ChangeLog --- a/src/ChangeLog Fri Jun 20 09:34:55 2008 +0200 +++ b/src/ChangeLog Fri Jun 20 23:38:44 2008 +0200 @@ -1,3 +1,8 @@ +2008-06-23 Jaroslav Hajek + + * genprops.awk (emit_source): Avoid gensub for portability. + (BEGIN): Ditto. + 2008-06-20 Jaroslav Hajek * DLD-FUNCTIONS/regexp.cc (octregexp_list): Make "once" an output diff -r 72c332d2db3c -r f1a1f6dd7fac src/genprops.awk --- a/src/genprops.awk Fri Jun 20 09:34:55 2008 +0200 +++ b/src/genprops.awk Fri Jun 20 23:38:44 2008 +0200 @@ -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; }