From ea01a40084b4e09c8407886a5070a77aeba56d63 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Fri, 24 Jan 2020 09:40:28 -0500 Subject: Begin hooking up version spec function(s) to installation --- src/version_spec.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/version_spec.c') diff --git a/src/version_spec.c b/src/version_spec.c index 0249375..d14e339 100644 --- a/src/version_spec.c +++ b/src/version_spec.c @@ -338,3 +338,27 @@ ManifestPackage **find_by_spec(Manifest *manifest, const char *name, const char return list; } + +ManifestPackage **find_by_strspec(const char *_strspec) { + const char *operators = VERSION_OPERATORS; // note: whitespace is synonymous with "==" if no other operators are present + char *pos = NULL; + char op[NAME_MAX]; + char name[NAME_MAX]; + char version[NAME_MAX]; + + memset(op, '\0', NAME_MAX); + memset(name, '\0', NAME_MAX); + memset(version, '\0', NAME_MAX); + + // Parse name + for (int i = 0; isalnum(_strspec[i]) || _strspec[i] == '_'; i++) { + name[i] = _strspec[i]; + } + + // Parse operators + pos = strpbrk(_strspec, operators); + for (int i = 0; !isalnum(*pos++); i++) { + + } + // hmmmmmm +} -- cgit