Migration from PureBasic 5.30 to 5.40

Cipher library


ExamineMD5Fingerprint(): code change
  ; Old
  ExamineMD5Fingerprint(#FingerPrint)

  ; New
  UseMD5FingerPrint()  
  StartFingerprint(#FingerPrint, #PB_Cipher_MD5)

ExamineSHA1Fingerprint(): code change
  ; Old
  ExamineSHA1Fingerprint(#FingerPrint)
  
  ; New
  UseSHA1FingerPrint()
  StartFingerprint(#FingerPrint, #PB_Cipher_SHA1)

MD5FileFingerprint(): code change
  ; Old
  Result$ = MD5FileFingerprint(Filename$)
  
  ; New
  UseMD5FingerPrint()
  Result$ = FileFingerprint(Filename$, #PB_Cipher_MD5)

MD5Fingerprint(): code change
  ; Old
  Result$ = MD5Fingerprint(*Buffer, Size)
  
  ; New
  UseMD5FingerPrint()
  Result$ = Fingerprint(*Buffer, Size, #PB_Cipher_MD5)

SHA1FileFingerprint(): code change
  ; Old
  Result$ = SHA1FileFingerprint(Filename$)
  
  ; New
  UseSHA1FingerPrint()
  Result$ = FileFingerprint(Filename$, #PB_Cipher_SHA1)

SHA1Fingerprint(): code change
  ; Old
  Result$ = SHA1Fingerprint(*Buffer, Size)
  
  ; New
  UseSHA1FingerPrint()
  Result$ = Fingerprint(*Buffer, Size, #PB_Cipher_SHA1)

CRC32FileFingerprint(): code change
  ; Old
  Result = CRC32FileFingerprint(Filename$)
  
  ; New
  UseCR32FingerPrint()
  Result.l = Val("$"+FileFingerprint(Filename$, #PB_Cipher_CRC32))

CRC32Fingerprint(): code change
  ; Old
  Result = CRC32Fingerprint(*Buffer, Size)
  
  ; New
  UseCR32FingerPrint()
  Result.l = Val("$"+Fingerprint(*Buffer, Size, #PB_Cipher_CRC32))

NextFingerprint(): rename only
  ; Old
  NextFingerprint(#FingerPrint, *Buffer, Size)
  
  ; New
  AddFingerprintBuffer(#FingerPrint, *Buffer, Size)

Mail library


SendMail(): code change if the 'Asynchronous' parameter was used
  ; Old
  SendMail(#Mail, Smtp$, Port, 1)
  
  ; New
  SendMail(#Mail, Smtp$, Port, #PB_Mail_Asynchronous)

Packer library


RemovePackFile(): removed
PackerEntrySize(): #PB_Packer_CompressedSize support removed for ZIP and 7z archives

Screen library


AvailableScreenMemory() removed as new API doesn't support this info anymore. It was mostly returning '0' anyway.

Engine3D library


WorldCollisionAppliedImpulse() now returns a float about the applied impulse. GetX/Y/Z() are no more supported.