Mercurial > hg > octave-lyh
comparison src/genprops.awk @ 7895:f1a1f6dd7fac
avoid using gensub in genprops.awk
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Fri, 20 Jun 2008 23:38:44 +0200 |
parents | b74039822fd2 |
children | 75c99d3f97d7 |
comparison
equal
deleted
inserted
replaced
7894:72c332d2db3c | 7895:f1a1f6dd7fac |
---|---|
463 | 463 |
464 for (i = 1; i <= idx; i++) | 464 for (i = 1; i <= idx; i++) |
465 { | 465 { |
466 dval = defval[i]; | 466 dval = defval[i]; |
467 if (type[i] == "radio_property" || type[i] == "color_property") | 467 if (type[i] == "radio_property" || type[i] == "color_property") |
468 dval = gensub (/^.*\{(.*)\}.*$/, "\"\\1\"", "g", dval); | 468 { |
469 if (! dval) | 469 k = index (dval, "{"); |
470 dval = "octave_value ()"; | 470 dval = substr (dval, k+1); |
471 l = index (dval, "}"); | |
472 if (k > 0 && l > 0) | |
473 dval = "\"" + substr (dval, 1, l-1) + "\""; | |
474 else | |
475 dval = "octave_value ()"; | |
476 } | |
477 | |
471 printf (" m[\"%s\"] = %s%s;\n", name[i], dval, | 478 printf (" m[\"%s\"] = %s%s;\n", name[i], dval, |
472 (type[i] == "handle_property" ? ".as_octave_value ()" : "")) >> filename; | 479 (type[i] == "handle_property" ? ".as_octave_value ()" : "")) >> filename; |
473 } | 480 } |
474 | 481 |
475 printf ("\n return m;\n}\n\n") >> filename; | 482 printf ("\n return m;\n}\n\n") >> filename; |
488 } | 495 } |
489 | 496 |
490 /BEGIN_PROPERTIES\(.*\)/ { | 497 /BEGIN_PROPERTIES\(.*\)/ { |
491 gather = 1; | 498 gather = 1; |
492 idx = 0; | 499 idx = 0; |
493 class_name = gensub (/^.*BEGIN_PROPERTIES\((.*)\)/, "\\1", "g"); | 500 str = $0; |
501 k = index (str, "BEGIN_PROPERTIES("); | |
502 str = substr (str, k + 17); | |
503 l = index (str, ")"); | |
504 class_name = substr (str, 1, l-1); | |
494 next; | 505 next; |
495 } | 506 } |
496 | 507 |
497 /BEGIN_PROPERTIES/ { | 508 /BEGIN_PROPERTIES/ { |
498 gather = 1; | 509 gather = 1; |