forked from ariadne/pkgconf
parse: add support for parsing versions
parent
0142cc68d4
commit
5869405054
36
parse.c
36
parse.c
|
@ -191,6 +191,8 @@ parse_deplist(pkg_t *pkg, const char *depends)
|
||||||
case OUTSIDE_MODULE:
|
case OUTSIDE_MODULE:
|
||||||
if (!MODULE_SEPARATOR(*ptr))
|
if (!MODULE_SEPARATOR(*ptr))
|
||||||
state = INSIDE_MODULE_NAME;
|
state = INSIDE_MODULE_NAME;
|
||||||
|
|
||||||
|
compare = PKG_ANY;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case INSIDE_MODULE_NAME:
|
case INSIDE_MODULE_NAME:
|
||||||
|
@ -256,13 +258,47 @@ parse_deplist(pkg_t *pkg, const char *depends)
|
||||||
|
|
||||||
case BEFORE_OPERATOR:
|
case BEFORE_OPERATOR:
|
||||||
if (OPERATOR_CHAR(*ptr))
|
if (OPERATOR_CHAR(*ptr))
|
||||||
|
{
|
||||||
|
switch(*ptr)
|
||||||
|
{
|
||||||
|
case '=':
|
||||||
|
compare = PKG_EQUAL;
|
||||||
|
break;
|
||||||
|
case '>':
|
||||||
|
compare = PKG_GREATER_THAN;
|
||||||
|
break;
|
||||||
|
case '<':
|
||||||
|
compare = PKG_LESS_THAN;
|
||||||
|
break;
|
||||||
|
case '!':
|
||||||
|
compare = PKG_NOT_EQUAL;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
state = INSIDE_OPERATOR;
|
state = INSIDE_OPERATOR;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case INSIDE_OPERATOR:
|
case INSIDE_OPERATOR:
|
||||||
if (!OPERATOR_CHAR(*ptr))
|
if (!OPERATOR_CHAR(*ptr))
|
||||||
state = AFTER_OPERATOR;
|
state = AFTER_OPERATOR;
|
||||||
|
else if (*ptr == '=')
|
||||||
|
{
|
||||||
|
switch(compare)
|
||||||
|
{
|
||||||
|
case PKG_LESS_THAN:
|
||||||
|
compare = PKG_LESS_THAN_EQUAL;
|
||||||
|
break;
|
||||||
|
case PKG_GREATER_THAN:
|
||||||
|
compare = PKG_GREATER_THAN_EQUAL;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue