master #30

Merged
asmeron merged 3 commits from YanTheKaller/libublsettings:master into master 1 year ago

@ -229,6 +229,7 @@ void *yon_dictionary_free_all(dictionary *dictionary_to_free,void (*data_manipul
if(data_manipulation) if(data_manipulation)
data_manipulation(dict->data); data_manipulation(dict->data);
if(dict->prev) if(dict->prev)
free(dict->prev->key);
free(dict->prev); free(dict->prev);
} }
free(dict); free(dict);
@ -552,16 +553,30 @@ char *yon_char_from_float(float int_to_convert)
return ch; return ch;
} }
char *yon_char_from_double(double int_to_convert)
{
int negative = int_to_convert < 0 ? 1 : 0;
int digits_before_decimal = (int_to_convert == 0) ? 1 : (int)log10(fabs(int_to_convert)) + 1;
int total_length = digits_before_decimal + 1 + 2 + negative + 1;
char *ch = malloc(total_length * sizeof(char));
if (!ch) {
return NULL;
}
sprintf(ch, "%.2f", int_to_convert);
return ch;
}
char *yon_char_from_long(long int_to_convert) char *yon_char_from_long(long int_to_convert)
{ {
int i = 1; int negative = int_to_convert < 0 ? 1 : 0;
double convert_check = (double)int_to_convert; int digits = (int_to_convert == 0) ? 1 : (int)log10(labs(int_to_convert)) + 1;
for (i = 1; convert_check >= 10; i++) int total_length = digits + negative + 1;
{ char *ch = malloc(total_length * sizeof(char));
convert_check = convert_check / 10; if (!ch) {
return NULL;
} }
char *ch = malloc(i * sizeof(char) + 1);
memset(ch,0,i * sizeof(char) + 1);
sprintf(ch, "%ld", int_to_convert); sprintf(ch, "%ld", int_to_convert);
return ch; return ch;
} }
@ -570,7 +585,6 @@ char *yon_char_replace(char *source, char *find, char*replace){
if (!strstr(replace,find)){ if (!strstr(replace,find)){
char *final=NULL; char *final=NULL;
char *temp=NULL; char *temp=NULL;
if(!strstr(replace,find)){
while ((final=strstr(source,find))){ while ((final=strstr(source,find))){
temp=malloc(strlen(source)-strlen(final)+strlen(replace)); temp=malloc(strlen(source)-strlen(final)+strlen(replace));
memset(temp,0,strlen(source)-strlen(final)+strlen(replace)); memset(temp,0,strlen(source)-strlen(final)+strlen(replace));
@ -578,8 +592,6 @@ char *yon_char_replace(char *source, char *find, char*replace){
temp=yon_char_append(temp,replace); temp=yon_char_append(temp,replace);
source=yon_char_append(temp,final+strlen(find)); source=yon_char_append(temp,final+strlen(find));
} }
}
} }
return source; return source;
} }
@ -607,16 +619,23 @@ char **yon_char_parse(char *parameters, int *size, char *divider){
} }
char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete) { char **yon_char_parsed_rip(char **char_string, int *size, int item_to_delete) {
if (char_string && size && (*size) > 0 && (*size) > item_to_delete && item_to_delete >= 0) { if (char_string && size && (*size) > 0 && item_to_delete >= 0 && item_to_delete < (*size)) {
char **new_char_parsed = malloc(sizeof(char*) * ((*size) - 1)); char **new_char_parsed = malloc(sizeof(char*) * ((*size) - 1));
if (!new_char_parsed) { if (!new_char_parsed) {
return NULL; return NULL;
} }
int new_index = 0; int new_index = 0;
for (int i = 0; i < (*size); i++) { for (int i = 0; i < (*size); i++) {
if (i != item_to_delete) { if (i != item_to_delete) {
new_char_parsed[new_index] = yon_char_new(char_string[i]); new_char_parsed[new_index] = yon_char_new(char_string[i]);
if (!new_char_parsed[new_index]) {
for (int j = 0; j < new_index; j++) {
free(new_char_parsed[j]);
}
free(new_char_parsed);
return NULL;
}
new_index++; new_index++;
} else { } else {
free(char_string[i]); free(char_string[i]);
@ -919,6 +938,36 @@ float yon_size_convert_automatic(int bytes, int *size){
return byte_float; return byte_float;
} }
int yon_get_size_get_from_letter(char size){
switch (size){
case 'K': return 0;
break;
case 'M': return 1;
break;
case 'G': return 2;
break;
case 'T': return 0;
break;
default: return -1;
break;
}
}
char *yon_size_get_mod(int size){
char *size_modifier = NULL;
switch (size){
case 0: size_modifier = "K";
break;
case 1: size_modifier = "M";
break;
case 2: size_modifier = "G";
break;
case 3: size_modifier = "T";
break;
}
return size_modifier;
}
config_str yon_dir_get_contents(char *dir_path, int *size){ config_str yon_dir_get_contents(char *dir_path, int *size){
config_str dir = NULL; config_str dir = NULL;
*size=0; *size=0;
@ -926,8 +975,8 @@ config_str yon_dir_get_contents(char *dir_path, int *size){
DIR *directory = opendir(dir_path); DIR *directory = opendir(dir_path);
struct dirent *de; struct dirent *de;
while ((de = readdir(directory))){ while ((de = readdir(directory))){
if (dir){ dir = yon_char_parsed_append(dir,size,yon_char_new(de->d_name)); if (dir){ dir = yon_char_parsed_append(dir,size,de->d_name);
} else dir = yon_char_parsed_new(size,yon_char_new(de->d_name),NULL); } else dir = yon_char_parsed_new(size,de->d_name,NULL);
} }
closedir(directory); closedir(directory);
} }
@ -1235,10 +1284,16 @@ int yon_config_command_prepare(config_str *commands, int *commands_size,char *co
for (int j=5;j<parsed_size;j++){ for (int j=5;j<parsed_size;j++){
int new_size; int new_size;
config_str new_element = yon_char_parsed_new(&new_size,parsed[0],parsed[1],parsed[2],parsed[3],parsed[4],parsed[j],NULL); config_str new_element = yon_char_parsed_new(&new_size,parsed[0],parsed[1],parsed[2],parsed[3],parsed[4],parsed[j],NULL);
*commands = yon_char_parsed_append(*commands,commands_size,yon_char_parsed_to_string(new_element,new_size," ")); char *full = yon_char_parsed_to_string(new_element,new_size," ");
*commands = yon_char_parsed_append(*commands,commands_size,full);
yon_char_parsed_free(new_element,new_size);
free(full);
done=1; done=1;
} }
} }
if (parsed_size){
yon_char_parsed_free(parsed,parsed_size);
}
return done; return done;
} }
return 0; return 0;
@ -1285,6 +1340,8 @@ int yon_config_load_config(YON_CONFIG_TYPE config_type, ...){
} }
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);
} }
yon_char_parsed_free(command,command_size);
} }
@ -1574,7 +1631,6 @@ int yon_config_clean(){
} }
void yon_config_register(char *key, char *config_load, void *data){ void yon_config_register(char *key, char *config_load, void *data){
key=yon_char_new(key);
config_load=yon_char_new(config_load); config_load=yon_char_new(config_load);
yon_config_parameter *current = NULL; yon_config_parameter *current = NULL;
if (data){ if (data){

@ -13,6 +13,7 @@
#include <pwd.h> #include <pwd.h>
#include <locale.h> #include <locale.h>
#include <time.h> #include <time.h>
#include <math.h>
#define DesktopPath "/usr/share/applications/" #define DesktopPath "/usr/share/applications/"
@ -383,6 +384,8 @@ char *yon_char_from_int(int int_to_convert);
*/ */
char *yon_char_from_float(float int_to_convert); char *yon_char_from_float(float int_to_convert);
char *yon_char_from_double(double int_to_convert);
/**yon_char_from_long(int int_to_convert) /**yon_char_from_long(int int_to_convert)
* [EN] * [EN]
* converts long to char*. * converts long to char*.
@ -568,6 +571,10 @@ config_str yon_ubl_get_all_users(int *user_size);
*/ */
float yon_size_convert_automatic(int bytes, int *size); float yon_size_convert_automatic(int bytes, int *size);
int yon_get_size_get_from_letter(char size);
char *yon_size_get_mod(int size);
apps *yon_apps_scan_and_parse_desktops(int *sizef); apps *yon_apps_scan_and_parse_desktops(int *sizef);
void yon_apps_sort(apps *applist, int size); void yon_apps_sort(apps *applist, int size);

Loading…
Cancel
Save