19 #include <arpa/inet.h>
22 #include <netinet/in.h>
26 #include <sys/socket.h>
27 #include <sys/types.h>
33 #define __FILENAME__ (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
36 #define __PRINTF__ printf
37 #define __COUT__ cout << __FILENAME__ << std::dec << " [" << __LINE__ << "]\t"
38 #define __E__ std::endl
46 int main(
int argc,
char** argv)
48 __COUT__ <<
"Starting doxygen main.html editor..." << __E__;
52 __COUT__ <<
"Need 3 arguments: for the full path to main.html AND to "
53 "ARRAY:<html-to-inject>"
57 string mainfn = argv[1];
58 string injectfn = argv[2];
59 string inject2fn = argv[3];
60 __COUT__ <<
"main.html destination full path: " << mainfn << __E__;
61 __COUT__ <<
"main.html source full path: " << mainfn +
".bk" << __E__;
62 __COUT__ <<
"inject.html source full path: " << injectfn << __E__;
63 __COUT__ <<
"inject2.html source full path: " << inject2fn << __E__;
65 FILE* mainSrc = fopen((mainfn +
".bk").c_str(),
"r");
68 __COUT__ <<
"Failed to open... " << mainfn +
".bk" << __E__;
71 FILE* injectSrc = fopen((injectfn).c_str(),
"r");
74 __COUT__ <<
"Failed to open... " << injectfn << __E__;
77 FILE* inject2Src = fopen((inject2fn).c_str(),
"r");
80 __COUT__ <<
"Failed to open... " << inject2fn << __E__;
83 FILE* mainDest = fopen((mainfn).c_str(),
"w");
86 __COUT__ <<
"Failed to open... " << mainfn << __E__;
91 unsigned int countdown = -1;
93 unsigned int injectIndex = 0;
96 while(fgets(line, 1000, mainSrc))
98 fputs(line, mainDest);
99 __COUT__ << line << (line[strlen(line) - 1] ==
'\n' ?
"" :
"\n");
101 if(injected && !strcmp(line,
"<div class=\"contents\">\n"))
108 else if(injected && !strcmp(line,
"<head>\n"))
116 if(!injected && countdown == 0)
138 while(fgets(line, 1000, injectSrc))
140 fputs(line, mainDest);
141 __COUT__ << line << (line[strlen(line) - 1] ==
'\n' ?
"" :
"\n");
152 while(fgets(line, 1000, inject2Src))
154 fputs(line, mainDest);
155 __COUT__ << line << (line[strlen(line) - 1] ==
'\n' ?
"" :
"\n");
160 __COUT__ <<
"Unknown injection!" << __E__;
173 __COUT__ <<
"Doxygen main.html editor complete!" << __E__;