void PayguideInit() { /* Init variables from payguide namespace */ payguide::namespace_init(); ReloadConfigIfImportant(); if (curl_global_init(CURL_GLOBAL_ALL)!=0) { printf("CURL init failed! Payguide shutdown.\n"); exit(1); } /* Deatch from console */ if (payguide::daemonize==1) { if (Daemonize()!=0) { LogWrite(LOGMSG_ERROR, "Daemonize failed!"); } } my_init(); DBVeryFirstInit(); OperatorsInit(); OpenSSLInit(); StatisticInit(); /* Catching TERM signal - shut down server */ struct sigaction sterm; memset (&sterm, 0, sizeof(sterm)); sterm.sa_handler=&SigHandler; sigaction(SIGTERM, &sterm, NULL); /* Catching INT signal - shut down server */ struct sigaction sint; memset (&sint, 0, sizeof(sint)); sint.sa_handler=&SigHandler; sigaction(SIGINT, &sint, NULL); atexit (CleanUp); /* Init backtrace */ #ifdef ENABLE_BACKTRACE open_backtrace_fd(payguide::backtrace_file.c_str()); install_handlers() ; #endif }
void TestPreprocessorReplacement(void) { ClassStorageInit(); FastFunctionsInit(); TypeConverterInit(); OperatorsInit(); InitTokenMemory(); CChars szDest; CPreprocessor::Preprocess("\ #define D3(X) #X\n\ #define D7(P,Q) D3(P) D3(Q)\n\ #define D4() " "\n\ #define D6(P,Q) D3(P)##D4()##D3(Q)\n\ #define D8(P,Q) D3(P) " " D3(Q)\n\ #define D5(X) X\n\ #define D9(P,Q) D5(P) D4() D5(Q)\n\ #define D2(P,Q) D9(#P, #Q)\n\ #define D1(P,Q) #P#Q\n\ \n\ void DoStuff()\n\ {\n\ //You can only legally have hashes in the replacement text. Bizzare things happen otherwise.\n\ //You can only have a single hash preceding a replacement argument.\n\ //Tokens after the hash are not expanded before hashing.\n\ char sz6[]=D9(\"Hello\", \"World\");\n\ char sz1[] = D7(Hello, World);\n\ char sz3[] = D8(Hello, World);\n\ char sz5[] = D1(Hello, World);\n\ char sz4[] = D2(Hello, World);\n\ char sz2[] = D6(Hello, World);\n\ }\n\ ", &szDest); //Actually I don't know what this is supposed to look like. Just make the test pass for now. AssertString("\ void DoStuff()\n\ {\n\ char sz6[]=\"Hello\" \"World\";\n\ char sz1[] = \"Hello\" \"World\";\n\ char sz3[] = \"Hello\" \"World\";\n\ char sz5[] = \"Hello\"\"World\";\n\ char sz4[] = \"Hello\" \"World\";\n\ char sz2[] = \"Hello\"\"World\";\n\ }\n\