jaehwan pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=f2c943d6344565ac73d64c4de471902c80109cd2
commit f2c943d6344565ac73d64c4de471902c80109cd2 Author: Jaehwan Kim <[email protected]> Date: Thu Dec 8 14:39:01 2016 +0900 project_manager: add backslash in the edje_pick command line. Some group has a '&' in the style name like "on&off". --- src/bin/common/string_common.c | 24 ++++++++++++++++++++++++ src/bin/common/string_common.h | 3 +++ src/bin/project_manager/project_manager2.c | 5 ++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/bin/common/string_common.c b/src/bin/common/string_common.c index 5fd8cf4..a11e825 100644 --- a/src/bin/common/string_common.c +++ b/src/bin/common/string_common.c @@ -98,6 +98,30 @@ string_rstr(const char *str1, const char *str2) return NULL; } +char * +string_backslash_insert(const char *str, char src) +{ + assert(str != NULL); + char dst[256]; + int i = 0; + + while (*str != '\0') + { + if (*str != src) + dst[i] = *str; + else + { + dst[i++] = '\\'; + dst[i] = src; + } + str++; + i++; + } + dst[i] = '\0'; + + return strdup(dst); +} + /** * ref http://docs.enlightenment.org/auto/edje/group__Edje__Object__Part.html */ diff --git a/src/bin/common/string_common.h b/src/bin/common/string_common.h index 1cf6751..d4cb837 100644 --- a/src/bin/common/string_common.h +++ b/src/bin/common/string_common.h @@ -66,6 +66,9 @@ string_cat(const char *str1, const char *str2); const char * string_rstr(const char *str1, const char *str2); +char * +string_backslash_insert(const char *str, char src); + const char * part_type_text_get(Edje_Part_Type part_type); diff --git a/src/bin/project_manager/project_manager2.c b/src/bin/project_manager/project_manager2.c index d13d8b2..90b1eef 100644 --- a/src/bin/project_manager/project_manager2.c +++ b/src/bin/project_manager/project_manager2.c @@ -820,6 +820,7 @@ _project_import_edj(Project_Process_Data *ppd) Evas_Object *obj = NULL; Eina_Strbuf *strbuf; char buf[PATH_MAX]; + char *str; unsigned int count; //Eina_Stringshare *msg = eina_stringshare_printf(_("Start import '%s' file as new project"), ptd->edj); @@ -892,8 +893,10 @@ _project_import_edj(Project_Process_Data *ppd) ppd->edj = eina_stringshare_ref(edj_out); ppd->source_edj = eina_stringshare_ref(edj_in); - ecore_exe_pipe_run(eina_strbuf_string_get(strbuf), FLAGS, NULL); + str = string_backslash_insert(eina_strbuf_string_get(strbuf), '&'); + ecore_exe_pipe_run(str, FLAGS, NULL); eina_strbuf_free(strbuf); + free(str); ppd->data_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DATA, _exe_output_handler, ppd); ppd->del_handler = ecore_event_handler_add(ECORE_EXE_EVENT_DEL, _edje_pick_finish_handler, ppd); --
