| OLD | NEW |
| (Empty) |
| 1 #include "SkStream.h" | |
| 2 #include "SkString.h" | |
| 3 #include "SkTDArray.h" | |
| 4 #include <stdio.h> | |
| 5 | |
| 6 static bool replace(const char* fun, const char* dir, const char* filename, cons
t char* marker, | |
| 7 const char* marker2, const char* replace, size_t replaceLen) { | |
| 8 SkString outFileStr(dir); | |
| 9 outFileStr.append(filename); | |
| 10 SkFILEStream opStreamIn(outFileStr.c_str()); | |
| 11 if (!opStreamIn.isValid()) { | |
| 12 SkDebugf("%s couldn't find %s\n", fun, outFileStr.c_str()); | |
| 13 return false; | |
| 14 } | |
| 15 SkTDArray<char> opData; | |
| 16 opData.setCount(opStreamIn.getLength()); | |
| 17 size_t opLen = opData.count(); | |
| 18 opStreamIn.read(opData.begin(), opLen); | |
| 19 opStreamIn.setPath(NULL); | |
| 20 SkFILEWStream opStreamOut(outFileStr.c_str()); | |
| 21 if (!opStreamOut.isValid()) { | |
| 22 SkDebugf("%s couldn't open for writing %s\n", fun, outFileStr.c_str()); | |
| 23 return false; | |
| 24 } | |
| 25 | |
| 26 char* opInsert = strstr(opData.begin(), marker); | |
| 27 if (!opInsert) { | |
| 28 SkDebugf("%s missing marker in %s\n", fun, outFileStr.c_str()); | |
| 29 opStreamOut.write(opData.begin(), opLen); | |
| 30 opStreamOut.flush(); | |
| 31 return false; | |
| 32 } | |
| 33 const char* opInsertEnd = opInsert + strlen(marker); | |
| 34 if (marker2) { | |
| 35 char* opInsert2 = strstr(opInsert, marker2); | |
| 36 if (!opInsert2) { | |
| 37 SkDebugf("%s missing marker second half in %s\n", fun, outFileStr.c_
str()); | |
| 38 opStreamOut.write(opData.begin(), opLen); | |
| 39 opStreamOut.flush(); | |
| 40 return false; | |
| 41 } | |
| 42 opInsertEnd = opInsert2 + strlen(marker2); | |
| 43 } | |
| 44 opStreamOut.write(opData.begin(), opInsert - opData.begin()); | |
| 45 opStreamOut.write(replace, replaceLen); | |
| 46 opStreamOut.write(opInsertEnd, opLen - (opInsertEnd - opData.begin())); | |
| 47 opStreamOut.flush(); | |
| 48 return true; | |
| 49 } | |
| 50 | |
| 51 int main (int argc, char * const argv[]) { | |
| 52 if (argc != 2) { | |
| 53 SkDebugf("%s expected filename\n", argv[0]); | |
| 54 return 0; | |
| 55 } | |
| 56 const char* dir = "../../experimental/Intersection/"; | |
| 57 SkString inFileStr; | |
| 58 if (argv[1][0] != '/') { | |
| 59 inFileStr.append(dir); | |
| 60 } | |
| 61 inFileStr.append(argv[1]); | |
| 62 SkFILEStream inFile(inFileStr.c_str()); | |
| 63 if (!inFile.isValid()) { | |
| 64 SkDebugf("%s couldn't find %s\n", argv[0], argv[1]); | |
| 65 return 0; | |
| 66 } | |
| 67 SkTDArray<char> inData; | |
| 68 inData.setCount(inFile.getLength()); | |
| 69 size_t inLen = inData.count(); | |
| 70 inFile.read(inData.begin(), inLen); | |
| 71 inFile.setPath(NULL); | |
| 72 char* insert = strstr(inData.begin(), "\n\n\n"); | |
| 73 if (!insert) { | |
| 74 SkDebugf("%s missing two blank line delimiter in %s\n", argv[0], argv[1]
); | |
| 75 return 0; | |
| 76 } | |
| 77 insert += 1; // include first blank line | |
| 78 const char opMarker[] = | |
| 79 "</div>" "\n" | |
| 80 "\n" | |
| 81 "<script type=\"text/javascript\">" "\n" | |
| 82 "\n" | |
| 83 "var testDivs = [" "\n" | |
| 84 ; | |
| 85 if (!replace(argv[0], dir, "op.htm", opMarker, NULL, inData.begin(), | |
| 86 insert - inData.begin())) { | |
| 87 return 0; | |
| 88 } | |
| 89 const char newMarker[] = | |
| 90 "static void (*firstTest)() = " | |
| 91 ; | |
| 92 const char newMarker2[] = | |
| 93 ";" "\n" | |
| 94 "\n" | |
| 95 "static struct {" "\n" | |
| 96 " void (*fun)();" "\n" | |
| 97 " const char* str;" "\n" | |
| 98 "} tests[] = {" "\n" | |
| 99 ; | |
| 100 if (!replace(argv[0], dir, "SimplifyNew_Test.cpp", newMarker, newMarker2, in
sert + 2, | |
| 101 inLen - (insert - inData.begin()) - 2)) { | |
| 102 return 0; | |
| 103 } | |
| 104 const char forceReleaseMarker[] = | |
| 105 "#define FORCE_RELEASE 1 // set force release to 1 for multiple thr
ead -- no debugging" | |
| 106 ; | |
| 107 const char forceReleaseReplace[] = | |
| 108 "#define FORCE_RELEASE 0 // set force release to 1 for multiple thr
ead -- no debugging" | |
| 109 ; | |
| 110 if (!replace(argv[0], dir, "DataTypes.h", forceReleaseMarker, NULL, forceRel
easeReplace, | |
| 111 sizeof(forceReleaseReplace) - 1)) { | |
| 112 return 0; | |
| 113 } | |
| 114 return 0; | |
| 115 } | |
| OLD | NEW |