diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/str.h | 2 | ||||
-rw-r--r-- | include/version_spec.h | 24 |
2 files changed, 17 insertions, 9 deletions
diff --git a/include/str.h b/include/str.h index 468f674..ae54997 100644 --- a/include/str.h +++ b/include/str.h @@ -34,5 +34,7 @@ int isquoted(char *sptr); char *normalize_space(char *s); char **strdup_array(char **array); int strcmp_array(const char **a, const char **b); +int isdigit_s(char *s); +char *tolower_s(char *s); #endif //SPM_STR_H diff --git a/include/version_spec.h b/include/version_spec.h index aab6540..b8d3260 100644 --- a/include/version_spec.h +++ b/include/version_spec.h @@ -4,10 +4,11 @@ #ifndef SPM_VERSION_SPEC_H #define SPM_VERSION_SPEC_H -#define VERSION_BASE 16 -#define VERSION_ADDENDUM_BITS 16 +#define VERSION_MAX 8 +#define VERSION_BASE 10 #define VERSION_DELIM "." -#define VERSION_LOCAL "=" +#define VERSION_DELIM_LOCAL "+" +#define VERSION_LOCAL_MAX 255 #define VERSION_OPERATORS " ~!=<>" #define VERSION_NOOP 1 << 0 #define VERSION_EQ 1 << 1 @@ -16,13 +17,18 @@ #define VERSION_LT 1 << 4 #define VERSION_COMPAT 1 << 5 -// version_spec.c -char *version_suffix_get_alpha(char *str); -char *version_suffix_get_modifier(char *str); -int64_t version_suffix_modifier_calc(char *str); -int version_suffix_alpha_calc(char *str); +struct Version { + char *local; + uint64_t asInt; + uint32_t part[VERSION_MAX]; +}; + +struct Version *version_init(); +int version_read(struct Version **version, char *s); +void version_info(struct Version *version); + uint64_t version_from(const char *str); -int version_spec_from(const char *op); +unsigned int version_spec_from(const char *op); ManifestPackage **find_by_spec(const Manifest *manifest, const char *name, const char *op, const char *version_str); int pep440_match(const char *version); struct PEP440 *pep440_version(const char *version); |