From d312804b2198d58276f460c6a85378d2c1b5e548 Mon Sep 17 00:00:00 2001 From: "caryclark@google.com" Date: Wed, 26 Sep 2012 13:00:03 +0000 Subject: 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 --- experimental/Intersection/AddTestOutput/main.cpp | 111 +++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 experimental/Intersection/AddTestOutput/main.cpp (limited to 'experimental') diff --git a/experimental/Intersection/AddTestOutput/main.cpp b/experimental/Intersection/AddTestOutput/main.cpp new file mode 100644 index 0000000000..257bba0026 --- /dev/null +++ b/experimental/Intersection/AddTestOutput/main.cpp @@ -0,0 +1,111 @@ +#include "SkStream.h" +#include "SkString.h" +#include "SkTDArray.h" +#include + +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 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 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[] = + "" "\n" + "\n" + "