VR_INTERFACE(REGERR) VR_GetVersion(char *component_path, VERSION *result) { REGERR err; RKEY key; HREG hreg; VERSION ver; char buf[MAXREGNAMELEN]; err = vr_Init(); if (err != REGERR_OK) return err; hreg = vreg; err = vr_FindKey( component_path, &hreg, &key ); if (err != REGERR_OK) return err; err = NR_RegGetEntryString( hreg, key, VERSTR, buf, sizeof(buf) ); if (err != REGERR_OK) return err; vr_ParseVersion(buf, &ver); memcpy(result, &ver, sizeof(VERSION)); return REGERR_OK; } /* GetVersion */
void parse(char *cmd, char *name, VERSION *ver, char *path) { // expects 'cmd' points to: "<name>, <ver>, <path>" char buf[256]; char *p; cmd = GetNextWord(cmd, buf); strcpy(name, buf); p = cmd; // 'cmd' points to version vr_ParseVersion(cmd, ver); ver->check = gPretend ? 0xad : 0; while (*p && *p != ',') // skip to next ',' p++; if (*p == ',') // skip comma p++; while (*p && *p == ' ') // skip white space p++; strcpy(path, p); } // parse