hackedteam/vector-default

View on GitHub
pe.old/WINDOWS/VERSION.RC2

Summary

Maintainability
Test Coverage
/*
 * Standard Windows version information.
 * (For inclusion in other .rc files with appropriate macro definitions.)
 * FIXME: This file is called '.rc2' rather than '.rc' to avoid MSVC trying
 * to compile it on its own when using the project files. Nicer solutions
 * welcome.
 */

/*
 * Binary versions in Windows are major.minor.build.revision. Each
 * component is 16-bit.
 * Here we have:
 *   major.minor
 *     PuTTY version number (e.g. 0.58). (We've made a policy decision
 *     that these will be numeric from now on.)
 *     Present in releases and snapshots (for the sake of monotonicity
 *     in version numbers).
 *   build
 *     In releases, always 0.
 *     In snapshots, nearest Subversion revision. (It shouldn't be
 *     assumed that only one binary will have a given build number, of
 *     course.)
 *   revision
 *     Reserved; always 0.
 *
 * Examples of these version numbers:
 *   Release:  0.58.0.0        (but 0.58 didn't have a VERSIONINFO resource)
 *   Snapshot: 0.58.6356.0  (between 0.58 and the next release)
 *   Local:    0.0.0.0
 */

/*
 * Mechanics of version naming/numbering.
 * (This is a ripoff of ../version.c.)
 */

#define STR1(x) #x
#define STR(x) STR1(x)

/* We keep this around even for snapshots, for monotonicity of version
 * numbering. It needs to be kept up to date. NB _comma_-separated. */
#define BASE_VERSION 0,61

#if defined SNAPSHOT

/* Make SVN_REV mandatory for snapshots, to avoid issuing binary
 * version numbers that look like full releases. */
#ifndef SVN_REV
#error SVN_REV not defined/nonzero for snapshot build
#endif

#define VERSION_TEXT "Development snapshot " STR(SNAPSHOT) ":r" STR(SVN_REV)
#ifdef MODIFIED
#define BINARY_VERSION 0,0,0,0
#else
#define BINARY_VERSION BASE_VERSION,SVN_REV,0
#endif

#elif defined RELEASE

#define VERSION_TEXT "Release " STR(RELEASE)
#define BINARY_VERSION BASE_VERSION,0,0

#elif defined SVN_REV

#define VERSION_TEXT "Custom build r" STR(SVN_REV)
#ifdef MODIFIED
#define BINARY_VERSION 0,0,0,0
#else
#define BINARY_VERSION BASE_VERSION,SVN_REV,0
#endif

#else

/* We can't reliably get the same date and time as version.c, so
 * we won't bother trying. */
#define VERSION_TEXT "Unidentified build"
#define BINARY_VERSION 0,0,0,0

#endif

/*
 * The actual VERSIONINFO resource.
 */
VS_VERSION_INFO VERSIONINFO
/* (None of this "fixed" info appears to be trivially user-visible on
 * Win98SE. The binary version does show up on Win2K.) */
FILEVERSION    BINARY_VERSION
PRODUCTVERSION    BINARY_VERSION    /* version of whole suite */
FILEFLAGSMASK    VS_FF_DEBUG | VS_FF_PRERELEASE | VS_FF_PRIVATEBUILD
FILEFLAGS    0x0L
#if defined DEBUG
        | VS_FF_DEBUG
#endif
#if defined SNAPSHOT
        | VS_FF_PRERELEASE
#elif !defined RELEASE
        | VS_FF_PRIVATEBUILD
#endif
FILEOS        VOS__WINDOWS32
FILETYPE    VFT_APP
FILESUBTYPE    0x0L /* n/a for VFT_APP */
BEGIN
    /* (On Win98SE and Win2K, we can see most of this on the Version tab
     * in the file properties in Explorer.) */
    BLOCK "StringFileInfo"
    BEGIN
    /* "lang-charset" LLLLCCCC = (UK English, Unicode) */
    BLOCK "080904B0"
    BEGIN
        VALUE "CompanyName",    "about:blank"  /* required :/ */
        VALUE "ProductName",    "about:blank"
        VALUE "FileDescription",    APPDESC
        VALUE "InternalName",    APPNAME
        VALUE "OriginalFilename",    APPNAME
        VALUE "FileVersion",    VERSION_TEXT
        VALUE "ProductVersion",    VERSION_TEXT
        VALUE "LegalCopyright",    "Copyright \251 1997-2011"
#if (!defined SNAPSHOT) && (!defined RELEASE)
        /* Only if VS_FF_PRIVATEBUILD. */
        VALUE "PrivateBuild",    VERSION_TEXT /* NBI */
#endif
    END
    END
    BLOCK "VarFileInfo"
    BEGIN
    /* Once again -- same meanings -- apparently necessary */
    VALUE "Translation", 0x809, 1200
    END
END

#undef VERSION_TEXT
#undef BASE_VERSION
#undef BINARY_VERSION