Annotation of embedaddon/miniupnpc/wingenminiupnpcstrings.c, revision 1.1

1.1     ! misho       1: /* $Id: wingenminiupnpcstrings.c,v 1.2 2011/01/11 15:31:13 nanard 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>