{"thread":{"id":"789","subject":"[PATCH] One Git To Rule Them All - Prep 2","startedAt":"2005-06-01T05:59:56Z","lastAt":"2005-06-01T05:59:56Z","messageCount":1,"participants":["Jason McMullan"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"4349","messageId":"20050601055956.GA15845@port.evillabs.net","threadId":"789","inReplyTo":null,"subject":"[PATCH] One Git To Rule Them All - Prep 2","fromName":"Jason McMullan","fromEmail":"jason.mcmullan@timesys.com","sentAt":"2005-06-01T05:59:56Z","receivedAt":"2005-06-01T05:59:56Z","isPatch":true,"sender":{"key":"jason.mcmullan@timesys.com","avatar":null},"body":"one-git prep patch 2/2\n\nMake pull.c usable in one-git by making 'fetch' an overridable function pointer,\ninstead of an external function.\n\nSigned-off-by: Jason McMullan <jason.mcmullan@timesys.com>\n\ndiff --git a/http-pull.c b/http-pull.c\n--- a/http-pull.c\n+++ b/http-pull.c\n@@ -39,7 +39,7 @@ static size_t fwrite_sha1_file(void *ptr\n \treturn size;\n }\n \n-int fetch(unsigned char *sha1)\n+static int my_fetch(unsigned char *sha1)\n {\n \tchar *hex = sha1_to_hex(sha1);\n \tchar *filename = sha1_file_name(sha1);\n@@ -98,6 +98,8 @@ int main(int argc, char **argv)\n \tchar *url;\n \tint arg = 1;\n \n+\tfetch = my_fetch;\n+\n \twhile (arg < argc && argv[arg][0] == '-') {\n \t\tif (argv[arg][1] == 't') {\n \t\t\tget_tree = 1;\ndiff --git a/local-pull.c b/local-pull.c\n--- a/local-pull.c\n+++ b/local-pull.c\n@@ -11,7 +11,7 @@ static int use_filecopy = 1;\n \n static char *path;\n \n-int fetch(unsigned char *sha1)\n+static int my_fetch(unsigned char *sha1)\n {\n \tstatic int object_name_start = -1;\n \tstatic char filename[PATH_MAX];\n@@ -87,6 +87,8 @@ int main(int argc, char **argv)\n \tchar *commit_id;\n \tint arg = 1;\n \n+\tfetch = my_fetch;\n+\n \twhile (arg < argc && argv[arg][0] == '-') {\n \t\tif (argv[arg][1] == 't')\n \t\t\tget_tree = 1;\ndiff --git a/pull.c b/pull.c\n--- a/pull.c\n+++ b/pull.c\n@@ -14,6 +14,14 @@ static const char commitS[] = \"commit\";\n static const char treeS[] = \"tree\";\n static const char blobS[] = \"blob\";\n \n+int null_fetch(unsigned char *sha1)\n+{\n+\tfprintf(stderr,\"fetch() routine not implemented.\\n\");\n+\treturn -1;\n+}\n+\n+int (*fetch)(unsigned char *sha1) = null_fetch;\n+\n void pull_say(const char *fmt, const char *hex) {\n \tif (get_verbosely)\n \t\tfprintf(stderr, fmt, hex);\ndiff --git a/pull.h b/pull.h\n--- a/pull.h\n+++ b/pull.h\n@@ -2,7 +2,7 @@\n #define PULL_H\n \n /** To be provided by the particular implementation. **/\n-extern int fetch(unsigned char *sha1);\n+extern int (*fetch)(unsigned char *sha1);\n \n /** Set to fetch the target tree. */\n extern int get_tree;\ndiff --git a/rpull.c b/rpull.c\n--- a/rpull.c\n+++ b/rpull.c\n@@ -6,7 +6,7 @@\n static int fd_in;\n static int fd_out;\n \n-int fetch(unsigned char *sha1)\n+static int my_fetch(unsigned char *sha1)\n {\n \tint ret;\n \twrite(fd_out, sha1, 20);\n@@ -22,6 +22,8 @@ int main(int argc, char **argv)\n \tchar *url;\n \tint arg = 1;\n \n+\tfetch = my_fetch;\n+\n \twhile (arg < argc && argv[arg][0] == '-') {\n \t\tif (argv[arg][1] == 't') {\n \t\t\tget_tree = 1;\n\n"}]}