Annotation of embedaddon/miniupnpd/miniupnpc/wingenminiupnpcstrings.c, revision 1.1.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>