diff options
author | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-10-04 16:22:03 -0400 |
---|---|---|
committer | Joseph Hunkeler <jhunkeler@gmail.com> | 2024-10-04 16:22:03 -0400 |
commit | 9eb9c897d9159c5bc2dbe0fa849e9dcf687ba03a (patch) | |
tree | bff220546c22ec8e0845de09e6e2e5ff8a10e2cf | |
parent | 70f76b377e2d35fa097b65a82fc7cac4f5f172d4 (diff) | |
download | stasis-add-get-version-spec.tar.gz |
Add find_version_spec() to utilsadd-get-version-spec
-rw-r--r-- | include/utils.h | 24 | ||||
-rw-r--r-- | src/utils.c | 3 |
2 files changed, 27 insertions, 0 deletions
diff --git a/include/utils.h b/include/utils.h index a3d244a..4f7c3a4 100644 --- a/include/utils.h +++ b/include/utils.h @@ -365,4 +365,28 @@ long get_cpu_count(); */ int mkdirs(const char *_path, mode_t mode); +/** + * Return pointer to a (possible) version specifier + * + * ```c + * char s[] = "abc==1.2.3"; + * char *spec_begin = find_version_spec(s); + * // spec_begin is "==1.2.3" + * + * char package_name[255]; + * char s[] = "abc"; + * char *spec_pos = find_version_spec(s); + * if (spec_pos) { + * strncpy(package_name, spec_pos - s); + * // use spec + * } else { + * // spec not found + * } + * + * @param str a pointer to a buffer containing a package spec (i.e. abc==1.2.3, abc>=1.2.3, abc) + * @return a pointer to the first occurrence of a version spec character + * @return NULL if not found + */ +char *find_version_spec(char *package_name); + #endif //STASIS_UTILS_H diff --git a/src/utils.c b/src/utils.c index e037088..6381cea 100644 --- a/src/utils.c +++ b/src/utils.c @@ -814,3 +814,6 @@ int mkdirs(const char *_path, mode_t mode) { return status; } +char *find_version_spec(char *str) { + return strpbrk(str, "@~=<>!"); +} |