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

1.1     ! misho       1: /* $Id: wingenminiupnpcstrings.c,v 1.4 2015/02/08 08:46:06 nanard Exp $ */
        !             2: /* Project: miniupnp
        !             3:  * http://miniupnp.free.fr/ or https://miniupnp.tuxfamily.org/
        !             4:  * Author: Thomas Bernard
        !             5:  * Copyright (c) 2005-2021 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 < (int)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:                        fclose(fin);
        !            63:                        return 1;
        !            64:                }
        !            65:                n = 0;
        !            66:                while(fgets(buffer, sizeof(buffer), fin)) {
        !            67:                        if(0 == memcmp(buffer, "#define OS_STRING \"OS/version\"", 30)) {
        !            68:                                sprintf(buffer, "#define OS_STRING \"MSWindows/%ld.%ld.%ld\"\n",
        !            69:                                        osvi.dwMajorVersion, osvi.dwMinorVersion, osvi.dwBuildNumber);
        !            70:                        } else if(0 == memcmp(buffer, "#define MINIUPNPC_VERSION_STRING \"version\"", 42)) {
        !            71:                                sprintf(buffer, "#define MINIUPNPC_VERSION_STRING \"%s\"\n",
        !            72:                                        miniupnpcVersion);
        !            73:                        }
        !            74:                        /*fputs(buffer, stdout);*/
        !            75:                        fputs(buffer, fout);
        !            76:                        n++;
        !            77:                }
        !            78:                fclose(fin);
        !            79:                fclose(fout);
        !            80:                printf("%d lines written to %s.\n", n, argv[2]);
        !            81:        }
        !            82:        if(argc >= 4) {
        !            83:                fout = fopen(argv[3], "w");
        !            84:                if(fout == NULL) {
        !            85:                        fprintf(stderr, "Cannot open %s for writing.\n", argv[2]);
        !            86:                        return 1;
        !            87:                } else {
        !            88:                        char * cur, * next;
        !            89:                        fprintf(fout, "#define LIBMINIUPNPC_DOTTED_VERSION \"%s\"\n", miniupnpcVersion);
        !            90:                        next = strchr(miniupnpcVersion, '.');
        !            91:                        if (next && *next) {
        !            92:                                *next = '\0';
        !            93:                                next++;
        !            94:                        }
        !            95:                        fprintf(fout, "#define LIBMINIUPNPC_MAJOR_VERSION %s\n", miniupnpcVersion);
        !            96:                        cur = next;
        !            97:                        next = strchr(cur, '.');
        !            98:                        if (next && *next) {
        !            99:                                *next = '\0';
        !           100:                                next++;
        !           101:                        }
        !           102:                        fprintf(fout, "#define LIBMINIUPNPC_MINOR_VERSION %s\n", cur);
        !           103:                        cur = next;
        !           104:                        next = strchr(cur, '.');
        !           105:                        if (next && *next) {
        !           106:                                *next = '\0';
        !           107:                                next++;
        !           108:                        }
        !           109:                        fprintf(fout, "#define LIBMINIUPNPC_MICRO_VERSION %s\n", cur);
        !           110:                        fclose(fout);
        !           111:                        printf("%s written\n", argv[3]);
        !           112:                }
        !           113:        }
        !           114:   return 0;
        !           115: }

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