diff --git a/source/libublsettingsui-gtk3-save.c b/source/libublsettingsui-gtk3-save.c index f0a6094..a6752a3 100644 --- a/source/libublsettingsui-gtk3-save.c +++ b/source/libublsettingsui-gtk3-save.c @@ -413,13 +413,15 @@ void yon_save_window_loaded_config_init(template_saving_window *window, struct l GtkTreeIter iter; if (status==0||status==-2) status = 0; else status=1; - if (strstr(current->data,"&")) {current->data = yon_char_replace(current->data,"&","\003");current->data = yon_char_replace(current->data,"\003","&");} - if (strstr(current->data,">")) current->data = yon_char_replace(current->data,">","<"); - if (strstr(current->data,"<")) current->data = yon_char_replace(current->data,"<",">"); - if (strstr(dict->data,"&")) {dict->data = yon_char_replace(dict->data,"&","\003");dict->data = yon_char_replace(dict->data,"\003","&");} - if (strstr(dict->data,">")) dict->data = yon_char_replace(dict->data,">","<"); - if (strstr(dict->data,"<")) dict->data = yon_char_replace(dict->data,"<",">"); - char *compare_string = yon_char_unite("",(char*)dict->data,"\n",(char*)current->data,NULL); + char *old_val = yon_char_new(current->data); + char *new_val = yon_char_new(dict->data); + if (strstr(old_val,"&")) {old_val = yon_char_replace(old_val,"&","\003");old_val = yon_char_replace(old_val,"\003","&");} + if (strstr(old_val,">")) old_val = yon_char_replace(old_val,">","<"); + if (strstr(old_val,"<")) old_val = yon_char_replace(old_val,"<",">"); + if (strstr(new_val,"&")) {new_val = yon_char_replace(new_val,"&","\003");new_val = yon_char_replace(new_val,"\003","&");} + if (strstr(new_val,">")) new_val = yon_char_replace(new_val,">","<"); + if (strstr(new_val,"<")) new_val = yon_char_replace(new_val,"<",">"); + char *compare_string = yon_char_unite("",(char*)new_val,"\n",(char*)old_val,NULL); gtk_list_store_append(window->list,&iter); gtk_list_store_set(window->list,&iter,0,status,1,current->key,2,(char*)dict->data,3,(char*)current->data,4,compare_string,6,1,7,yon_config_get_section_for_key(current->key),-1); free(compare_string); diff --git a/source/libublsettingsui-gtk3.c b/source/libublsettingsui-gtk3.c index a72143b..db82ca4 100644 --- a/source/libublsettingsui-gtk3.c +++ b/source/libublsettingsui-gtk3.c @@ -566,27 +566,30 @@ char *yon_gtk_entry_check_restricted(GtkEntry *target){ GtkInputPurpose purpose = gtk_entry_get_input_purpose(target); const char *text = gtk_entry_get_text(target); char *error=NULL; - switch(purpose){ - case GTK_INPUT_PURPOSE_EMAIL:{ - char *temp = NULL; - if (!((temp = strstr(text,"@"))&& - strstr(temp,".")&& - strlen(temp)!=strlen(text)&& - temp[1]!='.'&& - strstr(temp,".")[1]!='\0')){ - error = yon_char_get_localised_from_lib(EMAIL_INVALID_LABEL); + if (!yon_char_is_empty(text)){ + switch(purpose){ + case GTK_INPUT_PURPOSE_EMAIL:{ + char *temp = NULL; + if (!((temp = strstr(text,"@"))&& + strstr(temp,".")&& + strlen(temp)!=strlen(text)&& + temp[1]!='.'&& + strstr(temp,".")[1]!='\0')){ + error = yon_char_get_localised_from_lib(EMAIL_INVALID_LABEL); + } } - } - break; - case GTK_INPUT_PURPOSE_URL:{ - if (!strstr(text,"/")){ - error = yon_char_get_localised_from_lib(PATH_INVALID_LABEL); + break; + case GTK_INPUT_PURPOSE_URL:{ + if (!strstr(text,"/")){ + error = yon_char_get_localised_from_lib(PATH_INVALID_LABEL); + } } + break; + default: break; } - break; - default: break; } return error; + } void yon_entry_set_entry_type(GtkEntry *target,GtkBox *status){ @@ -604,7 +607,5 @@ void yon_entry_set_entry_type(GtkEntry *target,GtkBox *status){ break; default: break; - - } } \ No newline at end of file