|
|
1.1 ! root 1: GLOBAL SharedFileNeedsCopying AS INTEGER ! 2: ! 3: DECLARE FUNCTION WCompareVersion (szVer1$, szVer2$) AS INTEGER ! 4: ! 5: DECLARE FUNCTION FindSharedFileFromPath (szField$, szVersion$) AS STRING ! 6: ! 7: DECLARE FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) AS STRING ! 8: ! 9: ! 10: ! 11: '' returns: 1 if szVer1$ > szVer2$; 0 if equal; -1 if szVer1$ < szVer2$ ! 12: '' ! 13: FUNCTION WCompareVersion (szVer1$, szVer2$) STATIC AS INTEGER ! 14: IF szVer1$ = "" THEN ! 15: IF szVer2$ = "" THEN ! 16: WCompareVersion = 0 ! 17: ELSE ! 18: WCompareVersion = -1 ! 19: END IF ! 20: ELSEIF szVer2$ = "" THEN ! 21: WCompareVersion = 1 ! 22: ELSE ! 23: WCompareVersion = 0 ! 24: FOR i% = 1 TO 4 STEP 1 ! 25: piece1& = GetVersionNthField(szVer1$, i%) ! 26: piece2& = GetVersionNthField(szVer2$, i%) ! 27: IF piece1& > piece2& THEN ! 28: WCompareVersion = 1 ! 29: GOTO _WCV_END ! 30: ELSEIF piece1& < piece2& THEN ! 31: WCompareVersion = -1 ! 32: GOTO _WCV_END ! 33: END IF ! 34: NEXT i% ! 35: END IF ! 36: _WCV_END: ! 37: END FUNCTION ! 38: ! 39: ! 40: '' private to this file - needed in next api ! 41: '' ! 42: FUNCTION FindSharedFileFromPath(szField$, szVersion$) STATIC AS STRING ! 43: FindSharedFileFromPath = "" ! 44: SharedFileNeedsCopying = 0 ! 45: IF szField$ <> "" THEN ! 46: IF DoesFileExist(szField$, OF_EXIST) = 0 THEN ! 47: szFile$ = STRING$(32, 32) ! 48: ! 49: IF FParseFATPathIntoPieces(szField$, NULL, 0, NULL, 0, szFile$, 31) <> 0 THEN ! 50: szField$ = FindFileUsingFileOpen(szFile$) ! 51: ELSE ! 52: szField$ = "" ! 53: END IF ! 54: szFile$ = "" ! 55: END IF ! 56: ! 57: IF szField$ <> "" THEN ! 58: IF WCompareVersion(GetVersionOfFile(szField$), szVersion$) >= 0 THEN ! 59: FindSharedFileFromPath = szField$ ! 60: ELSEIF IsFileWritable(szField$) <> 0 THEN ! 61: SharedFileNeedsCopying = 1 ! 62: FindSharedFileFromPath = szField$ ! 63: END IF ! 64: ! 65: szField$ = "" ! 66: END IF ! 67: END IF ! 68: END FUNCTION ! 69: ! 70: ! 71: FUNCTION SearchForLocationForSharedFile (szRegDbKey$, szWinIniSect$, szWinIniKey$, iWinIniField%, szDefault$, szVersion$) STATIC AS STRING ! 72: ! 73: SearchForLocationForSharedFile = szDefault$ ! 74: ! 75: '$IFDEF REG_DB_ENABLED ! 76: IF szRegDbKey$ <> "" THEN ! 77: szField$ = GetRegKeyValue(szRegDbKey$) ! 78: szFile$ = FindSharedFileFromPath(szField$, szVersion$) ! 79: IF szFile$ <> "" THEN ! 80: SearchForLocationForSharedFile = szFile$ ! 81: szFile$ = "" ! 82: GOTO _SFLSFS_END ! 83: END IF ! 84: END IF ! 85: '$ENDIF '' REG_DB_ENABLED ! 86: ! 87: IF szWinIniSect$ <> "" AND szWinIniKey$ <> "" THEN ! 88: szWinIniLine$ = GetIniKeyString("WIN.INI", szWinIniSect$, szWinIniKey$) ! 89: IF szWinIniLine$ <> "" THEN ! 90: szField$ = GetNthFieldFromIniString(szWinIniLine$, iWinIniField%) ! 91: szWinIniLine$ = "" ! 92: szFile$ = FindSharedFileFromPath(szField$, szVersion$) ! 93: IF szFile$ <> "" THEN ! 94: SearchForLocationForSharedFile = szFile$ ! 95: szFile$ = "" ! 96: GOTO _SFLSFS_END ! 97: END IF ! 98: END IF ! 99: END IF ! 100: ! 101: '' return value is still szDefault$ - assume it is writable ! 102: SharedFileNeedsCopying = 1 ! 103: IF DoesFileExist(szDefault$, OF_EXIST) <> 0 THEN ! 104: IF WCompareVersion(GetVersionOfFile(szDefault$), szVersion$) >= 0 THEN ! 105: SharedFileNeedsCopying = 0 ! 106: END IF ! 107: END IF ! 108: ! 109: _SFLSFS_END: ! 110: ! 111: END FUNCTION ! 112:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.