- memcpy( temp.table, value, tLen );
- temp.table[tLen] = 0;
- chain++;
- strncpy( temp.name, chain, sizeof( temp.name ));
-
+ strncpy (temp.chain, chain, chain_len);
+ temp.chain[chain_len] = '\0';
+
+ if (fields_num >= 3)
+ {
+ char *comment = fields[2];
+ int rule = atoi (comment);
+
+ if (rule)
+ {
+ temp.rule.num = rule;
+ temp.rule_type = RTYPE_NUM;
+ }
+ else
+ {
+ temp.rule.comment = strdup (comment);
+ if (temp.rule.comment == NULL)
+ {
+ free (value_copy);
+ return (1);
+ }
+ temp.rule_type = RTYPE_COMMENT;
+ }
+ }
+ else
+ {
+ temp.rule_type = RTYPE_COMMENT_ALL;
+ }
+
+ if (fields_num >= 4)
+ strncpy (temp.name, fields[3], sizeof (temp.name) - 1);
+
+ free (value_copy);
+ value_copy = NULL;
+ table = NULL;
+ chain = NULL;
+