home *** CD-ROM | disk | FTP | other *** search
- #include <Errors.h>
- #include <Resources.h>
- #include "DCon.h"
- #include "StringUtils.h"
- #include "Version.h"
-
-
-
-
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- static OSStatus GetVersResource(Handle *vers);
-
- #ifdef __cplusplus
- }
- #endif
-
-
-
-
-
- OSStatus GetNumVersion(NumVersion *vers)
- {
- Handle rez;
- OSStatus err;
-
-
- // Sanity check input parameters.
- if_dAssertIfTrue(!vers)
- return paramErr;
-
- err = GetVersResource(&rez);
- if (err != noErr)
- return err;
-
- *vers = *(NumVersion*)(*rez);
- DisposeHandle(rez);
- return noErr;
- }
-
-
-
-
-
- OSStatus GetNumVersionCString(char *vers)
- {
- OSStatus err;
-
-
- // Sanity check input parameters.
- if_dAssertIfTrue(!vers)
- return paramErr;
-
- err = GetNumVersionPString((StringPtr)vers);
- if (err != noErr)
- return err;
-
- ptocstr(vers,(StringPtr)vers);
- return noErr;
- }
-
-
-
-
-
- OSStatus GetNumVersionPString(StringPtr vers)
- {
- NumVersion num;
- OSStatus err;
-
-
- // Sanity check input parameters.
- if_dAssertIfTrue(!vers)
- return paramErr;
-
- err = GetNumVersion(&num);
- if (err != noErr)
- return err;
-
- vers[0] = 0;
- if (num.majorRev & 0xF0)
- vers[++vers[0]] = '0' + ((num.majorRev & 0xF0) >> 4);
- if (num.majorRev & 0x0F)
- vers[++vers[0]] = '0' + (num.majorRev & 0x0F);
-
- vers[++vers[0]] = '.';
- vers[++vers[0]] = '0' + ((num.minorAndBugRev & 0xF0) >> 4);
- if (num.minorAndBugRev & 0x0F)
- {
- vers[++vers[0]] = '.';
- vers[++vers[0]] = '0' + (num.minorAndBugRev & 0x0F);
- }
-
- switch(num.stage)
- {
- case 0x20: // developStage
- vers[++vers[0]] = 'd';
- break;
-
- case 0x40: // alphaStage
- vers[++vers[0]] = 'a';
- break;
-
- case 0x60: // betaStage
- vers[++vers[0]] = 'b';
- break;
-
- case 0x80: // finalStage
- if (num.nonRelRev)
- vers[++vers[0]] = 'f';
- break;
- }
-
- if (num.nonRelRev & 0xF0)
- vers[++vers[0]] = '0' + ((num.nonRelRev & 0xF0) >> 4);
- if (num.nonRelRev & 0x0F)
- vers[++vers[0]] = '0' + (num.nonRelRev & 0x0F);
-
- return noErr;
- }
-
-
- #if 0
- #pragma mark -
- #endif
-
-
- OSStatus GetVersResource(Handle *vers)
- {
- OSStatus err;
-
-
- // Sanity check input parameters.
- if_dAssertIfTrue(!vers)
- return paramErr;
-
- *vers = Get1Resource('vers',1);
- if (*vers == NULL)
- {
- err = ResError();
- if (err == noErr)
- err = resNotFound;
-
- return err;
- }
-
- DetachResource(*vers);
- HLock(*vers);
- return noErr;
- }
-