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;