netstar pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=376d4c5752092ec86f6dd5ca8f82115b288e2121
commit 376d4c5752092ec86f6dd5ca8f82115b288e2121 Author: Al Poole <[email protected]> Date: Thu Sep 21 20:45:33 2017 +0100 screens: scm. only show staged changes. --- src/bin/screens/edi_scm_screens.c | 13 ++++++++----- src/lib/edi_scm.c | 11 +++++++---- src/lib/edi_scm.h | 6 ++++-- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/src/bin/screens/edi_scm_screens.c b/src/bin/screens/edi_scm_screens.c index b14d357..45cc5c0 100644 --- a/src/bin/screens/edi_scm_screens.c +++ b/src/bin/screens/edi_scm_screens.c @@ -300,9 +300,12 @@ _file_status_list_fill(Evas_Object *list) { EINA_LIST_FREE(e->statuses, status) { - _file_status_item_add(status->path, status->change); - elm_genlist_item_append(list, itc, strdup(status->path), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); - if (status->staged) staged = EINA_TRUE; + if (status->staged) + { + staged = EINA_TRUE; + _file_status_item_add(status->path, status->change); + elm_genlist_item_append(list, itc, strdup(status->path), NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); + } eina_stringshare_del(status->fullpath); eina_stringshare_del(status->path); @@ -452,13 +455,13 @@ edi_scm_screens_commit(Evas_Object *parent) elm_box_pack_end(box, frame); // End of Trick - text = edi_scm_diff(); + text = edi_scm_diff(EINA_TRUE); if (text[0] && text[1]) { frame = elm_frame_add(popup); evas_object_size_hint_weight_set(frame, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(frame, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_object_text_set(frame, _("Unstaged changes")); + elm_object_text_set(frame, _("Committed changes")); evas_object_show(frame); cbox = elm_box_add(popup); diff --git a/src/lib/edi_scm.c b/src/lib/edi_scm.c index 7f86cb0..56bea4b 100644 --- a/src/lib/edi_scm.c +++ b/src/lib/edi_scm.c @@ -317,14 +317,17 @@ _edi_scm_git_status_get(void) } static char * -_edi_scm_git_diff(void) +_edi_scm_git_diff(Eina_Bool cached) { char *output; Eina_Strbuf *command; command = eina_strbuf_new(); - eina_strbuf_append(command, "git diff"); + if (cached) + eina_strbuf_append(command, "git diff --cached"); + else + eina_strbuf_append(command, "git diff"); output = _edi_scm_exec_response(eina_strbuf_string_get(command)); @@ -608,11 +611,11 @@ edi_scm_remote_add(const char *remote_url) } EAPI char * -edi_scm_diff(void) +edi_scm_diff(Eina_Bool cached) { Edi_Scm_Engine *e = edi_scm_engine_get(); - return e->diff(); + return e->diff(cached); } EAPI void diff --git a/src/lib/edi_scm.h b/src/lib/edi_scm.h index a405cfb..480b762 100644 --- a/src/lib/edi_scm.h +++ b/src/lib/edi_scm.h @@ -38,7 +38,7 @@ typedef int (scm_fn_del)(const char *path); typedef int (scm_fn_move)(const char *src, const char *dest); typedef int (scm_fn_commit)(const char *message); typedef int (scm_fn_status)(void); -typedef char *(scm_fn_diff)(void); +typedef char *(scm_fn_diff)(Eina_Bool); typedef int (scm_fn_push)(void); typedef int (scm_fn_pull)(void); typedef int (scm_fn_stash)(void); @@ -188,9 +188,11 @@ Eina_Bool edi_scm_status_get(void); /** * Get diff of changes in repository. * + * @param cached Whether the results are general or cached changes. + * * @return diff output as a string. */ -char *edi_scm_diff(void); +char *edi_scm_diff(Eina_Bool cached); /** * Move from src to dest. --
