X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=namedev_parse.c;h=d5d2181cb68bb427ba34c84f187aff12187e0202;hb=1d24d9977d46e20779e7d9d05f4b6aa6dcad28cc;hp=20ff60d640923458bf48a5861b402fb76cba7468;hpb=bb7386472466e55f75df024d18e8da37a222bb41;p=elogind.git diff --git a/namedev_parse.c b/namedev_parse.c index 20ff60d64..d5d2181cb 100644 --- a/namedev_parse.c +++ b/namedev_parse.c @@ -91,13 +91,6 @@ static char *get_key_attribute(char *str) char *pos; char *attr; - attr = strchr(str, '_'); - if (attr != NULL) { - attr++; - dbg("attribute='%s'", attr); - return attr; - } - attr = strchr(str, '{'); if (attr != NULL) { attr++; @@ -111,6 +104,13 @@ static char *get_key_attribute(char *str) return attr; } + attr = strchr(str, '_'); + if (attr != NULL) { + attr++; + dbg("attribute='%s'", attr); + return attr; + } + return NULL; } @@ -221,7 +221,13 @@ int namedev_init_rules(void) continue; } - if (strcasecmp(temp2, FIELD_NAME) == 0) { + if (strncasecmp(temp2, FIELD_NAME, sizeof(FIELD_NAME)-1) == 0) { + attr = get_key_attribute(temp2 + sizeof(FIELD_NAME)-1); + if (attr != NULL) + if (strcasecmp(attr, ATTR_PARTITIONS) == 0) { + dbg_parse("creation of partition nodes requested"); + dev.partitions = PARTITIONS_COUNT; + } strfieldcpy(dev.name, temp3); continue; }