Copying the output of cgit and using it in patches now works when adding
files to or removing files from the repository. This is helpful for people
who use cgit in their patch workflow.
---
 ui-diff.c  |   17 ++++++++++-------
 ui-patch.c |   19 ++++++++++++-------
 2 files changed, 22 insertions(+), 14 deletions(-)

diff --git a/ui-diff.c b/ui-diff.c
index c6bad63..3d46da2 100644
--- a/ui-diff.c
+++ b/ui-diff.c
@@ -229,11 +229,6 @@ static void header(unsigned char *sha1, char *path1, int 
mode1,
        html(" b/");
        html_txt(path2);
 
-       if (is_null_sha1(sha1))
-               path1 = "dev/null";
-       if (is_null_sha1(sha2))
-               path2 = "dev/null";
-
        if (mode1 == 0)
                htmlf("<br/>new file mode %.6o", mode2);
 
@@ -251,13 +246,21 @@ static void header(unsigned char *sha1, char *path1, int 
mode1,
                        if (mode2 != mode1)
                                htmlf("..%.6o", mode2);
                }
-               html("<br/>--- a/");
+               if (is_null_sha1(sha1)) {
+                       path1 = "dev/null";
+                       html("<br/>--- /");
+               } else
+                       html("<br/>--- a/");
                if (mode1 != 0)
                        cgit_tree_link(path1, NULL, NULL, ctx.qry.head,
                                       sha1_to_hex(old_rev_sha1), path1);
                else
                        html_txt(path1);
-               html("<br/>+++ b/");
+               if (is_null_sha1(sha2)) {
+                       path2 = "dev/null";
+                       html("<br/>+++ /");
+               } else
+                       html("<br/>+++ b/");
                if (mode2 != 0)
                        cgit_tree_link(path2, NULL, NULL, ctx.qry.head,
                                       sha1_to_hex(new_rev_sha1), path2);
diff --git a/ui-patch.c b/ui-patch.c
index ca008f3..79bc509 100644
--- a/ui-patch.c
+++ b/ui-patch.c
@@ -28,11 +28,6 @@ static void header(unsigned char *sha1, char *path1, int 
mode1,
        subproject = (S_ISGITLINK(mode1) || S_ISGITLINK(mode2));
        htmlf("diff --git a/%s b/%s\n", path1, path2);
 
-       if (is_null_sha1(sha1))
-               path1 = "dev/null";
-       if (is_null_sha1(sha2))
-               path2 = "dev/null";
-
        if (mode1 == 0)
                htmlf("new file mode %.6o\n", mode2);
 
@@ -50,8 +45,18 @@ static void header(unsigned char *sha1, char *path1, int 
mode1,
                        if (mode2 != mode1)
                                htmlf("..%.6o", mode2);
                }
-               htmlf("\n--- a/%s\n", path1);
-               htmlf("+++ b/%s\n", path2);
+
+               if (is_null_sha1(sha1)) {
+                       path1 = "dev/null";
+                       htmlf("\n--- /%s\n", path1);
+               } else
+                       htmlf("\n--- a/%s\n", path1);
+
+               if (is_null_sha1(sha2)) {
+                       path2 = "dev/null";
+                       htmlf("+++ /%s\n", path2);
+               } else
+                       htmlf("+++ b/%s\n", path2);
        }
 }
 
-- 
1.7.9.5


_______________________________________________
cgit mailing list
[email protected]
http://hjemli.net/mailman/listinfo/cgit

Reply via email to