Git, C89, and older compilers
From: Joshua Juran <hidden>
Date: 2016-06-15 22:46:32
Hello, I'm porting Git to Lamp (Lamp ain't Mac POSIX), a Unix-like environment which runs in classic Mac OS, much like Cygwin. One of the complications I've run into is that Metrowerks C 2.4.1 (released in 2001) doesn't support some of the constructs git uses, such as initializing an aggregate's member with the address of a local variable, illustrated by the patch below:
diff --git a/builtin-commit.c b/builtin-commit.c
index 46e649c..8b98547 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c@@ -605,7 +605,8 @@ static int prepare_to_commit(const char *index_file, const c
if (use_editor) {
char index[PATH_MAX];
- const char *env[2] = { index, NULL };
+ const char *env[2] = { NULL, NULL };
+ env[0] = index;
snprintf(index, sizeof(index), "GIT_INDEX_FILE=%s",
index_file);
if (launch_editor(git_path(commit_editmsg), NULL,
env)) {
fprintf(stderr,
Is git intended to compile on a C89 compiler? In any case, if I
produce a complete set of patches, will they be applied?
Josh