diff options
author | paul <paul@FreeBSD.org> | 1995-01-25 07:56:10 +0000 |
---|---|---|
committer | paul <paul@FreeBSD.org> | 1995-01-25 07:56:10 +0000 |
commit | 3b2b35819c2c40c73aaf5b14631ab7bc50e15a92 (patch) | |
tree | 6860966822c1e4ff5b97cfc48b06b2dab0860d18 /usr.bin/fib | |
parent | dd92b5764723d2e00ff85d9eca29fe80695809fc (diff) | |
download | FreeBSD-src-3b2b35819c2c40c73aaf5b14631ab7bc50e15a92.zip FreeBSD-src-3b2b35819c2c40c73aaf5b14631ab7bc50e15a92.tar.gz |
More parser fixes. Store attributes properly for each field and
don't emit a second declaration unless it's different to the default.
Diffstat (limited to 'usr.bin/fib')
-rw-r--r-- | usr.bin/fib/parser.y | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/usr.bin/fib/parser.y b/usr.bin/fib/parser.y index 2b3615f..d7c10fa 100644 --- a/usr.bin/fib/parser.y +++ b/usr.bin/fib/parser.y @@ -610,7 +610,7 @@ parse_form(struct form_list *form, FILE *outf) } else { fields->field.type = def->field.type; fields->field.width = def->field.width; - fields->field.attr = def->field.attr; + fields->attr = def->attr; } if (!links) { @@ -621,15 +621,16 @@ parse_form(struct form_list *form, FILE *outf) fields->field.right = -1; fields->field.next = -1; fields->defname = fieldname; - } else { + } + + if (strcmp(def->fieldname, fields->fieldname)) output_field(def, fields->fieldname, outf); - if ((fields->field.type == F_TEXT) - || (fields->field.type == F_ACTION)) - fields->defname = def->fieldname; - else - fields->defname = fields->fieldname; - } + if ((fields->field.type == F_TEXT) + || (fields->field.type == F_ACTION)) + fields->defname = def->fieldname; + else + fields->defname = fields->fieldname; } /* Output the field table for this form */ |