Sfoglia il codice sorgente

Evaluate parameter of mg_print_system_info

bel 8 anni fa
parent
commit
8453f7d72f
1 ha cambiato i file con 184 aggiunte e 91 eliminazioni
  1. 184 91
      src/civetweb.c

+ 184 - 91
src/civetweb.c

@@ -14435,10 +14435,7 @@ mg_check_feature(unsigned feature)
 int
 mg_print_system_info(int prm1, char *prm2)
 {
-    //WARNING: these parameters are not being used
-	(void)prm1;
-	(void)prm2;
-	
+	char buf[256];
 	const char *version = mg_version();
 #if defined(_WIN32)
 #if !defined(__SYMBIAN32__)
@@ -14462,124 +14459,220 @@ mg_print_system_info(int prm1, char *prm2)
 	dwMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
 	dwMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
 
-	fprintf(stdout,
-	        "\nWindows %u.%u\n",
-	        (unsigned)dwMajorVersion,
-	        (unsigned)dwMinorVersion);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Windows %u.%u",
+	            (unsigned)dwMajorVersion,
+	            (unsigned)dwMinorVersion);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 
-	fprintf(stdout,
-	        "CPU: type %u, cores %u, mask %x\n",
-	        (unsigned)si.wProcessorArchitecture,
-	        (unsigned)si.dwNumberOfProcessors,
-	        (unsigned)si.dwActiveProcessorMask);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "CPU: type %u, cores %u, mask %x",
+	            (unsigned)si.wProcessorArchitecture,
+	            (unsigned)si.dwNumberOfProcessors,
+	            (unsigned)si.dwActiveProcessorMask);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 
 #else
-	fprintf(stdout, "\n%s - Symbian\n");
+	mg_snprintf(NULL, NULL, buf, sizeof(buf), "%s - Symbian");
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #endif
 #else
 	struct utsname name;
 	memset(&name, 0, sizeof(name));
 	uname(&name);
 
-	fprintf(stdout,
-	        "\n%s %s (%s) - %s\n",
-	        name.sysname,
-	        name.version,
-	        name.release,
-	        name.machine);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "%s %s (%s) - %s",
+	            name.sysname,
+	            name.version,
+	            name.release,
+	            name.machine);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #endif
 
-	fprintf(stdout, "Features:");
-	if (mg_check_feature(1)) {
-		fprintf(stdout, " Files");
-	}
-	if (mg_check_feature(2)) {
-		fprintf(stdout, " HTTPS");
-	}
-	if (mg_check_feature(4)) {
-		fprintf(stdout, " CGI");
-	}
-	if (mg_check_feature(8)) {
-		fprintf(stdout, " IPv6");
-	}
-	if (mg_check_feature(16)) {
-		fprintf(stdout, " WebSockets");
-	}
-	if (mg_check_feature(32)) {
-		fprintf(stdout, " Lua");
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Features: %X%s%s%s%s%s%s",
+	            mg_check_feature(0xFFFFFFFFu),
+	            mg_check_feature(1) ? " Files" : "",
+	            mg_check_feature(2) ? " HTTPS" : "",
+	            mg_check_feature(4) ? " CGI" : "",
+	            mg_check_feature(8) ? " IPv6" : "",
+	            mg_check_feature(16) ? " WebSockets" : "",
+	            mg_check_feature(32) ? " Lua" : "");
+	if (prm1 == 0) {
+		puts(buf);
 	}
-	fprintf(stdout, "\n");
 
 #ifdef USE_LUA
-	fprintf(stdout,
-	        "Lua Version: %u (%s)\n",
-	        (unsigned)LUA_VERSION_NUM,
-	        LUA_RELEASE);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Lua Version: %u (%s)",
+	            (unsigned)LUA_VERSION_NUM,
+	            LUA_RELEASE);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #endif
 
-	fprintf(stdout, "Version: %s\n", version);
+	mg_snprintf(NULL, NULL, buf, sizeof(buf), "Version: %s", version);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 
-	fprintf(stdout, "Build: %s\n", __DATE__);
+	mg_snprintf(NULL, NULL, buf, sizeof(buf), "Build: %s", __DATE__);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 
 /* http://sourceforge.net/p/predef/wiki/Compilers/ */
 #if defined(_MSC_VER)
-	fprintf(stdout,
-	        "MSC: %u (%u)\n",
-	        (unsigned)_MSC_VER,
-	        (unsigned)_MSC_FULL_VER);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "MSC: %u (%u)",
+	            (unsigned)_MSC_VER,
+	            (unsigned)_MSC_FULL_VER);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__MINGW64__)
-	fprintf(stdout,
-	        "MinGW64: %u.%u\n",
-	        (unsigned)__MINGW64_VERSION_MAJOR,
-	        (unsigned)__MINGW64_VERSION_MINOR);
-	fprintf(stdout,
-	        "MinGW32: %u.%u\n",
-	        (unsigned)__MINGW32_MAJOR_VERSION,
-	        (unsigned)__MINGW32_MINOR_VERSION);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "MinGW64: %u.%u",
+	            (unsigned)__MINGW64_VERSION_MAJOR,
+	            (unsigned)__MINGW64_VERSION_MINOR);
+	if (prm1 == 0) {
+		puts(buf);
+	}
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "MinGW32: %u.%u",
+	            (unsigned)__MINGW32_MAJOR_VERSION,
+	            (unsigned)__MINGW32_MINOR_VERSION);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__MINGW32__)
-	fprintf(stdout,
-	        "MinGW32: %u.%u\n",
-	        (unsigned)__MINGW32_MAJOR_VERSION,
-	        (unsigned)__MINGW32_MINOR_VERSION);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "MinGW32: %u.%u",
+	            (unsigned)__MINGW32_MAJOR_VERSION,
+	            (unsigned)__MINGW32_MINOR_VERSION);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__clang__)
-	fprintf(stdout,
-	        "clang: %u.%u.%u (%s)\n",
-	        __clang_major__,
-	        __clang_minor__,
-	        __clang_patchlevel__,
-	        __clang_version__);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "clang: %u.%u.%u (%s)",
+	            __clang_major__,
+	            __clang_minor__,
+	            __clang_patchlevel__,
+	            __clang_version__);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__GNUC__)
-	fprintf(stdout,
-	        "gcc: %u.%u.%u\n",
-	        (unsigned)__GNUC__,
-	        (unsigned)__GNUC_MINOR__,
-	        (unsigned)__GNUC_PATCHLEVEL__);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "gcc: %u.%u.%u",
+	            (unsigned)__GNUC__,
+	            (unsigned)__GNUC_MINOR__,
+	            (unsigned)__GNUC_PATCHLEVEL__);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__INTEL_COMPILER)
-	fprintf(stdout, "Intel C/C++: %u\n", (unsigned)__INTEL_COMPILER);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Intel C/C++: %u",
+	            (unsigned)__INTEL_COMPILER);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__BORLANDC__)
-	fprintf(stdout, "Borland C: 0x%x\n", (unsigned)__BORLANDC__);
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Borland C: 0x%x",
+	            (unsigned)__BORLANDC__);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #elif defined(__SUNPRO_C)
-	fprintf(stdout, "Solaris: 0x%x\n", (unsigned)__SUNPRO_C);
+	mg_snprintf(
+	    NULL, NULL, buf, sizeof(buf), "Solaris: 0x%x", (unsigned)__SUNPRO_C);
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #else
-	fprintf(stdout, "Other\n");
+	mg_snprintf(NULL, NULL, buf, sizeof(buf), "Other");
+	if (prm1 == 0) {
+		puts(buf);
+	}
 #endif
 	/* Determine 32/64 bit data mode.
 	 * see https://en.wikipedia.org/wiki/64-bit_computing */
-	fprintf(stdout,
-	        "Data model: i:%u/%u/%u/%u, f:%u/%u/%u, c:%u/%u, "
-	        "p:%u, s:%u, t:%u\n",
-	        (unsigned)sizeof(short),
-	        (unsigned)sizeof(int),
-	        (unsigned)sizeof(long),
-	        (unsigned)sizeof(long long),
-	        (unsigned)sizeof(float),
-	        (unsigned)sizeof(double),
-	        (unsigned)sizeof(long double),
-	        (unsigned)sizeof(char),
-	        (unsigned)sizeof(wchar_t),
-	        (unsigned)sizeof(void *),
-	        (unsigned)sizeof(size_t),
-	        (unsigned)sizeof(time_t));
+	mg_snprintf(NULL,
+	            NULL,
+	            buf,
+	            sizeof(buf),
+	            "Data model: int:%u/%u/%u/%u, float:%u/%u/%u, char:%u/%u, "
+	            "ptr:%u, size:%u, time:%u",
+	            (unsigned)sizeof(short),
+	            (unsigned)sizeof(int),
+	            (unsigned)sizeof(long),
+	            (unsigned)sizeof(long long),
+	            (unsigned)sizeof(float),
+	            (unsigned)sizeof(double),
+	            (unsigned)sizeof(long double),
+	            (unsigned)sizeof(char),
+	            (unsigned)sizeof(wchar_t),
+	            (unsigned)sizeof(void *),
+	            (unsigned)sizeof(size_t),
+	            (unsigned)sizeof(time_t));
+	if (prm1 == 0) {
+		puts(buf);
+	}
+
+	// WARNING: these parameters are not being used
+	(void)prm2;
 
 	return 0;
 }