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.

-- 


Reply via email to