shape ops -- update gyp projects

goodbye cruel world (updating to OS X 10.8)

git-svn-id: http://skia.googlecode.com/svn/trunk@5685 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/experimental/Intersection/AddTestOutput/main.cpp b/experimental/Intersection/AddTestOutput/main.cpp
new file mode 100644
index 0000000..257bba0
--- /dev/null
+++ b/experimental/Intersection/AddTestOutput/main.cpp
@@ -0,0 +1,111 @@
+#include "SkStream.h"
+#include "SkString.h"
+#include "SkTDArray.h"
+#include <stdio.h>
+
+static bool replace(const char* fun, const char* dir, const char* filename, const char* marker,
+        const char* marker2, const char* replace, size_t replaceLen) {
+    SkString outFileStr(dir);
+    outFileStr.append(filename);
+    SkFILEStream opStreamIn(outFileStr.c_str());
+    if (!opStreamIn.isValid()) {
+        SkDebugf("%s couldn't find %s\n", fun, outFileStr.c_str());
+        return false;
+    }
+    SkTDArray<char> opData;
+    opData.setCount(opStreamIn.getLength());
+    size_t opLen = opData.count();
+    opStreamIn.read(opData.begin(), opLen);
+    opStreamIn.setPath(NULL);
+    SkFILEWStream opStreamOut(outFileStr.c_str());
+    if (!opStreamOut.isValid()) {
+        SkDebugf("%s couldn't open for writing %s\n", fun, outFileStr.c_str());
+        return false;
+    }
+
+    char* opInsert = strstr(opData.begin(), marker);
+    if (!opInsert) {
+        SkDebugf("%s missing marker in %s\n", fun, outFileStr.c_str());
+        return false;
+    }
+    const char* opInsertEnd = opInsert + strlen(marker);
+    if (marker2) {
+        char* opInsert2 = strstr(opInsert, marker2);
+        if (!opInsert2) {
+            SkDebugf("%s missing marker second half in %s\n", fun, outFileStr.c_str());
+            return false;
+        }
+        opInsertEnd = opInsert2 + strlen(marker2);
+    }
+    opStreamOut.write(opData.begin(), opInsert - opData.begin());
+    opStreamOut.write(replace, replaceLen);
+    opStreamOut.write(opInsertEnd, opLen - (opInsertEnd - opData.begin()));
+    opStreamOut.flush();
+    return true;
+}
+
+int main (int argc, char * const argv[]) {
+    if (argc != 2) {
+        SkDebugf("%s expected filename\n", argv[0]);
+        return 0;
+    }
+    const char* dir = "../../experimental/Intersection/";
+    SkString inFileStr;
+    if (argv[1][0] != '/') {
+        inFileStr.append(dir);
+    }
+    inFileStr.append(argv[1]);
+    SkFILEStream inFile(inFileStr.c_str());
+    if (!inFile.isValid()) {
+        SkDebugf("%s couldn't find %s\n", argv[0], argv[1]);
+        return 0;
+    }
+    SkTDArray<char> inData;
+    inData.setCount(inFile.getLength());
+    size_t inLen = inData.count();
+    inFile.read(inData.begin(), inLen);
+    inFile.setPath(NULL);
+    char* insert = strstr(inData.begin(), "\n\n\n");
+    if (!insert) {
+        SkDebugf("%s missing two blank line delimiter in %s\n", argv[0], argv[1]);
+        return 0;
+    }
+    insert += 1; // include first blank line
+    const char opMarker[] =
+            "</div>" "\n"
+            "\n"
+            "<script type=\"text/javascript\">" "\n" 
+            "\n"
+            "var testDivs = ["  "\n"
+            ;
+    if (!replace(argv[0], dir, "op.htm", opMarker, NULL, inData.begin(),
+            insert - inData.begin())) {
+        return 0;
+    }
+    const char newMarker[] =
+            "static void (*firstTest)() = "
+            ;
+    const char newMarker2[] = 
+            ";"  "\n"
+            "\n"
+            "static struct {"  "\n"
+            "    void (*fun)();"  "\n"
+            "    const char* str;"  "\n"
+            "} tests[] = {"  "\n"
+            ;
+    if (!replace(argv[0], dir, "SimplifyNew_Test.cpp", newMarker, newMarker2, insert + 2,
+            inLen - (insert - inData.begin()) - 2)) {
+        return 0;
+    }
+    const char simplifyMarker[] =
+            "#if 1 // set to 1 for multiple thread -- no debugging"
+            ;
+    const char simplifyReplace[] =
+            "#if 0 // set to 1 for multiple thread -- no debugging"
+            ;
+    if (!replace(argv[0], dir, "Simplify.cpp", simplifyMarker, NULL, simplifyReplace,
+            sizeof(simplifyReplace) - 1)) {
+        return 0;
+    }
+    return 0;
+}