File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / miniupnpc / wingenminiupnpcstrings.c
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:16:22 2012 UTC (12 years, 8 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    1: /* $Id: wingenminiupnpcstrings.c,v 1.1 2012/02/21 23:16:22 misho Exp $ */
    2: /* Project: miniupnp
    3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
    4:  * Author: Thomas Bernard
    5:  * Copyright (c) 2005-2009 Thomas Bernard
    6:  * This software is subjects to the conditions detailed
    7:  * in the LICENSE file provided within this distribution */
    8: #include <stdio.h>
    9: #include <windows.h>
   10: 
   11: /* This program display the Windows version and is used to
   12:  * generate the miniupnpcstrings.h
   13:  * wingenminiupnpcstrings miniupnpcstrings.h.in miniupnpcstrings.h
   14:  */
   15: int main(int argc, char * * argv) {
   16: 	char buffer[256];
   17: 	OSVERSIONINFO osvi;
   18: 	FILE * fin;
   19: 	FILE * fout;
   20: 	int n;
   21: 	char miniupnpcVersion[32];
   22: 	/* dwMajorVersion :
   23:        The major version number of the operating system. For more information, see Remarks.
   24:      dwMinorVersion :
   25:        The minor version number of the operating system. For more information, see Remarks.
   26:      dwBuildNumber :
   27:        The build number of the operating system.
   28:      dwPlatformId
   29:        The operating system platform. This member can be the following value. 
   30:      szCSDVersion
   31:        A null-terminated string, such as "Service Pack 3", that indicates the
   32:        latest Service Pack installed on the system. If no Service Pack has
   33:        been installed, the string is empty.
   34:    */
   35:   ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
   36:   osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
   37: 
   38:   GetVersionEx(&osvi);
   39: 
   40: 	printf("Windows %lu.%lu Build %lu %s\n",
   41: 	       osvi.dwMajorVersion, osvi.dwMinorVersion,
   42: 	       osvi.dwBuildNumber, (const char *)&(osvi.szCSDVersion));
   43: 
   44: 	fin = fopen("VERSION", "r");
   45: 	fgets(miniupnpcVersion, sizeof(miniupnpcVersion), fin);
   46: 	fclose(fin);
   47: 	for(n = 0; n < sizeof(miniupnpcVersion); n++) {
   48: 		if(miniupnpcVersion[n] < ' ')
   49: 			miniupnpcVersion[n] = '\0';
   50: 	}
   51: 	printf("MiniUPnPc version %s\n", miniupnpcVersion);
   52: 
   53: 	if(argc >= 3) {
   54: 		fin = fopen(argv[1], "r");
   55: 		if(!fin) {
   56: 			fprintf(stderr, "Cannot open %s for reading.\n", argv[1]);
   57: 			return 1;
   58: 		}
   59: 		fout = fopen(argv[2], "w");
   60: 		if(!fout) {
   61: 			fprintf(stderr, "Cannot open %s for writing.\n", argv[2]);
   62: 			return 1;
   63: 		}
   64: 		n = 0;
   65: 		while(fgets(buffer, sizeof(buffer), fin)) {
   66: 			if(0 == memcmp(buffer, "#define OS_STRING \"OS/version\"", 30)) {
   67: 				sprintf(buffer, "#define OS_STRING \"MSWindows/%ld.%ld.%ld\"\n",
   68: 				        osvi.dwMajorVersion, osvi.dwMinorVersion, osvi.dwBuildNumber);
   69: 			} else if(0 == memcmp(buffer, "#define MINIUPNPC_VERSION_STRING \"version\"", 42)) {
   70: 				sprintf(buffer, "#define MINIUPNPC_VERSION_STRING \"%s\"\n",
   71: 				        miniupnpcVersion);
   72: 			}
   73: 			/*fputs(buffer, stdout);*/
   74: 			fputs(buffer, fout);
   75: 			n++;
   76: 		}
   77: 		fclose(fin);
   78: 		fclose(fout);
   79: 		printf("%d lines written to %s.\n", n, argv[2]);
   80: 	}
   81:   return 0;
   82: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>