new: implement and fix few more database functions
This commit is contained in:
@ -55,9 +55,5 @@ void lm_package_data_free(lm_pkg_t *pkg){
|
||||
free(pkg->desc);
|
||||
free(pkg->name);
|
||||
free(pkg->version);
|
||||
|
||||
if(NULL != pkg->depends){
|
||||
for(int i = 0; pkg->depends[i] != NULL; i++)
|
||||
free(pkg->depends[i]);
|
||||
}
|
||||
lm_package_depend_free(pkg);
|
||||
}
|
||||
|
@ -43,6 +43,17 @@ bool lm_package_depend_add(lm_pkg_t *pkg, char *depend){
|
||||
return true;
|
||||
}
|
||||
|
||||
void lm_package_depend_free(lm_pkg_t *pkg){
|
||||
if(NULL == pkg)
|
||||
return;
|
||||
|
||||
for(int i = 0; pkg->depends[i] != NULL; i++)
|
||||
free(pkg->depends[i]);
|
||||
free(pkg->depends);
|
||||
|
||||
pkg->depends = NULL;
|
||||
}
|
||||
|
||||
size_t lm_package_depend_strlen(lm_pkg_t *pkg){
|
||||
size_t len = 1;
|
||||
|
||||
@ -76,3 +87,22 @@ bool lm_package_depend_tostr(lm_pkg_t *pkg, char *buffer){
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool lm_package_depend_fromstr(lm_pkg_t *pkg, char *buffer){
|
||||
if(NULL == pkg){
|
||||
lm_error_set(LM_ERR_ArgNULL);
|
||||
return false;
|
||||
}
|
||||
|
||||
lm_package_depend_free(pkg);
|
||||
|
||||
if(NULL == buffer)
|
||||
return true;
|
||||
|
||||
char *save = NULL, *dep = NULL;
|
||||
while((dep = strtok_r(buffer, ",", &save)) != NULL)
|
||||
if(!lm_package_depend_add(pkg, dep))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -8,10 +8,15 @@
|
||||
|
||||
lm_pkg_t *lm_package_new(){
|
||||
lm_pkg_t *pkg = malloc(sizeof(lm_pkg_t));
|
||||
bzero(pkg, sizeof(lm_pkg_t));
|
||||
lm_package_init(pkg);
|
||||
return pkg;
|
||||
}
|
||||
|
||||
void lm_package_init(lm_pkg_t *pkg){
|
||||
bzero(pkg, sizeof(lm_pkg_t));
|
||||
}
|
||||
|
||||
void lm_package_free(lm_pkg_t *pkg){
|
||||
lm_package_data_free(pkg);
|
||||
bzero(pkg, sizeof(lm_pkg_t));
|
||||
}
|
||||
|
Reference in New Issue
Block a user